Dr. Woit's HomePage        
CPS393 Course Outline
CPS393 Topics
To CPS393 Labs
Dr. Woit's CPS393 Announcements

TMU
Department of Computer Science

CPS393: Introduction to Unix, C & C++


Students are responsible for checking Announcements Page daily and for following all instructions so transmitted.

Typos, inconsistencies, etc.: Any such anomalies shall be resolved solely at the instructor's discretion.


Instructor Information Dr. Woit
Office: ENG277
Tel: 416-979-5000, x7063
Email: see Email Policy below
Office Hours (Zoom): Thursday 11am-12pm by appointment (email me)
Course Website: current page and D2L
Email Policy
  • Professor does not accept emails requesting a deadline extension when sent within the 48 hours of deadline.
  • Email is not a means of real-time instructor contact. Meet in class or office hours.
  • Email read/answered before 5pm and in office hours, time permitting.
  • Emails professor considers no longer (or not) relevant are not answered.
  • Email questions the professor deems appropriate to the whole class will be answered in D2L Announcements or in class (not necessarily with email response).
  • Email must be to: dwoit at TorontoMU dot ca
  • Email must be from: cs.TorontoMU.ca or TorontoMU.ca account
  • Email subject must contain string: "cps393" or "CPS393" (NO SPACES!).
  • Emails not conforming to the above are not answered as per Policy 157
Prerequisites CPS 209
Calendar Description The course introduces the UNIX operating system, and the C and C++ languages. UNIX topics include: I/O, redirection, processes, and shell scripts. C and C++ are introduced with an emphasis on differences from previously studied languages. C topics include pointers, structures, memory allocation, and paradigm differences. C++ topics may include static and dynamic instantiation, inheritance, constructors and destructors, polymorphism, operator overloading. Weekly Contact: Lecture 3 hrs. Lab 1 hr.
Textbook No text. Course notes are provided on CS moons under /usr/courses/cps393/courseNotes/
Intellectual Property
  • Unauthorized use of any cps393 files/materials violates TMU's Academic Integrity Policy.
  • All files/materials are for your own personal use, and you are strictly prohibited from distributing them in any way (including, but not limited to posting post them anywhere online, sharing copies, etc.)
  • Files/materials include but are not limited to, course notes, programs and their solutions, labs and their solutions, tests, exams, everything in D2L, under /usr/courses/cps393/, under Instructor's course site, etc.
References:
Not required, but can be useful:
Vim Reference Card
Linux_bash_cheat_sheet
http://www.gnu.org/software/bash/manual/bashref.html
C Reference Card
https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html
https://www.gnu.org/software/libc/manual
C++ Reference Card
https://github.com/rougier/CPP-Crash-Course/blob/master/README.rst
Teaching Methods and Course Schedule Each week, students attend:
  • Scheduled Lectures
    • Provide a more theoretical treatment of the topics covered.
    • Occur in the scheduled classroom, using a live, projected Zoom session. Students may also attend lecture out-of-classroom by joining the live Zoom session.
  • Scheduled Labs
    • Provide practical experience and TA guidance.
    • Occur live, in-person, in the scheduled lab-room only, with TA in attendance.
Tests and Exam are written:
  • in person, in lab rooms TBA,
  • using computing environment similar to CS moons, but without networking capabilities (no internet, no ssh, no email, etc.)
  • ON SATURDAYS.

Tentative Weekly Schedule:
Week Lecture File Lab Tests
Week 0 (week of Sep 2) Outline & intro no lab
Week 1 (week of Sep 9) u1.txt vim lab
Week 2 (week of Sep 16) u2.txt Linux Lab 1
Week 3 (week of Sep 23) u3.txt Linux Lab 2
Week 4 (week of Sep 30) c1.txt Linux Lab 3 28% TEST 1 (Linux[1-3]) on Sat Oct 5
Week 5 (week of Oct 7) c2.txt C Lab 1
Study Week (week of Oct 14) no lecture
Week 6 (week of Oct 21) c3.txt C Lab 2
Week 7 (week of Oct 28) c4.txt C Lab 3
Week 8 (week of Nov 4) u4.txt C Lab 4
Week 9 (week of Nov 11) Review C Review C 28% TEST 2 (C[1-4]) on Sat Nov 16
Week 10 (week of Nov 18) u5.txt Linux Lab 4
Week 11 (week of Nov 25) c5.txt Linux Lab 5
Last Class (Dec 2) Exam QA no labs
Exam Period (Dec 4–15) 37% Exam (Linux/C) on TBA

  • Note the Lecture Files linked above may be out of date. Up to date ones are in /usr/courses/cps393/dwoit/courseNotes/
Learning Outcomes The student will be proficient in:
  • using Linux via command-line bash,
  • writing advanced bash shell programs,
  • writing, compiling, and executing C programs using command-line Linux and the gcc compiler,
  • makefiles,
  • differences between C and C++ and writing, compiling, and executing C++ programs,
  • creating, testing and debugging all of the former using command-line Linux,
  • using one of the acceptable Linux editors: vim, gvim, or gedit.
  • solving problems from from class, notes, labs, homework, and other similar problems, and those that build upon the former.
