Infosheet

Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

DEPARTMENT OF MATHEMATICAL AND COMPUTATIONAL SCIENCES

UNIVERSITY OF TORONTO MISSISSAUGA


CSC209H5S LEC0101
Software Tools and Systems Programming
Course Outline - Winter 2024
Class Location & Time Mon, 03:00 PM - 05:00 PM MN 1210
Tue, 08:00 PM - 10:00 PM ZZ TBA
Instructor Daniel Zingaro
Office Location DH3078
Office Hours Thursday 2:00-4:00PM on Zoom
E-mail Address [email protected]
Course Web Site https://mcs.utm.utoronto.ca/~209

Co-Instructor Rutwa Engineer


Office Location DH3013
Office Hours Monday 1:00-2:00PM on Zoom; Tuesday 12:00-1:00PM in person
E-mail Address [email protected]

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.

Textbooks and Other Materials


The course website will be used to post readings and other important information, and the discussion board will be used for
answering students' questions; both are required reading:

Course website: https://mcs.utm.utoronto.ca/~209


Discussion board, Piazza: https://piazza.com/utoronto.ca/winter2024/csc209h5/home

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:

King. C Programming: A Modern Approach. W. W. Norton and Company, 2008.


Kerrisk. The Linux Programming Interface. No Starch Press, 2010.

Assessment and Deadlines


Type Description Due Date Weight
Other Weekly lecture prep On-going 6%
Assignment A1: C Programming, Dynamic Memory, Writing 2024-02-11 9%
Term Test Term Test 1, 8:00PM 2024-02-13 15%

CSC209H5S - Zingaro, Daniel 2023-12-01 12:10:14 Page 1 of 5


Assignment Writing Component of A1 Resubmission 2024-03-18 1%
Assignment A2: Processes 2024-03-24 7%
Term Test Term Test 2, 8:00PM 2024-03-26 15%
Assignment A3: Sockets/Communication 2024-04-08 7%
Final Exam Necessary to obtain >= 40% TBA 35%
Other Float (added to higher of test 1, test 2, or exam) On-going 5%
Total 100%

More Details for Assessment and Deadlines


Weekly Prep and Lab Exercises

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

No late assignments are accepted.

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

CSC209H5S - Zingaro, Daniel 2023-12-01 12:10:14 Page 2 of 5


due to a busy week, you can stop coding with a working subset of the assignment requirements, and then tell us all about your work
in your video.

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.

Documentation Portion of Assignment 1


The documentation portion of Assignment 1 will ask you to create a linux man page for a new command. You'll be evaluated on
your adherence to the conventions of a man page, the accuracy and completeness of the documentation, and the quality of your
writing. After your assignment is marked, you may earn an additional 1% bonus by submitting a revised version that accounts for
the feedback that you receive. Your revised version should be submitted with changes tracked (unified diff) to highlight the
differences in your document.

Midterm Tests and Final Exam

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.

Penalties for Lateness


No late work is accepted outside of the stated resubmission policy.

Procedures and Rules


Missed Term Work
In the event of an illness or other catastrophe, please contact Dan, and use the Acorn Absence Declaration tool or provide
supporting documentation.

Missed Final Exam


Students who cannot complete their final examination due to illness or other serious causes must file an online petition within 72
hours of the missed examination. Late petitions will NOT be considered. Upon approval of a deferred exam request, a non-
refundable fee of $72 is required for each examination approved.

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 papers and assignments:

1. Using someone else's ideas or words without appropriate acknowledgement.


2. Submitting your own work in more than one course, or more than once in the same course, without the permission of the
instructor.
3. Making up sources or facts.
4. Obtaining or providing unauthorized assistance on any assignment.
CSC209H5S - Zingaro, Daniel 2023-12-01 12:10:14 Page 3 of 5
On tests and exams:

1. Using or possessing unauthorized aids.


2. Looking at someone else’s answers during an exam or test.
3. Misrepresenting your identity.

In academic work:

1. Falsifying institutional documents or grades.


2. Falsifying or altering any documentation required, including (but not limited to) doctor's notes.

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.

Informed Consent – Email Lists


As a student enrolled in this course, you understand that you are providing your implicit consent to be included in an email list for
the department to send you non-essential information from time to time. If you do not wish to be included in such an email list,
please request to be removed by contacting one of the Academic Advisors & Undergraduate Program Administrators. Their
information can be found on the MCS Website Contact Us page .

Final Exam Information

CSC209H5S - Zingaro, Daniel 2023-12-01 12:10:14 Page 4 of 5


Duration: 2 hours

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.

You must give a specific reason for the request, referring to a


possible error or omission by the marker. Stating specific potential grading errors
for your remark request is **mandatory for us to even consider your request**.
However, we will **review your entire work, not just the items you pointed out**.

Please keep in mind that your grade **may stay the same, may increase, or
may even decrease**, after your remark request is assessed.

Remark requests **must be received within four days**


of when your received the grade for that item.

Last Date to drop course from Academic Record and GPA is March 11, 2024.

CSC209H5S - Zingaro, Daniel 2023-12-01 12:10:14 Page 5 of 5

You might also like