CS 215 Introduction to Program Design, Abstraction, and Problem Solving

University of Kentucky
Department of Computer Science
CS 215 Introduction to Program Design, Abstraction, and Problem Solving
1.  Course Number/Name:  CS 215, Introduction to Program Design, Abstraction, and  Problem Solving
2.  Credits and Contact Hours:  4 credits, 4 contact hours
3.   Instructor:  assigned by the department
4.   Textbook:   C++ for Everyone (2nd Ed.), Cay Horstmann, 2010.
5.   a.  Catalog Description:  The course covers introductory object-oriented problem solving, design, and programming engineering. Fundamental elements of data structures and algorithm design will be addressed. An equally balanced effort will be devoted to the three main threads in the course: concepts, programming language skills, and rudiments of object-oriented programming and software engineering.
b.  Prerequisites:  EGR 102 or CS 115 or equivalent
c. Required course: Required
6.  a.   Outcomes of Instruction:  Students will learn basic data types, data structures and basic algorithm design and analysis    
            techniques including recursion. Focus on  programming skills in an object oriented programming. The students will also             become familiar with basic software engineering methodology. 
           Specifically the students will learn concepts and skills in:
1.     object oriented approach to programming;
2.     dynamic memory management;
3.     recursive programming techniques;
4.     data structures, such as linked lists, stacks, queues, and trees;
5.     language constructs: pointers, dynamic storage; 
6.     language constructs that support data abstraction with an emphasis on object-oriented design rather than procedural design;
7.     language constructs that support algorithm design, such as recursive vs. iterative methods;
8.     determining specifications for a problem;
9.     designing a solution;
10.  testing and debugging.


b.   Contributions to Student Outcomes (ABET Criterion 3 for Computer Science)













CS 215












3- Strongly supported   2 – Supported   1 – Minimally supported
 7.   List of Topics Covered:
            1.   Computer, programs, programming and programming environment
            2.   Fundamental data types and basic operations in C++
            3.   Flow of control: Decisions and Loops
            4.   Functions
            5.   Basic data structure of Arrays and Vectors
            6.   IO streams and File streams
            7.   Pointers and dynamic memory allocation
            8.   Classes and objects, basic Object-Oriented Programming
            9.   Aggregation and inheritance
            10. Recursion, Sorting and searching
            11. Linked list, Stack and Queue
            12. Trees, Binary Tree and Binary Search Trees