\( \newcommand{\NOT}{\neg} \newcommand{\AND}{\wedge} \newcommand{\OR}{\vee} \newcommand{\XOR}{\oplus} \newcommand{\IMP}{\Rightarrow} \newcommand{\IFF}{\Leftrightarrow} \newcommand{\TRUE}{\text{True}\xspace} \newcommand{\FALSE}{\text{False}\xspace} \newcommand{\IN}{\,{\in}\,} \newcommand{\NOTIN}{\,{\notin}\,} \newcommand{\TO}{\rightarrow} \newcommand{\DIV}{\mid} \newcommand{\NDIV}{\nmid} \newcommand{\MOD}[1]{\pmod{#1}} \newcommand{\MODS}[1]{\ (\text{mod}\ #1)} \newcommand{\N}{\mathbb N} \newcommand{\Z}{\mathbb Z} \newcommand{\Q}{\mathbb Q} \newcommand{\R}{\mathbb R} \newcommand{\C}{\mathbb C} \newcommand{\cA}{\mathcal A} \newcommand{\cB}{\mathcal B} \newcommand{\cC}{\mathcal C} \newcommand{\cD}{\mathcal D} \newcommand{\cE}{\mathcal E} \newcommand{\cF}{\mathcal F} \newcommand{\cG}{\mathcal G} \newcommand{\cH}{\mathcal H} \newcommand{\cI}{\mathcal I} \newcommand{\cJ}{\mathcal J} \newcommand{\cL}{\mathcal L} \newcommand{\cK}{\mathcal K} \newcommand{\cN}{\mathcal N} \newcommand{\cO}{\mathcal O} \newcommand{\cP}{\mathcal P} \newcommand{\cQ}{\mathcal Q} \newcommand{\cS}{\mathcal S} \newcommand{\cT}{\mathcal T} \newcommand{\cV}{\mathcal V} \newcommand{\cW}{\mathcal W} \newcommand{\cZ}{\mathcal Z} \newcommand{\emp}{\emptyset} \newcommand{\bs}{\backslash} \newcommand{\floor}[1]{\left \lfloor #1 \right \rfloor} \newcommand{\bigfloor}[1]{\Big \lfloor #1 \Big \rfloor} \newcommand{\ceil}[1]{\left \lceil #1 \right \rceil} \newcommand{\bigceil}[1]{\Big \lceil #1 \Big \rceil} \newcommand{\abs}[1]{\left | #1 \right |} \newcommand{\bigabs}[1]{\Big | #1 \Big |} \newcommand{\xspace}{} \newcommand{\proofheader}[1]{\underline{\textbf{#1}}} \)

CSC110 Fall 2023 TA Guide

Welcome to CSC110! As a teaching assistant, you’ll play a vital role in the education of our students this semester—thank you in advance for your efforts in making this course an enjoyable, inclusive, and productive experience. This document is your guide to the various aspects of your TA position, and will serve as a helpful reference throughout the semester.

Course logistics and contact information

About CSC110

CSC110, Foundations of Computer Science I, is a relatively new first-year computer science course that will be taken in Fall 2023 by all first-year computer science (direct entry) students. This course and its follow-up (CSC111, Foundations of Computer Science II) offer a broad introduction to the field of computer science, integrating mathematical theory and software design and programming.1 The major topics from theoretical computer science include: propositional and first-order predicate logic, proof techniques, and algorithm analysis. The major topics from Python programming include: Python’s built-in data types, functions, testing, control flow structures, mutability and the memory model, and classes and object-oriented design. The course also covers several applications of computer science; lectures will cover the cryptography and discrete-event simulation problem domains, while other problem domains are touched on in tutorials and assignments.

Course structure

CSC110 is “double course”: a single-semester course that has double the credit value, double the contact time, and double the workload of a standard course.

Each week, students will attend two-hour lectures three times per week (Mondays, Tuesdays, and Thursdays). Students will also attend a weekly two-hour tutorial (Fridays). Both lectures and tutorials are held fully in person.

We will make heavy use of active learning exercises to engage students during class. The tutorials are designed to reinforce lecture material, give students hands-on exercises to develop their skills, and to build a sense community among the students.

There are three major types of course assessments: short weekly prep exercises, four assignments, and three term tests, and a final exam.

Our students

All students are part of a single cohort that is interested in pursuing further studies in computer science—they have been admitted to the Faculty of Arts & Science as “direct entry” computer science students. The enrolment for CSC110 this year is around 300 students.

Our students are not required to have prior programming experience, though most do. However, this prior experience is highly variable, both in terms of what they learned (e.g., block-based programming or a text-based language other than Python) and how they learned it (e.g., in high school, through online videos, or an online platform like Coursera). In addition, our students have not had much (or any) experience with formal logic, mathematical proof, or theoretical computer science topics.

Role in CS program admission

First-year computer science students have an admission guarantee to a Computer Science program at the end of their first year. This guarantee requires that the students meet a set of minimum requirements in first year. The grade requirement for CSC110 is 70%; we expect the vast majority of our students (> 80%) will meet this requirement this semester.

This policy was introduced in 2020, in large part to improve the first-year experience for our students by removing the uncertainty and competitive nature of the previous admission policy. We hope that the admission guarantee creates a collaborative and cooperative learning environment for students. As TAs, you are not just part of this environment, but in fact have enormous influence on it—a fact that not every TA is aware of. Students, TAs, and instructors will all need to put in our best effort to support student learning and community this term.

Course software

CSC110 uses the Python programming language (version 3.11), and the PyCharm IDE. While TAs are not strictly required to install this software on your own computers, we strongly recommend doing so to better understand what your students will be using by following the CSC110 Software Installtion Guide.

We will be using Discord for our private discussions (instructor/TA only space). I generally respond faster on Discord compared to via email so if there’s anything you need a fast response for, you know where to reach out to me. :)

We’ll be using MarkUs for grading in this course. More information about MarkUs in Grading in CSC110 down below. You’ll receive more information about using MarkUs when we begin grading in a few weeks.

TA Responsibilities

Each TAship for CSC110 includes both contact time with students and grading duties. There are two main types of TAs: lecture TAs and tutorial TAs. In this section, we’ll briefly discuss the different major TA responsibilities for the term:

Assisting with lectures

Lecture TAs are responsible for assisting about 15 two-hour classes. A calendar schedule will be shared with you. The main responsibilities for lecture TAs will be to monitor and answer questions in the Ed lecture chat and circulate and answer questions as students work on active learning exercises.

At all points during lecture, students will be able to ask questions in the chat, whether the instructor is speaking or whether students are working on a worksheet. Lecture TAs will be responsible for answering the vast majority of student questions in the chat, and bringing up questions for the instructor to look at or respond to.

Some lectures will be used to hold term tests; all lecture TAs will help invigilate the term tests.

For more detailed information, please see Lecture Instructions down below.

Holding tutorials

Tutorial TAs are responsible for hosting weekly tutorials. All tutorial sections will cover the same material (provided by instructors). Your role will be to facilitate learning and encourage students to think, explore, and collaborate on the tutorial activities. The tutorials can also be used by students to ask any course-related questions (similar to office hours).

Each tutorial will have ~35 students, though attendance will likely be slightly lower, and typically will decrease throughout the semester (tutorial attendance is not graded) and peak during assignment deadline weeks (to be used as assignment office hours, which is expected).

There are no tutorials on the very last week of the semester.

For more detailed information, please see Tutorial TA Instructions down below.

Grading assessments (all TAs)

You will be assigned to grade a subset of the course assessments, typically for 6-10 hours per assessment, though this may vary for individual TAs. Within a couple of weeks, you’ll receive a schedule of which assessments you are expected to grade, and you should mark your calendars for those dates (and let us know if you foresee any issues).

Grading assignments and term tests

Grading for assignments can be done electronically and on your own time over a one-week period. We will provide marking schemes that you’ll be expected to review carefully; grading consistency and giving high-quality feedback are the most important goals for this duty.

For the term tests, we will hold synchronous marking meetings online and grade all tests together, to help calibrate grading across multiple TAs.

The course coordinator (Sadia Sharmin) will be available to discuss and respond to grading questions online during each grading period.

Grading the final exam

All TAs will be assigned grading for the final exam.

The exam will be scheduled during December 10–20 by the Faculty of Arts & Science.

Similar to the term tests, grading for the final exam must be completed synchronously online, over a 2-3 day period following the exam.

This helps us ensure grading is done as quickly as possible and ensure consistency in this high-stakes final assessment.

The short timeframe is better for us to finalize course grades, and better for you to focus on exams/enjoy a longer holiday break!

We will let you know as soon as we find out when the final exams are scheduled.

Until the final exam is schedule, please make sure you will be available for grading up until December 22 at the latest.

Other duties

Some TAs will be assigned time to hold office hours and/or monitor the course discussion board on Ed. (Separate instructions will follow if you assigned these tasks.)

You are not expected to communicate with students outside your assigned contact duties. Please do not give out your email address to students, and please disable direct messages from students on Ed. If students ask, please point them to the course syllabus, which describes how they can seek help outside of regular class time.

Top Four TA Guidelines

  1. Be professional with your colleagues and your students. Being a TA is a great responsibility—you’ll impact hundreds of students over the course of a few months. It’s important to take your work seriously: be on time for meetings and scheduled contact time; spend time preparing for your student contact hours; respond within 48 hours of emails from course staff; treat everyone with respect.
  2. Remember that students are humans, and they’re trying to learn. Be respectful of every student, their time and their questions. Be patient and polite, especially when a student is struggling. Never tell a student they do not belong in the course, or computer science. If a student is significantly struggling, or you are concerned about a student’s well-being, notify us directly, and also ask the student to speak to a course instructor.
  3. Communication is essential. Reliable and clear communication is essential to running a course of this size. We’ll be sending you emails throughout the term—lecture materials, scheduling requests, etc.—and it is important that you read them carefully, and respond when necessary. If you know in advance that you’ll be absent or unable to fulfill an assigned duty, it is your responsibility to both notify the course staff and find another TA to take your place (and obtain approval from the course staff).
  4. You have an opportunity to have a truly rewarding experience this term—seize it! There is great joy in teaching another person, in watching them grow both as a computer scientist and as a human being, and knowing you played a part in this growth. Be prepared to share your knowledge and your experiences, and you’ll be surprised at how often your students will hang onto your every word. By teaching these fundamental computer science concepts, you’ll become a better communicator and even learn some things you never knew before. But this TAship, as with so many things in life, rewards in proportion to the effort you put in: put in minimal effort, and you’ll see little or no reward; take this position seriously, and you’ll come away a stronger communicator and computer scientist—and have had a ton of fun, too!