CMSC 202 – Computer Science II
Generic Syllabus
Prerequisites
CMSC 201 with a “B” or better and MATH 150, MATH 151, or MATH 152 with a “C” or better.
Description
This course continues the student’s development of programming and problem-solving skills by providing an introduction to object-oriented design and programming (OOP). The primary focus is on OOP principles and techniques, including encapsulation, aggregation, inheritance, and polymorphism. Other OOP topics such as exception handling and templates are also covered. This is the second course for students interested in pursuing further study in computer science.
Course Outcomes
- Improved problem solving abilities
- Improved program design skills
- Improved coding skills
- Understanding of the fundamental programming concepts of abstract data types
- Understanding of the fundamentals of the object-oriented programming paradigm
- Improved ability to test and debug programs
Program Outcomes
This course enables the following program outcomes:
- (O1) through the development of C++ programs with increasing complexity.
- (O3) through the use of the OOP techniques; coding, compiling, and debugging using the Linux operating system.
- (O5) through the use of Linux systems, introduction to C++ software development, and basic algorithms.
Text
There is no required textbook for this course. The book Absolute C++, Fifth Edition, by Walter Savitch is highly recommended.
Topics
- Object-oriented design concepts
- Classes and objects
- Encapsulation and data hiding
- Aggregation
- Inheritance
- Polymorphism
- C++ programming language syntax and semantics
- Basic C/C++ syntax
- Functions in C/C++
- Pointers in C/C++
- Object-oriented programming features and concepts
- Application of Object-oriented design concepts in C++
- Constructors and Destructors
- Operator overloading
- Copy constructors
- Templates and the Standard Template Library
- Exceptions
- Program construction techniques
- Debugging
- Unit testing
Grading
Grades will be based on a combination of exams, projects, and labs. The number and weight of each type of graded assessment may vary from semester to semester subject to the following guidelines:
Exams | |
---|---|
1 – 2 Midterm Exams | 20 – 30% |
Cumulative Final Exam | 20 – 30% |
Projects | |
4 – 5 Programming Projects | 40 – 50% |
Labs | |
10 – 12 Lab Assignments | 10 – 15% |
Participation | |
Attendance and participation | at most 10% |