Illinois Institute of Technology



CS331 DATA STRUCTURES AND ALGORITHMS - SPRING 2021 Matthew Bauer bauerm@iit.eduLecture Wed/Fri 8:05-9:20am - SB 104Lab Mon 8:30-9:20am - SB 112E, 112J, 112F, 108Office Hours: Tues and even numbered Thurs 12:45-1:45pm HYPERLINK "" Online Google Meet (IIT Gmail login required) TAs (office hours online Discord cs331)Christopher Dharma cdharma@hawk.iit.edu Sun/Mon 11-noonAman Luqman aluqman@hawk.iit.edu Sun 2-4pmPrzemyslaw Warias pwarias@hawk.iit.edu Fri 1-2pm, Sun 3:30-4:30pmIsmael Lopez ilopez5@hawk.iit.edu Sun 4-6pmTextbooks (online): Problem Solving With Algorithms and Data Structures Using Python, Python Tutorial, Python DocComputing Resources: All assignments will be distributed and submitted via Mimir Classroom (course code: 82915bd836, make sure to choose the lab section you are registered). You should also install your own local Jupyter Notebook Catalog Description: Implementation and application of the essential data structures used in computer science. Analysis of basic sorting and searching algorithms and their relationship to these data structures. Particular emphasis is given to the use of object-oriented design and data abstraction in the creation and application of data structures.Course Objectives: Students should be able to:1. Design and implement data structures based on the following abstract data types: lists, stacks, queues, priority queues, sets, maps, trees.2. Understand which data structures to use, and how to apply them to a variety of problems.3. Analyze the asymptotic runtime complexity of common search/sort algorithms, and others used in the implementation of data structures.4. Design and implement recursive functions.5. Understand the utility of object-orientation in the implementation of sophisticated data types and APIs.6. Identify aspects in the design and implementation of data structures that play a role in secure computing.7. Practice test-driven development.Lectures: Attendance (in-person or via Blackboard Collaborate) is required at all lectures. Even if you are attending class in-person, please also join the Blackboard Collaborate session for each lecture. Review reading before arriving to class. Download starter notebooks before class. Class will consist of lots of interactive demos. Completed notebooks are always posted. To earn Lecture Participation points, students are expected to be prepared and to actively participate in class activities, either by asking or answering questions, or when called on their assigned day for participation. If you do not wish to be called upon on your assigned participation days, you can instead email me 3 questions on the day’s lecture topic before class. You can also ask questions via email, Discord or in my office hours to earn Lecture Participation points See the for lecture materials. Laboratories: There will be 11 machine problems assigned over the course of the semester. They will be accessed, completed, and submitted via the online development environment and learning platform Mimir. Machine problems are not equally weighted. Each student starts the semester with a "late pool" of 11 days. Late days are automatically applied when machine problems are submitted late, with no grading penalty. After the late day pool is exhausted, late assignments will not be accepted for credit. Assignments: Lecture Participation-10%, Labs (11)-30%, Exams (3)-20% each A=90-100 B=80-89 C=70-79 D=60-69 E=0-59 No late work, no extra credit. Attendance (in-person or via Blackboard Collaborate) is required at all lectures. Students with lecture absences that are close to a letter grade boundary will receive the lower grade. The instructor reserves the right to fail any student that receives a failing score on any exam regardless of the scores on the other assignments. All exams will be taken in-person, on-campus. Please contact me if you are not in Chicago.Ethics: Any behavior on any homework, lab, project or exam that could be considered copying or cheating will result in an immediate zero on the assignment for all parties involved and will be reported to academichonesty@iit.edu. All electronic devices are prohibited during exams. See the IIT Code of Academic Honesty, accommodations will be made for students with documented disabilities. In order to receive accommodations, students must obtain a letter of accommodation from the Center for Disability Resources (CDR) located at 3424 S. State Street - 1C3-2, 312 567.5744 or disabilities@iit.eduIllinois Tech’s Sexual Harassment and Discrimination Information: Illinois Tech prohibits all sexual harassment, sexual misconduct, and gender discrimination by any member of our community. This includes harassment among students, staff, or faculty. Sexual harassment of a student by a faculty member or sexual harassment of an employee by a supervisor is particularly serious. Such conduct may easily create an intimidating, hostile, or offensive environment. Illinois Tech encourages anyone experiencing sexual harassment or sexual misconduct to speak with the Office of Title IX Compliance for information on support options and the resolution process. You can report sexual harassment electronically at iit.edu/incidentreport, which may be completed anonymously. You may additionally report by contacting the Title IX Coordinator, Virginia Foster at foster@iit.edu or the Deputy Title IX Coordinator at eespeland@iit.edu. For confidential support, you may reach Illinois Tech’s Confidential Advisor at (773) 907-1062. You can also contact a licensed practitioner in Illinois Tech’s Student Health and Wellness Center at student.health@iit.edu or (312)567-7550. For a comprehensive list of resources regarding counseling services, medical assistance, legal assistance and visa and immigration services, you can visit the Office of Title IX Compliance website at Precautions and Face Coverings in Class: Students are required to wear face masks at all times and maintain social distancing (6 feet between individuals) in traditional classrooms, instructional laboratories, and similar settings. In general, individuals should spend as little time as practicable in closer proximity when doing so is necessary to achieve learning objectives. Students who are feeling ill or experiencing symptoms such as sneezing, coughing, or a higher than normal temperature will be excused from class and are expected to stay at home. Instructors and TAs have the right to ask those who are not complying with these requirements to leave class in the interest of everyone's health and safety. In the event that a student refuses to comply with instructor directions regarding face masks and/or social distancing, the instructor has the right to ask the student to leave, and/or cancel class. A student who refuses to comply with these requirements will be referred to the Office of the Dean of Students for possible disciplinary action under the Student Code of Conduct. Additionally, as a reminder, following other simple practices such as frequent and thorough hand washing, wiping down desks and seats with disinfectant wipes when possible, not sharing personal items such as pens and cell phones, and avoiding crowded hallways and other enclosed spaces will promote good health in and out of the classroom. Visit iit.edu/COVID-19 for details on Illinois Tech’s response to coronavirus (COVID-19). For information from government authorities, please see the Centers for Disease Control and Prevention website at .Communication is critical to the success and satisfaction of the learning experience. Please use e-mail to communicate any class issues with me.WeekMonday (Lab)Wednesday (Lecture)Friday (Lecture)1 - 1/18No SchoolCourse Overview and Syllabus video (16:15)Read PythonDS Introduction 1.1-1.17Read Python tutorial, ch 1-5, 9 Language IntroLanguage Intro2 - 1/25Lab 00 Preliminaries due 1/31Language IntroLanguage Intro3 - 2/1Lab 01 Basic Python due 2/7Language IntroLanguage Intro4 - 2/8Lab 02 Iocane due 2/14Read PythonDS Analysis 3.1-3.11Searching, Sorting, and Timing Searching, Sorting, and Timing Runtime Complexities video (26:00)5 - 2/15Lab 03 Ngrams due 2/21Array-backed listsIterators6 - 2/22Lab 04 Arraylist due 2/28Read PythonDS 4.19-4.21Linked structuresLinked lists7 - 3/1Lab 05 LinkedList due 3/14EXAM 1 (covers labs 01-04)Read PythonDS 6.5Hashing and Hashtables8 - 3/8Lab 05 LinkedList due 3/14Hashing and Hashtables No School - pre-recorded lecture (xx:xx)Read PythonDS 4.3-4.12Stacks and Queues9 - 3/15Lab 06 Hashtable due 3/21Stacks and QueuesRead PythonDS 7.8-7.10Priority Queues (and Heaps)10 - 3/22Lab 07 Stacks & Queues due 3/28Priority Queues (and Heaps)Read PythonDS 5.1-5.17On Recursion11 - 3/29Lab 08 Heaps due 4/4On RecursionOn Recursion12 - 4/5Lab 09 Recursion due 4/18EXAM 2 (covers labs 05-08)Binary Search Trees13 - 4/12Lab 09 Recursion due 4/18Read PythonDS 7.11- 7.14BSTree data structureBSTree data structure14 - 4/19Lab 10 BSTree due 4/25Read PythonDS 7.15-7.18Balanced BSTree: AVL TreeBalanced BSTree: AVL Tree15 - 4/26Lab 11 AVLTree due 5/9Balanced BSTree: AVL TreeNo School16 - 5/3Lab 11 AVLTree due 5/9ReviewNo LectureFinal’s WeekEXAM 3 (covers labs 09-11)Tuesday, May 11, 8-10am, 104 Stuart ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download