CS 215 - Fundamentals of Programming II

Spring 2006 - Syllabus & Schedule

Instructor

Dr. Deborah Hwang
KC-264, 479-2193, hwang@evansville.edu
http://csserver.evansville.edu/~hwang

Office Hours

See instructor's home page.

Course Home Page

All announcements and most handouts will be available at the course home page:
http://csserver.evansville.edu/~hwang/s06-courses/cs215.html

Catalog Data

Project and problem-solving course emphasizing the use of classes for encapsulation of abstract data types and abstract data structures. Topics include classes, templates, dynamic allocation, searching and sorting, recursion, and exception handling.

Objectives

To continue the study of problem solving techniques used in programming software solutions including abstract data types, templates, exception handling, dynamic allocation, recursion, sorting and searching algorithms, and basic algorithm analysis. To continue the study of the C++ language features that support these techniques. Exposure to the UNIX operating system and development tools.

Prerequisite

CS 210

Required Textbook

William Ford and William Topp, Data Structures with C++ Using STL, 2ed, Prentice Hall, 2002, ISBN 0-13-085850-1.

Recommended Textbook

Bjarne Stroustrup, The C++ Programming Language, 3ed, Addison Wesley, 1997, ISBN 0-201-88954-4. While there will not be any assignments given out from this book, it is the definitive reference for the C++ language, and all computing professionals should own a copy.

Daily and Weekly Requirements

Assigned daily reading assignments. Weekly homework assignments. Homework assignments may include short programming problems.

Programming Projects

There will be 7-9 programming projects of 1-2 weeks in duration each. See handout A C++ Programming Guideline for CS 215 for appropriate code format used in this course. It is similar, but not the same, as the style used in the textbook.


Programming projects will be graded using the following criteria with the weights as shown.


 65%  Correct results, including command line arguments and file I/O
 10%  Error checking, including proper use of exceptions
 25%  Style, observed coding guidelines, originality


In addition, there will be an up to 3-point penalty if an appropriate Makefile is not submitted when required.


Programming projects should be submitted both on-line by email and in hard-copy printout as explained in the handout Submission Instructions for CS 215.

Exams and Evaluation

There will be two in-class written exams and a comprehensive final written exam. The in-class exams are tentatively scheduled for February 15 and April 1. In addition, there is an evening lab programming practical exam that will be scheduled for 6pm-8pm the week before spring break (tentatively February 27, 6-8pm). The purpose of the practical exam is to demonstrate mastery in using the C++ programming language and the UNIX environment. Therefore, it is necessary to score a minimum of 60% on the practical exam to pass the course (grade of C- or better). Students who fail to do so and are otherwise passing the course will be given a second opportunity to pass the practical exam at the end of the term with a 10% penalty. Final grades will be based on the following weighted distribution:


 20%  Comprehensive final exam
 20%  Two in-class exams (10% each)
 15%  Lab programming practical exam
 5%  Homework (weighted as indicated in assignment)
 40%  Programming projects (weighted as indicated in assignment)


Final grades are based on the final weighted percentage with some adjustments depending on class distribution. Historically, the A/B line falls around 88% +/- 2% with subsequent grade levels every 10%.

Missed classes, Missed Exams, Late Projects, Late Homework

Homework and project assignments are due at the instructor's office and/or submitted on-line by 5pm on the date specified. Any assignments arriving after 5pm are considered late. Automatic extensions of up to three days are allowed with the following late penalties:


 10%  if handed in by 5pm, one day late
 20%  if handed in by 5pm, two days late
 30%  if handed in by 5pm, three days late


Unexcused late work will not be accepted for credit after three days after the due date without prior arrangements. For the purposes of counting days, Friday 5pm to Monday 5pm is considered one day. Please note that the purpose of the automatic late extension is to allow students leeway when needed. It is usually better to hand in something late and completed than on-time and incorrect. However, chronically handing in late submissions will lower your final grade.


