Teaching Assistant Postings - FALL 2024

 

Fall 2024 - click here to apply!

Application Opens: Monday, June 24, 2024, at 9am

Application Closes: Monday, July 8, 2024, at 9am

Appointment start date: Wednesday, September 4, 2024

Appointment end date: Friday, December 27, 2024

All courses are scheduled for in-person delivery and TAs are expected to be available for in person student contact for the duration of the term.

Please refer to the 'Course Specific Requirements' below before applying. 

Click here to apply!

 

Minimum Requirements:

Print

General Requirements:

  • Must submit current Curriculum Vitae and an “unofficial transcript” at time of applications through our online TA application system. 
  • Must have sufficient written and one-to-one oral communications skills in order to support students and instructors throughout the semester whether in-person or by email. 
  • Must have sufficient time management and organizational skills for courses with labs.

Education Requirements:

  • Teachings Assistants must have an undergraduate degree in computer science or an equivalent post-secondary degree from a recognized institution or demonstrated industry experience specific to the course(s) applied for. Applicants must have sufficient knowledge of the individual course requirements in order to provide optimum TA support for students and course instructors.
  • Or a senior undergraduate student who has a better than average overall CGPA and can demonstrate competence through courses taken. Applicants must have sufficient knowledge of the individual course requirements in order to provide optimum TA support for students and course instructors.

Teaching will be conducted in person. Application for and acceptance of TA contracts acknowledges that you will be available in-person for all duties related to and for the entire duration of the appointment.

Please ensure that you review the course calendarcourse outline, and course schedule for details about each course.

Click here to see TA resources. 

Course Specific Requirements:

Burnaby Campus

