University of Waterloo

Term and Year of Offering: Winter 2020

Course Number and Title: CS246, Object-Oriented Software Development

Section Lecture Time Room Instructor
LEC 001 11:30 AM - 12:50 PM TTh MC 4021 Nomair Naeem
LEC 002 01:00 PM - 02:20 PM TTh MC 4021 Nomair Naeem

Tutorial Section Time/Date Building/Room Leading ISA/IA
TUT 101 8:30 AM - 9:20 AM W MC 4063 Finn Hackett
TUT 102 9:30 AM -10:20 AM W MC 1056 Akshar Goyal
TUT 103 10:30 AM -11:20 AM W MC 4063 Finn Hackett

Instructor's Name Office Location Contact Office Hours
Nomair Naeem DC 3111 nomair.naeem@uwaterloo.ca Monday, 11:00 AM - 12:30 PM or by appointment

ISA Office Location Contact Office Hours
Akshar Goyal MC 4065 cs246uwaterloo.ca TBA

ISA (Part Time) Office Location Contact Office Hours
Frank Wang MC 4065 cs246uwaterloo.ca 10:40 AM - 11:40 AM
Kris Frasheri N/A cs246uwaterloo.ca N/A

IA Office Location Contact Office Hours
Beracira Chen MC 4065 z283chenuwaterloo.ca 2:30 PM - 4:30 PM TTh
Finn Hackett MC 4065 afhacketuwaterloo.ca 2:30 PM - 3:30 PM F

ISC Office Location Contact
Caroline Kierstead DC 3127 ctkierstuwaterloo.ca

Course Description:

This course introduces students to basic UNIX software development tools and object-oriented programming in C++ to facilitate designing, coding, debugging, testing, and documenting medium-sized programs. Students learn to read a specification and design software to implement it. Important skills are selecting appropriate data structures and control structures, writing reusable code, reusing existing code, understanding basic performance issues, developing debugging skills, and learning to test a program.

Course Objectives:

At the end of the course, students should be able to:

Course Overview:

Shell (4 hours)

C++ (16 hours)

Unix tools (8 hours)

Software engineering (8 hours)

Resources

Student Assessment

Assignments Number Tentative Due Date Marks Totals
0 January 17th 0*
1 Due Date 1: Jan 20th
Due Date 2: Jan 27th
5
2 Due Date 1: Feb 7th
Due Date 2: Feb 14th
7
3 Due Date 1: Feb 24th
Due Date 2: Feb 28th
7
4 Due Date 1: March 13th
Due Date 2: March 20th
9
5 Due Date 1: March 27th
Due Date 2: April 3rd
12
40 40
TestsMidtermMarch 3th (Tuesday), 4:30-6:20pm
STC 1012
20 20
Final TBA
TBA
40 40
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: Students repeating the course may only ask to view their final exams for the purpose of making a remarking request in the first month of the subsequent study term.

Note: Most assignments are expected to be due on Friday 5:00pm. However, the listed due dates are tentative, and are subject to change.

Note: The final assignment is a project to be done in groups of at most 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.

Assignment Due Date 1 solutions cannot be discussed until AFTER Assignment Due Date 2. Doing so constitutes an academic integrity offence.

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.

Course Communication

The primary form of communication of information outside of lectures will be through Piazza. It is thus very important that you read it daily! Since it is very common for the number of posts to get very large, very quickly, we have posted some guidelines to using Piazza in Piazza to help make everybody's lives easier. Please make sure that you read the guidelines before you post.



Mental Health Resources

Mental Health: If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support.

On-campus Resources

Off-campus Resources

Diversity: It is our intent that students from all diverse backgrounds and perspectives be well served by this course, and that students' learning needs be addressed both in and out of class. We recognize the immense value of the diversity in identities, perspectives, and contributions that students bring, and the benefit it has on our educational environment. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In particular:


Academic Integrity

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 https://uwaterloo.ca/academic-integrity/ for more information.]

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 [check https://uwaterloo.ca/academic-integrity/] to avoid committing an academic offence, and to take responsibility for his/her actions. A student who is unsure whether an action constitutes an offence, or who needs help in learning how to avoid offences (e.g., plagiarism, cheating) or about 'rules' for group work/collaboration should seek guidance from the course instructor, academic advisor, or the undergraduate Associate Dean. For information on categories of offences and types of penalties, students should refer to Policy 71, Student Discipline. For typical penalties check Guidelines for the Assessment of Penalties.

Appeals: A decision made or 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.

MOSS (Measure of Software Similarities) is used in this course as a means of comparing students' assignments to ensure academic integrity. We will report suspicious activity, and penalties for plagiarism/cheating are severe. Please read the available information about academic integrity very carefully.

Discipline cases involving any automated marking system such as Marmoset or MarkUs include, but are not limited to, printing or returning values in order to match expected test results rather than making an actual reasonable attempt to solve the problem as required in the assignment question specification.

Note for Students with Disabilities: AccessAbility Services, located in Needles Hall, Room 1401, 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 AccessAbility Services at the beginning of each academic term.

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:

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).