SYLLABUS

CS 202 Programming Systems

Winter 2006

 

 

Prerequisite:  CS163

 

Instructor:                 Karla Steinbrugge Fant,              

E-mail:                       karlaf@cs.pdx.edu,                         

Office:                        Fab 120-19                                    

Message Phone:             503-725-5394                                            

 

Karla's Office hours:             Tuesday/Thursday 9:00-9:50am

                                                Other times may be arranged via appointment

 

Text:        C++ Primer Plus, Stephen Prata

Thinking in Java, Bruce Eckel

 

 

Clean Copy: C++ Lecture notes and Lecture slides

 

System Requirements: UNIX using g++ (either from odin or the cs machines)

 

UNIX Requirements: All programs are to be implemented and tested on odin or the cs unix systems. Programs must be submitted in both hardcopy and email form. Diskettes will not be accepted.

 

Questions?

If you have questions, the best approach is to either make use of the office hours listed on this syllabus, or send electronic mail. Please be advised that questions should be clearly formulated and it should be clear from the question that you have attempted to solve the problem on your own. Do not, unless explicitly asked by the Instructor, simply email your program to the teacher and expect a response! Instead, talk about what problems you are encountering and what you have done to make progress. Remember, my email address is karlaf@cs.pdx.edu.

 

Since I received 100’s of email messages, make sure to put “202 Question” in the subject heading.


Course Description:  

Students will become familiar with the language and operating system environment used in most upper division courses in the Computer Science major curriculum. Use of the file system, operating system calls, and shell-level programming; low-level debugging of high-level programs. Programming exercises will include applications of data structures and memory management techniques.

 

Goals:

The primary goal in CS202 is to prepare students for programming in the upper division 3xx and 4xx level classes. To achieve this goal, CS202 focuses on three areas: object oriented programming, advanced C++, and an overview of how Java relates to what we have learned in C++.

 

The majority of the term will be spent introducing students to object-oriented programming while learning advanced C++ syntax. Students will understand the difference between procedural abstraction and object oriented solutions. Students will spend the term designing and programming with inheritance hierarchies, with the goal of solving problems efficiently: producing high quality, robust, maintainable as well as efficient object oriented solutions. This will provide students with the chance to experience object oriented design and programming. Programming assignments will focus on advanced data structures while at the same time accomplishing these other goals. Students will learn about C++'s function overloading, operator overloading, copy constructors, and be introduced to inheritance.

 

Java skills developed include writing two programs using advanced data structures in Java with strict requirements to follow OOP guidelines – all data members private, no friendly access, and complete implementation of functions required to handle issues of deep versus shallow copies and compares. Students learn the relationship between the two languages and the similarity of Java’s references to pointers.

 

Then, the rest of the term compares Java to C++, where we will work through example projects in both languages.

 

 

Programs/Individual Projects:

• Course requirements consist of five programming assignments in C++ and Java.

 

• 20% of each program's grade is based on the program style, comments, and documentation provided with the program.

 

• 10% of each program's grade is based on a written discussion of how the unix debuggers (gdb, xxgdb, ddd, etc.) assisted them in their development. Each assignment must have an accompanying one full page (8 1/2 x 11) debugger write up. This write up must describe experiences with the debugger, how it assisted code development, or how it could be used to enhance the programming experience.

 

• 10% of each program’s grade is based on a written discussion of the major design consideration encountered when solving the specified problem. In the design considerations, students are required to discuss what the main design considerations are, why they are the main design considerations, how they are solved, and why the approach taken is valid. Think in terms of analyzing your solution! This means discussing the efficiency of the approach as well as the efficiency of the resulting code.

 

• In addition, each student will be required to submit a typed term paper. The paper must explore how well your C++ programs have met our objectives to become object oriented programmers! Discuss how the designs meet the criteria set out for OOP, and how they can be improved. The paper must be a minimum length of 4 pages and a maximum of 7 pages (double spaced, 12 point font). Tables and sample code MUST be attached as exhibits and should not be part of the 4-7 page count.

 

