Software Engineering
New York University
Department of Computer Science
Schedule
Intro
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
9/6 | 1 | Welcome | Course intro | Syllabus | ||
9/11 | 2 | Software engineering overview | - Discord for Education - 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/13 | 3 | Version control | - Version control - Git & GitHub |
- Video: Version control - 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/18 | 4 | - Project 1 kick-off - System specification |
- Requirements engineering - Domain modeling - UML diagrams |
Video course: Requirements Elicitation & Analysis, on LinkedIn Learning | Git & GitHub | Git workflow practice |
9/20 | 5 | User experience design & prototyping | - User experience design - Figma essentials - Example prototype |
- How to Wirefrane by Figma Marketing - Figma essentials |
Requirements engineering | |
9/25 | n/a | no class (Yom Kippur) | ||||
9/27 | 6 | Project work | User experience design | |||
10/2 | 7 | Stakeholder demos | Project 1 |
Project 2
Build a mobile web application.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
10/4 | 8 | - Project 2 kick-off - Web architecture |
Web architecture | Video: Web architecture | ||
10/9 | n/a | no class (Fall Break) | ||||
10/10 | 9 | MongoDB CRUD | MongoDB CRUD | Video: MongoDB | Web architecture | |
10/11 | 10 | Flask & pymongo | - Virtual environments - Flask & pymongo - Example web app |
Grinberg, Miguel: The Flask Mega-Tutorial | MongoDB CRUD | |
10/16 | 11 | Project work | Flask & pymongo | |||
10/18 | n/a | no class (Prof. out) | ||||
10/23 | 12 | Stakeholder demos | Project 2 |
Project 3
Build and test with continuous integration.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
10/25 | 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 |
||
10/30 | 14 | Software testing | - Software testing - Unit testing |
Effective Python Testing With Pytest | System building | |
11/1 | 15 | Continuous integration | Continuous integration | Software testing | ||
11/6 | 16 | Project work | Continuous integration | |||
11/8 | 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/13 | 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 |
||
11/15 | 19 | Container orchestration | - Docker Compose Tutorial, by Programming with Mosh | |||
11/20 | 20 | Project work | Virtualization & containers | |||
11/22 | no class | |||||
11/27 | 21 | Stakeholder demos | Project 4 |
Project 5
Putting it all together.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
11/29 | 22 | Project 5 kick-off | ||||
12/4 | 23 | Deployment | Deployment | Digital Ocean referral link | ||
12/6 | 24 | Project work | ||||
12/11 | 25 | Release management | Release management | |||
12/13 | 26 | Project work | Release management | |||
12/19 @14:00 - 15:50 | 27 | Final project presentations | Project presentations | Project 5 No late work accepted beyond this date |
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 |