CPSC 329 | Software Development | Fall 2022 |
On this page:
Course Description and Objectives |
Catalogue description: This course continues the study of programming by focusing on software design, development, and verification - the skills beyond fluency in a particular language which are necessary for developing large, reliable programs. Topics include object-oriented design, the use of APIs, and testing and verification. Techniques common in modern software development will also be studied. Specific techniques may include GUIs and event-driven programming, multi-threading, client-server networking, fault-tolerant computing, stream programming, and security. This course completes the programming sequence begun by CPSC 124 and 225 - CPSC 124 introduces the basic ideas of programming along with the syntax and semantics of the Java programming language, CPSC 225 focuses on common data structures as the organizational building blocks of programs, and CPSC 329 addresses creating good software as well some of the specific technologies found in software applications. Four key points are at the core of good software:
This course will address how to achieve those points. In addition, students will gain:
|
---|---|
Course Format |
This course will utilize a flipped format. What that means is that new material will be introduced through readings and/or videos plus a short self-assessment "quiz", to be reviewed/completed before class. Class meetings will emphasize application of the material, as a class or in small groups, with short lectures to go over questions or resolve tricky points as needed. Additional outside-of-class work includes finishing labs (if not completed during the lab period) and multiple programming projects. Most of these projects will be team projects, requiring awareness of deadlines, careful time management, steady effort, and working with others' schedules. Dates for the projects are on the schedule page. Students should expect to devote a significant amount of time to the course, as software development is necessarily practiced by doing and implementing software takes time. There will also be several skills checks, which function as exams covering the main technical content of each of the group projects. Dates are on the schedule page. |
Prerequisites |
CPSC 225 is required. |
Required Course Materials |
There is no textbook to purchase - material will be posted on the course webpage or Canvas. All of the software needed for this course will be available on the Linux machines in Lansing 310 and in Rosenberg 009 for in-person and remote access. It is freely available (nothing to purchase) and can also be installed on your own computer if desired. (Instructions will be provided.) If you have a laptop that you can bring to class, you are encouraged to do so (with the necessary software installed). |