Credits: 3-0-3-12
Prerequisites: ESC 111/112, ESO 207.
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
The students will be exposed to the following topics:
The course will consist of 3 hours of lectures per week, projects and homework, and a course project.
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.