Valid excuses for missing exams and handing assignments in late include illness, family emergencies, religious observances, official UE events such as varsity games and concerts, etc. They do not include (most) work conflicts, studying for other classes, staying home an extra day over the weekend, etc. In general, an excused absence is one caused by circumstances beyond your control.


The instructor will rely on your integrity on getting work excused. If you have a valid excuse, put it in writing, sign your name to it, and give it to the instructor. For religious observances and official UE events, you must inform the instructor that you will be absent before the absence occurs, otherwise it will be considered an unexcused absence.


Excused work must be made up within one calendar week from the original due date. The late penalty will be applied if this is not done. Exceptions will be made for serious or prolonged illness, or other serious problems. Please note: It is your responsibility to take care of missed or late work.

Attendance Policy

Attendance is important and expected. Attendance records will be maintained in accordance with Federal Law, but generally, they will not be used in the determination of grades except in borderline cases. However, the instructor reserves the right to reduce a final grade in this course for excessive absences. Students will be warned prior to such action. Students are responsible for all material covered in class. If you miss a class, find out what was covered from another student. Most handouts are on-line; follow the links on the course home page noted above.

Honor Code

All students are expected to adhere to the University's Honor Code regarding giving and receiving authorized aid. Three specific guidelines are in force for this course. If there is any doubt as to whether assistance is acceptable, consult the instructor.

Schedule

Here is a tentative schedule showing the daily reading assignments for this term. Adjustments will be made as needed.


Week of Monday Tues Wednesday Thur Friday
1/09
  Introduction
UNIX, g++, make
  C string tutorial
argc, argv
1/16 MLK, Jr. Day
No classes
  File streams
  Chapter 1.1-1.5
ADTs & Classes
1/23 Chapter 1.7-1.8
C++ strings
  Chapter 2.1-2.3
Exception handling
String streams
  Chapter 2.4
Overloading
1/30 Chapter 3.1-3.2
Selection sort
Search
  Chapter 3.3-3.4
Algorithm analysis
  Chapter 3.6
Recursion
2/06 Chapter 3.7
Recursion
  Chapter 3.5, 4.1-4.3
Templates
Vectors
  Chapter 4.3-4.4
Using vectors
Insertion sort
2/13 Exam 1 Review

  Exam 1
Material to 2/13
  Chapter 5.1-5.2
Pointers
Dynamic arrays
2/20 Chapter 5.1-5.2
Multi-dimensional
dynamic arrays
  Chapter 5.3-5.4
Dynamic classes
  Chapter 5.5-5.6
Dynamic classes
2/27 Debugging, gdb
6pm-8pm Practical
Exam, KC-267
  Class canceled
Instructor out of
town
  Class canceled
Instructor out of
town
3/06 Spring Break
No class
  Spring Break
No class
  Spring Break
No class
3/13 Chapter 6.1-6.2
Lists, Iterators
  Chapter 6.3-6.4
List operations
  Chapter 7.1-7.5
Stack ADT
3/20 Chapter 7.4-7.5,
8.1-8.3
Stacks, Queue ADT
  Chapter 8.4-8.5
Queues
  Chapter 9.1-9.3
Linked lists
3/27 Chapter 9.4
Using linked lists
  Exam 2 Review

  Exam 2
Material from
2/17 to 3/29
4/03 Chapter 9.5-9.6
Doubly-linked lists
  Chapter 10.1-10.3
Binary trees
  Chapter 10.3-10.4
Traversing binary
trees
4/10 Chapter 10.5
Binary search trees
BST ADT
  Chapter 10.6-10.7
Using BSTs
BST class
  Easter break
No class
4/17 Easter break
No class
  Chapter 14.1-14.2
Heapsort
  Chapter 8.6, 14.3
Priority queue ADT
4/24 Chapter 15.1
Quicksort
  Chapter 15.1
Mergesort
  Chapter 15.1
Comparing sorting
algorithms
5/01 Last day of class
Course review
 

 

5/08   Final
Exam
2:45pm
     



Converted using latex2html on Tue Jan 10 15:50:09 CST 2006