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.