Metadata
Title
CSE
Category
undergraduate
UUID
08133eb3418d40518ed4e1ed7ffb7eae
Source URL
https://cse.iitk.ac.in/pages/CS253.html
Parent URL
https://cse.iitk.ac.in/pages/Courses.html
Crawl Time
2026-03-18T08:20:58+00:00
Rendered Raw Markdown
# CSE

**Source**: https://cse.iitk.ac.in/pages/CS253.html
**Parent**: https://cse.iitk.ac.in/pages/Courses.html

#### CS 253: Software Development and Operations

###### **Credits: 3-0-3-12**

###### **Instructor:**

Dr. Sandeep K. Shukla / Dr. T. V. Prabhakar /Dr. Indranil Saha/Dr. Biswabandan Panda/Dr. Debadatta Mishra/Dr. Preeti Malakar/Dr. Amey Karkare

###### Major, Measurable Learning Objectives

Having successfully completed this course, the student will be able to:

- Learn how to develop large scale software from scratch
- Develop a full-fledged software development environment with knowledge of utilities such as shell scripting make file creation, regular expression tools, and other development tools such as autoconfiguration tools
- Develop testing harnesses and testing techniques including unit testing, integration testing, and system level testing
- Develop deployment environments, and software maintenance tools, and updating tools
- Practice defensive and secure programming with awareness of various vulnerabilities at the code level, software design level, architecture level
- Use software libraries in large scale software development - networking libraries, data base connectivity libraries, and GUI libraries etc.
- Develop software design documents and test documents

###### Prerequisites and Co-requisites: ESC 101, ESO 207

###### Texts and Special Teaching Aids

Course notes, lecture slides, man pages, and other documentations will be provided to students by the instructor. Self-study would be an important component of this course.

###### Syllabus

The students will be exposed to the following topics:

1. Regular Expression Tools (e.g Awk)
2. Lex and Yacc
3. Bash Scripting
4. Basic Perl, Python or Ruby Scripting
5. Make File Details and Autoconfiguration tools, gdb
6. Object Oriented Programming (C++ or Java)
7. Unit Testing Tools and Techniques
8. Integration and System Level Testing Techniques
9. Software Requirements Analysis, Requirements Generation, Documentation
10. Software Architecture, Functional, Performance and Security Specification
11. Software Design with Object Oriented Design Techniques, Design Documentation
12. Implementation techniques with defensive programming and secure programming techniques
13. Unit testing
14. Development and Integration and System Testing, Test Automation
15. Deployment Issues and Maintenance issues
16. Software Quality Metrics and measurements

The course will consist of 3 hours of lectures per week, projects and homework, and a course project.