CS305: Software Engineering
Autumn 2020 (off-campus based instruction)
Live / Online sessions only - Tuesdays (10:30AM - 11:15AM), Wednesdays (8:30AM to 9:15AM), and Fridays (9:30AM to 10:15AM)
About the Course
Description:
This course focuses on the principles of Software Engineering. The objective of this course is to enable participants to take a systematic approach towards software development.
Topics include:
- Part I: Introduction to SDLC and Requirements Engineering
- Processes, Phases of Software Development, Models, Requirement Analysis and Methods, Agile Methodology
- Part II: Software Engineering Design, Architecture, and Testing
- OO Modeling, Metrics, Refactoring, Testing Methodology, Implementation / Coding, Design Patterns
- Part III: Software Project Management Principles
- Staffing, Risk Management, Scheduling, Effort Estimation, Quality standards (TQM, CMM, ISO), Continuous Integration, Continuous Deployment (CI/CD)
Details:
The course syllabus discusses most of the details of the course, including a tentative schedule of topics, exam dates, and other administrative information. Announcements, assignment links, and discussion will be posted on Piazza. If you have a question about a concept covered in lecture or about a detail of an assignment, check Piazza first!
Instructor:
Nikhil Hegde
nikhilh 'at' iitdh 'dot' ac 'dot' in
Office hour (doubt clearing session): On demand online sessions based on the availability of student(s) and the instructor
Lecture Schedule and Notes
The slides for Parts 1 and 2 are based on Prof. Orso's video lectures in Udacity.
- Week 1 (2/9, 4/9): Syllabus, Course Overview, Introduction to SDLC Slides
- Week 2 (8/9, 9/9, 11/9): Git Overview, Requirements Gathering Slides
- Week 3 (15/9, 16/9, 18/9): Requirements gathering techniques, OO Analysis and Modeling Slides
- Week 4 (23/9, 24/9, 25/9): UML Behavioral Diagrams, System Testing Slides
- Week 5 (29/9, 30/9): Software Design - overview, Architectural Design Slides
- Week 6 (6/10, 7/10, 9/10): Software Design - detailed design, Class diagram review, pattern based design Slides, CodeSamples
- Week 7 (13/10, 14/10, 16/10): pattern based design, design principles, Unified Software Process and RUP Slides, CodeSamples
- Mid Sem Exam Week. No Classes
- Week 9 (27/10, 28/10): RUP contd., Software Construction - Inspection Slides
- Week 10: Software Construction (3/11, 4/11, 6/11) - Coding, Refactoring, Unit testing Slides
- Week 11 (10/11, 11/11, 13/11): Student team presentation - YouTube API, Android SDK, Facebook API, REST API, Google Docs API, Google Maps API
- Week 12 (17/11, 18/11, 20/11): Student team presentation (contd.) - Dart, Google Web Toolkit. Demo (on 18th and 20th)
- Week 13 (24/11, 25/11, 27/11): Software verification - code coverage, CI/CD Slides, YAML file used for the CI demo
- Week 14 (1/12, 2/12, No class): Software Quality and Project Management Slides
- Week 15 (8/12, 9/12): Agile Methodology Slides, Software Engineering for Machine Learning paper
Homework Assignments and Exams
All homework assignments are due at 11:59PM unless otherwise announced. Assignment and exam details will be posted during the semester.
- Homework assignment 0: Git Setup and Software Requirements Specification PA0, Due 16/9/2020.
- Homework assignment 1: SRS and Functional Testing - Test Driven Development PA1, Due 14/10/2020.
- Mid sem exam: SDLC overview, processes, design, and functional testing Mid Sem Exam, Due 23/10/2020, 5PM. One of the C++ solutions to Q4.
- Homework assignment 2: Technology presentation and demo PA2, Due 10/11/2020.
- Mini-Project: Online Learning - Web Application Mini-Project, Due 9/12/2020, extended: 23/12/2020.
- Sprint Daily-Scrums (standup meets), Review and Retorspection done on 21/12, 22/12, 23/12.
- Homework assignment 3: Pen your thoughts upon reading the paper "No Silver Bullet.." HA3, Due 29/11/2020.
- Homework assignment 4: Setting up CI Workflow using GitHub Actions HA4, Due 9/12/2020.
- Make-up assignment: GitHub Issues and Technology Overview Make-Up, Due 9/12/2020.
- End sem exam: Open-Source Contribution, Tools and Frameworks End-Sem, Due 19/12/2020, extended: 20/12/2020
View Scores