Course Outline
Course Personnel and Office Hours
Instructors
Name |
Contact |
Office Hours
(all times EDT) |
Brad Lushman |
bmlushma@uwaterloo.ca |
MW 1-2pm
Using MS Teams. See here for further info. |
Instructional Support Apprentice (ISA)
Name |
Contact |
Office Hours |
Cyril Zhang |
cs246e@uwaterloo.ca |
WF 2-4pm
Using MS Teams. See here for further info. |
Instructional Support Coordinator (ISC)
Name |
Contact |
Patrick Roh |
proh@uwaterloo.ca
Contact for questions regarding verification of illness or other documents, course enrolment, alternative arrangements or accommodations, grades, or other administrative questions. |
Course Description
This is an enriched version of CS 246.
Description of CS 246:
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
- The use of C++ as a facility for building abstractions and the various abstraction mechanisms that C++ provides.
- Software library development for general client use.
- Principles of object-oriented sofware design.
- A selection of software design patterns.
Course Topics
All timings are approximate.
- Basic C++ (6 hours)
- functions and classes as the basic building blocks for abstractions
- Abstraction via generic programming (10 hours)
- function and class templates; exception safety
- Abstraction via inheritance (8 hours)
- object-oriented design principles; design patterns
- Abstraction via generic programming and inheritance (8 hours)
- language features in combination
- Memory management (4 hours)
Communication
The primary means for announcements is the course newsgroup on CS246E Piazza.
There may be announcements posted on the course website.
Please direct questions to the course newsgroup. If there is a good reason not to use the newsgroup
(e.g., personal matters, a question that might reveal part of a solution, etc.) either create a private post or
email the ISA or instructor directly via email.
Resources
- Required textbook: Stroustrup, Bjarne. The C++ Programming Language, 4th edition, Addison Wesley. Readings will be assigned from the textbook.
Course Assessments
Assignment |
Due Date 1 |
Due Date 2 |
Final Grade Weight |
1 |
TBD |
TBD |
20% |
2 |
TBD |
TBD |
20% |
3 |
TBD |
TBD |
20% |
Project |
TBD |
TBD |
35% |
There will also be quizzes worth 5% in total of your final course grade.
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 Submissions
Assignments must be submitted using the Marmoset Submission and Testing Server.
Note: Marmoset is not a compiler! There is limited resources for Marmoset across all CS courses. Please do not submit C++ code to Marmoset, without first attempting to compile it yourself.
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
- Assignments are due on the due-date at the time specified on the top of the assignment.
- Late Assignments are not accepted.
- An assignment not handed in receives a mark of 0, unless there is a documented reason.
- If a documented reason is supplied to the course ISC, and instructors decide that accommodation is warranted,
the weight of the missing assignment is distributed across future assignments and/or exams
(instructors will decide on the appropriate distribution).
Marking
- Assignments are marked on some or all of the following criteria:
- Testing
- Correctness
- Hand-Marking
- Note that correctly-working code is only ONE component of an assignment mark.
Remarking Policy
- Make an e-mail request clearly stating the questions you want remarked to the course ISAs no more than two weeks after the assignment is handed back.
- Include any supporting evidence for your case.
- All requests are processed after the deadline to ensure fairness and consistency in marking.
- Changes to your code are not permitted as part of a remark request.
Note: The entire assignment or test is examined when remarking; therefore, the grade could decrease.
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
-
Campus Wellness
-
Counselling Services:
counselling.services@uwaterloo.ca, 519-888-4567 ext 32655, Needles Hall North 2nd floor, (NH 2401)
-
MATES:
one-to-one peer support program offered by the Waterloo Undergraduate Student Association (WUSA) and Counselling Services: mates@uwaterloo.ca
-
Health Services:
located across the creek from Student Life Centre, 519-888-4096
Off-campus Resources
-
Good2Talk (24/7): Free confidential help line for post-secondary students. Phone: 1-866-925-5454
-
Here 24/7: Mental Health and Crisis Service Team. Phone: 1-844-437-3247
-
OK2BME: set of support services for lesbian, gay, bisexual, transgender or questioning teens in Waterloo. Phone: 519-884-0000 extension 213
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:
-
We will gladly honour your request to address you by an alternate/preferred name or gender pronoun.
Please advise us of this preference early in the semester so we may make appropriate changes to our records.
-
We will honour your religious holidays and celebrations. Please inform of us these at the start of the course.
-
We will follow AccessAbility Services guidelines and protocols on how to best support students with different learning needs.
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. All members of
the UW community are expected to hold to the highest standard of academic
integrity in their studies, teaching, and research.
The Office of Academic Integrity's website
contains detailed information on UW policy for students and faculty. 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.
Grievance
A student who believes that a decision affecting some aspect
of his or her university life has been unfair or unreasonable may have grounds for
initiating a grievance, as outlined by
Policy 70 - Student Petitions and Grievances.
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 an academic offence, and to take responsibility for his or 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
Students may also view the University's
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 Guidelines.
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 grounds to do so. A student who believes he or she
has a ground for an appeal should refer to
Policy 72 - Student Appeals.
MOSS (Measure of Software Similarities)
MOSS 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.
Note for Students with Disabilities
The
AccessAbility Services
(AAS), 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 them 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:
- 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).