Course CSE316
Title Fundamentals of Software Development
Credits 3
Course Coordinator

C. R. Ramakrishnan


Introduction to systematic design, development and testing of software systems, including event-driven and Web programming, information management, databases, principles and practices for secure computing, and version control. Students apply these skills in the construction of large, robust programs.

Bulletin Link


C or higher in CSE 216 or CSE 260; CSE major

Course Outcomes
  • An ability to use event-driven programming in the construction of Web software.
  • An ability to create a logical database design and implement it as a physical schema for a software application.
  • An ability to apply algorithmic and software design/development principles to build large programs.
  • An ability to design and implement a software testing plan.
  • An ability to apply security principles to develop robust programs.

Major Topics Covered in Course
  • Event-driven programming, including the use of front-end Web frameworks
  • Information management, including database CRUD operations and transactions
  • Software design principles, techniques and patterns
  • Continuous integration / continuous development
  • Fundamentals of secure, distributed computing

Laboratory Projects
Course Webpage