Lehigh University
COLLEGE HOME | LEHIGH HOME | SEARCH




   

CSE 17  Structured Programming and Data Structures (3)

Instructor:  Sharon Kalafut

Current Catalog Description 
Algorithmic design and implementation in a high level, object-oriented language such as C++. Recursion, lexical programs, pointers, data structures and their applications. Prerequisite: CSE 15 or Engr 1 or permission of the instructor.

Textbook
 Walter Savitch, Problem Solving with C++ The Object of Programming, 4th Ed., Addison Wesley.

References 

Course Goals  
 To become fluent in writing code in C++.
 Ability to design class structures.
 To have a basic understanding of how to overload operators in a class structure.
 Ability to use pointers and dynamic arrays.
 To understand data abstraction and abstract data types.
 To become familiar with sequential-access file processing.
 To understand how to write and use recursive functions.

Prerequisites by Topic
 Algorithms and top-down design
 Array Structures
 Basic data types and operations
 File Handling
 Basic File I/O 
 Predefined Functions
 Programmer-Defined Functions
 Procedural Abstraction
 Testing and Debugging Functions
 Boolean Expressions
 Branches Structures
 Looping Structures

Major Topics Covered in the Course 
Data Structures
Classes
Sorting
Selection
Abstract Data Types
Friend Functions
Functions using value and reference parameters
Overload Operators
Pointers
Dynamic Arrays
Linked Lists
Stacks
Queues
Trees

Laboratory projects (specify number of weeks on each)
The course project consists of eight to nine programming assignments. The project components are assigned in roughly increasing order of size and difficulty; proportionately more time is allotted for the later assignments. Approximately less than one to two weeks are given for each assignment.

Estimate CSAB Category Content

                                                                 CORE     ADVANCED   
Data Structures                                            1.5    
Computer Organization and Architecture         .5  
Algorithms Software Design                          1.5    
Concepts of Programming Languages              .5  
 
Oral and Written Communications
Every student is required to submit at least  _0_  written reports (not including exams, tests, quizzes, or commented programs) of typically  _0_ pages and to make  _0_  oral presentations of typically  _0_  minutes duration. Include only material that is graded for grammar, spelling, style, and so forth, as well as for technical content, completeness, and accuracy.

Social and Ethical Issues
One class is devoted to the issue of what constitutes unfair collaboration on assigned work. Those who do not adhere to the guidelines for doing ones own work are penalized with a lower grade.

Theoretical Content
Concepts of object oriented programming: 16 classes.
Data Structures:   16 classes.
Abstract Data Types: 13 classes
Recursion:  3 classes
Pointers and Dynamic Arrays: 8 classes

Problem Analysis
Each programming assignment introduces a problem or task that should be solved by writing a software program. Typically each assignment is a new problem or task and does not build on past programs. These assignments are designed to reinforce the concepts discussed in each class.

Solution Design
The student is expected to determine through top down design what algorithms are needed to solve each assignment. Each algorithm is then refined to incorporate the concepts discussed in class. Programs are evaluated for correctness, organization, and documentation.

     
image


©2008 P.C. Rossin College of Engineering & Applied Science
Computer Science & Engineering, Packard Laboratory, Lehigh University, Bethlehem PA 18015