||The purpose of this graduate level course is to cultivate the ability of students to develop software applications to solve engineering/research related problems. Throughout this course, students will be encouraged to think independently, to acquire new knowledge actively, and to keep up with the ever more sophisticated and complex programming tools. The course material includes the following aspects: reviewing of basic programming skills, studying of advanced programming concepts, examining of OO techniques, introducing of CMMI and version control systems, and researching of shell/scripting languages. Students are required to complete programming projects in groups. If situation/equipment allows, students will also learn how to create and configure clusters.