CS 310  Computer Science III:  Summer 2003

Section B01 Tue/Thur 7:20pm - 10:00pm, Prof. Yih-Feng Hwang , Robinson B113

 

Course Content

This course is a continuation of CS 211. The course is intended to provide additional experience in building software and includes an introduction to basic tools and techniques that facilitate software development. You will also be exposed to object-oriented techniques and gain experience with advanced data structures and recursion. The course is programming intensive.

Course topics include, but are not limited to the following:

·         Introduction to the Standard Template Library

·         C++ features: inheritance, polymorphism

·         Heap and heap sort

·         Trees - AVL trees, Red-Black trees, B-trees

·         Hashing

·         Recursive sorting algorithms

·         Graphs

 

Prerequisites: Grade of C or better in CS 211.

You should should feel comfortable in the following areas:

·         C++ Syntax and Semantics, Makefile, and Unix

·         Abstract Data Types and C++ Class

·         Software Reuse with Templates

·         Big-O Notation for algorithm analyses

·         Static and Dynamic Memory Allocation

·         Recursion

·         Simple Data Structures: Linked Lists, Stacks, Queues, Binary Trees

·         O(N^2) Sorting Algorithms

 

Textbooks

·         Required: Data Structures and Program Design in C++, Kruse, Robert L. and Rybe, Alexander

·         Recommended: The C++ Programming Language, Stroustrup, Bjarne.

·         Recommended: C++ Primer, Lippman, Stanley and Lajoie, Josee.

·         Recommended: STL Programming from the ground up, Schildt, Herbert.

 

Grading: Percentages within the ranges given will be determined by individual instructors.

·         Programming 45%

You will be given 3 data structure oriented programming assignments, which may be weighted differently. These are to be individual efforts, meaning that no code sharing or discussion of problem solutions with anyone except the instructor or the TA. You may not incorporate code written by others, such as can be found on the internet or any of the numerous CS books. Documentation is required.

You will be given credit only for code that works. This means that you should code and test functions as you write them, not code the whole thing and then try to get it to work.

You may develop programs using any computer system you have available. If you plan to program at home, it is recommended that you download the cygwin environment from RedHat. The URL is sources.redhat.com.cygwin. Follow the install link. If you are running Linux on your computer, you can down-load the current release of GNU GCC from http://gcc.gnu.org/. Please note, however, that submitted projects must run on the g++ compiler available on osf1, unless otherwise specified by your instructor; you will get a 0 in a project that does not compile on osf1. Students must have an account on osf1.gmu.edu.

You are expected to backup and submit/resubmit your program as you get different pieces working. The submit program keeps the last version you submit. Failure to do this may result in your getting a zero on a program instead of partial credit if last minute problems occur. Note that accidentally deleting your program, having problems connecting, problems compiling, etc., will not be accepted as excuses. It is important that you not touch your programs once you have done your final submission: If there are submission problems, consideration for credit will only be given if it can be verified that the programs were not changed after being submitted.

You will have 2-3 weeks to do each project. Late programming assignments will be penalized 20 points per day. No extra credit points, when available, will be given to late projects. Requests for extension will only be considered for situations that can be documented and involve a large portion of that time period. Once grades are posted, students have one week to contest the grade--beyond that the grade will not be changed.

·         Midterm(s) and Final 55%

You must pass the Final exam to get a C or above in this course. You must have a written excuse from doctor to miss an exam.

Once a test is returned, you have one week to contest the grade-- beyond that the grade will not be changed. Note that the week starts when a test is returned to the class, which may or may not be when you choose to pick yours up.

Incomplete. A request for an incomplete (IN) will only be considered in the final quarter of the course (all assignments up to and including the 3rd project must have been turned in and no additional work on these will be accepted). Request must be made in writing, accompanied by a note from a doctor or employer and applicable contact information.

 

Projects

·         Project 1.

·         Project 2.

·         Project 3.

 

Honor Code

You are expected to abide by the honor code. Programming assignments and exams are individual efforts. Information on the university honor code can be found at:

http://www.gmu.edu/catalog/acadpol.html
http://www.cs.gmu.edu/honor-code

 

Instructor

Prof. Yih-Feng Hwang

Email:  yhwang@cs.gmu.edu

 

Teaching Assistant

William Wagner

Email: wwagner@gmu.edu

 

 

TA has been instructed to restrict the time he spends with any one student to 10 minutes if other students are waiting. Students seeking assistance from a TA are expected to bring a hard copy of their code. If the code compiles but doesn't run correctly, students are expected to bring a typescript of a debugging session.