CS 2100: Program Design and Implementation I
Builds on prior introductory programming experience (from inside or outside Northeastern University) to examine the fundamentals of program design and implementation. Studies design of data- and object-oriented programs including common patterns; use of data structures; and underlying principles such as abstraction, encapsulation, inheritance, and interfaces. Introduces common software engineering practices such as unit tests, version control, development environments, and good programming habits. Students practice using these design principles by writing medium-sized applications and using data science libraries. Covers skills needed to identify and respond to ethical challenges that arise in the program design process.
Draft Content
This content is a work in progress.
Schedule
| Week | Monday | Tuesday | Wednesday | Thursday |
|---|---|---|---|---|
| 1 | Jan 5(No class) | Jan 6(No class) | Jan 7 | Jan 8 |
| 2 | Jan 12 | Jan 13 🔬 Due: Lab 0: Setup This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Jan 14 | Jan 15 |
| 3 | Jan 19(No class) | Jan 20 🔬 Due: Lab 1: HW1 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. Last day of add/drop period: January 20, 2026 | Jan 21 📚 Due: HW1: Algorithms as Decision Makers This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Jan 22 |
| 4 | Jan 26 | Jan 27 👥 Due: Codewalk 1: HW1 | Jan 28 | Jan 29 |
| 5 | Feb 2 | Feb 3 🔬 Due: Lab 2: HW2 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Feb 4 📚 Due: HW2: 311 Service Request Data Loader This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Feb 5 |
| 6 | Feb 9 | Feb 10 | Feb 11 | Feb 12 |
| 7 | Feb 16(No class) | Feb 17 🔬 Due: Lab 3: HW3 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Feb 18 📚 Due: HW3: 311 Service Request Sorting and Analysis This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Feb 19 |
| 8 | Feb 23 | Feb 24 🔬 Due: Lab 4: HW4 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Feb 25 📚 Due: HW4: News API This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Feb 26 👥 Due: Codewalk 2: HW2 or HW3 |
| 9 | Mar 2(No class) | Mar 3(No class) | Mar 4(No class) | Mar 5(No class) |
| 10 | Mar 9 | Mar 10 | Mar 11 | Mar 12 |
| 11 | Mar 16 | Mar 17 🔬 Due: Lab 5: HW5 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Mar 18 📚 Due: HW5: Fingerprint login This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Mar 19 |
| 12 | Mar 23 | Mar 24 🔬 Due: Lab 6: HW6 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Mar 25 📚 Due: HW6: FeedCurator This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Mar 26 |
| 13 | Mar 30 | Mar 31 🔬 Due: Lab 7: HW7 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Apr 1 📚 Due: HW7: Wikipedia Parser This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Apr 2 |
| 14 | Apr 6 | Apr 7 👥 Due: Codewalk 3: HW4, HW5, HW6, or HW7 | Apr 8 | Apr 9 |
| 15 | Apr 13 Lecture 37: Coding with AI
| Apr 14 🔬 Due: Lab 8: HW8 Prep and Ethics This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Apr 15 📚 Due: HW8: Public Transportation Map This repository is for viewing only. Do not work on the assignment using this repository -- the actual course assignments will be provided to you via Pawtograder. | Apr 16 |
| 16 | Final Exam (date/time TBD) | |||
Lectures
Topics
Topics
Topics
Topics
Topics
Topics
- Brief intro to generative AI
- Where do programmers code with AI?
- Common concerns
- Each task in the PDI process can use AI in some way:
- Research shows this is the standard workflow with AI that software developers are trending towards:
- Why we discourage vibe coding in the PDI sequence:
- Common uses for the web interface
- Common uses for Cursor / Windsurf / Github Copilot IDE plugin
- Common uses for Claude Code in the terminal
Topics