CS246 Object-Oriented Software Development
Fall 2017

Course Description

Introduction to object-oriented programming and to tools and techniques for software development. Designing, coding, debugging, testing, and documenting medium-sized programs: reading specifications and designing software to implement them; selecting appropriate data structures and control structures; writing reusable code; reusing existing code; basic performance issues; debuggers; test suites.

Course Objectives

Instructor's Name Office Location Contact Office Hours
Rob Hackman DC 2551 r2hackma at uwaterloo.ca Thursday 11:00am to 12:00pm
Thursday 3:00pm to 4:00pm
Abbas Heydarnoori DC 3501 aheydarn at uwaterloo.ca Wednesday 1:30pm to 3:00pm
Brad Lushman DC 3110 bmlushma at uwaterloo.ca Monday 12:00pm to 1:30pm
Wednesday 4:00pm to 5:00pm
Nomair Naeem DC 3111 nanaeem at uwaterloo.ca Friday 9:30am to 11:30am

ISA Office Location Contact Office Hours
Kristina Bayda MC4065 cs246@uwaterloo.ca Monday 2:00pm to 3:00pm
Tuesday 3:00pm to 4:00pm
Friday 2:00pm to 4:00pm
Martin Ma MC4065 cs246@uwaterloo.ca Monday 3:00pm to 4:00pm
Tuesday 12:00pm to 1:00pm
Friday 3:00pm to 5:00pm

ISA (Part Time) Office Location Contact Office Hours
Max Bardakov MC4065 cs246@uwaterloo.ca Thursday 5:30pm to 7:30pm
Yang Tian Zi N/A N/A N/A

ISC Office Location Contact
Chantelle Gellert MC4011 ccgeller@uwaterloo.ca

Lecture Section Time/Date Building/Room Instructor Name
LEC 001 06:30pm-09:20pm T MC 2038 Heydarnoori, Abbas
LEC 002 02:30pm-03:50pm TTh MC 2038 Naeem, Nomair Ahmed
LEC 003 10:00am-11:20am TTh PHY 235 Lushman, Bradley Michael
LEC 004 01:00pm-02:20pm TTh MC 2038 Hackman, Robert
LEC 005 11:30am-12:50pm TTh MC 2038 Naeem, Nomair Ahmed
LEC 006 10:00am-11:20pm TTh MC 2034 Naeem, Nomair Ahmed
LEC 007 08:30am-09:50am TTh MC 2034 Hackman, Robert
LEC 008 01:00pm-02:20pm TTh MC 4045 Lushman, Bradley Michael

Tutorial Section Time/Date Building/Room
TUT 101 08:30am-09:20am W MC 4063
TUT 102 03:30pm-04:20pm W MC 4058
TUT 103 03:30pm-04:20pm W MC 4063
TUT 104 04:30pm-05:20pm W MC 4063
TUT 105 12:30pm-01:20pm W MC 2017
TUT 106 10:30am-11:20am W MC 2017
TUT 107 11:30am-12:20pm W MC 4041
TUT 108 11:30am-12:20pm W MC 2035
TUT 109 09:30am-10:20am W DWE 3516
TUT 110 02:30pm-03:20pm W MC 4058*

Note: (*) TUT 110 will be located in RCH 204 on November 1st.

Resources

Course Topics

All timings are approximate.

Student Assessment

Assignments Number Tentative Due Date Marks Totals
0 Sept. 14 (Thurs.) 0
1 Due Date 1: Sept. 18 (Mon.)
Due Date 2: Sept. 25 (Mon.)
5
2 Due Date 1: Sept. 29 (Fri.)
Due Date 2: Oct. 6 (Fri.)
7
3 Due Date 1: Oct. 13 (Fri.)
Due Date 2: Oct. 20 (Fri.)
7
4 Due Date 1: Nov. 3 (Fri.)
Due Date 2: Nov. 10 (Fri.)
9
5 Due Date 1: Nov. 17 (Fri.)
Due Date 2: Dec. 4 (Mon.)
12
40 40
TestsMidtermOctober 26, 04:30-06:20Th, Location TBA 20 20
Final TBA, scheduled by the registrar40 40 (*, see below)
100

Note: you cannot get credit for assignments 1-5 until you have achieved 100% on assignment 0.

Note: (*) The weight of the final exam will be increased by 1/3 of the value of the marks lost on the midterm. This provides a "second chance" to earn up to one third of those lost marks back, with good final exam performance. This is the only adjustment to grades that will be made in the middle of the term. All other grade adjustments (if any) will be applied at the discretion of the instructors, at the end of the term.

Note: These due dates are tentative only, and are subject to change.

Note: The final assignment is a project to be done in groups of three. You may do the project in pairs or individually, but you will be expected to produce the same output as a group of three. Be sure to work with people whom you trust; we will not arbitrate disagreements. Part of the evaluation of your project will consist of a live demo in front of a TA. This is mandatory.

Tests

Both the midterm test and the final exam are closed book.

