Skip to content

Latest commit

 

History

153 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CS-3704: Intermediate Software Design and Engineering

Course Description

Software engineering involves the development and maintenance of complex software systems. In this course, students will learn about tools and processes used to implement software in practice, focusing on the requirements and design phases of the software development life cycle. Students will also have an opportunity to work on a project incorporating software development tasks, discuss state-of-the-art SE research, and gain the skills and knowledge necessary to succeed as a software engineer in industry. The course will consist of traditional lectures, practical workshops to gain exposure to SE tools and principles, and seminar-style discussions about advanced research topics in software engineering.

Please see the Course Syllabus for additional information about course logistics and policies. We will also use Canvas for submitting coursework and class assignments.

Learning Objectives

By the end of this course, students should be able to:

  • Compare different software engineering processes and explain when to use them;
  • Gather, analyze, and specify software requirements for an application;
  • Design a software system and user interface that meets requirements;
  • Understand common software engineering tools and practices to maintain, develop, and verify software;
  • Discuss current and emerging trends in software engineering;
  • Use AI tools to generate code, unit tests, and test suites; evaluate the quality and accuracy of AI-generated artifacts; and refine outputs to meet functional, performance, and quality requirements; and
  • Create and communicate (via demo and writing) about the requirements and design of a software application.

Fall 2026 Course Info

Schedule

➡️ Please note this schedule is subject to change. All homework (HW) and project milestone (PM) assignments are due at 11:59pm unless otherwise specified.

Date Topic Assignments
👨‍💻     Intro to Software Engineering     👩‍💻
Aug 25 Introduction + Human Aspects of SE + Software Development Lifecycle
Aug 27 SE Processes + Project Management
Sept 1 Project Workday
Sept 3 [Workshop] SE Basics PM1.0, HW0 due 9/4
📜     Requirements     📖
Sept 8 Requirements Elicitation
Sept 10 Requirements Analysis and Specification HW1 due 9/11
🎨     Design     🖌️
Sept 15 Software Design and Architecture PM1.1 due 9/16
Sept 17 UI Design
💯     Midterm     🎬
Sept 22 Project Workday
Sept 24 Project 1 Demos PM1.2 due 9/25
Sept 29 [Workshop] Exam Review (dcbrown travel)
Oct 1 Exam (dcbrown travel)
⌨️     Implementation and Maintenance     🧹
Oct 6 [Guest Lecture] Greg Wilson HW2 due 10/7
Oct 8 Project Workday PM2.0 due 10/9
Oct 13 Implementation and Maintenance
Oct 15 [Guest Lecture] Matt McHugh
Oct 20 [Workshop] AI Writing Code
Oct 22 [Guest Lecture] Ben Nelson PM2.1 due 10/23
🧪     Testing and Deployment     🚀
Oct 27 [Workshop] Code Quality and Analysis
Oct 29 Testing HW3 due 10/30
Nov 3 CI/CD and Deployment
Nov 5 [Guest Lecture] Mike Irwin PM2.2 due 11/6
Nov 10 [Workshop] Testing and Debugging
🔍     Advanced Topics     👀
Nov 12 [Guest Lecture] Bilal Aziz
Nov 17 [Guest Lecture] David Bates
Nov 19 Evidence-Based Software Engineering PM2.3 due 11/20
Thanksgiving Break
Nov 24 🦃 THANKSGIVING BREAK, NO CLASS 🙏🏿
Nov 26 🦃 THANKSGIVING BREAK, NO CLASS 🙏🏿
👀     Emerging Topics     🔍
Dec 1 Advanced Topic
Dec 3 Advanced Topic HW4 due 12/4
💯     Final Exam     🏁
Dec 8 Retrospective / Project Workday PM2.4 due 12/9
Dec 14 Final Exam / Project Demos PM2.5 due 12/14

About

Repository for the CS3704 (Intermediate Software Design and Engineering) course taught by Dr. Chris Brown at Virginia Tech.

Resources

Stars

11 stars

Watchers

3 watching

Forks

Releases

Packages

Contributors