Home

Recent Updates (newest at top)

  • Dec 12
    • Posted solutions to assignments 5 and 6.
  • Dec 3
  • Nov 28
    • Posted some sample code from live lectures for weeks 11 and 12 (see notes page).
    • Posted in-class review questions for Structs, Pointers, Arrays, Dynamic allocation, and Searching (see notes page).
  • Nov 26
    • Posted videos for week 13
    • Posted lab 11
    • Posted lab 10 solution
  • Nov 19
    • Posted lab 11
    • Posted assignment 6
    • Office hours changed on Monday: 1pm-2pm (one less hour)
  • Nov 18
    • Posted videos for week 12
  • Nov 16
    • Posted assignment 4 sample solution
  • Nov 12
    • The effect of quiz scores on assignment grades in now spelled out on the course info page.
  • Nov 6
    • Updated lab late policy: 0% penalty for submissions up to 25h late; 100% after that.
    • Posted week's contents
    • Posted today's lecture recording + code
    • Posted lab 9
    • Posted lab 8 solution
    • Posted sample code for previous weeks
    • Posted assignment 5
  • Oct 26
    • Posted assignment 4
    • Posted videos for next week.

Office & Open Lab Times Hours

Office Hours Table

Course delivered with a Flipped Classroom

Expand for details

My goal is to maximize student engagement, learning, and enjoyment while also maximizing flexibility.

  • Flipped Classroom
    • Starting 2nd week (Sept 12th): course content (slides) will be presented in pre-recorded videos. Students are expected to watch the videos before the lecture it is used in.
    • Lecture will be used for live, in-person explanation and teaching with examples.
    • All pre-recorded videos and live lectures are testable on exams.
  • Flexible Weekly Labs
    • You can get help in-person or online during any weekly lab time
    • Can complete labs from home or on campus; all necessary software is free and cross-platform (Windows, Mac, Linux)
  • Office hours are held online using Discord for instructor and TAs
    • Instructor is available before class (20m) and after class (~10 min) for in-person questions.
  • Assignments have a forgiving late policy.
  • Students asking for an academic concession must email Dr. Brian and may be asked to submit SFU Academic Concession Self-Declaration Form

The course has one in-person midterm and one in-person final exam.


Use of Generative AI Tools

Expand for details Large Language Models (LLMs) such as ChatGPT and Copilot are very powerful for assisting programmers. They can help us by:

  • Generating some code to help start solving a problem.
  • Provide feedback on what some code does.
  • Helping to find bugs.

However, they also make it really easy to not learn how to code! To be a good software developer you need to know how to write the code yourself (with and without the AI tools). For this course, here are the rules:

  • You may use any AI tool to help you write code for all assignments and labs.
  • If use use an AI tool, you must mention it in your code, such as putting the following comment at the top of your file:
    // Used help from Copilot and ChatGPT to write this code.
  • There is no deduction for using AI tools.
  • In the end, you must be able to write the code yourself.
  • No computers or AI tools are permitted on the midterm or final exam.

Coding practice (assignments and labs) are heavily weighted to encourage everyone to solve problems and learn to code. Since we what to mark what you have learned, marking is based on:

  • Labs are marked on completion.
  • Assignments are marked as follows:
    • You submit your assignment and it is marked by the TA. This is your "assignment mark".
    • You will then later write a short in-class (hand-written) quiz related to the assignment. This is your "quiz mark".
    • Your final mark for the assignment (called the "assignment credit") is the product of your assignment mark and your quiz mark.
      credit = minimum of ( assignment mark, quiz mark )
    • The "credit" for each assignment is given a weight, such as 5%.
    • The midterm and final exam may also include questions for scaling assignments 3 and 6 respectively.
  • Example
    • Pat score 95/100 (95%) on the assignment.
    • Pat score 80% on the quiz.
    • Pat's assignment credit is 80%.
    • If the assignment is worth 5% overall, then it would contribute 4.0% to Pat's final grade.


Home