• Each student is expected to submit only original work.  Any person who violates this will receive a grade of F for the course and a letter will be sent to the head of the CS Department.  Note that the Instructor may ask any student to explain his/her assignment verbally.

 

• Your programs will not be graded if I don’t receive both hardcopy and emailed copy of your programs!

 

• Programs consisting of more than one file must be emailed using the following syntax:

 

      type: /bin/sh

at the prompt type: shar file1.h file1.cpp file2.cpp >prog1

      next, type control-d

 

   To email this archive, type the following. The double quotes are essential!

 

mailx -s “My Name - 202 Prog #1 Submission ” karlaf@cs.pdx.edu <prog1

 

 

 

Group Projects:

• Teams will be used in this class to become familiar and master the object oriented programming techniques. Teams, formed the second week of the term, are expected to meet together outside of class to critically analyze their designs.

 

• Teams will present their best object-oriented solution to the class in 20 minute presentations, where each member of the team must verbally participate. Presentations will be graded on the depth of material investigated/presented. Handouts are encouraged.

 

Late Assignments:

• Each assignment will be due during the first 10 minutes of class on the specified due date. Late assignments will be accepted the following class period for 10 points late. Programs will not be accepted after that – unless previously arranged with the Instructor.

 

• Partial credit will be given for incomplete work. However, 25 points will be automatically deducted for programs that cannot successfully compile and link.

 

 

Grades:

• Grades are based on the following percentages:

 

            Individual Programming Assignments             35%

            Individual Paper on OOP Program Design              5%

            Group Project                                                            10%

            Midterm                                                                   20%

            Comprehensive Final                                       30%

 

• Minimum Grade Requirements: For  C or better in this class, you must have a grade of 65% or better on the programming assignments and a grade of 65% or better on the examinations. In additional, grades must be received (above 40%) on each individual assignment, otherwise a failure will result – this means you can’t skip turning in a program or paper.

 

• Grading will be done near 90% (A), 80% (B), and 65% (C). However, exact break points for grades will depend upon the overall class results. For P/NP grade option, a "pass" grade requires an overall class grade of at least a C.

 

 

 

Policies:

• See instructor in advance if you have a conflict with the midterm (or quizzes); the final is given only at the scheduled time. It is against department policy to give final exams early (no exceptions!). Exams will all be in-class (no take home exams allowed) and closed book. All makeup exams will be proctored through the testing services center and cost students a fee ($10).

 

• ATTENDANCE is not mandatory. However, you are responsible for anything that transpires during class. Therefore, make sure to get notes from someone (other than the Instructor) when you are unable to attend. However, BORDERLINE GRADE DECISIONS may be influenced by regular class attendance and participation in class discussions.

 

•    Remember, assignments are due during the first 10 minutes of class -- not at the end of class. Failure to turn assignments in on time will result in a zero for that assignment.

 

• CHEATING:  Each student is expected to submit only original work; programs must compile and must produce output consistent with test input.  Any person who violates these requirements will receive a grade of F for the course and a letter will be sent to the head of the CS Department.  Note that the instructor may ask any student to explain his/her program verbally.

 

   The work you submit must be your own. It is not acceptable to hand in assignments in which substantial amounts of the material was done by someone else. You must be especially careful that in the process of discussing problems with other students that they do not inadvertently end up using your work. You may not use code from textbooks or the web in your assignments for this class.

 

• Incompletes will be given only when a minimal amount of work remains to be completed, only for a valid reason and only for a fixed time period. Students must have a C average or better. Do not expect an Incomplete in this class!

 

• Withdrawal requests will be signed without question.

 

 • Students who attend class, turn in any homework, or take any of the examinations will not be given an X in the class for any reason.

 

• BORDERLINE GRADE DECISIONS may be influenced by regular class attendance and participation in class. This really can make a difference!

 

Try to Exceed my Expectations!