Computer Science 173
Intermediate Computer Programming
Spring, 2005
Intermediate Computer Programming
Spring, 2005
| Instructor: | Jessen Havill |
| Office: | Olin 208 |
| Phone: | 587-6582 |
| E-mail: | havill@denison.edu |
| Web site: | http://personal.denison.edu/~havill |
| Office Hours: | Please see the schedule to the left of my office door. |
Description
In this course, we will build upon the fundamental skills you acquired in CS 171. We will talk more formally about software development, using a new (to you) programming language called C++. A unifying theme in this course is the Abstract Data Type, a formal specification of a logical object containing both data and operations on this data. These topics will give you a strong foundation for later courses in Computer Science.
Required and Optional Texts
C++ Plus Data Structures, Third Edition by Nell Dale C++ Language Fundamentals: A Laboratory Course by Nell Dale An Introduction to Linux at Denison by Jessen Havill (available on my web page) A good C++ reference book like one of the following:
- C++: The Complete Reference by Herbert Schildt
- Starting Out with C++ by Tony Gaddis
- C++: How to Program by Deitel & Deitel
- ++ For Java Programmers by Timothy Budd
Web Resources
I will maintain a class web page containing reading assignments, homework assignments, answer keys, sample programs, and other useful resources. Refer to this page daily for updated information. The class home page can be found at http://personal.denison.edu/~havill/173
Attendance and Other Responsibilities
In order to do well in this class, it is imperative that you take an active role in the learning process. I cannot simply transfer knowledge to you. Rather, learning must be an active process in which the instructor is but an important resource. This is especially true with programming; proficiency requires loads of hands-on practice.
Your attendance is expected at each class meeting. It is in your own best interest to attend class, as your grade will almost certainly suffer indirectly if you choose not to attend. In addition, I reserve the right to consider attendance in instances of borderline grade assignments. Of course, excused absences (sickness, family emergencies, varsity athletic participation) will not be held against you. Scheduled absences should be communicated to me well in advance.
You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in class whether or not you are present. If you must miss a class, be sure to check with me or another student to get what you missed. Exams will be given in class on the day scheduled and may not be made up.
It is very important that you keep up with the assigned reading. Read your book on a daily basis. Be especially sure to read the material in the appropriate chapter before coming to class so you will be ready to ask questions. All reading assignments are listed on the class web page. The material in the course is, by necessity, cumulative. Be warned that if you fall behind, you will not be able to catch up easily.
Homework Policies
There will be a number of programming assignments given during the semester which will be due in class on the date specified. No late homework assignments will be accepted, unless arrangements have been made with me well in advance. Since it will most likely not be obvious how long an assignment might take, you are well advised to start early. Like other classes at Denison, it is expected that you devote at least 2-3 hours to these assignments for each hour of class time.
You must satisfactorily complete all programming assignments in order to pass the course. If you receive a grade of 80 or below on an assignment, I will give it back to you to fix. The second version will be due 3 days after I hand it back. Your final grade for the assignment will then be a weighted average of the two scores: 75% of your first score plus 25% of your second score. As long as the second score is above 80, you will not have to work on it a third time.
You may generally discuss programming problems with other students in the class, but the programs themselves must be your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. When it comes time to write your programs, you are on your own. Sitting next to someone in the lab while you discuss each line of code is unacceptable. Keep in mind that it is quite easy for me to tell when two students have been working too closely. In such cases, I am obliged to report the instance to the Associate Provost.
You may not get help from students outside the class, with the exception of the student tutors, whose hours will be posted shortly. If you have questions, ask the tutors, or come see me and I will be happy to help. You are also quite welcome to send me e-mail or call if you would like to discuss an assignment.
Grade Determination
The following relative weights will be used to determine your final grade:
Homework Assignments 35% 3 Mid Term Exams 15% each Final Exam (May 10 at 9 am) 20%
General Course Topics
- Programming in C++
- Using the Linux Operating System
- Software Engineering Principles
- Abstract Data Types (ADTs)
- List, Set, Stack, and Queue ADTs
- Binary Tree ADT (if time permits)
- Pointers and Linked Lists
- Recursion
- Sorting Algorithms
- Introduction to Algorithm Analysis
- Programming in LISP
Accommodations
Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss his or her specific needs.Ê I rely on the Office of Academic Support to verify the need for reasonable accommodations based on documentation on file in their office.
Have a great semester! If you need anything, please let me know.
