CS-173

Intermediate Computer Science

Description

This course will build on the problem-solving and programming skills you acquired in CS-109, CS-110 or CS-111, giving you the foundations for later work in Computer Science. You will learn the formal aspects of software development by starting with Python (with which you are expected to be very familiar) and transitioning to 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 that data.

Course topics are listed below, and include algorithm analysis , common abstract data types, C++ and object oriented programming, and basic algorithmic techniques.

Updates

  • Homework Extension Policy: A student may grant themselves two extensions over the semester, applicable only to Homework sets (i.e.. not NextClass assignments).  Each extension is a 3-calendar day extension.  This is in lieu of the one extension of a week in duration.
  • Resubmission Policy: Regardless of grade, a student may resubmit a Homework assignment with a weighted final score calculated at 75% of the original score and 25% of the regrade score.  It is still the case that all students must successfully obtain 80% on an eventual submission on all Homework sets.
  • The categories of NC/Quiz and Homework, both being point based and point values based on relative work involved, will be aggregated together for the combined 50% of the class grade.  This allows the significant work and time that students spend on NextClass assignments to have greater  weight in their overall grade.

Final Exam

Section 01: E — Monday, May 12, 9 - 11 a.m.

Section 02: F — Saturday, May 10, 2 - 4 p.m.

Textbook

The following textbook is required for the course:

Data Structures and Algorithms Using Python and C++ by David M. Reed and John Zelle. ISBN 978-1-59028-233-5

In addition, you would be well advised to pick up a good reference on C++.  My favorite, because of the incredible detail of its coverage and its carefully crafted examples, is “C++ Primer Plus (6th ed.)" by Stephen Prata.

Coursework

The primary forms of coursework in CS-173 include:

  • Short turn-around exercises, called “NextClass” exercises.  Also included in this category will be quizzes to assess current topics, readings, and lectures.  All of these exercises will be counted for their completion, and a subset will be graded more rigorously.  Expect at least two items in this category each week.  I will drop the lowest NC/Quiz grade and will give “extra credit” opportunities to further help in this area.
  • Longer turn-around homework projects, which will include both programming and some analysis.  These are typically given out each week and with approximately a week until due date.  These will be a mix of individual work and work in teams of two, where the team composition will be chosen randomly.  Policy on grading and acceptable performance on these homework projects is detailed below.  Not all projects will take the same amount of out-of-class time so always start early. These assignments, submitted electronically, are due at 11:59 p.m. on the stated due date.
  • There will be three “midterm” exams during the semester, spaced at four week intervals.  These will focus on material covered since the last exam, but much of our work is cumulative, so there may be some forms of repetition in subsequent exams.  There are no makeup exams and alternate scheduling only occurs for a University-sanctioned excuse.
  • There will be a cumulative Final Exam.  Final exams are mandated by the University to be given at the scheduled time, so it is your responsibility to ensure that no end-of-semester travel plans interfere with your taking the final at its appointed time.

Grade Determination

Category Weight
NC/Quiz 10%
HW Project 40%
Midterm 30%
Final Exam 20%


Policies

Homework Project Policy and Responsibility

NB: You must satisfactorily complete all homework project assignments in order to pass this course.  If you receive a grade below 80% on an assignment, I will give it back to you to fix.  The second version will be due 3 calendar 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 80% or above, you will not have to work on it any subsequent times.  Also note that any program that does not compile or is otherwise not operationally testable will not meet this mark.

Once during the semester, you can give yourself a 1-week, no-questions-asked extension for a homework project.

On any team homework project, both participants are expected to know all aspects of all of the code.  I may give quizzes or NextClass assignments to assess topics particular to a homework project, and could follow up if significant disparity between a homework submission and demonstrated knowledge on a Quiz/NextClass results.

You may generally discuss strategy and techniques for programming problems with other students in the class, but these should be conceptual (communicate in _diagrams_), and the programs must be on your own. You should never leave a collaboration having written down code generated in the discussion.  Sitting next to someone in the lab while you discuss/point out/ help debug one another’s code is absolutely unacceptable and is a violation of academic integrity.  I possess and run programs that measure the “closeness” of submitted code, so it is easy to tell when unacceptable collaboration is occurring.  In such cases, I am obligated to report the instance to the office of the provost for action.

Attendance and Participation Policy and Responsibility

I expect a high level of participation by all the students in this class.  True learning requires an active role and regular attendance in order to engage and master the material.  Thus, I expect your attendance at every class meeting.  Besides the direct grade-effect on quizzes and and in-class activities that become NC exercises, a portion of the grade for NC/Quiz over the semester will allow me to reward the students who participate fully.

You are responsible for all reading assignments, whether or not the material is also covered during class time, as well as for announcements and decisions made relative to coursework that may occur during classtime.  If you miss class, it is your responsibility to get notes and information on the material that was conveyed during class.

Academic Honesty

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 code, ideas, and information that are obtained externally. Neither ignorance nor carelessness is an acceptable defense in cases of plagiarism. 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.

For further information about the Code of Academic Integrity see http://www.denison.edu/forms/code-of-academic-integrity.

Disability Accommodation

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 his or her specific needs. I rely on the Academic Support & Enrichment Center in 102 Doane to verify the need for reasonable accommodations based on documentation on file in that office.  Accommodations such as time and a half for exams must be arranged ahead of time.

© Thomas Bressoud 2015