Software Engineering
New York University
Department of Computer Science
Schedule
Intro
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
9/4 | 1 | Welcome | - Course intro - Syllabus - Discord for Education |
|||
9/9 | 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 |
9/11 | 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/16 | 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/18 | 5 | User experience design & prototyping | - User experience design - Figma essentials - Example prototype |
How to Wireframe by Figma Marketing |
Requirements engineering | |
9/23 | 6 | Project work | User experience design | |||
9/25 | 7 | Stakeholder demos | Project 1 |
Project 2
Build a mobile web application.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
9/30 | 8 | - Project 2 kick-off - Web architecture |
Web architecture | Project 1 feedback | ||
10/2 | n/a | no class (Prof out) | ||||
10/7 | 9 | MongoDB CRUD | MongoDB CRUD | Web architecture | ||
10/9 | 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/14 | n/a | no class (Columbus Day / Indigenous Peoples Day) | ||||
10/15 | 11 | Project work | Flask & pymongo | |||
10/16 | 12 | Stakeholder demos | Project 2 |
Project 3
Build and test with continuous integration.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
10/21 | 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/23 | 14 | Software testing | - Software testing - Unit testing |
Effective Python Testing With Pytest | System building | |
10/28 | 15 | Continuous integration | Continuous integration | Software testing | ||
10/30 | 16 | Project work | Continuous integration | |||
11/4 | 17 | Stakeholder demos | Project 3 |
Project 4
Containerized apps composed of multiple internetworked subsystems.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
11/6 | 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 - Access camera from Docker container: this, this and this - Access microphone from Docker container: this |
Project 3 feedback | |
11/11 | 19 | Container orchestration | - Docker Compose Tutorial, by Programming with Mosh | |||
11/13 | 20 | Project work | Virtualization & containers | |||
11/18 | 21 | Stakeholder demos | Project 4 |
Project 5
Putting it all together.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
11/20 | 22 | Project 5 kick-off | Project 4 feedback | |||
11/25 | 23 | Deployment | Deployment | Digital Ocean referral link | ||
11/27 | n/a | no class (Prof out) | ||||
12/2 | 24 | Project work | ||||
12/4 | 25 | Release management | Release management | |||
12/9 | 26 | Final project presentations | Project presentations | - Release management Due after presentations: - Project 5 feedback -Outtake questionnaire |
Project 5 No late work accepted beyond this date |
|
12/16 @4-5:50PM | 27 | Final 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 |