Only being able to program does not make one a good programmer. This course teaches principles and tools that can make a good software developer. Students will learn basic principles of software development, e.g., encapsulation, information hiding, modularisation, unit/integrated testing, debugging, programming in a team, profiling. They will also learn tools that will help automate these tasks, e.g., Make, version control systems (git), shell scripting, UNIX programming.
On successful completion of the course a student should be able to understand basic principles and tools for software development and apply them for their future projects at Yale‐NUS and beyond.
Pre-requisite(s): YCC2133 Integrated Science (Computer Track) or YSC1202 Introduction to Computational Thinking and Programming for All or permission of instructor