Software Engineering
New York University
Department of Computer Science
Schedule
Intro
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
9/3 | 1 | Welcome | - Course intro - Syllabus - Discord for Education |
Video tutorials: - How to start an assignment from GitHub - How to submit an assignment to GitHub |
||
9/8 | 2 | Software engineering overview | Software engineering overview | - Missed Expectations: Where CS Students Fall Short in the Software Industry - Advice for Computer Science College Students, from Joel on Software - Four Ways to Make CS & IT Curricula More Immersive, by Thomas A. Limoncelli |
Intake questionnaire | - Complete consent form - Join Discord - Create GitHub account - Join Figma |
9/10 | 3 | Version control | - Version control - Git & GitHub |
Atlassian git workflow comparison | Development processes |
Project 1
Gather requirements, draft a product specification for a mobile application, and build a clickable prototype.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
9/15 | 4 | - Project 1 kick-off - System specification |
- Requirements engineering - Domain modeling - UML diagrams |
- Google’s Markdown Style Guide - Video course: Requirements Elicitation & Analysis, on LinkedIn Learning |
Git & GitHub | - Git/GitHub configuration - Git workflow practice |
9/17 | 5 | User experience design & prototyping | - User experience design - Figma essentials - Example prototype |
How to Wireframe by Figma Marketing |
Requirements engineering | |
9/22 | 6 | Project work | User experience design | |||
9/24 | n/a | no class (Professor out) | ||||
9/29 | 7 | Project presentations | Guide to presentations | Project 1 |
Project 2
Build a mobile web application.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
10/1 | 8 | - Project 2 kick-off - Web architecture |
- Web architecture - Coding conventions |
Project 1 feedback | ||
10/6 | 9 | MongoDB CRUD | MongoDB CRUD | Web architecture | ||
10/8 | n/a | no class (Professor out) | ||||
10/13 | n/a | no class (Fall break) | ||||
10/14 | 10 | Flask & pymongo | - Virtual environments - Flask & pymongo - Example web app |
- Video: Setup VSCode for Python - Video: Modify & Run Python in VSCode - Grinberg, Miguel: The Flask Mega-Tutorial |
MongoDB CRUD | |
10/15 | 11 | Project work | Flask & pymongo | |||
10/20 | 12 | Project presentations | Project 2 |
Project 3
Build and test with continuous integration.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
10/22 | 13 | - Project 3 kick-off - System building |
- System building - Example Python package |
-How to Publish an Open Source Python Package to PyPI - Python Packaging User Guide |
Project 2 feedback | |
10/27 | 14 | Software testing | - Software testing - Unit testing |
Effective Python Testing With Pytest | System building | |
10/29 | 15 | Continuous integration | Continuous integration | Software testing | ||
11/3 | 16 | Project work | Continuous integration | |||
11/5 | 17 | Project presentations | Project 3 |
Project 4
Containerized apps composed of multiple internetworked subsystems.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
11/10 | 18 | - Project 4 kick-off - Virtualization & containers |
Virtualization & containers | - Docker Tutorial for Beginners, by Programming with Mosh - Play with Docker - Access camera and microphone from web browser: this |
Project 3 feedback | -Join Docker Hub (Free plan) - Install Docker Desktop |
11/12 | 19 | Container orchestration | - Docker Compose Tutorial, by Programming with Mosh | |||
11/17 | 20 | Project work | Virtualization & containers | |||
11/19 | 21 | Project presentations | Project 4 |
Project 5
Putting it all together.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
11/24 | 22 | Project 5 kick-off | Project 4 feedback | |||
11/26 | n/a | no class (Legislative day) | ||||
12/1 | 23 | Deployment | Deployment | Digital Ocean referral link | ||
12/3 | 24 | Project work | ||||
12/8 | 25 | Release management | Release management | |||
12/10 | 26 | Project presentations | - Release management Due after all presentations: - Project 5 feedback - Outtake questionnaire (submit once all presentations are complete) |
Project 5 No late work accepted beyond this date |
||
TBD | 27 | Project presentations |
Addenda
Material that is not currently included in the course, but may be of interest to some:
Date | Class | Topics | Notes | Helpful resources | Quiz | Exercise due |
---|---|---|---|---|---|---|
n/a | n/a | GitHub for Collaboration | GitHub for Collaboration | GitHub for Collaboration | ||
n/a | n/a | Team Psychology | Team Psychology | Teamwork | ||
n/a | n/a | Bash scripting | Bash scripting | Bash scripting | ||
n/a | n/a | Design patterns | Design patterns | Design patterns | ||
n/a | n/a | Change management | Change management |