Course Aim: Introduce the students to the basic and essential principles of program/code design and analysis. Students learn skills, tools, and theory related to becoming a good software developer.
Main Topics: The software engineering process: overview of software engineering and different software process models - design basics - Architectural and Design patterns - testing basics - UML basics - Software development tools: Makefiles, debuggers, version control software - good coding practices including design patterns - documentation skills - writing correct loops - good program organization - naming conventions - group work skills -project skills - professional conduct - using writing for design and technical communication to different audiences.