CS 313E - Elements of Software Design Instructor: Dr. Veena Ravishankar Fall 2024 E-mail: veena.ravishankar@austin.utexas.edu Class Hours: Section1 - 50184 MW - 9:30am-11am CT, BEL 328 Section2 - 50183 MW - 11am-12:30pm CT, BEL 328 Office Hours: MW 1:30pm - 2:30pm CT or by appointment via email Office location: GDC 6.812 TA information: On Canvas Course Description This is the second course in the Elements of Software series. The emphasis of this course is on software development using object-oriented methodology. This course includes how to design software, how to create reusable software components, and how to compose programs from already available components. Furthermore, students learn about some basic data structures and algorithms and how to match the data structures and algorithms to problems. Prerequisite Computer Science 303E, 312, or 312H with a grade of at least C-. Required Online TextBooks We will use an interactive online book from zybooks.com zybooks • Create an account on zybooks.com using your university email address (@utexas.edu) • Sign in to learn.zybooks.com • Use your name exactly as it appears on Canvas. Make sure that the case matches. • Use your UT EID exactly as it appears on Canvas. Make sure that the case matches. 1 CS 313E : Elements of Software Design • Enter the correct zyBook code listed here: zyBook: CS 313E-86439: Elements of Software Design zyBook code: UTEXASCS313ERavishankarFall2024 • Cost: about $99 • Subscribe to this book. Important Note: Please make sure that you are using your UT email address for this zybook. It should be the same email address that you are using in Canvas site. Other Recommended Text Book • Introduction to Algorithms, Third Edition, September 2009. By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein Publisher:The MIT Press ISBN:978-0-26203384-8. (known as CLRS Algorithm Book) • The Practice of Computing Using Python, by W. Punch and R. Enbody, 3-rd edition, Pearson Publishing, ISBN 978-0-13-437976-0 Course Objectives In this course you will learn how to solve computational problems. Given a computational problem you should be able to: 1. Analyze (understand in detail) the problem 2. Design an algorithm to solve the problem. In this design process you will choose the appropriate data structure and the most efficient algorithm 3. Implement the learned algorithm in Python 3 4. Write your own test cases to test your algorithm. You will pay careful attention to edge cases. Make sure that the output matches the format as specified. Class Participation Our class will be in-person. In-person attendance is required. You may miss up to 3 classes without any excuse. If you miss multiple sessions of the class your performance in the class will be affected. Course Topics • Review of CS303 Topics, Testing and Debugging, Exceptions and Assertions • Object Oriented Programming (OOP), Classes and Objects 2/11 CS 313E : Elements of Software Design • OOP Features, Inheritance, Polymorphism, Encapsulation, Abstraction • Basic Algorithms, Complexity of Algorithms • Classes of Algorithms, Simple Recursion Algorithms • Complexity of Recursive Algorithms (Test 1) • Data Structures: Hash Tables, Stacks and Queues • Data Structures: Stacks and Queues, Linked Lists • Binary Trees • Searching with Binary Trees (Test 2) • Data Structures: Heaps and Trees • Graphs, Directed and Undirected Graphs • Weighted Graphs, Shortest Path Problems • Dynamic Programming • (Test 3) Tentative Course Schedule Tentative Course schedule is on Canvas Home Page: https://docs.google.com/spreadsheets/d/1ZIpDo0DiOFfkaD3P3FHWLUpF-m1qQS-u/edit?usp= sharing&ouid=117770843113559439487&rtpof=true&sd=true Programming assignments The only way to learn programming is to start coding computer programs. Doing the programming assignments is crucial to performing well in this course. There will be one assignment each week. The week long assignments will be due on mornings at 6:00 AM. Assignments start out being easy but get harder over the semester. If you are having considerable difficulty with Assignments 2 and/or 3, please see the Instructor immediately. The assignments will require a substantial time commitment over several days (an average of 10 to 12 hours per week should be expected). Be sure to budget sufficient time to complete assignments before the deadline. Turn in your assignments on time. This permits grading to start promptly after the submission deadline so that assignments maybe returned promptly. If you do not finish an assignment by the deadline you have a maximum of two days to turn your assignment in. However, there is a penalty of 10 points (out of a 100 points) per day. Your assignment is one day late until the midnight of the day after it is due, two days late from then until midnight of the second day. We will accept your assignment after two days if there is a compelling reason. 3/11 CS 313E : Elements of Software Design You can work with a partner on this assignment, no more than two per group. BUT you must submit your own code. We do all assignment submissions on Gradescope. • You have multiple chances of editing and testing your code. • Gradescope will NOT determine the late penalty if your code is late. We will according to the late policies as specified in the syllabus. If you want us to debug your program, come to us during our office hours and we will go through the program with you. Do NOT just e-mail the program to us for debugging. We will not respond to e-mails that have full length programs that have to be debugged. Your Python code should follow the Python Code Style according to the PEP8 standard, here is a documentation https://peps.python.org/pep-0008/ We consider 10% of your assignment grade for Code Style format and documentation. You can use your IDE (PyCharm, IntelliJ, VSCode) to automatically format your code. I recommend you to use Pycharm (https://www.jetbrains.com/pycharm/) as your main IDE. It includes many extensions for Python programming and other languages. Assignment Identification All assignments must be submitted with the proper header, containing your name (as registered), your unique section number, and the assignment number at the top of the assignment. The format for the header will be specified in the assignment. That specification will over ride any other header specification. ZyBook Labs Every week and during class, there will be several assignments in ZyBook. Longer ones will be assigned as take home labs. During class, we will work on several practice problems as well. Students have to read the Zybooks topics ahead of class (based on the tentative schedule) and work on assigned ZyBook Labs later. We assign and work on only some of the selected ZyBook Labs. The rest of them is for your learning. You can work with a partner on this assignment, no more than two per group. BUT you must submit your own code. Participation points There will be participation quizzes or assignments which are non programming in some random class sessions. The questions will be from the reading content or the material discussed in class the same day. These can be quizzes or fill in code snippets. The assignments will be hosted on Canvas. Term Project One of the requirements for CS313E course is the term project (10% of the grade). The project must be done in a group of two students. This is an opportunity for students to be creative in 4/11 CS 313E : Elements of Software Design solving a problem that is of their interest and demonstrate software design proficiency. We will cover in our class a list of data structure and algorithms. Students should use these knowledge to develop a small-size software project using Python. We will publish a project guideline on Canvas. Students will record a presentation video (5-10 minutes) about their Term project. At the end of the semester, we will randomly call some of the groups to present their projects in class. Tests Tests 1, 2 and 3 will be online. We will publish the test on Canvas. Students should take part in all 3 tests individually. You have to work on all the tests individually. For the test dates, please see the tentative course schedule. This test is an open book and a take home test. Grade Dispute Scores for assignments will be posted on Canvas. You have one week from the date the assignment grade is posted to dispute your grade. The student assistants will be grading the assignments. Visit the TAs and see if you can resolve your differences. If you cannot resolve your differences, you may visit me to explain the situation. We will not entertain any grade disputes one week after the grades are returned. You may resubmit your assignment for regrading after grades are returned. But the maximum that you can get is 80 points out of 100 points. Grading Structure • The Programing Assignments are focused on applying theory learned in the class. Weekly course assignments include both theoretical analysis and practical algorithmic implementation in python. The assignments for 30% of your course grade. • Zybook Labs: 20% – take home: 10% – during class: 10% • Participation points: 10% • Term Project: 10% • Three Tests during the semester (10% each of Test 1, 2, and 3): 30% • There will be no Final Exam 5/11 CS 313E : Elements of Software Design Programming Assignments Participation points Zybooks Labs: Take home (10%) and during class (10%) Term Project Three Tests (10% each of Test 1, 2, and 3) 30% 10% 20% 10% 30% Table 1: Percentage Coverage A >= 93% A>= 90% B+ >= 87% B >=84% B>=80% C+ >= 77% C >=74% C>=70% D+ >= 67% D >=64% D>= 60% F < 60% Grade distribution. Course Policies Assignment Completion & Late Work • All assignments should be submitted on time. • Late submissions without reasons will result in grade deduction. You can turn in an assignment up to 24 hours late, in which case you receive a 10% penalty (that is, 10 points are subtracted from an assignment that is worth 100 points), or up to 48 hours late, in which case you receive a 20% penalty. Assignments turned in after that are not accepted and will be given 0. • You can submit your assignments 3 times during the semester late (up to 2 days after original due date) without any penalties. • We kept on saying no exceptions, but there are exceptions in very extreme circumstances, with proper documentation. For example, if you obtain a doctor/dentist note stating that you were so ill at the due date/time that you could not reasonably be expected to meet the deadline, it is possible to get an extension. Schedule and weekly learning goals The schedule is tentative and subject to change. The learning goals below should be viewed as the key concepts you should grasp after each week, and also as a study guide before each exam, 6/11 CS 313E : Elements of Software Design and at the end of the semester. Each exam will test on the material that was taught up until 1 week prior to the exam. The applications in the second half of the semester tend to build on the concepts in the first half of the semester though, so it is still important to at least review those concepts throughout the semester. Communication We will be using Ed Discussion for general discussion of class related questions on Canvas. Please DO NOT post solutions or code to any home work assignment problems here. All communications to the Teaching Assistants will be through Ed Discussions. If you want to reach out to the Teaching Assistants then post a direct note to them on Ed discussion. If you want to reach me send me an email or visit office hrs. Do not use Canvas Inbox for email. If you have assignment related questions, it is best to visit the TAs during their office hours. Please tag the subject of your email to me with the class name [CS313E]. Academic Misconduct Policy While you are free to discuss the course material with your classmates and are encouraged to form study groups for the exams, collaboration on homework or programming assignments is not permitted unless you are working with partner on a pair programming assignment. Helping a friend understand the intent of a homework or programming assignment specification is permitted. Students who work together too closely (e.g. design their solution together) outside of pair programming should be aware that this is a form of cheating called COLLUSION and is subject to academic penalties. Penalties for academic misconduct include a failing grade in this course. The homework, programs, and exams must be the work of students turning them in. University policy (see Dean of Students’ policies on academic integrity) will be followed strictly. We will be running a sophisticated program on all submitted assignments to detect plagiarism. If we do detect any cases of academic dishonesty, we will assign a grade of F to all students involved and refer the cases to the Dean of Students. Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include: • Copying solutions, code, or programs from someone else or giving someone else your solutions, code, or programs • Participation in a discussion group that develops a solution that everyone copies • Posting your code to homework problems on Piazza or Facebook or other internet sites. • Copying code from the internet (e.g. from Piazza or Facebook or other internet sites) • Employing someone to write the solutions for you on homework assignment problems. We urge everyone in the class to take appropriate measures for protecting one’s work. You should protect your files, homework solution sheets, etc. as deemed reasonable. The only exception that we will make to these guidelines is if you are involved in pair programming with a friend. 7/11 CS 313E : Elements of Software Design Honor Code/Academic Integrity expectations Students who violate University rules on academic misconduct are subject to the student conduct process and potential disciplinary action. A student found responsible for academic misconduct may be assigned both a status sanction and a grade impact for the course. The grade impact could range from a zero on the assignment in question up to a failing grade in the course. A status sanction can range from probation, deferred suspension and/or dismissal from the University. To learn more about the academic integrity standards, tips for avoiding a potential academic misconduct violation and the overall conduct process, please visit the Student Conduct and Academic Integrity website at: http://deanofstudents.utexas.edu/conduct. Using Generative AI Tools doing your Assignments As generative artificial intelligence tools, like ChatGPT, become more prevalent we must be careful about how we integrate them into our class. • You are allowed to use AI for review, study, or research purposes throughout the course. • You are allowed to interact with AI while answering homework questions, although the final answer must be developed by you and documented in your own words. • AI is not allowed during class activities, any questions you may have can be asked of me or the TAs. • For projects you are allowed to interact with AI as much as you like but each piece of code written by the AI must have a comment about the AI authorship. • You will be asked in the followup questions about if/how you interacted with AI for your programming assignment and projects. For more information about using Generative AI Tools at UT Austin, please visit the following links: 5 Things To Know About ChatGPT https://ctl.utexas.edu/5-things-know-about-chatgpt Your Responsibilities in This Class • Your performance in this class will be determined by you! It will require a strong dedication to learning the material and will require a substantial time commitment to complete the programming assignments. • You are expected to show up on time for class and stay for the whole lecture. • You are responsible for all material posted to the CANVAS web site and sent as email. Ignorance of such material is no excuse. • You are responsible for all material presented in the lectures. Note that lectures will may some material that is not available elsewhere. If you miss a lecture you are expected to follow up the the instructor or TA. • You are responsible for turning in your own work on all assignments. Unauthorized collusion is not allowed and constitutes a violation of the university’s policies on academic integrity. See above guidelines for more information on what is or is not allowed. 8/11 CS 313E : Elements of Software Design • You are responsible for protecting your work from being copied by others. • Your conduct in class should be conducive towards a positive learning environment for your class mates as well as your self. General Policies If you are absent from class or examination for the observance of a religious holy day and/or sporting event you may turn in your assignment or take the examination on an alternate date provided you have given me written notice in the first two weeks of the class. For religious holy days that fall within the first two weeks of class notice must be given on the first class day. Accessible/Compliant Statement, Disability & Access (D&A) If you are a student with a disability, or think you may have a disability, and need accommodations please contact Disability and Access (D&A). You may refer to D&A’s website for contact and more information: https://disability.utexas.edu/. If you are already registered with D&A, please deliver your Accommodation Letter to me in the first two weeks of the semester so we can discuss your approved accommodations. I cannot retroactively make changes. Important Safety Information 0.1 Behavior Concerns and Advice Line (BCAL) If you have concerns about the safety or behavior of fellow students, TAs or professors, contact BCCAL (the Behavior Concerns) at https://safety.utexas.edu/behavior-concerns-advice-line or by calling 512-232-5050. Confidentiality will be maintained as much as possible, however the university may be required to release some information to appropriate parties. 0.2 Counseling and Mental Health Center (CMHC) We all benefit from support during times of struggle. Remember, you are not alone. If you are experiencing signs of stress, anxiety, depression, academic concerns, loneliness, difficulty sleeping, or any other issues affecting your well-being, we encourage you to contact the Counseling and Mental Health Center. The center is conveniently located on campus and provides a wide range of mental health services to all UT students. These services include support through assessment and referral, group and individual counseling, psychiatry, crisis services, and access to valuable well-being resources. In addition, CARE Counselors available within each academic school and college understand the unique concerns of their respective students and offer tailored assistance. Also, TimelyCare is a virtual mental health platform offering 24/7 support, scheduled counseling, psychiatric services, health coaching and self-care content. For more information, visit the CMHC website: https://healthyhorns.utexas.edu/cmhc/. 9/11 CS 313E : Elements of Software Design 0.3 Dean of Students - Student Emergency Services (SES) Our staff help students and their families during difficult or emergency situations. Assistance includes outreach, advocacy, intervention, support, and referrals to relevant campus and community resources. If you need to be absent from class due to a family emergency, medical or mental health concern, or academic difficulty due to crisis/emergency, and your instructor requires confirmation of your absence, we can help. We will document your situation and notify your instructors. Visit the SES website https://deanofstudents.utexas.edu/emergency/. to learn more, or call 512-471-5017 to speak with our staff. 0.4 University Health Services (UHS) Your physical health and well-being are a priority. University Health Services is the on-campus medical facility providing medical care and patient education to UT students. Services offered include general medicine, specialty clinics including the gynecology clinic, sports medicine, nutrition services, allergy, immunization and travel health, physical therapy, urgent care, a 24/7 nurse advice line; STI screening; and lab, x-ray, and ultrasound services. For additional information, visit the UHS website https://healthyhorns.utexas.edu/uhs/ or call 512-471-4955. CARRYING OF HANDGUNS ON CAMPUS Texas’ Open Carry law expressly prohibits a licensed to carry (LTC) holder from carrying a handgun openly on the campus of an institution of higher education such as UT Austin. Students in this class should be aware of the following university policies: • Students in this class who hold a license to carry are asked to review the university policy regarding campus carry here https://www.utexas.edu/campus-carry#ac. • Individuals who hold a license to carry are eligible to carry a concealed handgun on campus, including in most outdoor areas, buildings and spaces that are accessible to the public, and in classrooms. • It is the responsibility of concealed-carry license holders to carry their handguns on or about their person at all times while on campus. Open carry is NOT permitted, meaning that a license holder may not carry a partially or wholly visible handgun on campus premises or on any university driveway, street, sidewalk or walkway, parking lot, parking garage, or other parking area. • Per my right, I prohibit carrying of handguns in my personal office. Note that this information will also be conveyed to all students verbally during the first week of class. This written notice is intended to reinforce the verbal notification, and is not a “legally effective” means of notification in its own right. TITLE IX DISCLOSURE Beginning January 1, 2020, Texas Education Code, Section 51.252 (formerly known as Senate Bill 212) requires all employees of Texas universities, including faculty, report any information to the 10/11 CS 313E : Elements of Software Design Title IX Office here https://titleix.utexas.edu/ regarding sexual harassment, sexual assault, dating violence and stalking that is disclosed to them. Texas law requires that all employees who witness or receive any information of this type (including, but not limited to, written forms, applications, one-on-one conversations, class assignments, class discussions, or third-party reports) must report it to the Title IX Coordinator. Before talking with me, or with any faculty or staff member about a Title IX related incident, please remember that I will be required to report this information. Although graduate teaching and research assistants are not subject to Texas Education Code, Section 51.252, they are mandatory reporters under federal Title IX regulations and are required to report a wide range of behaviors we refer to as sexual misconduct, including the types of misconduct covered under Texas Education Code, Section 51.252. Title IX of the Education Amendments of 1972 is a federal civil rights law that prohibits discrimination on the basis of sex – including pregnancy and parental status – in educational programs and activities. The Title IX Office has developed supportive ways and compiled campus resources to support all impacted by a Title IX matter. If you would like to speak with a Case Manager for Support and Resources, who can provide support, resources or academic accommodations, in the Title IX Office, please email supportandresources@austin.utexas.edu. A Case Manager can also provide support, resources and accommodations for pregnant, nursing, and parenting students. For more information about reporting options and resources, visit http://www.titleix. utexas.edu/, contact the Title IX Office via email at titleix@austin.utexas.edu, or call 512-4710419. CAMPUS SAFETY The following are recommendations regarding emergency evacuation from the Office of Campus Safetyhttps://emergencymanagement.utexas.edu/, 512-471-5767, • Students should sign up for Campus Emergency Text Alerts at the page linked above. • Occupants of buildings on The University of Texas at Austin campus must evacuate buildings when a fire alarm is activated. Alarm activation or announcement requires exiting and assembling outside. • Familiarize yourself with all exit doors of each classroom and building you may occupy. Remember that the nearest exit door may not be the one you used when entering the building. • Students requiring assistance in evacuation shall inform their instructor in writing during the first week of class. • In the event of an evacuation, follow the instruction of faculty or class instructors. Do not re-enter a building unless given instructions by the following: Austin Fire Department, The University of Texas at Austin Police Department, or Fire Prevention Services office. • For more information, please visit the Office of Emergency Management. 11/11
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )