EECS168 09:Syllabus
| Navigation | 
|---|
| Home | 
| Information | 
| 
 Syllabus  | 
| Classwork | 
Spring 2009 Syllabus
Course Description
Problem solving using a high level programming language and object oriented software design. Fundamental stages of software development are discussed: problem specification, program design, implementation, testing, and documentation. Introduction to programming using object oriented language: using classes, defining classes, and extending classes. Introduction to algorithms and data structures useful for problem solving: arrays, lists, files, searching, and sorting. Student will be responsible for designing, implementing, testing and documenting independent programming projects. Professional ethics are defined and discussed in particular with respect to computer rights and responsibilities.
Corequisite
MATH 104.
Textbook
Problem Solving with C++ (7th Ed), Walter Savitch, Addison Wesley
Class Objectives
The goal of this class is to develop fundamental computer-based problem solving skills in the following three areas:
- Software Development - The specification, design, implementation, testing, and documentation of software to solve specific problems.
 
- Object Oriented Programming - The syntax, semantics, and use of the basic features of a typical object oriented programming language (e.g. C++).
 
- Algorithms and Data Structures - Basic methods for storing and manipulating data to solve specific problems (e.g. arrays, lists, binary search, sorting).
 
General Course Information
- Course-related questions - Questions dealing with projects and laboratory assignments are to be directed first to one of the GTAs. Feel free to see whichever one is available when you need help. If you are still having difficulty after talking with a GTA, see the instructors for help. In addition to questions related to projects and other laboratory work, the GTAs can help you with any course-related question, whether it is about the lectures or laboratory assignments.
 
- Development Environment - All programs will be developed in C++ on the departmental linux systems. If you use another C++ development environment at home or elsewhere, it is your responsibility to make sure the code you submit compiles and runs correctly in the linux environment used in the lab. If it does not, your project will not be considered submitted and you will be given no extra time to make corrections.
 
- Attendance - Both the lab and lecture sessions are important and integral parts of this course. Laboratory attendance is mandatory. If you have a legitimate excuse to miss a lab, contact me and your GTA for approval. If you miss a lab due to illness, bring a doctor's note to the instructor and GTAs, and we will record the absence as excused. You will not be penalized for excused absences.
 
- One unexcused absence will result in a six point reduction from the student’s final grade and zero for the missed lab, no make-up.
 
- Three unexcused absences will result in a failing grade for this course
 
Regular lecture attendance is required for your success in the course. We do not plan on taking regular attendance in lectures, but we reserve the right to start doing so at any time if we believe there is an issue. You should plan on attending them all. Excessive absences will result in a lower grade.
- Announcements - You are responsible for all announcements we make in class, such as information about exams, quizzes, projects, changes in the syllabus etc.
 
- Cheating - Cheating and Plagiarism will not be tolerated and will be treated severely whenever found. Unless an assignment explicitly states otherwise, all work (projects, homework, and exams) must be strictly your own. Sharing your work or copying is cheating, and submitting a work that is not all yours is also considered cheating. Any cheating will result in an F for the course for all parties involved. Reports of such detected academic misconduct will also be made to your major department, school/college, and university, which oftentimes will result in more serious sanctions.
 
Grading
Grades are based on two midterm exams, quizzes, the project, and laboratory work (including lab assignments). The final grade is made up of the following:
Midterm exam:	20% each
 
Quizzes: 	15% 
Lab Work: 	20% 
Project: 	25% 
A: 90 – 100 B: 80 – 89 C: 70 – 79 D: 60 – 69 F: 0 – 59
- Exams - There will be two mid-term exams. Exams will be conducted in class (close book).
 
- Quizzes - A total of 6 quizzes will be given throughout the semester. Each quiz will take 20 minutes, given either at the beginning of lecture or during the last 20 minutes of lecture. The dates and times of quizzes will not be announced in advance.
 
If you have a valid university-approved excuse for missing a quiz, you may make up the missed quiz provided that you provide me with written documentation. You must email me within 24 hours of the missed quiz to schedule a makeup. You will receive a zero for any missed quiz (e.g., do not show up etc.). We will drop the lowest quiz score.
- Labs - The purpose of the labs is to give you an opportunity to implement various concepts covered in class, thereby learning them more deeply than is possible simply by reading the book and attending lectures. The laboratory setting allows you to ask questions of the GTAs and your fellow students, and pretty much work until the exercises are complete. But completing the labs - just like reading the book and attending lectures – does not guarantee that you have fully mastered the material. It is your responsibility to ensure that you have fully understood the lab material as well as the course material on which the lab is based. Do not fall into the trap of leaning too heavily on help from your classmates. Experience has shown that, while lab grades often average as high as 80-90%, exam grades typically are much lower. Exam averages are typically in the 70s, and scores much lower are not uncommon. Complete mastery of the material requires both proficiency in coding as well as a thorough understanding of the fundamentals.
 
