CSC 109 is the second course in a five-part computer science series, emphasizing advanced software engineering principles, focusing on abstraction and sound design. This course engages students in creating secure, reusable software components for diverse problems, highlighting the importance of reusability. Central to the curriculum is Object-Oriented Design (OOD), where students learn to structure software using objects that encapsulate data and behaviors, enhancing modularity and scalability. The course delves into Polymorphism, allowing objects of various classes to be handled uniformly, and Abstract Classes, establishing blueprints for consistent interfaces while allowing flexible implementations. Practical exercises involve developing simple Abstract Data Types (ADTs), emphasizing documentation for reuse. Students also write assertions for class methods, fostering a deep understanding of problem-solving pre-coding, and post-coding practices including comprehensive testing with test plans and drivers. This holistic approach reinforces constructing software from well-defined, independent components and using library classes and APIs. Requiring intermediate C++ skills, the course meets for four hours weekly, bridging foundational knowledge with more complex computer science concepts, and preparing students for subsequent advanced courses.
Area
Computer Science
Course Number
CSC 109
Semester Offered
F/S/SU
Credits
4
Prerequisites
CSC 108 with a grade of "C" or higher
Please Note
Four hours lecture