COSC-2436 Programming Fundamentals III: Data Structures


Alexander Katrompas

Credit Summer 2024


Section(s)

COSC-2436-003 (79924)
LEC DIL ONL DIL

LAB DIL ONL DIL

Course Requirements

Further applications of programming techniques, introducing the fundamental concepts
of data structures and algorithms. Topics include recursion, fundamental data structures
(possibly including, but limited to, stacks, queues, linked lists, hash tables, trees, and
graphs), and algorithmic analysis.

Review of control structures and data types with emphasis on structured data types.
Applies the object-oriented programming paradigm, focusing on the definition and use
of classes along with the fundamentals of object-oriented design, and a continuing
instruction in software engineering.

The language of instruction is C/C++ but an emphasis will be placed on general
computer science, algorithms, and software architecture. An emphasis will also be
placed on industry coding practices, practical application, and production code (i.e. ‘real
world’ code).


Readings

General: Readings may be assigned as needed to supplement class notes or the
textbook. These will be online and provided in class. Any readings assigned are
required and may be tested.

Optional Textbook: Data Abstraction and Problem Solving with C++ "Walls and
Mirrors" 7th edition, Frank Carrano and Timothy Henry, Pearson Publishing. ISBN-13:
978-0-13-446397-1. The textbook is the only purchase required. Purchase of additional
software or learning resources is NOT required.


Course Subjects

Introduction to data structures and advanced algorithms and analysis using C/C++.

Detailed syllabus and requirements will be provided in class.


Student Learning Outcomes/Learning Objectives

Demonstrate a thorough understanding of...

Modular programming by designing programs that require the use of
programmer-defined functions.

The object-oriented programming concepts of encapsulation, data abstraction
and composition by designing and implementing classes including the use of
overloaded functions and constructors.

The concept of pointers and dynamic memory allocation by designing and
implementing programs using pointers and dynamic memory allocation.

The implementation of programmer-defined functions and classes by writing
code, performing unit testing and debugging of multiple complex programs.

Good documentation style in all of the programs written in this course.

The differences between C and C++ in the areas of strings, pass by
reference/passing pointers, and structs by designing and implementing programs
that use C strings, C++ strings, C language structs and classes.

Abstract Data Types.

Advanced control structures and algorithms.

Data structures and their appropriate applications.


Office Hours

M Th 9:00 AM - 11:00 AM Zoom

NOTE

Published: 05/23/2024 15:14:29