Meeting times: MWF 10:30–11:20, R 3:00 - 3:50

Instructor:Jessen Havill

Office:Olin 208


Office Hours:MWF 1:30-3,T 8:30-9:30, or by appointment (emailme)


In this course, we will build upon the fundamental programming and problem solving skills you acquired in your introductory CS course, with an emphasis on how to design larger and more complex programs. We will talk more formally about software development, migrating to 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, together with the mathematical background in Math 210, will give you a strong foundation for later courses in Computer Science.

Required Texts

Programming Abstractions in C++ by Eric Roberts, 2013.

An Introduction to Linux at Denison

Web Resources

The pages on this course web site ( contain a daily schedule with reading assignments, exercises, and exams, as well as links to other potentially useful resources. Bookmark the daily schedule page and refer to itdailyfor updated information.

Outside of class, we will usePiazzafor Q&A and discussion. When you have a question, instead of sending me an email, pleasepost it to Piazza. This way,everyone can benefit from the answer. You are also strongly encouraged to answer your classmates’questions on Piazza. If will answer them too but, if you see it first, answer it!

Attendance and Other Responsibilities

Youractive participationis absolutely essential to your success in this class. I cannot emphasize this enough. By simply attending class and doing a minimal amount of work, you will both cheat yourself of an education and very likely earn a poor grade.

It is very important that you keep up with coursework on adailybasis;consistency is the key.Like other classes at Denison, it is expected that you devote at least 3 hours outside of class for each hour of class time. Read your book on a daily basis (see the daily schedule), take notes, and do the examples and exercisesin front of a computer. We will use the reading as a starting point for each class discussion rather than rehash everything that you read the night before.

Yourattendanceis expected at each class meeting. Your grade will almost certainly suffer indirectly if you choose not to attend. In addition, I may consider attendance when assigning grades, especially in borderline situations. Of course, excused absences (sickness, family emergencies, varsity athletic participation) will not be held against you. Such absences should be communicated to mein advance. You are responsible for the content of reading assignments, lectures and handouts, as well as announcements and schedule changes made in classwhether 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.

Homework Exercises

There will be a number of programming assignments given during thesemester which will be due in class on the date specified. No late homework assignments will be accepted, unlessarrangements have been made with me well in advance. Since it willmost likely not be obvious how long an assignment might take, you arewell advised to start early.

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. Youmay have general conversations about problem strategies, but you mustleave 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 absolutely unacceptable. Keepin mind that it is quite easy for me to tell when two students havebeen working too closely. In such cases, I will report theinstance to the Associate Provost for disciplinary action.

You may not get help from students outside the class, with theexception of the student tutors.

Academic Integrity

Proposed and developed by Denison students, passed unanimously by DCGA and Denison’s faculty, the Code of Academic Integrity requires that instructors notify the Associate Provost of cases of academic dishonesty, and it requires that cases be heard by the Academic Integrity Board. Further, the code makes students responsible for promoting a culture of integrity on campus and acting in instances in which integrity is violated. Academic honesty, the cornerstone of teaching and learning, lays the foundation for lifelong integrity. Academic dishonesty is 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. Students must clearly cite any sources consulted – not only for quoted phrases but also for ideas and information that are not common knowledge. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. It is the student’s responsibility to follow the appropriate format for citations. Students should ask their instructors for assistance in determining what sorts of materials and assistance are appropriate for assignments and for guidance in citing such materials clearly.

You can find further information about Denison’s Code of Academic Integrity on Denison’s web site at

In this class, you may discuss problems with other students in the class, butwritten (and typed) work must be your own. In other words, you may talk about problems with your peers, but when it comes time to write your solutions, you (and your partner) 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 students have been working too closely. You may not get help from students outside the class, except for departmental tutors. If you have questions, come see me and I will be happy to help. You are also quite welcome to send me email or call if you would like to discuss an assignment.

Students found responsible for breaches of academic integrity may earn a failing grade for the course.

Grade Determination

The following relative weights will be used to determine your finalgrade:

  • Homework 50%
  • Exams 30%
  • Final Exam 20%

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.

Course Evaluations

At the end of the semester, you will be asked to evaluate this course and the instructor. These evaluations are an important tool for helping Denison faculty achieve and maintain excellence in the classroom; it will also help you reflect on your learning, participation, and effort in the course. A key purpose of course evaluations, then, is to constantly improve the level of teaching and learning at Denison by instructors and students. Your ratings and comments will also be included as one element of an instructor's overall teaching portfolio. Together with peer observations and other means of assessing teaching effectiveness, this portfolio will be considered by the instructor's colleagues and college administrators in making recommendations for contract renewal, tenure, promotion, and salary decisions.

Have a great semester! If you need anything, please let me know

Jessen Havill 2015