CSC 510 introduces students to the discipline of developing useful and high-quality software-based systems. Students will be exposed to the techniques needed for the practice of effective software engineering as well as the skills required to succeed as a software professional.
See the Syllabus for details on classroom policies and evaluation.
By the end of the course, you should be able to accomplish the following objectives:
- Implement software engineering practices in a team project.
- Identify practices related to software process.
- Decide how to test a system and measure coverage.
- Compare and contrast design techniques and architectural patterns.
- Measure the quality of software code.
- Build tools for supporting software engineering tasks.
- Evaluate evidence related to a software practice.
- Identify configuration management practices for improving maintanance of software
- Apply deployment practices and patterns.
Students are expected to gain practical exposure to tools, processes, and principles of software engineering through hands-on projects while understanding models and research ideas behind the tools and processes. Lectures will include workshop style learning experiences, where students get to work on a problemset and receive feedback from the instructor and other classmates.
TA | UnityId | Office Hours |
---|---|---|
Fahmid Morshed Fahid | ffahid | Mon, 12:00 am - 1:00 pm, EB2 1229B |
Yang Shi | yshi26 | Wed, 9:00 am - 10:00 am, EB2 1229B |
The following schedule is subject to change.
Class | Topics | Resources | Assignments |
---|---|---|---|
🥾 Bootcamp 🥾 | |||
Aug 21 | Engineering Basics I | Course prereqs and setup | HW0 |
Aug 26 | Engineering Basics II | ||
Aug 28 | Git Internals - Dr. Derrick Stolee | ||
Sept 2 | Labor Day | ||
Sept 4 | REST apis | HW1 | |
🎨 Design 🏛️ | |||
Sept 9 | Bots | Design: Milestone | |
Sept 11 | Mattermost Weather Bot | ||
Sept 16 | Design and UX Methods | ||
Sept 18 | Software Design | ||
🚧 Code 🚧 | |||
Sept 23 | Design draft review | ||
Sept 25 | Architecture | ||
Sept 30 | Software Metrics and Refactoring | ||
Oct 2 | Complexity workshop | HW2 | |
🧪 Test ✅ | |||
Oct 7 | Introduction to Testing | Bot: Milestone | |
Oct 9 | Integration testing + Web Automation; Web Basics | ||
Oct 14 | Project Workday | ||
Oct 16 | Unit Testing/Mocking services | ||
🧷 Process 🧯 | |||
Oct 21 | Software processes | Process: Milestone | |
Oct 23 | Sprint planning workshop | ||
Oct 28 | Project Workday | ||
Oct 30 | Whitebox testing (makeup) | ||
🚀 Deploy 📤 | |||
Nov 4 | Project Workday | ||
Nov 6 | Continuous Integration | HW3 | |
Nov 11 | Ansible workshop | ||
Nov 13 | Configuration Management | Deploy: Milestone | |
☢️ Industry ☢️ | |||
Nov 18 | Interviews | HW4 | |
Nov 20 | Interviews workshop | ||
Nov 25 | Productivity | ||
Nov 27 | No class | ||
🎬 Demo 💯 | |||
Dec 2 | Demo | REPORT | |
Dec 4 | Demo | ||
Dec 16 | Final Exam (8:00 am -- 11:00 am) |