Subject Course # Title TA Minimum Requirements
CMPT 105W Soc. Issues & Cmns. Strategies These courses are Technical English Writing courses and TAs will be expected to do the following:
• Mark tests and written assignments for grammar, punctuation, sentences structure, etc
• Assess essays for style, word choice, evidence and logic, audience expectation, as well as voice and tone
• Assess paraphrasing, summarizing and quotations
• Assist students to think critically, as well as apply rhetorical patterns to the appropriate situation
• Understand the fundamental of informative and persuasive communication
• Attend course meetings and respond to emails and messages in a timely manner
• Attend lectures and tutorials (when requested by the instructor)
• Communicate with the instructor with regards to student issues, etc. allowing the instructor to respond in a timely manner
• Enter grades into Canvas (Speedgrader and Gradebook)
• Hold office hours (when requested by the instructor) and communicate with students about their assignments and grades
• Monitor online discussion forums
• Meet assignment and exam marking deadlines. Student assignments are accumulative, meaning they require feedback in order to write/complete their next assignment. For example, students are required to write an outline, draft and a final for their essay assignment
• Utilize time management skills as marking deadlines for the major assignments and exams can be close
• Use assigned marking/grading rubrics and provide sufficient written feedback
• Proctor tests and final exam (when requested by instructor) and report any suspected academic integrity issues to the course instructor
• Familiar with the course materials and assignments and have experience with Canvas
CMPT 120 Intro.Cmpt.Sci/Programming I • Sufficient knowledge of basic Python programming
• Good communication skills; be able to assist students, particularly those with no programming experience
CMPT 125 Intro.Cmpt.Sci/Programming II • Availability for in person instruction of all Lab sections for CMPT 125
• Strong knowledge of C and C++
• Experience with programming in C and C++ on a LINUX system using VScode
• Experience with Linux or Unix operating systems
• Knowledge of standard data structures and ADTs
• Ability to write automated scripts for marking programming assignments
CMPT 201 Systems Programming • Strong knowledge in C
• Extensive experience in low-level systems programming on Linux (file system interface, threads, processes, sockets, memory allocation, etc.)
• Extensive experience in scripting on Linux (shell, python, etc.)
• Extensive experience in build systems such as make and cmake
• Extensive experience in debugging with debuggers such as GDB
• Experience in Linux system administration
CMPT 210 Probability and Computing • Knowledge of Discrete Mathematics including Combinatorics (such as MACM 201 or equivalent)
• Should have completed an undergraduate probability course (such as CMPT 210/STAT 270 or equivalent). Undergraduate statistics/ML course (such as STAT 271/CMPT 726 or equivalent) is a plus.
• Basic knowledge of tail inequalities like Chernoff, Hoeffding
• Familiarity with basic algorithms, should completed a design and analysis of algorithms course (such as CMPT 405/ 705 or equivalent)
CMPT 225 Data Structures/Programming • Experience with programming in C++, including object oriented programming
• Know all ADTs and data structures mentioned in the Course Outline, including AVL trees and B-Trees
• Should have completed a course in analysis of algorithms (such as CMPT 705, 307, or equivalent)
• Comfortable with the Linux command line 
CMPT 263 Intro to Human-Centered Comp. • Preference will be given to students who have demonstrated good standing in User Interface Design, Graphics, HCI, Visualization, Vision, and Multimedia (such as CMPT 363, 863, 985, or equivalent course at the undergraduate or graduate HCI level)
• Hands-on experience in applying principles of human-computer interaction, user-centered design, usability engineering, and/or interaction design
• Must have a research and/industry portfolio that demonstrates user interface designs and/or results from user studies
• Must have familiarity with modern UI prototyping tools, such as Balsamiq and Figma 
CMPT 272 Web Development I • Web development: knowledge of HTML, CSS, Javascript, Typescript
• Experience with the Angular or React framework and using web APIs
• Basic knowledge of HTTP. Experience with some server side development will be an asset
CMPT 276 Intro Software Engineering • Great programming skills
• Practical and theoretical knowledge of different stages of software development, namely, requirements, design, construction, testing, refactoring, debugging, etc
• Java, JUnit, Git, Maven
• Good communication skills, proactive, and eager to assist students
CMPT 295 Intro. to Computer Systems • Should have completed introductory courses to Computer Systems and Operating Systems (such as CMPT 295, 300, or equivalent)
• Previous experience with RISC-V, MIPS or any CISC (x86-64)
• Proficiency and thorough knowledge of Linux or Unix operating systems
• Proficiency and thorough knowledge of computer architecture
• Well versed in Computer Systems and assembly languages (RISC and CISC)
• Software development experience in C
CMPT 307 Data Structures • Experience with introduction and mathematical preliminaries, asymptotic notation, models of computation and basic probability theory and mathematical maturity
• Experience with priority queues: Heaps
• Experience with randomized algorithms, dynamic programming, etc. good familiarity with data structures, graphs, and graph algorithms (shortest paths, connected components, minimum spanning trees)  solid background in algorithm design and analysis
• Knowledge of classical algorithms and standard algorithmic paradigms such as greedy heuristics, dynamic programming and linear programming
CMPT 310 Intro Artificial Intelligence • Experience in conducting research
• Experience with at least two Artificial Intelligence areas of research and AI topics at an introductory level such as; Logic, Search, Planning, constraint satisfaction, Natural Language, Learning, reasoning under uncertainty, etc.
CMPT 318 Special Topics Cmpt. Science • Cyber intelligence and threat analysis
• Situational awareness, anomaly detection, scoring methods
• Discrete Markov process modelling
• Time series analysis and forecasting with Hidden Markov models
• Familiarity with statistical inference and machine learning
• R language and software environment for statistical computing
• Programming in Python with applications in stochastic modelling
• Cybersecurity risk assessment and management
• Foundations of blockchain technology
CMPT 340 Biomedical Computing  • Analog and digital signals (digitization, sampling, quantization)
 • Linear systems (impulse response, convolution, Fourier transform, time/space-frequency, duality)
 • Time- and frequency-domain signal filtering
 • Multi-variate statistics (histogram, correlation, covariance matrix, PCA)
 • Vector/matrix algebra (vectors, matrices, eigen-decomposition)
 • 1D, 2D, 3D, point clouds, and graphs/networks
 • Terminology of biosignals/bioimages (ECG, MRI, microscopy)
 • Probabilities (probability distributions, Bayes’ theorem
 • Classification (thresholding, ROC, AUC, ANN/CNN, Fisher LDA,)
 • MATLAB
CMPT 353 Computational Data Science • Working knowledge of Python data manipulation tools: NumPy, Pandas
• Basic concepts of inferential statistics and machine learning
• Strong experience with Spark; experience analyzing with scientific data sets
CMPT 354 Database Systems I • Knowledge of the relational model and the entity/relationship (E/R) model
• Knowledge of relational algebra and calculus
• Working knowledge and good programming skills with SQL
• Experience with SQL Lite and Jupyter Notebook is an asset
• Knowledge of relational design theory, in particular normalization, BCNF, 3NF
• Knowledge of other topics in the course outline, such as transactions, constraints and triggers, indexes, database applications development
CMPT 354 Database Systems I • Knowledge of the relational model and the entity/relationship (E/R) model
• Knowledge of relational algebra and calculus
• Working knowledge and good programming skills with SQL
• Experience with MS SQL Server is an asset
• Knowledge of relational design theory, in particular normalization
• Knowledge of other topics in the course outline, such as transactions, constraints and triggers, indexes, database applications development
CMPT 361 Intro to Visual Computing • Background in image processing and computer vision
• Experience in MATLAB

OR

• Experience with OpenGL and WebGL programming
• Completed Computer Graphics courses before
CMPT 362 Mobile App Programming • Strong programming experience with Android, Kotlin is preferred but JAVA is ok
• Confident with design architectures (such as MVVM)
• Experienced with OOD
CMPT 363 User Interface Dsgn • Preference will be given to students who have demonstrated good standing in User Interface Design, Graphics, HCI, Visualization, Vision, and Multimedia (such as CMPT 363, 888, 985, o requivalent course at the undergraduate or graduate HCI level)
• Hands-on experience in applying principles of human-computer interaction, user-centered design, usability engineering, and/or interaction design
• Must have a research and/industry portfolio that demonstrates user interface designs and/ or results from user studies
• Must have familiarity with modern UI prototyping tools, such as Balsamiq and Figma 
CMPT 365 Multimedia Systems • Good understanding of multimedia systems design, especially knowledge of some multimedia library in both C++ and in Java (examples include open file dialog,  create canvas,
plot pixels/lines, read and display audio/image files)
• Working knowledge of  multimedia hardware and software
• Good understanding of representing, compressing, processing and transmitting multimedia data such as soud, image and video (examples include
FLAC, JPEG, MPEG, H.264/265)
CMPT 371 Data Communications/Networking • Be familiar with network layers and protocols, in particular, TCP/IP protocol stack
• Have experience with socket programming, Python
• Have good communication skills and the ability to clearly explain networking concepts and the functioning of networks  and protocols to students in response to student questions 
• Promptly communicate with the instructor with regards to issues with student work including common misunderstandings of course material and subspected academic dishonesty
• Meet assignment marking deadlines. Student assignments and quizzes are scaffolded, feedback from one activity is often needed to understand later activities or be ready for assessment activities.
• Use assigned marking/grading rubrics and provide sufficient written feedback
• Hold office hours and monitor online discussion forums as assigned by the instructor
CMPT 376W Prof. Resp. & Tech. Writing This course is a Technical English Writing course covering ethics, writing and oral communication across computing research, startup and industrial software development contexts.
TAs will be expected to do the following:
• Mark tests and written assignments for grammar, punctuation, sentence structure, etc
• Mark oral presentations and videos
• Assess papers for style, word choice, evidence and logic, audience expectation, as well as voice and tone
• Assess paraphrasing, summarizing and quotations
• Assist students to think critically, as well as apply rhetorical patterns to the appropriate situation
• Understand the fundamental of informative and persuasive communication
• Attend course meetings and respond to emails and messages in a timely manner
• Attend lectures and tutorials (when requested by the instructor)
• Communicate with the instructor with regards to student issues, etc. allowing the instructor to respond in a timely manner
• Enter grades into Canvas and/or TurnItIn (Speedgrader and Gradebook)
• Hold office hours (when requested by the instructor) and communicate with students about their assignments and grades
• Monitor online discussion forums
• Meet assignment marking deadlines
• Utilize time management skills as marking deadlines for the major assignments and exams are close
• Use assigned marking/grading rubrics and provide sufficient written feedback
• Proctor tests and final exam (when requested by instructor) and Report any suspected academic integrity issues to the course instructor *********KEEP READING********
REQUIREMENTS:
• Excellent command of spoken and written English
• Experience in writing and critiquing research papers
RECOMMENDED:
• Experience in industry or a degree in the humanities or business
• Familiarity with the course materials and Canvas
CMPT 383 Programming Langs. • Good understanding of a variety of programming languages
• Experience with Haskell and functional programming
• Some familiarity with operational semantics
• Some familiarity with type theory
• Some familiarity with lambda calculus
• Good programming skills
• Good communication skills; happy to assist students
CMPT 405 Cmpt. Algorithms • Solid background in algorithm design and analysis
• Good knowledge of classical algorithms and standard algorithmic paradigms such as greedy, divided and conquer, dynamic programming, network flow, linear programming
• Good knowledge of NP-completeness, polynomial-time reductions, approximation and randomized algorithms
• Should have completed a Design and Analysis of Computing Algorithms course (such as CMPT 405, 705 or equivalent)
CMPT 409 Spec.Topics/Theoretical Cmpt • Knowledge of machine learning, should have completed a graduate machine learning course (such as CMPT 726 or equivalent)
• Knowledge of numerical (continuous) optimization (should have completed at least an undergraduate course)
• Strong knowledge of linear algebra and multivariable calculus (such as MATH 240 and MATH 251)
CMPT 410 Machine Learning • Strong background in linear algebra and probability
• Familiarity with NumPy and PyTorch
• Should have completed a machine learning course (such as 726 or equivalent)
• Stable internet connection for remote instruction of tutorials
CMPT 412 Computer Vision • Strong background in linear algebra, data structures, coding, and basic computer vision and image processing concepts (e.g., convolution, image filtering, stereo, segmentation, and recognition)
• Knowledge of Python and Matlab programming
• Transforms, BRDF, object recognition, optical flow, etc
CMPT 413 Computational Linguistics • Strong background in machine learning and deep learning
• Knowledgeable about NLP concepts and models (word embeddings, language models, seq2seq models, parsing). Preferably have completed a NLP course (such as CMPT 413/713 or equivalent)
• Proficiency with Python and Pytorch programming.  Experience with Huggingface transformers library is a plus.
• Experience with modern NLP datasets like GLUE, WMT, SQUaD, CoNLL
• Experience with large language models like BERT, GPT2, GPT3
• Good communication skills, proactive, and eager to assist students
CMPT 417 Intelligent Systems • Must have knowledge in python programming
• Should have completed a course in algorithm analysis or computational complexity
CMPT 431 Distributed Systems • Should have completed a course in operating systems (such as CMPT 300 ) and distributed systems and/or parallel computing (such as CMPT 431) or equivalents
• Must be proficient with at least two of the following: C++11 threads, POSIX threads, CilkPlus, OpenMP, MPI
• Must be proficient with modern C++ programming (threads, processes, atomics, ...) and Linux problem solving (command line, packages, configuration, ...)
• Experience with scalable parallel software development is highly desirable
• Experience with Distributed Computing Systems (such as CMPT 479 Prof. Vora’s offering or equivalent) is highly desirable
CMPT 441 Computational Biology • Experience with algorithmic aspects of bioinformatics, particularly genome and protein sequence processing
• Working knowledge of Dynamic Programming, Evolutionary Algorithms, Simulated Annealing, Hidden Markov Models, and structural bioinformatics
• Experience with algorithm design, analysis and refinement
• Previous experience with CMPT 441/711 preferred (either as student or TA)
• Solid teaching and interpersonal skills, excellent communication skills in English, excellent rapport with students
• Responsible, showing initiative, responsive, and punctual
• Excellent time management, meeting deadlines
• Providing detailed constructive feedback on students work
• Must be enthusiastic about assisting a group of students with diverse academic backgrounds
• Must have a stable internet connection, web camera and microphone
• Must be familiar with Zoom, Blackboard Ultra Collaborate, and SFU Canvas
CMPT 450 Computer Architecture • Must have deep understanding of computer architecture concepts including speculative execution, memory hierarchy, parallel architectures, and the impact of technology on architecture
• Solid working experience with computer architecture simulators (gem5 experience is strongly preferred)
• Substantial programming experience in modern C++ programming and python
• Must be proficient and has thorough knowledge of the Linux OS
• Experience with scalable software development is highly desirable
CMPT 454 Database Systems II • Knowledge of database theory and SQL
• Familiar with query optimization and transaction processing in relational databases
CMPT 459 Special Topics Database Systs • Should have completed a data mining course (such as CMPT 459, 741, or equivalent)
• Must be proficient with Python
• Must be proficient with pandas and scikit-learn
• Good oral and written communication skills
• Familiarity with machine learning is an asset
CMPT 464 Geometric Modelling in CG • Extensive research experience in geometric modeling and processing, and in computer graphics, preferably someone who has had past publications in the related areas
• Strong knowledge and programming experience with deep learning tools for geometry and shape processing
CMPT 466 Animation • Experience with Python, C++
• Experience with Maya (or similar packages such as Blender)
• Experience with WebGL/OpenGL programming
• Experience with Deep Learning and Deep Reinforcement Learning
• Strong in past Math and Physics courses (calculus, linear algebra, differential equations)
• Experience with Unity/Unreal
CMPT 469 Spec.Topics/Computer Graphics • Strong command of HCI research methods and how they are applied to design and study-oriented projects
• Hands-on experience in applying principles of HCI, user-centered design, usability engineering, and/or interaction design
• Must be proficient in user interface design principles and low-fidelity to high-fidelity prototyping techniques
• Must have a portfolio that demonstrates results from HCI research, design of user interface prototypes and/ or results from user studies
• Demonstrated good standing in a graduate level HCI course (e.g., CMPT 888/985 special topics in HCI or equivalent) or an equivalent undergraduate course (e.g.,  CMPT 363)
• Must have good command of the English language and HCI research literature in order to mark written reports
• Preference will be given to students who have research and/or industry experience in HCI-oriented projects
• Must have good command of the English language to mark written reports
CMPT 475 Requirements Engineering • Experience with the software development process, project planning and project management
• Experience with software implementation, testing and data normalization processes
• Provide constructive written feedback on written requirements/discussion questions/exams (including feedback on structure, ambiguity/clarity, and grammar )
• Ability to understand assigned readings, and to listen to and understand recordings of oral requirements gathering sessions
• Ability to grade and comment on written work, and to respond to student questions in person and via email
CMPT 477 Intro to Formal Verification • Good understanding of propositional logic
• Good understanding of first-order logic
• Some familiarity of first-order theories, such as theory of equality, integer linear arithmetic
• Some familiarity of program verification techniques, such as Hoare Logic
• Experience with constraint solvers or verification tools
• Good communication skills; happy to assist students
CMPT 479 Spec.Topics/Computing Systems • Preferably a graduate student in software and systems
• Familiarity with research on analysis, comprehension, debugging, and testing in software engineering
• Familiarity with research on the web/JavaScript
• Great analytical skills, ability to read academic papers, review, and discuss them
• Good programming skills (related to web— JavaScript, HTML, CSS, etc.), ability to understand and grade code, and help students with their projects
• Good communication skills, proactive, and eager to assist students
CMPT 489 Spec.Top. in Programming Lang. • Good understanding of programming language foundations, such as grammar, semantics
• Good understanding of object-oriented programming
• Good understanding of the visitor design pattern
• Some familiarity of compiler techniques
• Experience with constraint solvers
• Good communication skills; happy to assist students
CMPT 705 Design/Analysis Algorithms • Solid background in algorithm design and analysis
• Good knowledge of classical algorithms and standard algorithmic paradigms such as greedy, divided and conquer, dynamic programming, network flow, linear programming
• Good knowledge of NP-completeness, polynomial-time reductions, approximation and randomized algorithms
• Should have completed a Design and Analysis of Computing Algorithms course (such as CMPT 405, 705 or equivalent)
CMPT 711 Bioinformatics Algorithms • Experience with algorithmic aspects of bioinformatics, particularly genome and protein sequence processing
• Working knowledge of Dynamic Programming, Evolutionary Algorithms, Simulated Annealing, Hidden Markov Models, and structural bioinformatics
• Experience with algorithm design, analysis and refinement
• Previous experience with CMPT 441/711 preferred (either as student or TA)
• Solid teaching and interpersonal skills, excellent communication skills in English, excellent rapport with students
• Responsible, showing initiative, responsive, and punctual
• Excellent time management, meeting deadlines
• Providing detailed constructive feedback on students work
• Must be enthusiastic about assisting a group of students with diverse academic backgrounds
• Must have a stable internet connection, web camera and microphone
• Must be familiar with Zoom, Blackboard Ultra Collaborate, and SFU Canvas
CMPT 713 NLP • Strong background in machine learning and deep learning
• Knowledgeable about NLP concepts and models (word embeddings, language models, seq2seq models, parsing). Preferably have completed a NLP course (such as CMPT 413/713 or equivalent)
• Proficiency with Python and Pytorch programming.  Experience with Huggingface transformers library is a plus
• Experience with modern NLP datasets like GLUE, WMT, SQUaD, CoNLL
• Experience with large language models like BERT, GPT2, GPT3
• Good communication skills, proactive, and eager to assist students
CMPT 726 Machine Learning • Strong background in linear algebra and probability
• Familiarity with NumPy and PyTorch
• Should have completed a machine learning course (such as 726 or equivalent)
• Stable internet connection for remote instruction of tutorials
CMPT 729 Reinforcement Learning • Should have completed an artificial intelligence course (such as CMPT 310 or equivalent) and a machine learning course (such as CMPT 419, 726, or equivalent)
• Strong background in machine learning and deep learning
• Experience with reinforcement learning algorithms
• Proficiency with Python and Pytorch programming
• Good communication skills, proactive, and eager to assist students
CMPT 732 Big Data Lab I • Previous course experience with Programming for Big Data 
CMPT 740 Database Systems • Must have experience and working knowledge in Operating Systems I, Database Systems I and Database Systems II (CMPT 300, CMPT 354 and CMPT 454 or equivalent of the three courses)
• Understanding and working knowledge of core relational database systems topics, including transaction processing, storage systems, query execution and optimization, volatile and persistent index structures.
• Must have experience and proficiency with parallel programming using C++11 or newer C++ standards
• Must be proficient in using debugging (GDB, Valgrand) and performance evaluation (perf, gperftools)
• Research experience in at least one of the core relational database systems topics mentioned above, or a related systems research area (e.g., OS, parallel programming, concurrency)
CMPT 741 Data Mining • Must have good knowledge of data mining tasks and algorithms
• Must have finished one data mining research project in depth (e.g., publishing a top-tier data mining conference paper), or be a member in the data mining group at SFU
• Must be proficient in Python and in libraries such as scikit-learn and pandas
• Proficiency in Java/R is an asset
• Data mining project experience is highly desirable
CMPT 742 Visual Computing Lab I • TA must be knowledgeable in Computer Vision, Computer Graphics, and Geometric Modelling; specially topics like image inpainting, 3D reconstruction, and mesh processing
• Previous experience with Matlab, Unity, and Python is a must
CMPT 750 Computer Architecture • Must have deep understanding of computer architecture concepts including speculative execution, memory hierarchy, parallel architectures, and the impact of technology on architecture
• Solid working experience with computer architecture simulators (gem5 experience is strongly preferred)
• Substantial programming experience in modern C++ programming and python
• Must be proficient and has thorough knowledge of the Linux OS
• Experience with scalable software development is highly desirable
CMPT 762 Computer Vision • Strong background in linear algebra, data structures, coding, and basic computer vision and image processing concepts (e.g., convolution, image filtering, stereo, segmentation, and recognition)
• Knowledge of Python and Matlab programming
• Transforms, BRDF, object recognition, optical flow, etc
CMPT 764 Geometric Modelling in CG • Extensive research experience in geometric modeling and processing, and in computer graphics, preferably someone who has had past publications in the related areas
• Strong knowledge and programming experience with deep learning tools for geometry and shape processing
CMPT 766 Computer Animation • Experience with Python, C++
• Experience with Maya (or similar packages such as Blender)
• Experience with WebGL/OpenGL programming
• Experience with Deep Learning and Deep Reinforcement Learning
• Strong in past Math and Physics courses (calculus, linear algebra, differential equations)
• Experience with Unity/Unreal
CMPT 771 Computer Networks • Strong background in computer networking, and the Internet in particular (have taken related undergraduate and graduate courses)
• Research experience in related fields
CMPT 777 Formal Verification • Good understanding of propositional logic
• Good understanding of first-order logic
• Some familiarity of first-order theories, such as theory of equality, integer linear arithmetic
• Some familiarity of program verification techniques, such as Hoare Logic
• Experience with constraint solvers or verification tools
• Good communication skills; happy to assist students
CMPT 782 Cybersecurity Lab I • Sufficient knowledge with computer security topics such as network security, OS security, web security and cloud security
• Experience with penetration testing tools such as Kali Linux, Burp Suite, Nmap, Nessus, and Metasploit
• Good communication skill to have interactive sessions with students and entutiastics in helping them with their hands-on assignments 
CMPT 786 Cloud and Network Security • Working knowledge of networks, distributed systems, and cloud basics
• Experienced with networking and TCP/IP Protocol Stack, including TCP, QUIC, BGP, TLS, DNS, DNSSEC
• Experienced with at least one public cloud environment, preferably GC and/or AWS
• Working Knowledge of Network Operational Security, including firewalls, intrusion detection, segmentation, etc.
CMPT 789 Applied Cryptography • Familiar with modern cryptographic and cryptoanalytics techniques as the course emphasizes how such mechanisms can be effectively used within larger security systems, and finding their vulnerabilities
• Good background in mathematics, basics of probability
• Good background in cryptography, CMPT404 or equivalent
• Some familiarity with crypto libraries and primitives
CMPT 827 Intelligent Systems • Must have knowledge in python programming
• Should have completed a course in algorithm analysis or computational complexity
CMPT 863 Human-Computer Interaction • Strong command of HCI research methods and how they are applied to design and study-oriented projects
• Hands-on experience in applying principles of HCI, user-centered design, usability engineering, and/or interaction design
• Must be proficient in user interface design principles and low-fidelity to high-fidelity prototyping techniques
• Must have a portfolio that demonstrates results from HCI research, design of user interface prototypes and/ or results from user studies
• Demonstrated good standing in a graduate level HCI course (e.g., CMPT 888/985 special topics in HCI or equivalent) or an equivalent undergraduate course (e.g.,  CMPT 363)
• Must have good command of the English language and HCI research literature in order to mark written reports
• Preference will be given to students who have research and/or industry experience in HCI-oriented projects
• Must have good command of the English language to mark written reports
CMPT 980 Special Topics Computing Sci • Good understanding of programming language foundations, such as grammar, semantics
• Good understanding of object-oriented programming
• Good understanding of the visitor design pattern
• Some familiarity of compiler techniques
• Experience with constraint solvers
• Good communication skills; happy to assist students
CMPT 981 Spec. Top. Theoretical Cmpt • Knowledge of machine learning, should have completed a graduate machine learning course (such as CMPT 726 or equivalent)
• Knowledge of numerical (continuous) optimization (should have completed at least an undergraduate course)
• Strong knowledge of linear algebra and multivariable calculus (such as MATH 240 and MATH 251)
CMPT 982 Spec. Top. in Network-Systems • Preferably a graduate student in software and systems
• Familiarity with research on analysis, comprehension, debugging, and testing in software engineering
• Familiarity with research on the web/JavaScript
• Great analytical skills, ability to read academic papers, review, and discuss them
• Good programming skills (related to web— JavaScript, HTML, CSS, etc.), ability to understand and grade code, and help students with their projects
• Good communication skills, proactive, and eager to assist students
CMPT 983 Spec. Top. in Art Intelligence • Should have completed an Introduction to Computer Graphics course (such as CMPT 361 or equivalent)
• Background in computer graphics, 3D computer vision, and machine learning
• Experience reading, writing, and reviewing research papers
• Established experience (e.g. >1yr) in neural rendering (NeRF and 3DGS)
CMPT 985 Graphics-HCI-Vis-Multimedia • An understanding of either (but preferably both) Visualization and Human-Centered Technology development.
MACM 101 Discrete Math I • Solid background in Discrete Mathematics including counting (combinatorics), propositional and predicate logic, deductive logic, set theory and basics of computational complexity, number theory, functions, relations, and different proof principles
• Solid teaching and interpersonal skills as needed in the tutorials, excellent communication skills in English, excellent rapport with students
• Responsible, showing initiative, responsive, and punctual
• Excellent time management, meeting deadlines
• Must be enthusiastic about assisting a group of students with diverse academic backgrounds
• Must be familiar with zoom, Blackboard Ultra Collaborate, SFU Canvas and Skype
• Previous experience being a TA for MACM 101 preferred

Surrey Campus

Subject Course # Title TA Minimum Requirements
CMPT 105W Soc. Issues & Cmns. Strategies These courses are Technical English Writing courses and TAs will be expected to do the following:
• Mark tests and written assignments for grammar, punctuation, sentences structure, etc
• Assess essays for style, word choice, evidence and logic, audience expectation, as well as voice and tone
• Assess paraphrasing, summarizing and quotations
• Assist students to think critically, as well as apply rhetorical patterns to the appropriate situation
• Understand the fundamental of informative and persuasive communication
• Attend course meetings and respond to emails and messages in a timely manner
• Attend lectures and tutorials (when requested by the instructor)
• Communicate with the instructor with regards to student issues, etc. allowing the instructor to respond in a timely manner
• Enter grades into Canvas (Speedgrader and Gradebook)
• Hold office hours (when requested by the instructor) and communicate with students about their assignments and grades
• Monitor online discussion forums
• Meet assignment and exam marking deadlines. Student assignments are accumulative, meaning they require feedback in order to write/complete their next assignment. For example, students are required to write an outline, draft and a final for their essay assignment
• Utilize time management skills as marking deadlines for the major assignments and exams can be close
• Use assigned marking/grading rubrics and provide sufficient written feedback
• Proctor tests and final exam (when requested by instructor) and report any suspected academic integrity issues to the course instructor
• Familiar with the course materials and assignments and have experience with Canvas
CMPT 120 Intro.Cmpt.Sci/Programming I • Sufficient knowledge of basic Python programming
• Good communication skills; be able to assist students, particularly those with no programming experience
CMPT 130 Intro to Computer Prog I • Ability to explain basic programming concepts and errors
• Knowledge of basic C++ (variables, loops, functions, arrays, etc)
CMPT 201 Systems Programming • Strong knowledge in C
• Extensive experience in low-level systems programming on Linux (file system interface, threads, processes, sockets, memory allocation, etc.)
• Extensive experience in scripting on Linux (shell, python, etc.)
• Extensive experience in build systems such as make and cmake
• Extensive experience in debugging with debuggers such as GDB
• Experience in Linux system administration
CMPT 213 Object Oriented Design in Java • Strong experience with Java
• Confident with design patterns (such as MVC and observer)
• Experienced with OOD
• Experience with Java Spring Boot is an advantage
CMPT 225 Data Structures/Programming • Experience with programming in C++, including object oriented programming
• Know all ADTs and data structures mentioned in the Course Outline, including AVL trees and B-Trees
• Should have completed a course in analysis of algorithms (such as CMPT 705, 307, or equivalent)
• Comfortable with the Linux command line 
CMPT 276 Intro Software Engineering • Great programming skills
• Practical and theoretical knowledge of different stages of software development, namely, requirements, design, construction, testing, refactoring, debugging, etc
• Java, JUnit, Git, Maven
• Good communication skills, proactive, and eager to assist students
CMPT 354 Database Systems I • Knowledge of the relational model and the entity/relationship (E/R) model
• Knowledge of relational algebra and calculus
• Working knowledge and good programming skills with SQL
• Experience with SQL Lite and Jupyter Notebook is an asset
• Knowledge of relational design theory, in particular normalization, BCNF, 3NF
• Knowledge of other topics in the course outline, such as transactions, constraints and triggers, indexes, database applications development
CMPT 363 User Interface Dsgn • Preference will be given to students who have demonstrated good standing in User Interface Design, Graphics, HCI, Visualization, Vision, and Multimedia (such as CMPT 363, 888, 985, o requivalent course at the undergraduate or graduate HCI level)
• Hands-on experience in applying principles of human-computer interaction, user-centered design, usability engineering, and/or interaction design
• Must have a research and/industry portfolio that demonstrates user interface designs and/ or results from user studies
• Must have familiarity with modern UI prototyping tools, such as Balsamiq and Figma 
CMPT 373 Software Development Methods • Should have strong experience and skill with modern C++ or Rust
• Must have strong experience software development and design
• Must be able to evaluate the trade offs among design decisions and nonfunctional requirements
• Proficiency with modern developer tools (Git, IDEs, build tools, unit testing frameworks)
CMPT 379 Principles of Compiler Design • Knowledge of formal languages, regular expressions, context-free grammars
• Familiarity with general compiler architecture
• Strong experience with java
CMPT 454 Database Systems II • Knowledge of database theory and SQL
• Familiar with query optimization and transaction processing in relational databases
CMPT 473 Software Testing, Reliab & Sec • Proficiency in programming with Python, Java, and C++
• Proficiency in applying and evaluating test adequacy criteria (model based branch, path, mutation, MC/DC, ...)
• Proficiency in applying tools for dynamic and static code analysis
• Experience with test automation frameworks (for unit testing, UI testing, ...)
• Experience with continuous testing techniques (fuzzing, chaos engineering, ...) and how to use them in the development process.
MACM 101 Discrete Math I • Solid background in Discrete Mathematics including counting (combinatorics), propositional and predicate logic, deductive logic, set theory and basics of computational complexity, number theory, functions, relations, and different proof principles
• Solid teaching and interpersonal skills as needed in the tutorials, excellent communication skills in English, excellent rapport with students
• Responsible, showing initiative, responsive, and punctual
• Excellent time management, meeting deadlines
• Must be enthusiastic about assisting a group of students with diverse academic backgrounds
• Must be familiar with zoom, Blackboard Ultra Collaborate, SFU Canvas and Skype
• Previous experience being a TA for MACM 101 preferred

 

Base Units and Pay Rate

Base units (BUs) listed below are only an estimate and are subject to change based on actual enrollment. 

Burnaby Campus

Subject Course # Section Estimated # of TAs Estimated BUs/TA
CMPT 105W E100 2-5 TAs 2-5 BUs/TA
CMPT 120 D100 2-6 TAs 2-5 BUs/TA
CMPT 120 D300 2-5 TAs 2-4 BUs/TA
CMPT 125 E100 2-5 TAs 2-4 BUs/TA
CMPT 201 D100 1-2 TAs 2-5 BUs/TA
CMPT 210 D100 1-2 TAs 2-5 BUs/TA
CMPT 210 D200 1-2 TAs 2-5 BUs/TA
CMPT 225 D100 2-5 TAs 2-4 BUs/TA
CMPT 263 D100 1 TA 2-5 BUs/TA
CMPT 272 E100 2-5 TAs 2-4 BUs/TA
CMPT 276 D100 1-2 TAs 2-5 BUs/TA
CMPT 276 D300 1-2 TAs 2-5 BUs/TA
CMPT 295 D100 2-5 TAs 2-4 BUs/TA
CMPT 307 D100 1-3 TAs 2-5 BUs/TA
CMPT 307 D200 1-3 TAs 2-5 BUs/TA
CMPT 310 D100 1-3 TAs 2-5 BUs/TA
CMPT 318 D100 1-2 TAs 2-4 BUs/TA
CMPT 340 OL01 1-2 TAs 2-5 BUs/TA
CMPT 353 D100 1-3 TAs 2-5 BUs/TA
CMPT 354 D200 1-3 TAs 2-5 BUs/TA
CMPT 354 E100 1-3 TAs 2-5 BUs/TA
CMPT 361 D100 1-2 TAs 2-5 BUs/TA
CMPT 362 D100 1-3 TAs 2-5 BUs/TA
CMPT 363 D100 1-2 TAs 2-5 BUs/TA
CMPT 365 E100 1-2 TAs 2-5 BUs/TA
CMPT 371 D100 1-3 TAs 2-5 BUs/TA
CMPT 376W D100 1-2 TAs 2-5 BUs/TA
CMPT 383 D100 1-3 TAs 2-5 BUs/TA
CMPT 405/705 D100/G100 1 TA 2-5 BUs/TA
CMPT 409/981 D100/G100 1 TA 2-3 BUs/TA
CMPT 410/726 D100/G100 2-4 TAs 2-5 BUs/TA
CMPT 412/762 D100/G100 1-3 TAs 2-5 BUs/TA
CMPT 413/713 D100/G100 1-2 TAs 2-4 BUs/TA
CMPT 417/827 D100/G100 1-2 TAs 2-5 BUs/TA
CMPT 431 D100 1-2 TAs 2-4 BUs/TA
CMPT 441/711 D100/G100 1 TA 2-5 BUs/TA
CMPT 450/750 D100/G100 1 TA 2-3 BUs/TA
CMPT 454 E100 1-3 TAs 2-4 BUs/TA
CMPT 459 D100 1 TA 2-5 BUs/TA
CMPT 464/764 D100/G100 1 TA 2-3 BUs/TA
CMPT 466 D100 1 TA 2-3 BUs/TA
CMPT 469/863 D100/G100 1 TA 2 BUs/TA
CMPT 475 E100 1-3 TAs 2-4 BUs/TA
CMPT 477/777 D100/G100 1-2 TAs 2-4 BUs/TA
CMPT 479/982 D100/G100 1 TA 2-3 BUs/TA
CMPT 489/980 D100/G100 1 TA 2-3 BUs/TA
CMPT 729 G100 1 TA 2-4 BUs/TA
CMPT 732 G100 1-2 TAs 2-4 BUs/TA
CMPT 740 G100 1 TA 2-3 BUs/TA
CMPT 741 G100 1 TA 2-4 BUs/TA
CMPT 742 G100 1 TA 2-4 BUs/TA
CMPT 766 G100 1 TA 2-4 BUs/TA
CMPT 771 G100 1 TA 2-4 BUs/TA
CMPT 782 G100 1 TA 2-4 BUs/TA
CMPT 786 G100 1 TA 2 BUs/TA
CMPT 789 G100 1 TA 2-4 BUs/TA
CMPT 983 G100 1 TA 2 BUs/TA
CMPT 985 G100 1 TA 2 BUs/TA
MACM 101 D100 2-5 TAs 2-4 BUs/TA
MACM 101 D200 2-4 TAs 2-5 BUs/TA

Surrey Campus

Subject Course # Section Estimated # of TAs Estimated BUs/TA
CMPT 105W D100 2-5 TAs 2-5 BUs/TA
CMPT 120 D400 1-2 TAs 2-5 BUs/TA
CMPT 130 D100 2-4 TAs 2-5 BUs/TA
CMPT 201 D200 1-2 TAs 2-4 BUs/TA
CMPT 213 D100 1-2 TAs 2-4 BUs/TA
CMPT 225 D200 1-2 TAs 2-5 BUs/TA
CMPT 276 D200 1-2 TAs 2-5 BUs/TA
CMPT 354 D300 1-2 TAs 2-4 BUs/TA
CMPT 363 D200 1-2 TAs 2-5 BUs/TA
CMPT 373 D100 1-2 TAs 2-5 BUs/TA
CMPT 379 D100 1 TA 2-5 BUs/TA
CMPT 454 E200 1-2 TAs 2-5 BUs/TA
CMPT 473 D100 1-2 TAs 2-5 BUs/TA
MACM 101 E100 1-3 TAs 2-5 BUs/TA

Base units (BUs) listed above are only an estimate and are subject to change based on actual enrollment. 

Pay rate is per 2022-2024 TSSU Wage Schedule.