For questions about the course, write to: stjohn AT hunter cuny edu.
This is a HYBRID course which means that, in place of a second weekly meeting, you are responsible for independently working through the weekly lab found in the "Handouts" column in the Course Outline below.
Dates: | Topics: | Handouts: | Coursework:   | Reading: | |
---|---|---|---|---|---|
Week 0: | 1/25-1/30 | Recap: Python Basics | Lab 0 | Quiz 0 | |
Week 1: | 1/31-2/6 | Syllabus & Class Policies; Recap of Primitive Data Types & Control Structures: Conditionals & Loops; Introduction to Collection Data Types: List, Set, Tuple, and Dictionaries | Syllabus, Lab 1 |
Programs 1-2, Quiz 1, Code Review 1 |
Textbook: Sections 1.1-1.8.1, 1.10, 1.12 (Python recap) |
1/31 | Lab Opens | ||||
Week 2: | 2/7-2/13 | More on Dictionaries & Hashing; String Methods & Traversal: Slices, List Comprehension, Formatting String (f-strings) | Lab 2 |
Programs 3-5, Quiz 2, Code Review 2 |
Textbook: Sections 1.8.1, 1.9 (Collection Data Types & String I/O) |
2/12 | Holiday: Lab Closed | ||||
Week 3: | 2/14-2/20 | File I/0; Introduction to Running Time Complexity | Lab 3 |
Programs 6-7, Quiz 3, Code Review 3 |
Textbook: Chapter 2 (running time); ThinkCS (127 textbook): Chapter 11 (files) |
2/19 | Holiday: Lab Closed | ||||
Week 4: | 2/21-3/5 | Functions: Parameters, Return Values; Exception Handling; Recursion |
Lab 4, triangle.py (trinket) |
Programs 8-12, Quiz 4, Code Review 4 |
Textbook: Sections 1.11 & 1.12 (Exception Handling & Functions), Chapter 4 (Recursion) |
2/28 | No Lecture: Classes Follow Monday Schedule | ||||
Week 5: | 3/6-3/12 |
Object Oriented Programming; Writing Proper Classes; Using Standard Libraries: Survey of numpy, pandas, plotly, scipy |
Lab 5 |
Programs 13-15, Quiz 5, Code Review 5 |
Textbook: Chapter 17 (Objects & Classes), ThinkCS: Chapter 19 (Pillars of OOP), Textbook: Section 1.13 (OOP in Python) |
Week 6: | 3/13-3/19 | Linear Data Structures: Array Implementations & Linked Lists; Stacks | Lab 6 |
Programs 16-18, Quiz 6, Code Review 6 |
Textbook: Sections 3.1-9 (Linear Data Structures: Stacks) |
Week 7: | 3/20-3/26 | More on Linear Data Structures: Queues & Deques | Lab 7 |
Programs 19-20, Quiz 7, Code Review 7 |
Textbook: Sections 3.10-18 (Linear Data Structures: Queues) |
Week 8: | 3/27-4/2 | Map Abstract Data Type: Dictionaries, Maps | Lab 8 |
Programs 21-22, Quiz 8, Code Review 8 |
Textbook: Sections 3.19-25 (Linear Data Structures: Lists) |
3/29 | Holiday: Lab Closed | ||||
Week 9: | 4/3-4/9 | Searching: Sequential and Binary Search; Searching Running Times | Lab 9 |
Programs 23-24, Quiz 9, Code Review 9 |
Textbook: Chapters 3 & 5 (Linear Data Structures & Searching and Sorting) |
Week 10: | 4/10-4/16 | Sorting: 2 Basic Sorts; Using Built-In Python Sort (timsort); Sorting Running Times | Lab 10 |
Programs 25-26, Quiz 10, Code Review 10 |
Textbook: Chapter 5 (Searching and Sorting) |
Week 11: | 4/17-4/21 | Tree ADT & Heaps | Lab 11 |
Programs 25-26, Quiz 11, Code Review 11 |
Textbook: Chapter 6 (Trees) |
4/22-4/30 | Spring Break: No Classes | ||||
Week 12: | 5/1-5/7 | Binary Search Trees & Graph ADT | Lab 12 |
Programs 27-28, Quiz 12, Code Review 12 |
Textbook: Chapter 7 (Graphs) |
Week 13: | 5/8-5/14 |
More on Graphs; Current Topics in Algorithms; Review |
Lab 13 |
Programs 29-30, Quiz 13, Code Review 13 |
Textbook: Chapter 7 (Graphs) |
Week 14: | 5/15 | Review (Mock Exam) | |||
Finals | 5/22, 9-11am | Final Exam |