| 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: 
Tests and Exam are written:
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.
   
  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-3]) on Sat Nov 16 |   | Week 10 (week of Nov 18) | u5.txt | Linux Lab 4 |   | Week 11 (week of Nov 25) | c++ | 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:
       
           Lab check-ins (as above)
           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 and Deadlines | 
 Normally receive a mark of zero. This is the case when a student submits an undocumented
     ACR, since these are not accepted in CPS393.
 Medical certificates: If a student misses a submission deadline, or an evaluation
     they must submit a
     
     Student Health Certificate AND an
     
     Academic Consideration Request (ACR) within 3 working days of the missed date.
     For ACR submission and requirements, see TMU Senate Policy 
 Make-ups/re-weightings: Even when a documented ACR is submitted and verified, 
     instructor is not 
     required to provide a make-up or re-weighting, and may assign zero.
      In special circumstances, instructor may allow a single grade re-weighting, or a
     single make-up evaluation, given a verified, documented ACR.
     Make-up evaluations may not have identical format,
     although material covered will be the same.
 If more than 2 ACRs are 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 the third
      ACR, as per CS departmental policy.
 
 If the missed evaluation is the final exam, students are required, in addition
 to the forms mentioned above, to petition the instructor for an INC grade with the
 Incomplete Grade
 Request Form. To be allowed to write the makeup exam, you must send a completed Incomplete
 Grade Request Form to the instructor within 3 days of the exam, and
 have a verified, documented Academic Consideration Request. Without all these in place, the CS
 Department will not allow you in the room to write the makeup exam.
 | 
| 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. 
 | 
| Academic Misconduct | Generally for TMU and CS:
Academic Misconduct Specifically for this Course:
Course Academic Misconduct
 | 
| Non-Academic Conduct | see
TMU Student Code of Non-academic Conduct |