Note: You cannot pass the course (i.e., get a D or better) unless you have at least a 60% average in BOTH the lab AND the exam portions of the course.
Your lab grade will be based on your attendance, participation, and completion of lab assignments. The lab assignments typically consist of programming problems. The small projects are designed to be done in the lab. You will be given up to 24 hours after the lab to finish the work, but you must attend the lab in order to get the assignment and be permitted to submit it. By contrast, the larger programming assignments are designed to be performed outside of the lab. You will normally have one or two weeks to complete them. Take-home assignments will compose 15% of your grade, and the in-lab assignments, attendance, and participation will make up 5% of your grade.
- Homework Grades - A program that will not compile will earn you at most 30% of the points. A program that compiles but is clearly very far from being complete will earn you at most 50% of the points.
 
- Due Dates - Indicated on each homework assignment page is its due date. Programming assignments must be turned in by this due date in order to be eligible for full credit. Programming assignments may be turned in up to one week later with a 30% penalty. That is, the programming assignment will first be graded as if it were turned in on time. Then 30% of the points you would have earned will be deducted. No programming assignment will be accepted which is either (i) more than one week late, or (ii) not submitted by 11:59pm the day before Stop Day. Each programming assignment that you do not turn in will lower your final grade by one-half letter.
 
- Appeals - Should you wish to appeal a grade that you have received on a quiz, laboratory assignment, exam, or anything else, you must do so within one week of receiving the graded item. In the case of items such as exams or quizzes which are handed back in class, you will have one week from the day they were handed back in class, regardless of whether you were in class that day.
 
- Projects - On the final day of your lab, you will complete an in-class programming project. You will be given the full lab period (one hour and fifty minutes) to complete the assignment. The projects will be closed-book, closed-notes, and performed individually.
 
Disability Services
Any student in this course who has a disability that may prevent him/her from fully demonstrating his/her abilities should contact me personally as soon as possible so we can discuss accommodations necessary to ensure full participation and facilitate the educational opportunity.
The staff of Services for Students with Disabilities (SSD), 135 Strong, 864-2620, coordinates accommodations and services for KU courses. If you have a disability for which you may request accommodation in KU classes and have not contacted them, please do so as soon as possible. Please also see me privately in regard to this course.
Important Dates
January 15, Thursday: 			First Day of class 
February 5, Thursday:			Last day to drop a class online
March 3, Tuesday:			Exam-1  
March 16, Monday:			Spring break begins 
March 22, Sunday:			Spring break ends 
April 14, Tuesday:			Exam-2 
May 7, Thursday:				Last day of classes
| Week | Dates | Topic | Reading | 
|---|---|---|---|
| 0 | 1/15 | Administrative; Computers, Problem Solving | Ch. 1 | 
| 1 | 1/20-1/22 | C++ Basics | Ch. 2 | 
| 2 | 1/27-1/29 | C++ Basics; More Flow of Control | Ch. 2, 3 | 
| 3 | 2/3-2/5 | More Flow of Control; Functions | Ch. 3, 4 | 
| 4 | 2/10-2/12 | Functions | Ch. 4 | 
| 5 | 2/17-2/19 | More Functions | Ch. 5 | 
| 6 | 2/24-2/26 | More Functions | Ch. 5 | 
| 7 | 3/3-3/5 | Exam 1; I/O Streams | Ch. 6 | 
| 8 | 3/10-3/12 | I/O Streams; Arrays | Ch. 6, 7 | 
| 3/16-3/22 | Spring Break | ||
| 9 | 3/24-3/26 | Arrays | Ch. 7 | 
| 10 | 3/31-4/2 | Strings & Vectors | Ch. 8 | 
| 11 | 4/7-4/9 | Pointers & Dynamic Arrays | Ch. 9 | 
| 12 | 4/14-4/16 | Exam 2; Defining & using classes | Ch. 10 | 
| 13 | 4/21-4/23 | Defining & Using classes | Ch. 10 | 
| 14 | 4/28-4/30 | Recursion | Ch. 14 | 
| 15 | 5/5-5/7 | Recursion | Ch. 14 | 
| 16 | 5/12-5/14 | Review; Programming Project |