Intermediate Computer Programming
|Professor:||Thomas C. Bressoud||Phone:||587-5630|
|Office Hours:||See Bressoud Spring Schedule||Mailbox:||Olin 201|
|Meeting Times:||MTWF, 1:30-2:20pm, Olin 220|
|Final Exam:||F: Wed., Apr 30, 2:00-4:00pm|
In this course, you will study intermediate level computer programming principles and techniques. Specific course topics include recursion, sorting, dynamic memory allocation, basic data structures, software engineering principles, and modularization. The laboratory techniques developed in this course will be used repeatedly throughout later courses in the major.
The "jumping off point" of this course is the set of fundamental programming skills you acquired in CS 171. The use of both a new platform (Linux) and a new programming language (C++) will enable you to generalize from your 171 experience and build upon it. The focus of the course is not, however, on the platform or on the language, but on programming principles and practices that will give you a strong foundation for future courses in Computer Science. Software development will become more disciplined through the lab and programming projects. 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. The end goals of this course include a much deeper proficiency in a programming language, software engineering practice to give you confidence and process in developing programs, and using object techniques to realize implementations of abstractions.
- ADTs, Data Structures, and Problem Solving with C++, 2nd ed. by Larry Nyhoff, ISBN 0131409093
- Optional C++ Text/References:
- Starting Out with C++: From Control Structures through Objects, 5th ed. by Tony Gaddis, ISBN 0-321-40939-6.
- C++ Primer Plus, Fourth Edition, available online from Denison campus: Safari Books Online
- An Introduction to Linux at Denison by Jessen Havill
The first text is the primary textbook for the course. The second category provides in-depth instruction and reference for the C++ programming language and is recommended, although not a required text for this course. An online book is included as an alternate.
The third document is available as a PDF and can be printed or read online.
In addition to the textbook, we will be utilizing the TuringsCraft CodeLab for practice exercises. You will use a web browser to register for our section of the course. Registration costs just $10 for the C++ exercise corpus when used, as we are, as a transition language. Registration is accomplished through the TuringsCraft link given below. The access code for registering for our class section is: DENISO-9103-0
|TuringsCraft CodeLab registration|
|TuringsCraft CodeLab login|
Note when you log in that the course will say "Intro to CS", just like the CS-171 version. Just make sure you load the [Winter 2008] version of the CodeLab.
|Midterm Tests (2):||30%|
|Participation and Quizzes:||10%|
Course Web Page
A web page will be maintained for this course. The web page will include the schedule for the course, all reading assignments, programming assignments, example programs, and other useful information, including announcements to the class. I expect you to check the web page regularly.
Policies and Student Responsibilities
Participation and AttendanceIn general, we would like everyone to do their part to make this an enjoyable interactive experience. Hence in addition to attending class, we would like you to actively participate by asking questions, joining in our discussions, etc. Note that there is a significant portion of your grade attributed to class participation. Any day that you do not attend class, you (by definition) do not participate, and so be very careful about missing class, as it will affect your grade.
Your attendance is expected at each class meeting. Through the class participation portion of the grade, I will reduce your grade for absences. Up to 3 excused absences will be tolerated without affecting your grade. Such absences should be communicated to me in advance.
Readings and In-class Material
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, you are responsible to get what you missed.
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.
Exams will be given in class on the day scheduled and may not be made up. On rare occasions, and with a Univeristy sanctioned excuse, I may allow an exam to be taken in advance. See me as early as possible to discuss this.
There will be a number of written and programming assignments given during the semester which will be due on the date specified. I will grade late assignments, but with the following mandatory penalty.
Lateness Penalty up to 24 hrs 15% each day thereafter 10%
Note that these are not class days, but simply 24 hour periods following the due date/time. With these penalties in mind, if an individual situation comes up, you can make an informed decision about turning an assignment in late. I do not grant individual extensions. If an extension is warranted for some systematic reason, it will be granted to the entire class.
Any late assignments must be turned in by the last class of the semester. Given the late penalty, you should work hard to make sure that assignments are submitted on time. 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 3 hours to these assignments for each hour of class time. Homework assignments must be typed.
You may discuss homework problems with other students in the class, but written (and typed) work must be your own. In other words, you may talk about homework problems with your peers, but when it comes time to write your solutions, you are on your own. You may have general conversations about problem strategies, but you must leave these conversations without having written anything down. 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. If you have questions, ask the lab assistants, 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.
- 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
- Sorting Algorithms
- Introduction to Algorithm Analysis
The students and faculty of Denison University and the Department of Mathematics and Computer Science are committed to academic integrity and will not tolerate any violation of this principle. Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity.
Academic dishonesty is, in most cases, intellectual theft. It includes, but is not limited to, providing or receiving assistance in a manner not authorized by the instructor in the creation of work to be submitted for evaluation. This standard applies to all work ranging from daily homework assignments to major exams. Neither ignorance nor carelessness is an acceptable defense in cases of academic dishonesty.
As is indicated in Denison’s Student Handbook, available through mydenison.edu, instructors must refer every act of academic dishonesty to the Associate Provost, and violations may result in failure in the course, suspension, or expulsion. (For further information, see http://www.denison.edu/student-affairs/handbook/ar03s02s01.html)
Any student who thinks he or she may need an accommodation based on the impact of a disability should contact me privately as soon as possible to discuss your specific needs. I rely on the Office of Academic Support in Doane 104 to verify the need for reasonable accommodation based on documentation on file in their office.
Have a great semester! If you need anything, please let me know.