Software Engineering
How real software is planned, built and maintained by teams — requirements, design, version control, testing, delivery.
§ 1Calendar
- Quiz 1—
- Quiz 2—
- End-term examination—
§ 2Previous Year Questions
No papers uploaded yet.
§ 3Resources
Course material2
-
Drive folder
drive.google.comIITM login required
-
Course YouTube channel
youtube.com
Notes2
-
Course notes
Notes and study material for this course.
iitmbsdegree.inby IITM BS Students' Corner -
Degree level notes on Medium
Notes for several degree courses collected on one page. Look for this course's section.
medium.comby Pratham Bhalla
Syllabus
The official course syllabus, transcribed from the IITM BS Data Science & Applications course booklet.
§ 1Course Description
This course develops essential software engineering skills by introducing fundamental concepts and practices, including requirements gathering, conceptual design, software comprehension, debugging, testing, and deployment.
In-course project: The in-course project is integrated into the course and not offered separately. Students work in teams that simulate real-world IT environments, addressing client requirements (typically set by a TA or instructor) and following industry-standard software development practices. The final product is presented before a panel that includes TAs and instructors. An example of a previous project : AI Agent for Academic Guidance
Lectures-Tutorials-Practicals-Credits: 4-0-0-4
§ 2Faculty
- Prof. Sridhar Iyer, Interdisciplinary Program in Educational Technology, IIT Bombay
- Dr. Prajish Prasad, Department of Computer Science, FLAME University
§ 3Week-by-week
Week 1: Software development lifecycle - requirements, design, testing; Models (Waterfall, Agile); Components; Project context.
Week 2: Requirements engineering - gathering, SRS; Functional/non-functional requirements; User stories.
Week 3: UI/UX design - interaction, usability; Prototyping; Heuristic evaluation.
Week 4: Project management - estimation, scheduling, risk; Agile; Tools.
Week 5: Software design - modularity, OOP; UML; Design tools.
Week 6: Development practices - APIs, version control; Code quality (debugging, metrics, clean code); Collaboration.
Week 7: Software architecture; SOLID principles; Design patterns (creational, structural).
Week 8: Software testing - unit, integration, system; Black-box/white-box; TDD.
Week 9: Deployment environments and strategies; Hosting platforms (IaaS, PaaS); Continuous integration; Performance monitoring.
Week 10: Software organizations; Collaboration and productivity; Software engineering skills.