A missed test/exam receives a mark of 0, unless there is a documented reason. If a documented reason is provided for missing the midterm, its weight is applied to the final exam. If a documented reason is provided for missing the final exam, a grade of INC MIGHT be given, and the final exam must be written at the end of the next term the course is offered. A copy of the documented reason must be given to and approved by the instructor.

Assignments

All assignments must be done individually, unless the assignment is explicitly designated as a group assignment. All members of a group receive the same grade (no exceptions). The instructors/staff do not arbitrate group disputes; group members must handle any and all problems. A group assignment may be done individually, but it must be understood that the amount of work is significantly greater and no extra marks are given for this additional work.

Note: Marmoset is not a compiler! Do not submit C++ code to Marmoset, without first attempting to compile it yourself. For each problem on Marmoset where the deliverable is C++ code, if you have three or more submissions marked "Did not compile", a mark will permanently be deducted from your score on that problem.

Assignment Submissions

Assignments must be submitted using the Marmoset Submission and Testing Server.

The release test for a problem gives you the result of running your program on one basic test case (usually a case that appears in the assignment specification). The remaining test cases are secret tests, the results of which are revealed after the assignment is due. So be sure to test your code thoroughly, so that you pass as many of our secret tests as possible.

Lates

Marking

Remarking Policy

Note: The entire assignment or test is examined when remarking; therefore, the grade could decrease.


Academic Integrity

In order to maintain a culture of academic integrity, members of the University of Waterloo community are expected to promote honesty, trust, fairness, respect and responsibility. Check the Office of Academic Integrity's website for more information.

All members of the UW community are expected to hold to the highest standard of academic integrity in their studies, teaching, and research. This site explains why academic integrity is important and how students can avoid academic misconduct. It also identifies resources available on campus for students and faculty to help achieve academic integrity in — and out — of the classroom.

Publishing your code online

Posting assignment, project, midterm, and final exam solutions in publicly-accessible locations is not permitted in this course. For more information, and for information on alternatives to posting publicly, see here.

Intellectual Property

Students should be aware that this course contains the intellectual property of their instructor, TA, and/or the University of Waterloo. Intellectual property includes items such as:
  • Lecture content, spoken and written (and any audio/video recording thereof);
  • Lecture handouts, presentations, and other materials prepared for the course (e.g., PowerPoint slides);
  • Questions or solution sets from various types of assessments (e.g., assignments, quizzes, tests, final exams); and
  • Work protected by copyright (e.g., any work authored by the instructor or TA or used by the instructor or TA with permission of the copyright owner).

Course materials and the intellectual property contained therein, are used to enhance a student's educational experience. However, sharing this intellectual property without the intellectual property owner's permission is a violation of intellectual property rights. For this reason, it is necessary to ask the instructor, TA and/or the University of Waterloo for permission before uploading and sharing the intellectual property of others online (e.g., to an online repository).

Permission from an instructor, TA or the University is also necessary before sharing the intellectual property of others from completed courses with students taking the same/similar courses in subsequent terms/years. In many cases, instructors might be happy to allow distribution of certain materials. However, doing so without expressed permission is considered a violation of intellectual property rights.

Please alert the instructor if you become aware of intellectual property belonging to others (past or present) circulating, either through the student body or online. The intellectual property rights owner deserves to know (and may have already given their consent).

Grievance

A student who believes that a decision affecting some aspect of his/her university life has been unfair or unreasonable may have grounds for initiating a grievance. Read Policy 70 — Student Petitions and Grievances, Section 4. When in doubt please be certain to contact the department's administrative assistant who will provide further assistance.

Discipline

A student is expected to know what constitutes academic integrity, to avoid committing academic offenses, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offense, or who needs help in learning how to avoid offenses (e.g., plagiarism, cheating) or about "rules" for group work/collaboration should seek guidance from the course professor, academic advisor, or the Undergraduate Associate Dean. For information on categories of offenses and types of penalties, students should refer to Policy 71 — Student Discipline. For typical penalties, check Guidelines for the Assessment of Penalties.

Avoiding Academic Offenses

Most students are unaware of the line between acceptable and unacceptable academic behaviour, especially when discussing assignments with classmates and using the work of other students. For information on commonly misunderstood academic offenses and how to avoid them, students should refer to the Faculty of Mathematics Cheating and Student Academic Discipline Policy.

Appeals

A decision made or a penalty imposed under Policy 70, Student Petitions and Grievances (other than a petition) or Policy 71, Student Discipline may be appealed if there is a ground. A student who believes he/she has a ground for an appeal should refer to Policy 72 — Student Appeals.

Note for students with disabilities

The Office for Persons with Disabilities (OPD), located in Needles Hall, Room 1132, collaborates with all academic departments to arrange appropriate accommodations for students with disabilities without compromising the academic integrity of the curriculum. If you require academic accommodations to lessen the impact of your disability, please register with the OPD at the beginning of each academic term.

More Information

Academic Integrity and Students with Disabilities