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.
The following schedule is subject to change.
Class | Topics | Resources | Assignments |
---|---|---|---|
Aug 18 | Agile Processes | HW0 | |
Aug 23 | Bootcamp: Basics | ||
Aug 25 | Bootcamp: REST | HW1 | |
Aug 30 | Bots | ||
Sep 1 | Workshop: Slack bot | ||
Sep 6 | Design | MILESTONE: DESIGN | |
Sep 8 | Workshop: Design roundtables | ||
Sep 13 | Architecture Patterns | ||
Sep 15 | Patterns, APIs, Frameworks | HW2 | |
Sep 20 | Web Basics | ||
Sep 22 | Workshop: Selenium Testing | MILESTONE: BOT | |
Sep 27 | Testing | ||
Sep 29 | Workshop: Unit Tests + Mocking | HW3 | |
Oct 4 | No class | ||
Oct 6 | Fall Break | ||
Oct 11 | Program Analysis, Metrics | ||
Oct 13 | Workshop: Complexity | HW4 | |
Oct 18 | Empirical Software Engineering | ||
Oct 20 | Workshop: Data Analysis | MILESTONE: SERVICE | |
Oct 25 | Interviews | ||
Oct 27 | Workshop: Mock Interviews | ||
Nov 1 | Configuration Management | ||
Nov 3 | Workshop: Ansible, Vagrant | HW5 | |
Nov 8 | Continuous Deployment | ||
Nov 10 | Microservices + Infrastructure | MILESTONE: DEPLOY | |
Nov 15 | TBD/Guest | ||
Nov 17 | TBD/Guest | ||
Nov 22 | Workshop: Docker | ||
Nov 24 | Thanksgiving | ||
Nov 29 | Productivity (PSP+SSP) | MILESTONE: REPORT | |
Dec 1 | Demos | ||
Dec 6 | Exam (8:00AM--10:00AM) |