CSC134 - Advanced Programming

Spring 2003, Section 70, 6:30-9:00 M, Curtis 208

Course Description

Programming in C++ is implemented to solve larger and more complex problems. Topics covered are string processing, record structures, file organizations, and dynamic data structures including linked lists and nonlinear structures.

Prerequisites

CSC133.

Course Objectives

Textbook

Dale, N., Weems, C., and Headington, M., Programming and Problem Solving with C++, 3ed, Jones and Bartlett, 2002. ISBN: 0-7637-2103-4.

Assessment Overview

Grades for this course will be based on the following assessment items with weights as follows:

Assessment Details

Assignments

Assignments will consist of one or more problems for which you will need to devise a solution and implement that solution as a C++ program. Assignments are to be submitted in both electronic and printed form, and must include any appropriate accompanying documentation. Your instructor will provide instructions on submitting electronic copies of C++ programs over the Internet. Any C++ programs submitted that result in compiler errors from the Microsoft Visual C++ compiler will not be accepted.

Programs should be well documented using comments. Please include, at the beginning of your program, a comment block with your name, course number, assignment number, date, a brief description of the problem, and an overview of your approach to the problem. Also include comments throughout the program to clearly describe all steps in your algorithm. Each function should have a comment block describing the function, all parameters, and return value. Further, code should be indented to enhance readability.

Through programming assignments the student gains hands-on experience in programming and demonstrates ability to apply course material in problem solving situations, and ability to implement those solutions as computer programs.

Tests

Tests for this course will be written and will consist of problems and short answer questions. Tests will be open-book and open-notes. On test dates, the second half of class will be allocated for the testing period.

Through tests, the student demonstrates competency in understanding and applying programming concepts and techniques in limited specific situations.

Final Project

The final project will be one proposed by the student, to be implemented in C++, and that incorporates several of the techniques learned in CSC133 and CSC134. The project should be of moderate size and complexity, as determined by the instructor. The instructor must approve the student's choice of project. The final project is assigned in lieu of a final exam.

Through the final project, the student demonstrates ability to solve a complex problem involving several aspects of computer programming.

Date Topic
1/13 Course Intro
CSC133 Review
1/27 Arrays Review (Ch. 12)
Characters and Strings (Sec. 3.8, 10.3, 13.4)
2/3
2/10
2/17
Structured Types and Classes (Ch. 11)
Object Oriented Programming (Ch. 14)
2/24 Pointers, Dynamic Data, and Reference Types (Ch. 15)
3/10 Test 1
3/10
3/17
Linked Structures (Ch. 16)
3/24
3/31
Templates and Exceptions (Ch. 17)
Stacks and Queues
4/7
4/14
Recursion (Ch. 18)
Binary Search Trees
4/22* Test 2
4/22
4/28
Advanced File Processing

* Tuesday, April 22 follows a Monday schedule.

Assignments

No. Assigned Due
1 1/13 1/27
2 1/27 2/10
3 2/10 2/24
4 3/10 3/24
5 3/24 4/7
6 4/7 4/28

Final Project/Due Dates

Proposal: 2/17
Project Plan (Draft): 3/17
Project Plan (Final): 3/31
Implementation: 4/30