COSC 2624: Computer Programming in C++

Subject
Credit Hours 4.0 Lecture Hours 2.0 Lab Hours 2.0
Type of Credit
Baccalaureate/Transfer
View Class Schedule
Course Description
This course is a continuation of COSC 2613 to emphasize mathematics, engineering, science and computer science applications. Students will use the C++ programming language to develop an object-oriented approach to the design and implementation of large-scale problems. The course introduces data structures: arrays, files, sets, pointers, lists, stacks, queues, trees, and graphs as well as program verification and complexity. By building on previous knowledge of searching and sorting, students will be introduced to recursion and study practical examples of complexity analysis.
Prerequisite(s)
COSC 2613 with a grade of C or better - Must be completed prior to taking this course.

At the end of this course, students will be able to:

  • Use pointers (where language applicable) and function arguments.
  • Design and write object-oriented programs with separate class files.
  • Explain the concept of information hiding including the difference between public and private variables and methods.
  • Explain and write class methods with emphasis on constructors (and destructors where language applicable).
  • Explain and use reference variables, static variables and methods.
  • Apply function overloading (and operator overloading where language applicable).
  • Write methods for object assignment, copy constructors.
  • Use stream I/O
  • Identify and explain concepts and application of inheritance.
  • Design and develop simple class hierarchies.
  • Apply concepts of dynamic binding and polymorphism (and virtual functions where language applicable).
  • Identify fundamental memory concepts of stack and heap.
  • Apply concepts of concrete/abstract classes (and interfaces where language applicable).
  • Write basic examples of stack and queue classes.
  • Write a binary tree class.
  • Apply recursive programming techniques.
  • Apply and use concepts of templates (or generics where language applicable).
  • Implement various sort and search algorithms with an introduction to program verification and complexity.
  • Employ multiple file compilations.
  • Use data models with functions in object-oriented design.
  • Identify fundamental concepts of data structures.
  • Use dynamic memory to write link lists.
  • Write and use basic operations (insert, delete) on linked lists.
  • Apply object-oriented principles.
  • Use and write simple classes.
  • Explain the concepts of separating implementation from the programming interface with classes.