Faculty Syllabus

COSC-2436 Programming Fundamentals III: Data Structures


Gregory MacDonald


Credit Spring 2026


Section(s)

COSC-2436-009 (28656)
LAB COH ONL DIL

LEC TuTh 2:45pm - 4:15pm COH

Course Requirements

Prerequisite:  COSC 1337 or instructional program approval. Course Type: T.

 


Readings

Approved Course Texts/Readings:

Required: Data Abstraction & Problem Solving with C++ 7th edition by Carrano

                 ISBN: 978-0-13-446397-1

 

Optional: Data Abstraction & Problem Solving with C++ 8th edition by Carrano

                ISBN: 978-0-13-812280-5


Course Subjects

Course Description:  Further applications of programming techniques, introducing the fundamental concepts of data structure and algorithms. Topics include recursion, fundamental data structures (including stacks, queues, linked lists, hash tables, trees, and graphs), and algorithmic analysis.

 

Prerequisite:  COSC 1337 or instructional program approval. Course Type: T.

 

Course Rationale:  This course is designed to teach students the fundamental data structures and the algorithms used to manipulate them. The data structures and algorithms will be implemented in a modern object-oriented programming language (C++). Since this course is designed to transfer into a bachelor degree program, check with the college to which you plan to transfer to be sure that they will accept this course.

 

Week

Class

Topics

7th Revision Readings

8th Revision Readings

Assignments *

1

01-20

CPU Memory Caches

 

 

 

 

01-22

Heap vs. Stack Memory

 

 

 

2

01-27

Winter Storm – No Class

 

 

 

 

 

01-29

Walls & Abstraction

C++ Review

C++ Classes

Ch 1

Appendix A

Int 1

Ch 1, Ch 2.1

Appendix A

Int 1

Quiz 1

 

3

02-03

Mirrors & Recursion

Pointers & Memory

Ch 2

Int 2

Ch 5

Int 2

Quiz 2

 

02-05

Array Implementations

Ch 3

Ch 3

Quiz 3

4

02-10

Linked-Chain Implementations

Ch 4

Ch 4

Quiz 4

 

02-12

Recursion & Problem Solving

Ch 5

Ch 6

Quiz 5

Lab 1: Recursion

5

02-17

Stacks

Ch 6

Ch 8

Quiz 6

Lab 2: Stacks

 

02-19

Stack Implementations

Ch 7

Ch 9

Quiz 7

6

02-24

Exam 1 Review

Ch 1 – Ch 7

Ch 1, 2.1, 3-6, 8-9

Exam 1

 

02-26

Class Cancelled

 

 

 

7

03-03

Lists

Ch 8

Ch 12

Quiz 8

Lab 3: Lists

 

03-05

List Implementations

Ch 9

Ch 13

Quiz 9

8

03-10

Algorithm Efficiency

Ch 10

Ch 7

Quiz 10

 

03-12

Smart Pointers

Int 4

Int 4

 

 

03-17

SPRING BREAK

 

 

 

9

03-24

Sorting Algorithms

Ch 11

Ch 14

Quiz 11

 

03-26

Class Relationships

Int 6

Int 5

 

10

03-31

Sorted Lists & Implementations

Ch 12

Ch 16

Quiz 12

 

04-02

Iterators

Int 7

Int 7

 

11

04-07

Exam 2 Review

Ch 8 – Ch 12

Ch 7, 12-14, 16

Exam 2

 

04-09

Class Cancelled

 

 

 

12

04-14

Queues

Ch 13

Ch 10

Quiz 13

Lab 4: Queues

 

04-16

Queue Implementations

Ch 14

Ch 11

Quiz 14

13

04-21

Trees

Ch 15

Ch 17

Quiz 15

 

04-23

Tree Implementations

Ch 16

Ch 18

 

14

04-28

Tree Implementations (cont.)

Ch 16

Ch 18

Quiz 16

Lab 5: Trees (Bonus)

 

04-30

Heaps

Ch 17

Ch 22

Quiz 17

15

05-05

Dictionaries & Implementations

Ch 18

Ch 23 & 24

Quiz 18

 

05-07

C++ Standard Template Library

Int 8

Int 8

 

16

05-12

Exam 3 Review

Ch 13 – Ch 18

Ch 10, 11, 17, 18, 22, 23

Exam 3

 

05-14

Class Cancelled

 

 

 


Student Learning Outcomes/Learning Objectives

Course Objectives / Learning Outcomes:

  1. Demonstrate a thorough understanding of the behavior of basic data structures: lists, stacks, queues and trees by developing programs that implement or apply these data structures.
  2. Demonstrate a thorough understanding of how data structures impact the performance of algorithms.
  3. Demonstrate a thorough understanding of the object-oriented concepts of data abstraction and encapsulation by designing and implementing data structures using classes.
  4. Demonstrate a thorough understanding of template classes by developing programs that use them.
  5. Demonstrate an understanding of recursion by applying recursive techniques to solve problems including list and tree processing.
  6. Demonstrate a thorough understanding of searching and sorting algorithms including recursive techniques.
  7. Demonstrate proficiency in implementing data validation code and performing unit and integration testing by developing robust solutions to the assignments in this course.
  8. Demonstrate good documentation style in all of the programs written in this course.

 

SCANS (Secretary’s Commission on Achieving Necessary Skills):

The following list summarizes the SCANS competencies addressed in this particular course:

 

RESOURCES

1.1 Manages Time

INTERPERSONAL

2.1 Participates as a member of a team

2.6 Works with Cultural Diversity

INFORMATION

3.1 Acquires and Evaluates Information

3.2 Organizes and Maintains Information

3.3 Uses Computers to Process Information

SYSTEMS

4.1 Understands Systems

4.2 Monitor and Corrects Performance

4.3 Improve and Designs Systems

TECHNOLOGY

5.1 Selects Technology

5.2 Applies Technology to Task

5.3 Maintains and Troubleshoots Technology

 

BASIC SKILLS

6.1 Reading

6.2 Writing

6.3 Arithmetic

6.4 Mathematics

6.5 Listening

THINKING SKILLS

7.2 Decision Making

7.3 Problem Solving

7.4 Mental Visualization

7.5 Knowing How to Learn

7.6 Reasoning

PERSONAL SKILLS

8.1 Responsibility

8.2 Self-Esteem

8.3 Sociability

8.4 Self-Management

8.5 Integrity/Honesty


Office Hours

M W 5:00 PM - 7:00 PM Online

NOTE

Published: 02/01/2026 19:54:37