CS:2820 Object-Oriented Software Development (Fall 2016)


Note: There is limited seating in these rooms. Students may not freely choose to attend the other section (the one they are not registered for) without permission from the instructor.

Instructor and Teaching Assistants

Grading System and the Use of +/-

Grades in this course will use + or - modifiers. A grade of A+ will only be given in an extraordinary situation. Grade Inflation is serious problem in higher education. Grades will be determined in part by a curve, which means that absolute scores (such as greater than 89 means letter grade A) will not be used. Instead, the scores of all students will be statistically analyzed and the instructor will compare student performance to previous semesters of this and similar courses to determine letter grades. Because grading can be imperfect, the goal is to ensure that students with approximately the same score get the same letter grade (including +/-) and that there is sufficient spacing between scores of students with different grades to counteract any potential flaws in evaluation.

Assignments and Percentage of Final Grade

These are the categories of evaluating student performance and their relative weighting for calculating scores to determine final grades

  1. Discussion section assignments (15%)
  2. Examinations and quizzes (40%)
  3. Programming assignments (homework) and Project Artifacts, which includes project assignments, contributions to source repositories, in-class presentations and reports. (45%)

The points awarded for different evaluation items (assignments, quizzes, reports, etc) will vary depending on degree of difficulty and degree of importance relating to course goals (see below). Totals for each category will be normalized (scaled) to achieve the desired weighting (15%, 40%, and 45%). ICON will be used for turning in some assignments; the ICON system recently changed to new software, so expect something different if you've used the old system.

Computing Resources

Pages will be added to the course website describing university computing, how to find and use Java, how to turn in assignments, and helpful online references. Many students who have their own computers like to install Java and other software, such as project-related packages. This can be useful, however we (instructor and teaching assistants) are not expert on every possible computing platform that students may have, so there is no guarantee we can answer all questions about how to install things on personal devices. For the university computing facilities (particularly the CLAS computers) there is a support staff, frequent backups of files, and an installed base of software.


CS:2820 is a four-credit course (4 semester-hours). The general expectation of coursework in this university is that two hours of academic work should accompany one hour in class, which means that around eight hours of work per week, on average, can be expected for this course. As stated elsewhere in this syllabus, attendance to lectures and discussion sections is important, not least because there can be quizzes during lecture times and assignments to be completed during discussion sections.


There will be a midterm examination outside of class hours, so it is important to plan for this now:

Final examination:

Quizzes will be in-class, but not announced ahead of lecture time.

Discussion Sections

A significant part of this course will occur in the discussion sections each Friday. Attendance to lectures and discussion sections will increase in importance as the semester proceeds. For group exercises, later "makeup" work cannot replicate a group experience precisely. The first discussion section (26th August) will have the first assignment, to be turned in during the discussion section.

Goals for CS:2820

There are two goals for this edition of the course. First, the course covers object-oriented programming in Java in order to explore design of software based on classes, objects, and patterns. Second, the course introduces some software-engineering concepts commonly used in teams that design, produce, test, and maintain software.

The first half of the course is about the basics of programming using objects, methods, interfaces, class hierarchies, and libraries of types. The coverage of Java will not be extensive: most students will have used Java in previous courses. Java is just one of many languages highlighting object-oriented programming. Similarly, the course will not deeply expose object-design patterns, though some important patterns will be part of lectures and exercises.

The second half of the course will emphasize design and production techniques. There will be group projects in which students apply object-oriented design and demonstration communication skills that are valuable in team production of software.

Outcome Expectations

Students who get a passing grade in this course are expected to show aptitude in taking a given program specification and producing code that defines classes, combines objects, libraries, and patterns to satisfy the specification. Students who get a passing grade will also have demonstrated, through quizzes and examinations, knowledge of object-oriented technology and basic software-engineering concepts.

Students who get better than a passing grade will have shown (in addition to the above), through assignments and participation in team projects, good knowledge of object-oriented design and implementation, and ability to communicate technically about software.

Students who get highest grades will (in addition to the above) demonstrate excellent object-oriented design and code skills, and show leadership and influence, where appropriate, in team projects.


The subject of cheating in university courses is a required syllabus topic. At this level of course, students will have seen prohibitions and policies on cheating many times, because of all the prerequisites. However cheating is related to this course's topics in several interesting ways.


