Software Engineering
New York University
Department of Computer Science
Schedule
Intro
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
1/22 | 1 | Welcome | - Course intro - Syllabus - Discord for Education |
|||
1/24 | 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/29 | 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 |
---|---|---|---|---|---|---|
1/31 | 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 |
2/5 | 5 | User experience design & prototyping | - User experience design - Figma essentials - Example prototype |
- How to Wirefrane by Figma Marketing - Figma essentials |
Requirements engineering | |
2/7 | 6 | Project work | User experience design | |||
2/12 | 7 | Stakeholder demos | Project 1 |
Project 2
Build a mobile web application.
Date | Class | Topics | Notes | Helpful resources | Quiz due | Exercise due |
---|---|---|---|---|---|---|
2/14 | 8 | - Project 2 kick-off - Web architecture |
Web architecture | Video: Web architecture | Project 1 feedback | |
2/21 | 9 | MongoDB CRUD | MongoDB CRUD | Video: MongoDB | Web architecture | |
2/26 | 10 | Flask & pymongo | - Virtual environments - Flask & pymongo - Example web app |
Grinberg, Miguel: The Flask Mega-Tutorial | MongoDB CRUD | |
2/28 | 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/25 | 16 | Project work | Continuous integration | |||
3/27 | 17 | Stakeholder demos | Project 3 |
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 | n/a | no class (Prof out) | ||||
4/24 | 24 | Project work | ||||
4/29 | 25 | Release management | Release management | |||
5/1 | 26 | Final project presentations | Project presentations | - Release management - Project 5 feedback -Outtake questionnaire |
Project 5 No late work accepted beyond this date |
|
5/6 | n/a | 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 |