Plagiarism Prevention and Detection Students agree by taking this course that their work will be subject to submission for similarity review to a plagiarism detection service. No decisions are made by the service; it generates an “originality report,” which instructors must evaluate to judge if something is plagiarized.
Students who do not want their work submitted to a plagiarism detection service must, by the end of the second week of class, consult with their instructor to make alternate arrangements. However, even when a student has opted out of the plagiarism detection service, if the instructor has reason to suspect that an individual piece of work has been plagiarized, the instructor is permitted to submit that work in a non-identifying way to any plagiarism detection service.
Cheating and Academic Integrity See the "Cheating" section in: http://www.cs.TorontoMU.ca/~dwoit/courses/courseInfo.html
Evaluation
Term Work Weight Date
Test 1 (in-person, on lab computer) 28% Saturday Oct 5
Test 2 (in-person, on lab computer) 28% Saturday Nov 16
Exam (in-person, on lab computer) 37% TBA in Exam period
Labs (in-person, in scheduled lab room) 7% (see Labs and Lab Marks below)
100% Exam 100% If Exam mark is greater than weighted average above
To Pass the Course weighted average of Tests and Exam is ≥ 50%
OR Exam is ≥ 50%
Labs
  • Take place in-person, in your scheduled lab time/room, with TA in attendance to help.
  • During a lab, you
    • work on lab questions for that week (under: /usr/courses/cps393/dwoit/labs/)
    • do your lab check-in (which must be completed DURING your scheduled lab time, from within your scheduled lab room.) Instructions are in /usr/courses/cps393/dwoit/labs/LAB_CHECK_INS
  • Each lab requires one or more submissions. Instructions are in /usr/courses/cps393/dwoit/labs/SUBMITTING
  • Submissions must be completed by MONDAY AT NOON the week following the lab.
  • Lab solutions (except for submissions) are provided within each lab directory; however, there are typically many correct solutions; TAs can check yours if they differ from the given solution - time permitting.
Lab Marks
  • Labs marks have 2 components:
    1. Lab check-ins (as above)
    2. Lab submissions (as above)
  • During the term, you do your check-ins, and submit required answers, without knowledge of which will count toward Lab Marks.
  • At end of term, we will announce which check-ins and which submissions count, as follows:
  • Lab mark is some combination of CheckIns (C%) and marked lab submissions (S%) , where
    The exact weighting of C and S is not provided in advance. Examples of possible C and S weightings are:
    • C worth 7%, S worth 0% (100% CheckIns)
    • C worth 3.5%, S worth 3.5% (50% CheckIns and 50% marked submissions)
    • C worth 0%, S worth 7% (100% marked submissions)
    • etc.
  • Calculating S: By the end of term, you will have submitted answers to many individual lab questions. At end of term, one or more of these answers will selected for grading, and their grades will combine equally for S. Selected answers must have been submitted by their given due dates in order to be eligible for grading.
  • Calculating C: By the end of term, you will have completed ≤10 CheckIns. At end of term, one or more CheckIns will be selected to combine equally for C.
Course Technology Students are required to use moon command-line bash shells and utilities, gcc/g++ compilers, and vim/gvim/gedit/emacs editors for all course work.
Evaluation Guidelines
  • Missed evaluations See "Missed Evaluations" below.
  • Late submissions of any course work, including tests, are not accepted.
  • Official marks are recorded on D2L only.
  • Grading errors must be brought to the attention of the grader for that evaluation (e.g., TA or instructor) within 24 hours of evaluation being returned (papers handed back for written evaluations, electronic posting of grade for electronic evaluations.) Students must report grading errors using the re-evaluation form provided by instructor/TA, when required to do so.
  • For escalation of grading errors email/see the Lead TA, who has final authority on all lab and marking issues
Missed Evaluations
  • Normally receive a mark of zero.
  • Students may submit an Academic Consideration Request (ACR), but even if it is verified, instructor is not required to provide a make-up or re-weighting. For ACR submission and requirements, see Missed Tests/Examinations and (ACR).
  • In special circumstances, instructor may allow a single grade re-weighting, or a single make-up evaluation.
  • Make-up evaluations may not have identical format due to resource limitations; for example, a make-up test might be off-line, using paper-pencil, with no aids and no computer, although material covered will be the same.
  • If more than one ACR is submitted in a term, the student will be required to meet with the CS Program Director, who will investigate the issue, and may require a change to the student's course of studies. This meeting is automatically triggered by submitting a second ACR, as per CS departmental policy; the professor is not involved. Note that this is the ACR total over all your courses, not just CPS393. Thus, if you submit one ACR for CPS305 only, and later a second ACR for CPS393 only, that counts as two ACRs.
  • If the missed evaluation is the final exam, students are required, in addition to the forms mentioned in the link above, to petition for an INC grade with the Incomplete Grade Request Form. To be allowed to write the makeup exam, you must send a completed form to the instructor within 3 days of the exam, and have a verified ACR.
University Policies Students are required to adhere to all relevant university policies including those found in online information here, in the CS department, in D2L, and/or on the following URL: https://www.torontomu.ca/senate/policies/
Resources Available at TMU
Virtual Classes and Evaluations
  • Students are not required to use camera/microphone during virtual classes.
  • Students are prohibited from recording virtual classes.
  • Virtual classes may be recorded by professor. If a student does not want their voice and/or likeness captured, they should turn off their camera and/or microphone.


Further Course Information:

Information applicable to all Dr. Woit's courses is located at http://www.cs.TorontoMU.ca/~dwoit/courses/courseInfo.html
Modifications to the course procedures will be made in consultation with the course students.


Dr. Woit's HomePage        
CPS393 Course Outline
Dr. Woit's CPS393 Topics
To CPS393 Labs
Dr. Woit's CPS393 Announcements