Welcome to CS 247!
Welcome to the CS247 course homepage. Here you can find the latest announcements, as well as general information about the course.
The current offering of CS247 is Spring 2024.
This is the in person delivery version of CS 247. Please read the information below as well as the course outline to help you get prepared.
If you have any question or concerns please contact the ISC (see the personnel page).
Have a great summer everyone!
Log In
Access our Piazza here: CS 247 Piazza
What is Piazza?
Piazza is the discussion forum for CS 247
Being a student, you can
Guidelines
Of course, there are things to be kept in mind while using Piazza. Here are just a few rules that you perhaps already know:
Above all, remember that the whole class, including the professor and the ISAs, are potential readers to the discussion board. Use your common sense to determine what constitutes acceptable content.
Projects
The latest assignment files can be found in the course repo.
Assignment and Project Due Dates
All due dates for unreleased assignments are tentative and subject to change
Marmoset
Assignments must be submitted using Marmoset.
After your solutions are submitted to the Marmoset automatic grading system available at https://marmoset.student.cs.uwaterloo.ca, Marmoset will run your solutions on a number of test inputs and grade them automatically. You may resubmit your solutions as many times as you wish prior to the submission deadline. The Marmoset portion of your mark is determined entirely by the number of test inputs for which your best submission generates the correct answer.
MOSS
We will be using Measure of Software Similarity (MOSS) system from Berkley to compare this term's submissions with each other and with past terms' submissions of similar assignments.
Group Work Policy
No group work is permitted on assignments. Students may work on the course project in teams of size 2 or 3.
Collaboration Policy
Some degree of collaboration is beneficial: you can learn a lot from others; you can avoid getting stuck; and teaching someone else can be the best way to cement your own understanding of a difficult concept. That said, your understanding of the course material will be deeper and more ingrained if you solve problems on your own. Thus, we permit and encourage discussion but not outright collaboration (except where explicitly permitted, such as teamwork on the course project).
Specifically, you are allowed (and even encouraged) to discuss course concepts, assignments, and projects with other CS247 students but only under the following restrictions.
Late Policy
Anything handed in after the due date without a pre-approved extension (see below) will receive a grade of 0.
If you have an illness, conflict, or absence, then you need to consult with the Instructional Support Coordinator (Scott Freeman King, sfking@uwaterloo.ca) as soon as possible in advance to make alternative arrangements for fulfilling the assignment/project deliverables of the course.
Return Policy
Assignments will be returned online, via MarkUs.
Remarking Policy
Email the ISA ( cs247@uwaterloo.ca ), clearly stating the questions you want to be remarked. Include any supporting evidence for your case. Requests that include code changes to fix failing test cases will be ignored. You have two weeks after handback to deliver the request to the ISA. All requests will be processed after the deadline to ensure fairness and consistency in marking.
Notes: We will examine your entire assignment/exam when remarking it. It is possible that you will receive a lower mark than your current mark.
Assignment 1 | 10 Points |
Assignment 2 | 10 Points |
Assignment 3 | 10 Points |
Project 1 | 0 Points |
Project 2 | 5 Points |
Project 3 | 15 Points |
Midterm | 15 Points |
Final Exam | 35 (if in person), 25 (if take home) |
The grades are broken down by points instead of percentages. All points are the same if the element occurs. By default, the assumption is each element will be assessed and both the midterm and final exam will be in person, proctored and written on campus. If, for whatever reason, it becomes not possible to write the midterm, there is no replacement. If, for whatever reason, it becomes not possible to write the scheduled in person proctored final exam, there will be a take home final assessment worth 20 points instead of 30. The take home final assessment is only available if we are unable to run the in person proctored exam on campus. You must achieve a passing grade on the exam component of the course in order to pass the course. Otherwise, your final grade will be the minimum of the computed final grade and the exam component grade. If you have any grievances about an assignment's marking, please email cs247@uwaterloo.ca with your quest ID, the assignment, and the concern you have about the grading. Note that remarking for the final is handled by the instructor. If you would like an exam remarked, please use the form Remark Request Form.
For your convenience, we provide a facility to check your
unofficial
marks.
If you have questions about an assignment whose marking is in progress,
please contact the ISA.
See below for information on viewing the marks breakdown for an assignment.
CS 247 Mark Viewing Notes
On the right side is your mark breakdown:
On the left is the code for one of your files.
If there are any errors in the marking of your assignment, please email cs247@uwaterloo.ca to let us know what the problem is.
Remarking PolicyEmail the ISA, clearly stating the questions you want to be remarked. Include any supporting evidence for your case. Requests that include code changes to fix failing test cases will be ignored. You have two weeks after handback to deliver the request to the ISA. All requests will be processed after the deadline to ensure fairness and consistency in marking.
Notes: We will examine your entire assignment/exam when remarking it. It is possible that you will receive a lower mark than your current mark.
For questions related to course content, contact an instructor or an ISA. The best place to ask questions is on Piazza or email, but you can also send email or visit during office hours. For questions about marking, contact the Assistants first, who will consult with the Instructor if necessary.
Calendar Description - Official course description from academic calendar.
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.
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, https://uwaterloo.ca/secretariat/policies-procedures-guidelines/policy-70
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 any 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. When misconduct has been found to have occurred, disciplinary penalties will be imposed under Policy 71 - Student Dicipline. For information on categories of offenses and types of penalties, students should refer to Policy 71 - Student Discipline, https://uwaterloo.ca/secretariat/policies-procedures-guidelines/policy-71
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, https://uwaterloo.ca/math/academic-matters/academic-integrity#:~:text=All%20academic%20offences%20involving%20Math,will%20normally%20include%20a%20suspension.
Appeals: A student may appeal the finding and/or penalty in a decision made under Policy 70 - Student Petitions and Grievances (other than regarding a petition) or Policy 71 - Student Dicipline if grounds for an appeal can be established. Read Policy 72 - Student Appeals, https://uwaterloo.ca/secretariat-general-counsel/policies-procedures-guidelines/policy-72
General information concerning University policies on illnesses may be
found at
http://www.registrar.uwaterloo.ca/students/accom_illness.html
Thinking in C++,
Volume 1
Bruce Eckel
2nd Edition
Prentice Hall, 2000
Thinking in C++,
Volume 2
Bruce Eckel, Chuck Allison
Prentice Hall, 2003
OPTIONAL
Head First Design Patterns
Eric Freeman, Elizabeth Freeman, Bert Bates, Kathy Sierra
O'Reilly, 2004
(available
online via the University's Library)
Programming: Principles and
Practice Using C++ (Bjarne Stroustrup) (updated for
C++11/C++14)
C++ Primer (Stanley Lippman, Josée Lajoie,
and Barbara E. Moo) (updated for C++11)
Effective C++ (Scott Meyers)
Effective Modern C++ (Scott Meyers) (focuses
on C++11/C++14)
Effective STL (Scott Meyers)
References
The C++ Programming Language
(Bjarne Stroustrup) (updated for C++11)
C++ Standard Library Tutorial and Reference (Nicolai
Josuttis) (updated for C++11)