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