CS 362 – Software Engineering II
Spring 2023
- Wed., 11:05am–12:30pm — KEC 1109
- Thurs., 2:30–4:00pm — Zoom Join
- CS 362 grading demo appointments – use this page to sign up for grading demos for all assignments
- CS 362 on Canvas
- CS 362 on Zoom – all in-person lectures will be broadcast in this Zoom meeting
- CS 362 on Ed – we will use Ed for course Q & A – you should be automatically enrolled if you're enrolled for this course
- CS 362 on GitHub – find all lecture code repos and your own private assignment repos here
- Establishing a positive classroom community – please read this statement, and let's work to make this a great learning environment for everyone
Assignments
Programming assignments will be managed via GitHub Classroom. Following the links below will prompt you to sign in to GitHub and to create an assignment repository for yourself. The assignment repository will at a minimum contain a README.md
file containing the assignment description. There may also be additional skeleton files in the repository to help you get started with the assignment. To submit an assignment, make sure you have committed your solution code and pushed it to your GitHub repository before the assignment deadline.
Assignment 1 – Using Git and GitHub
Due: Monday, 4/17/2023, 11:59pm
- Grading demo due by 11:59pm on Monday, 5/1/2023
- Sign up for a grading demo here
Assignment 2 – Unit Testing and TDD
Due: Monday, 5/1/2023, 11:59pm
- Grading demo due by 11:59pm on Monday, 5/15/2023
- Sign up for a grading demo here
Assignment 3 – Ingegration tests for UI-based apps
Due: Monday, 5/15/2023, 11:59pm
- Grading demo due by 11:59pm on Monday, 5/29/2023
- Sign up for a grading demo here
Assignment 4 – End-to-end tests for a complete application
Due: Tuesday, 5/30/2023, 11:59pm
- Grading demo due by 11:59pm on Friday, 6/16/2023
- Sign up for a grading demo here
Final Project
For the final project in this course, you will work in teams to write tests for an application and set up a CI/CD pipeline to automatically test and deploy that application. The project will have three deliverables: a document where you simply form your team; the code implementing your tests and CI/CD pipeline; and a brief evaluation of your project team. Links will be released below where you can find out more about each of these deliverables.
Deliverable #1: Final Project Team Formation
Due: Monday, 5/22/2023, 11:59pm — on Canvas
- Use this Ed thread to help connect with potential teammates.
- Submit this form if you just want to be assigned to a random team.
Deliverable #2: Code
Due: during finals week, at the time of your grading demo
- Use the link above to create a repo on GitHub for your team to use for the final project.
Deliverable #3: Final Project Team Evaluation
Due: Friday, 6/16/2023, 5:00pm — on Canvas
- Note that this must be completed individually by every member of your team.
Final Project Demo Signup
- Sign up for a final project demo appointment using the link above.
- Sign up for one demo appointment per team.
- All team members must attend your demo unless prior arrangements have been made with Hess.
- Code is due on GitHub at the time of your demo.
- Come to the demo prepared to run your project from one of your team's computers.
- Final project demos will be held in person in Hess's office (KEC 1109).
- Remote attendance at a final project demo is possible by request only. If you'd like to attend your demo remotely via Zoom, please ask at least 24 hours in advance.
Course Topics
(click titles to expand/collapse)
Week 10
Materials
- Lecture notes
- Example code – code written during lecture
Readings
- Continuous Integration – Rachel Tannenbaum (Chapter 23 of Software Engineering at Google)
- Continuous Integration – Martin Fowler
- Continuous Delivery – Radha Narayan, Bobbi Jones, Sheri Shipe, and David Owens (Chapter 24 of Software Engineering at Google)
- Continuous Delivery – Martin Fowler
- Understanding GitHub Actions – GitHub Docs
- Storing workflow data as artifacts – GitHub Docs
- Reusing workflows – GitHub Docs