Skip to content

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

Notifications You must be signed in to change notification settings

CS3704-VT/Course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 

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 and GitHub for submitting coursework and other class assignments.

Learning Objectives

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

  • Understand software engineering processes, methods, and tools used in the software development life cycle (SDLC)
  • Use techniques and processes to create and analyze requirements for an application
  • Use techniques and processes to design a software system
  • Identify processes, methods, and tools related to phases of the SDLC
  • Explain the differences between software engineering processes
  • Discuss research questions and current topics related to software engineering
  • Create and communicate about the requirements and design of a software application

Fall 2025 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 26 Introduction / Software Development Lifecycle HW0 (due 9/5); PM0 (due 9/12)
Aug 28 Software Engineering Processes
📜     Requirements     📖
Sept 2 Software Requirements Overview
Sept 4 Requirements Analysis and Specification
Sept 9 Project Management HW1 (due 9/19)
Sept 11 Project Workday
🎨     Design     🖌️
Sept 16 Software Design Principles PM1 (due 9/26)
Sept 18 Software Architecture
Sept 23 Low-Level Design HW2 (due 10/3)
Sept 25 UI Design
Sept 30 Project Workday (dcbrown travel) PM2 (due 10/14; 10/17)
Oct 2 [Guest Lecture] (dcbrown travel)
Oct 7 Exam Review (dcbrown travel)
Oct 9 💯 Exam 💯 (dcbrown travel)
Oct 14 ⚡ Talks HW3 (due 10/24)
Oct 16 ⚡ Talks
⌨️     SE Fundamentals     📝
Oct 21 Code Quality PM3 (due 10/31); HW4 (due 11/7)
Oct 23 [Guest Lecture]
Oct 28 Version Control
Oct 30 AI Writing Code
🧹     Maintenance and Testing     🧪
Nov 4 Maintenance PM4 (due 11/14); HW5 (due 11/21)
Nov 6 Testing
Nov 11 [Guest Lecture]
Nov 13 Project Workday
🚀     Deployment     💻
Nov 18 CI/CD and Deployment PM5 (due 12/5); HW6 (due 12/5)
Nov 20 [Guest Lecture]
Thanksgiving Break
Nov 25 🦃 THANKSGIVING BREAK, NO CLASS 🙏🏿
Nov 27 🦃 THANKSGIVING BREAK, NO CLASS 🙏🏿
👀     Emerging Topics     🔍
Dec 2 Advanced Topic
Dec 4 Advanced Topic
Dec 6 Retrospective / Project Workday PM6 (12/9; 12/17)
💯     Final Exam     💯
Dec 9 Project Demos
Dec 17 Project Demos and Final Exam

About

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

Resources

Stars

Watchers

Forks

Packages

No packages published