CCOG for CS 261 Fall 2024


Course Number:
CS 261
Course Title:
Programming Systems
Credit Hours:
4
Lecture Hours:
30
Lecture/Lab Hours:
0
Lab Hours:
30

Course Description

Explores the theory and practice of object-oriented programming as embodied in both Java and C++. Introduces inheritance, polymorphism, virtual functions, templates, exceptions, operator overloading and the extensive libraries that are available as a standard part of Java and C++. Prerequisites: CS 260. Audit available.

Addendum to Course Description

Students will complete several lab/programming exercises techniques. This course is transferable to a four year institution and is applicable toward an Associate of Science or Associate of Applied Science Degree.

Intended Outcomes for the course

On completion of this course students should be able to:
· Employ a deep knowledge of the object-oriented paradigm and a recognized software development methodology to develop computer programs that
demonstrate significant functionality and usability.
· Design and construct object-oriented software with appropriate layers of abstraction and associated use of encapsulation, inheritance, polymorphism and
interfaces.
· Effectively use the extensive libraries that are available as a standard part of Java and C++.
· Architect systems with minimal complexity and cost to attain maximal functionality, flexibility and maintainability.

Outcome Assessment Strategies

Students will complete several software projects comprised of object-oriented designs, implementations, and test plans. Projects will be of sufficient size to require team development.

  • Designs will demonstrate the use of good object-oriented design principles.
  • The implementations will demonstrate the use of inheritance, interfaces, and collection classes. Implementations will include console based applications.
  • Test plans will include test cases demonstrating both black and glass box testing strategies.
  • Project submissions will include oral and written presentations of technical information regarding project design and implementation.

Students will demonstrate competency on exam(s) which are constructed to demonstrate:

  • An understanding of object-oriented methodology.
  • Use of inheritance, virtual functions, and polymorphism.
  • Facility with programming language syntax and semantics.
  • Individual capability in design, implementation and testing of modular and object oriented program components.

Course Content (Themes, Concepts, Issues and Skills)

Course Content
 

  • objects
    • friends
    • static members
    • operator overloading
    • single inheritance
    • virtual and pure virtual functions
    • abstract base class
    • polymorphism
    • RTTI
    • templates
    • exception handling
    • multiple inheritance
  • additional topics
    • character handling library (isdigit, tolower)
    • string conversion functions (atof, atoi)
    • preprocessor directives
  • standard library
    • STL containers, iterators
    • STL algorithms
    • function objects