CS331 DATA STRUCTURES AND ALGORITHMS

CS331 DATA STRUCTURES AND ALGORITHMS - SPRING 2024   Matthew Bauer [email protected]

Lecture Mon/Wed 8:35-9:50am - RE104    Lab Fri 9-9:50am - SB108,SB112F/E    Office Hours: Post questions to Discord cs331

TAs: Parth Patel [email protected]      Christopher Mocha [email protected] Sun 10am-noon Discord cs331

Jonathan Raynor [email protected] Fri 3-5pm

Textbooks (online): Problem Solving With Algorithms and Data Structures Using Python, Python Tutorial, Python Doc  
See https://moss.cs.iit.edu/cs331/bauer/ for lecture materials.

Computing Resources:  All assignments will be distributed and submitted via GitHub Classroom. 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. Prerequisite: CS116 or CS201

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.

Attendance: In-person attendance is required for all lectures, labs, and exams. In case of illness or emergency, you must contact me before the lecture, lab, or exam for an excused absence and I will provide materials on the content you miss. There is a limit of 3 excused absences for lectures/labs over the term. No materials are provided by me for unexcused absences. Since there is no internet section, lecture recordings are not available in general. If you have an unexcused absence for a lab, your lab score will be reduced by 50% when the lab is submitted.

Lectures: Pre-reading the textbook is essential to success. Download starter notebooks before class. Lectures will consist of lots of interactive demos. Completed notebooks are always posted.

Lecture Participation: To earn the 5 lecture participation points, students are expected to be prepared and to actively participate in lecture, either by asking or answering questions (please say your name clearly to get credit), or when called upon randomly. Students can expect to be called on, or volunteer, once every 3 weeks. I will post updated lecture participation points on Blackboard after each exam. Up to 5 optional participation points can be earned up to end of the last week if classes by asking questions via Discord (please include your name in the post). Optional Participation points will reduce the dependence on exams for your final grade but will not replace the 5 lecture participation points. Extra Participation Details 

Laboratories: There are 10 labs, and they are always due at midnight on Sunday night. Labs will be accessed, completed, and submitted via GitHub Classroom. Labs have different point totals and are therefore not equally weighted. One-day extensions (limited to 3 over the term) can be granted if you contact me before the submission deadline.

Assignments: Lecture Participation-5%, 10 Labs-30%, 3 Exams-65%   A=90-100 B=80-89 C=70-79 D=60-69 E=0-59

No extra credit. Students with unexcused absences that are close to a letter grade boundary will receive the lower grade. Exams will be individual work, closed book, closed notes, no electronic devices, no questions answered, no bathroom breaks, and assigned seats. See Prof. Lee’s www page for an old exam catalog.

Ethics: Any behavior on any homework, lab, or exam that could be considered copying or cheating will result in a zero on the assignment for all parties involved and will be reported to [email protected]. See the IIT Code of Academic Honesty https://web.iit.edu/student-affairs/handbook/fine-print/code-academic-honesty

Reasonable accommodation will be made for students with documented disabilities. 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 [email protected]

Illinois 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 [email protected] or the Deputy Title IX Coordinator at [email protected]. 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 [email protected] 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 https://www.iit.edu/title-ix/resources.

Communication is critical to the success and satisfaction of the learning experience. Please email me about any class issues.

Week

Monday (Lecture)

Wednesday (Lecture)

Friday (Lab)

1-1/8

Read PythonDS Introduction 1.1-1.17

Read Python tutorial, ch 1-5, 9

Course Overview/Syllabus, Language Intro

Language Intro

 

Lab 00 Preliminaries due midnight, Sunday 1/21

2-1/15

Language Intro

No School - pre-recorded lecture (xx:xx)

Language Intro

Lab 01 Basic Python due midnight, Sunday 1/28

3-1/22

 

Language Intro

Language Intro

Lab 02 Iocane due midnight, Sunday 2/4

4-1/29

Read PythonDS Analysis 3.1-3.11

Searching, Sorting, and Timing

Searching, Sorting, and Timing Runtime Complexities video (26:00)

Lab 03 Ngrams due midnight, Sunday 2/11

5-2/5

Array-backed lists

Iterators

Lab 04 Arraylist due midnight, Thursday 2/15

6-2/12

Read PythonDS 4.19-4.21

Linked structures

Linked lists

EXAM 1 (covers labs 01-04)
Friday 2/16, 8:35-9:50am room TBA

7-2/19

Read PythonDS 6.5

Hashing and Hashtables

Hashing and Hashtables

Lab 05 LinkedList due midnight, Sunday 3/3

8-2/26

 

Read PythonDS 4.3-4.12

Stacks and Queues

Stacks and Queues

Lab 06 Hashtable due midnight, Sunday 3/10

9-3/4

Read PythonDS 7.8-7.10

Priority Queues (and Heaps)

Priority Queues (and Heaps)

Lab 07 Stacks & Queues due midnight, Sunday 3/24

10-3/18

Read PythonDS 5.1-5.17

On Recursion

On Recursion

Lab 08 Heaps due midnight, Sunday 3/31

11-3/25

On Recursion

Binary Search Trees

Lab 09 Recursion due midnight, Sunday 4/14

12-4/1

Read PythonDS 7.11- 7.14

BSTree data structure

BSTree data structure

EXAM 2 (covers labs 05-08)
Friday 4/5, 8:35-9:50am room TBA

13-4/8

BSTree data structure

Read PythonDS 7.15-7.18

Balanced BSTree: AVL Tree

Lab 10 BSTree due midnight, Sunday 4/21

14-4/15

Balanced BSTree: AVL Tree

Balanced BSTree: AVL Tree

Lab 10 BSTree due midnight, Sunday 4/21

15-4/22

Balanced BSTree: AVL Tree

No Lecture

No Lab

Final’s

EXAM 3 (covers labs 09-10, AVL) day/time/room TBA

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注