Infosheet
Infosheet
Infosheet
Course Description
Software tools and development in a Unix/Linux environment, using a machine-oriented programming language (typically C). Core
topics: software tools (shell utilities and make), processes and program execution, the memory model, system calls, file processing,
interprocess communication (pipes and signals), and an introduction to concurrency, including multithreading. [24L, 12P]
Prerequisite: CSC207H5
Exclusion: CSC209H1 or CSCB09H3 (SCI)
Distribution Requirement: SCI
Students who lack a pre/co-requisite can be removed at any time unless they have received an explicit waiver from the department.
The waiver form can be downloaded from here.
Videos and required exercises to be completed before each class are hosted on PCRS (and is linked to from the course website):
https://pcrs.utm.utoronto.ca/209/
Aside from the above materials, you may find it useful to have good C and syscall references handy. Recommended (but optional)
readings will be posted from these textbooks:
Research consistently shows us that students remember only a small fraction of what we present in lecture. It is not easy to make
sense of material that you see for the first time in the first half-hour of a fast-paced lecture environment, let alone to stay focused for
2 hours. It's also important to space out your studying (spaced repetition). To prime you for what we will discuss, you will view a
set of videos and complete exercises by Monday 11:00AM before the first lectures of the week. We will drop your lowest two
scores. (In some weeks, the videos will be supplemented or replaced by recommended readings and an activity.) These are the
"Preparation" exercises hosted on PCRS: https://pcrs.utm.utoronto.ca/209/
This year, we are not holding required lab/PRA sessions. However, we will be posting tutorial material, and we strongly
recommend that you work on these materials and attend the weekly PRA hours to work on it.
Assignments
All assignments are to be electronically submitted by 22:00 on their due date. You are required to work on each assignment in a
group of 2 or 3 (individual submissions are not accepted). Assignment 1 includes a writing assessment and you will have the
opportunity to revise the writing based on feedback from writing TAs.
We recognize that unexpected problems sometimes make it difficult to submit assignments on time. For this reason, we will be
using grace tokens to give you some flexibility with assignment deadlines. Each student will receive **ten grace tokens**; each
grace token can be used for a **two-hour extension** for an assignment. For example, you may choose to use all ten grace tokens
on the assignment A1, extending its deadline by twenty hours. Or, you may wish to use five tokens for each of A1 and A2 (and
none on A3), extending each deadline by ten hours.
MarkUs automatically deducts grace tokens when you submit an assignment late---you do *not* need to explicitly say you are
using a grace token, just submit your work within the grace token two-hour periods. Grace tokens are deducted from each member
of the team (so e.g. if the team would like to use two grace tokens, each member of the team must have at least two grace tokens
remaining).
We will be grading each of your assignments primarily through what you demonstrate in a short *video* that your team submits.
(We require you to submit your code, too, and we may use it as part of your assignment evaluation.) In the video, we will ask you to
demonstrate compiling your code, running and testing your code, walking us through critical/interesting/tricky portions of the code,
telling us what is/isn't working, showing us any enhancements you made to the base assignment requirements, and demonstrating
teamwork in both the assignment coding and communication. Further information on video requirements will be provided.
We need your videos submitted within your grace days! We cannot grade your assignment without your video. Please ensure that
you have sufficient time to make and upload the video (uploading can take time!). For the code, we recommend writing and
debugging a series of programs that accomplish more and more of the assigned problem. That way, if you're running out of time
In the event of an illness or other catastrophe, please contact Dan, and use the Acorn Absence Declaration tool or provide
supporting documentation.
Do not wait until the due date has passed. It is always easier to make alternate arrangements before the due date.
You must follow the submission instructions exactly. Any program that does not compile on a CS lab machine or that crashes (seg
fault or bus error) will receive a grade of 0. Check your submission carefully; verify that you have submitted exactly the files you
intended to submit and that they compile on a lab machine; and that you have submitted your video URL as per our instructions.
There are two midterm tests, held outside of class on Feb 13 and Mar 26, both at 8:00PM. Please let Dan know as soon as possible
if you have a conflict with another course that needs to be accommodated.
The final exam is comprehensive and takes place after classes are over. To pass the course you must receive at least 40% on the
final exam. The highest mark you will receive if your grade on the final exam is less than 40% is 47%. The final exam schedule is
not yet available but will be posted in February. We will make an announcement once the registrar's site has final exam
information.
Academic Integrity
Academic integrity is essential to the pursuit of learning and scholarship in a university, and to ensuring that a degree from the
University of Toronto Mississauga is a strong signal of each student’s individual academic achievement. As a result, UTM treats
cases of cheating and plagiarism very seriously. The University of Toronto’s Code of Behaviour on Academic Matters outlines
behaviours that constitute academic dishonesty and the process for addressing academic offences. Potential offences include, but
are not limited to:
In academic work:
Keep in mind that the department uses software that compares programs for evidence of similar code. Below are some tips to help
you avoid committing an academic offence, like plagiarism.
Never look at another student’s lab/assignment solution(s). Never show another student your lab/assignment solution. This
applies to all drafts of a solution and to incomplete and even incorrect solutions.
Keep discussions with other students focused on concepts and examples. Never discuss labs/assignments before the due
date with anyone but your Instructors and your TAs.
Do not discuss your solution publicly on the discussion board or publicly in the lab rooms/office hours.
All suspected cases of academic dishonesty will be investigated following procedures outlined in the Code of Behaviour on
Academic Matters. If you have questions or concerns about what constitutes appropriate academic behaviour or appropriate
research and citation methods, you are expected to seek out additional information on academic integrity from your instructor or
from other institutional resources.
All of the work you submit must be your own and your work must not be submitted under anyone else's name. Plagiarism is a
form of academic fraud. You may discuss ideas only with others in your group or on the discussion board, and the code and videos
you submit must be entirely your own work. Submissions will be compared for evidence of similarity. If another group asks you
for help, ask them to ask the question on the discussion board and you can supply an answer there if appropriate.
Students may use artificial intelligence tools, including generative AI, in this course as learning aids or to help produce
assignments. (Dan wrote a book about programming with generative AI. He's serious about this: if GenAI helps you, please use it.)
However, students are ultimately accountable for the work they submit. Any content produced by an artificial intelligence tool
must be cited appropriately. Many organizations that publish standard citation formats are now providing information on citing
generative AI (e.g., MLA: https://style.mla.org/citing-generative-ai/).
Furthermore, the tests and exam in this course will not allow the use of generative AI tools as aids, so you must be prepared to
solve exercises, including writing significant code, without assistance. As a result, it is highly recommended that generative AI be
used as a learning aid and that any material that is built on the output of generative AI tools be reviewed, so that you are confident
that it reflects what you understand and can produce on your own.
Plagiarism Detection
Normally, students will be required to submit their course essays to the University’s plagiarism detection tool for a review of
textual similarity and detection of possible plagiarism. In doing so, students will allow their essays to be included as source
documents in the tool’s reference database, where they will be used solely for the purpose of detecting plagiarism. The terms that
apply to the University’s use of this tool are described on the Centre for Teaching Support & Innovation web site
(https://uoft.me/pdt-faq).
Students may wish to opt out of using the plagiarism detection tool. In order to opt out, contact your instructor by email no later
than two (2) weeks after the start of classes. If you have opted out, then specific information on an alternative method to submit
your assignment can be found below.
Additional Information
If you feel there was an error in the marking of an assignment or test, you may
request a remark directly on MarkUs.
Please keep in mind that your grade **may stay the same, may increase, or
may even decrease**, after your remark request is assessed.
Last Date to drop course from Academic Record and GPA is March 11, 2024.