Instructor: Dr. Harry S. Delugach
Phone: (256) 824-6614
Class Meets: Tue. Thu.. 2:20 - 3:40 PM in TH N-308
Office Hours: TH N-351
  • Mon. 2:00 - 3:45 PM
  • Tues. 1:00 - 2:00 PM
  • Wed.. 2:00 - 3:45 PM
  • Thur. 1:00 - 2:00 PM
  • Fri. by appointment

Text: C++ plus Data Structures, by Nell Dale, Jones and Bartlett, 2013 (5th edition). ISBN 978-1-4496-4675-2


If you feel there is an error in the grading of your work, you must bring it to the instructor's attention within one week after the assignment was returned to you.
40 %
30 %
Final Exam
30 %

The following grading scale will be used (final averages are rounded to the nearest whole number):

A+ 96; A 92; A- 90; B+ 88; B 82; B- 80; C+ 78; C 72; C- 70; D 65

Catalog Description

Continuation of CS 121 with emphasis on advanced features of the C++ programming language, including pointers, recursion, classes, inheritance, and polymorphism. Introduction to fundamental data structures including linked lists, stacks, queues, and binary search trees. Basic sorting and searching algorithms. Practical experience in the design, development, and documentation of significant object-oriented programs. Prerequisites: CS 121, MA 113 (Precalculus Trigonometry). Co-requisite: MA 171 (Calculus A).

Course Objectives

General Information

Please read the general guidelines and policies that apply to this course, They are a part of this syllabus. This syllabus is freely available to anyone. Other course materials, announcements, discussions, etc. will be distributed using Angel (

ANGEL Online Access

Communication in this class will be conducted primarily through ANGEL. To access it, go to You'll find instructions there about id/password and access information. You can get help from the TAG help desk at or at (256) 824-3333.

Programming Assignments

There will be 4 programming assignments each designed to provide experience in the topics being covered in class. Details of these assignments will be posted on ANGEL and discussed in class.

You will be required to turn in some program planning written work prior to the date that the programs are due. Work turned in MUST meet the following requirements:

All programming assignments should be handed in on time, as specified in the course schedule.

Assigments will be graded by the instructor through ANGEL, and your graded assignments (with instructor feedback) will be returned to you through ANGEL.

NO hand drawn models OR hand written answers are allowed except on hand-written exams.

Other adaptations of the policy may be announced during the semester, usually as announcements on Angel.

Course Schedule

NOTE: Readings are to be done before the class at which they will be discussed.

Thu Aug 21 Introduction    
Tue Aug 26 Review of C and C++, prep for programs    
Thu Aug 28 Software Engineering    
Tue Sep 02 UML and software modeling    
Thu Sep 04 Software testing    
Tue Sep 09 Pointers    
Thu Sep 11 Data structures and classes    
Tue Sep 16 Abstract data types (ADTs)   Program 1 Documentation
Thu Sep 18 String as ADT    
Tue Sep 23 Standard Template Library (STL)   Program 1 source code
Thu Sep 25 1st Midterm Exam    
Thu Sep 25 Linked data structures    
Tue Sep 30 Sorted and unsorted lists   Program 2 Documentation
Thu Oct 02 Stacks and Queues    
Tue Oct 07 List Templates in the STL   Program 2 Source code
Thu Oct 09 FALL BREAK (NO CLASS)    
Tue Oct 14 Trees    
Thu Oct 16 Analysis of Algorithms    
Tue Oct 21 Recursion    
Thu Oct 23 Graphs   Program 3 Documentation
Tue Oct 28 Sets    
Thu Oct 30 Hashing   Program 3 Source code
Tue Nov 04 Sorting    
Thu Nov 06 2nd Midterm Exam    
Tue Nov 11 Templates    
Thu Nov 13 Namespaces    
Tue Nov 18 File Input/Output   Program 4 Documentation
Thu Nov 20 C++ Standard Library    
Tue Nov 25 C/C++ preprocessor   Program 4 Source code
Thu Nov 27 Thanksgiving (NO CLASS)    
Tue Dec 02      
Thu Dec 4 Final Examination 3:00pm - 5:30pm