The first half of the course may be familiar to students with experience in Java. Such students might only need to consult textbooks they already have that describe Java. For students new to Java, some introductory textbook will be helpful. The authoritative reference book on Java is online,

The PDF is more readable, the HTML is better for navigation, opening multiple tabs in a browser, and so on. Either way, this reference is likely too dense for introductory learning. For beginners, it's better to look at tutorials.

However, learning from tutorials may not be the best organization of material to see many topics. Here is an online, free textbook that you may use:

For selected parts of the Java language, lectures may need reading material about specific features, such as generic types, static initializers, annotations, and anonymous classes. To supplement lectures, specific online material or tutorials will be recommended reading.

Beyond the Java language, even in the first half of the course, we begin to look at patterns of software design. A seminal book on patterns is the "Gang of Four" (GoF) book, Design Patterns: Elements of Reusable Object-Oriented Software by Gamma, Helm, Johnson, and Vlissides. We won't go into sufficient depth to use this or alternative books on patterns; there are sufficient online sources about the patterns for this course, which will be recommended reading when these topics are encountered.

In the second half of the course, it will be useful to have a textbook that includes recent terminology about software engineering processes. The book we will use for this is

The electronic edition can be had for around ten dollars.

Syllabus Insert: Standard Iowa Required Syllabus Items

Administrative Home

The College of Liberal Arts and Sciences is the administrative home of this course and governs matters such as the add/drop deadlines, the second-grade-only option, and other related issues. Different colleges may have different policies. Questions may be addressed to 120 Schaeffer Hall, or see the CLAS Academic Policies Handbook at http://clas.uiowa.edu/students/handbook

Electronic Communication

University policy specifies that students are responsible for all official correspondences sent to their University of Iowa e-mail address (@uiowa.edu). Faculty and students should use this account for correspondences (Operations Manual, III.15.2, k.11).

Accommodations for Disabilities

The University of Iowa is committed to providing an educational experience that is accessible to all students. A student may request academic accommodations for a disability (which includes but is not limited to mental health, attention, learning, vision, and physical or health-related conditions). A student seeking academic accommodations should first register with Student Disability Services and then meet with the course instructor privately in the instructor's office to make particular arrangements. Reasonable accommodations are established through an interactive process between the student, instructor, and SDS. See http://sds.studentlife.uiowa.edu/ for information.

Academic Honesty

All CLAS students or students taking classes offered by CLAS have, in essence, agreed to the College's Code of Academic Honesty: "I pledge to do my own academic work and to excel to the best of my abilities, upholding the IOWA Challenge. I promise not to lie about my academic work, to cheat, or to steal the words or ideas of others; nor will I help fellow students to violate the Code of Academic Honesty." Any student committing academic misconduct is reported to the College and placed on disciplinary probation or may be suspended or expelled (CLAS Academic Policies Handbook).

CLAS Final Examination Policies

The final examination schedule for each class is announced by the Registrar generally by the fifth week of classes. Final exams are offered only during the official final examination period. No exams of any kind are allowed during the last week of classes. All students should plan on being at the UI through the final examination period. Once the Registrar has announced the date, time, and location of each final exam, the complete schedule will be published on the Registrar's web site and will be shared with instructors and students. It is the student's responsibility to know the date, time, and place of a final exam.

Making a Suggestion or a Complaint

Students with a suggestion or complaint should first visit with the instructor (and the course supervisor), and then with the departmental DEO. Complaints must be made within six months of the incident (CLAS Academic Policies Handbook).

Understanding Sexual Harassment

Sexual harassment subverts the mission of the University and threatens the well-being of students, faculty, and staff. All members of the UI community have a responsibility to uphold this mission and to contribute to a safe environment that enhances learning. Incidents of sexual harassment should be reported immediately. See the UI Office of the Sexual Misconduct Response Coordinator for assistance, definitions, and the full University policy.

Reacting Safely to Severe Weather

In severe weather, class members should seek appropriate shelter immediately, leaving the classroom if necessary. The class will continue if possible when the event is over. For more information on Hawk Alert and the siren warning system, visit the Department of Public Safety website.

Syllabus (last edited 2016-11-07 22:29:35 by Ted Herman)