Introduction to Computer Science for non-majors II by James Tam Return to the course web page

CPSC 219: Tutorial Teaching Schedule

You can find the files containing the examples covered in tutorial in UNIX under the path /home/219/tutorials or you can browse them via the web via the following [link].

Week Topics covered
Jan 8 - 14
  • No tutorials
Jan 15 - 21
  • Tutorial exercise: A0 (not graded but important so that students become familiar submitting assignments using D2L but also getting students to check each assignment's submission by downloading and verifying file(s). Remember what's in D2l as of the due date, latest versions when multiple versions are submitted, is what will be marked).
  • Creating, saving, compiling, interpreting and running a Java program
  • Output and input via the Scanner class
  • Declaring variables and named constants in Java (note how they differ in Java vs. Python)
  • Branching: if, else, logic

Quiz 1 (during the second set of tutorials) : Variables, input/output, branches

Jan 22 - 28 First tutorial (Monday or Tuesday):
  • Basic UNIX commands: [Extra resource link]
  • How to work from home [Extra resource link]
  • Do-while loops
  • Branching: Switch
  • Debugging tips for finding syntax and logic errors
  • Second tutorial (Wednesday or Thursday):

  • Introduction to writing Object-Oriented programs
  • Accessing/changing attributes
  • Calling methods
  • Quiz 2  (during the second set of tutorials): Loops and repetition

    Jan 29 - Feb 4
    • Accessing/changing attributes
    • Calling methods
    • Compiling programs with multiple classes (split among multiple .java files)
    • Text-based user-interface example
    • Student exercise: implementing method within the design constraints of an existing program
    • Object-Oriented design exercise:
      • Chapter 2: determining user interactions via Use cases
      • Chapter 3: finding the candidate classes in a program in a requirements document
      • Student exercise: extracting the candidate classes from a requirements document
    • Review from 217, UNIX orientation, working from home (if there is time, if not then it will be covered next week)

    Quiz 3  (during the second set of tutorials): Defining classes, working with objects (make sure that you are familiar with Object-Oriented terminology)

    The TA will not be able to explain or define terminology during the quiz. Part of the evaluation includes the ability to understand commonly used Object-Oriented terminology.

    (If applicable: if method arguments/inputs to the method are needed during the call then you can pass in any data that you want -  just make sure that what you pass in what will allow the program to compile and run).

    Feb 5 - 11
    • Arrays of simple types
    • Arrays of 'objects'
    • TAs go over A2 requirements
    • Object-Oriented design exercise (continued from before):
    • Chapter 4: determining class attributes
    • Chapter 5: determining class methods

    No quiz

    Feb 12 - 18
    • Shadowing: locals and attributes
    • Parameter passing
    • 2D arrays of references
    • Scoping rules

    Quiz 4  (during the firstsecond set of tutorials): arrays (2D array of reference to objects). Although you can assume that the code in the rest of the program works as specified there aren't bugs if you wish to familiarize yourself with the code beforehand here are the two relevant classes: [class: MapElement] [class: World]

    Feb 19 - 25 Reading Week: No lectures, tutorials or CT
    Feb 26 - Mar 4 First tutorial (Monday or Tuesday):
    • TAs will hand back the midterms and go over select questions
    • The static keyword, scoping rules, using/accessing static attributes

    Second tutorial (Wednesday or Thursday):

    • Using a static debugging tool
    • The 'this' reference

    Quiz 5 (during the second set of tutorials): the quizzes will require you to trace a program. The concepts involved come from the 'Advanced Java' section of notes up to an excluding the 'toString()' method.

    Mar 5 - 11 First tutorial (Monday or Tuesday):
    • 'Open tutorial'. TAs will be available for help and to answer questions but no new material will be taught (although they may cover material that they missed covering in the previous week). Any student from 219 can ask for help during an open tutorial (you don't have to be registered in that section). Students can also work on their assignment in the lab.

    Second tutorial (Wednesday or Thursday):

    • Arrays of  'objects' review exercise
    • Chapter 10: Object-Oriented hierarchies, inheritance
    • Tracing a simple O-O program
    Mar 12 - 18 First tutorial (Monday or Tuesday):
    • TAs describe the requirements for A4.

    Second tutorial (Wednesday or Thursday):

    • Overriding vs. overloading
    • The super() keyword

    Quiz 6 (during the second set of tutorials): hierarchies (inheritance). Relevant code for your quiz:

    [class P] [Driver class]

    Mar 19 - 25 First tutorial (Monday or Tuesday):
    • Casting and inheritance
    • The instanceof operator
    • Interfaces and abstract classes
    • Tracing more complex hierarchies

    Second tutorial (Wednesday or Thursday):

    • TAs will hand back midterm #2 and go over portions of the exam

    No quiz

    Mar 26 - Apr 1 First tutorial (Monday or Tuesday):
    • TAs catch up on any material not covered last week (e.g. midterm #2)
    • Introduction to graphical user interfaces (capturing button events)
    • TAs go over the requirements of mini-assignment 5

    Second tutorial (Wednesday or Thursday):

    • 'Open tutorial'. TAs will be available for help and to answer questions but no new material will be taught (although they may cover material that they missed covering in the previous week). Any student from 219 can ask for help during an open tutorial (you don't have to be registered in that section). Students can also work on their assignment in the lab.
    Apr 2 - 8
    • GUI examples:
      • JButton
      • JTextField
      • IconImages
      • JTextArea
      • Controls affecting the state of other controls
    • GUI programming exercises
    • TAs go over the specifications for A5

    Mini-assignment Mini-A5 in place of quiz

    Apr 9 - 15 First tutorial (Monday or Tuesday):
    • Recursive example: Fibonacci numbers
    • Recursive example: reverse order display of an array
    • Recursive example: maze traversal (back tracking using recursion)
    • Recursive practice exercises

    Second tutorial (Wednesday, this is the last day of the term):

    'Open tutorial'. TAs will be available for help and to answer questions but no new material will be taught (although they may cover material that they missed covering in the previous week). Any student from 219 can ask for help during an open tutorial (you don't have to be registered in that section). Students can also work on their assignment in the lab.

    No quiz

    Quiz details

    As mentioned at the start of term, quizzes are like 'mini' (easy) exams. Similar to your 'real' exams quizzes are completely closed book. Bring pens and pencils (eraser) but no aids of any sort are allowed. You need to bring your own paper as an answer sheet. (You won't bring paper for the exams because that will given to you). No computers, electronic devices or even 'simple' calculators. Mobile phones must be shut off and put away. Quizzes will be written at the end of the second tutorial in the weeks when a quiz will be held (specified in the above grid).

    Quizzes are meant to not only force you to start studying early and trying to write programs sooner than later but also they are supposed to help you learn the details of Java syntax. Consequently unless otherwise specified in the quiz instructions you only get one syntax error for 'free' (no penalty). If you have two or more syntax errors in your answer then you will get no credit.

    Because quizzes of such low weight individual quizzes won't assigned letter grades A, A- etc. The programs you need to write are too small to assign grade points in increments of 0.1. Consequently they will all be treated as one 'grading component'. Your percentage score for each quiz will be used to compute your average score (the lowest score will be dropped) and the following scale will be used on the average quiz score to calculate your letter grade for the quiz component.

    Average percentage quiz score Letter grade/grade point for quiz component
    0 - 40 F/0.0
    41 - 50 D-/0.7
    51 - 55 D/1.0
    56 - 60 D+/1.3
    61 - 65 C-/1.7
    66 - 70 C/2.0
    71 - 75 C+/2.3
    76 - 80 B-/2.7
    81 - 85 B/3.0
    86 - 90 B+/3.3
    91 - 95 A-/3.7
    96 - 100 A/4.0

    Most quizzes should be fairly rudimentary for the average student so there will be no 'bonus' grade of A+/4.3