CSCI 2490 C++ Programming

Current Catalog Description

Coverage of C++ programming techniques: procedural programming with functions, writing and using libraries, pointers and arrays, OOP, I/O stream hierarchy, and STL

Textbook

Y. Daniel Liang, “Introduction to C++ Programming,” Prentice Hall, October 2006

Course Goals

The goal of this course is to teach problem solving and program development using C++. After completing the course, students will be able to develop C++ using an IDE and on Unix, know the differences between C++ and Java, and be proficient in C++.

Prerequisites by Topic

CSCI 2410 Data Structures and Algorithms

Time Allocation Guidelines for Major Topics

*Topics are not necessarily covered in this order

Basics of procedural programming (4 hours)

Programming with functions, parameter passing 1
Loops, conditionals, basic I/O (console and file) 1
Variables (global/static), constants, typedefs, macros, namespaces 2

Writing and using libraries (3 hours)

Include files, declarations and definitions 1
Creating and using static libraries 1
Creating and using dynamic libraries 1
Pointers (6 hours)
Pointers, addresses, and references to primitive types 1
Pointer use (linked lists, etc.), new/delete operators 2
Single-dimensional arrays and pointers, pointer arithmetic 1
Multi-dimensional arrays, allocation, performance issues 1

Pointers to functions 1

OOP (11 hours)
Overview of classes and objects 1
Constructors (default, copy, conversion), destructors 2
Operator overloading, friends, ‘this’ pointer 3
Single inheritance, effect on constructors/destructors 1
Multiple inheritance 1
Polymorphism (virtual methods, constructors/destructors) 2
Polymorphism and binding, pointers, run-time type identification 1
Exception handling 2
Templates and STL (6 hours)
Function templates and their application 1
Class templates and their application 2
Collectors and iterators 1
Overview and use of STL classes 2
I/O streams (6 hours)
Overview of the C++ stream hierarchy 1
Using text streams, formatting, flags 2
Using binary streams 2
Overloading stream operators 1
Tests and reviews (7 hours)
Total = 45 hours

Evaluation Schemes

Programming Projects / 20% (Due dates will be announced in the class.)
Three or Four Exams / 50%
Final Exam / 30%