Skip to main content

CMPT 295 : Introduction to Computer Systems


Attendance Credit

Fill this form for each lecture you attend; MagicNumber will be announced in class and will be valid only for 10-15 minutes.

Announcements

Date Post Link
09-02-2024 Lab 0 and 1 is up (deadline 13th)
09-02-2024 Week 1 and Week 2 Videos/Slides
09-02-2024 Course Webpage is Up link

Piazza

Hello everyone!

This term, we’re excited to use Piazza for our class discussions. It’s a fantastic platform that enables quick and efficient help from your classmates, the TA, and me. I highly encourage you to ask your questions on Piazza instead of emailing them directly to us. This way, everyone benefits from the shared knowledge.

Find our class signup link at: https://piazza.com/sfu.ca/fall2025/cmpt295

Delivery Plan
  • Monday, C9001, Burnaby Monday lectures. In person and live.
  • Wednesdays, C9001, Burnaby Quiz on Canvas + Class discussion. Quiz first-attempt will have to be on SFU campus.
  • Video Aids : Slide-by-Slide video will be available on youTube prior to the lecture for flipped (pre) or post class viewing. See the schedule accompanying the weekly notes for links. You can choose to watch videos either before or after class to revise the material. They have been provided for you to watch and refresh yourself if you are not comfortable with any of the slide material.
  • Monday F2F Lectures: On Mondays at class during lecture hours I will be going over slide desks and or problem sets and demonstrations (these will be marked with F2F tag on the syllabus) of the slides. F2F sessions will be spent on reinforcing concepts and problem sets (not slide-by-slide commentary). The class videos will be recorded and be made available within 72hrs after the class.
  • Q&A in Piazza. See above on how to join. Students can interact with the TA and post questions on piazza.
  • Homeworks/Assignments Submissions - Github. Refer lab0 for steps.
  • Quiz Wednesdays. Wednesdays will be entirely dedicated for Q/A and Public OH in class (if you booked private OH then TASC 9009), Burnaby. This includes weekly quizes and labs
  • Canvas Weekly Quizzes - These quizzes exist for you to obtain immediate feedback and me to tailor the learning. You can retake the quiz up to 5 times. The quizzes will be conducted on Wednesdays
  • Labs/Tutorials Labs. Attend the labs and practice tutorials will be held by TAs. These are there to help you complete the assignments and attendance will be graded.

Important: The videos will be the reference for slide-by-slide commentary You should watch lab/tutorial videos prior to session The lectures and lab material assume you have watched the videos

Time and Organization

CMPT 295 combines asynchronous and synchronous content:

  • Monday Lectures: Live presentations covering weekly module material. May not be recorded.
  • Wednesdays: Lecture + 25-min weekly quizzes.
  • Tuesday Labs (12:30, 3:30): Hands-on training and assignment guidance.
  • Videos: Slide-by-slide commentary. Watch before or after class (required unless tagged PRErequisite or F2F).

Calendar

Date Quiz, Classroom Date Labs Lectures  
Monday Classroom CSIL Tuesday   Wednesday.  
        Sep 3 Week 1
Sep 08 Week 1 Quiz 1. Sep 09 Lab 1 Sep 10 2025 Week 2
Sep 15 Week 2 Quiz 2. Sep 16 Lab 2 Sep 17 2025 Week 3
Sep 22 Week 3 Quiz 3. Ass 1 due Sep 23 Exam 1 (Prereq: W1,W2) 12:30,3:30 Sep 24 2025 Week 4
Sep 29 Week 4 Quiz 4. Sep 30 Holiday Oct 01 2025 Week 5
Oct 06 Week 5 Oct 07 Lab 4. Lab 5 Self Oct 08 2025 Week 6
Oct 13 Holiday Quiz 5. Ass2 due Oct 14 Lab 6 Oct 15 2025 Week 6 Quiz 6.
Oct 20 Exam 2 (ISAs: W3-W6) 12:30 Oct 21 Lab 7 Oct 22 2025 Week 7
Oct 27 Week 7 Quiz 7. Oct 28 Lab 7 Oct 29 2025 Week 8 Ass 3 due
Nov 03 Week 8 Quiz 8. Nov 04 Lab 8 Nov 05 2025 Week 9
Nov 10 Week 9 Quiz 9. Nov 11 Holiday Nov 12 2025 Week 10 Ass 4 due
Nov 17 Week 10 Quiz 10. Nov 18 Lab 9 Nov 19 2025 Week 11
Nov 24 Week 11 Nov 25   Nov 26 2025 Week 12 Ass 5 due
Dec 01 Week 12 Dec 02   . TBD. Ass 6 due.  



Office Hour Details

Timing Staff   Booking link
Tue/Fri (1:30@CSIL, 8:30pm@Zoom). 9814 TA OH CSIL [Book App (required)]
Monday 12:30PM - 2:20PM Arrvindh WMC3520  
Wednesday 12:30PM - 1:20PM Quizzes+Lec Arrvindh WMC3520  
Monday 1:30-2:30 Arrvindh OH TASC 9009  
Tuesday 12:30,3:30 F2F Labs. CSIL. Starts Sep 9    
  • Instructor OH: Technical content and conceptual questions (e.g., “How is an instruction decoded?”). Use TA OH or Piazza for assignments.
  • TA OH: Book appointments for dedicated assistance.
  • Piazza: Quick help with ~60-minute response time.
First week checklist

1. 📖 Read the Course Policies

  • Course Policies
  • Understand grading, communication rules, and course expectations.

2. 💬 Register on Piazza

  • Join Piazza (link on course website).
  • This is our main channel for Q\&A and announcements.
  • We do not answer private emails—use Piazza instead.

3. 🖥️ Set Up Your Programming Environment

Choose one of the following:

🔒 Required: Set up MFA for CSIL.

⚠️ Without this setup you cannot do labs or assignments.


4. 🧪 Complete Lab 0 (Before First Lab)

  • Lab 0 Instructions
  • This lab ensures your environment works.
  • Deadline: Must be done before any other lab or assignment is graded.

5. 🧑‍💻 Preview Lab 1

  • Lab 1 Materials
  • Watch the video and read instructions.
  • Can be completed during your first in-person lab session.

6. 🎥 Prepare for Week 1 Classes


7. 📝 Late Enrollments Only


8. 📊 Grading Reminder

  • Grading Criteria
  • You must achieve at least:

    • 30% on Exam 1
    • 40% on Exam 2
    • 50% on the Final to pass the course.

9. 🎁 Attendance Incentive Program

  • Each lecture you attend = 1-day extension credit for assignments.
  • Example: Attend 7 lectures → 7 extension days you can use later.
  • Normally, no late submissions are allowed—this program is your only flexibility.

Tip for success: Students who complete this checklist before Week 1, and regularly attend lectures and labs, consistently achieve higher grades.


Grading

Finalized grades will always be on Coursys

  • Six programming assignments. (30%)
  • Labs and Participation.
  • 10 Weekly Quizzes (5%). 0.5% for each quiz. Full points are awarded if you score atleast 80%.
  • Exam 1 Week 1-2 (15%). Exam 2 Week 3-5 (15%)
  • Exam 3 (35%) Week 7,8,9,10,11. Week 9 (only Ass5 and material in class). Week 10 (gates, flipflops, truth-tables will not be tested).

  • PASS/FAIL Criteria You must achieve at least 30% on Exam 1, 40% on Exam 2, and 50% on the Final to pass.
  • Students not meeting these criteria receive at most a D grade (pass, but cannot be used as prerequisite).
  • This ensures everyone can independently demonstrate course knowledge to earn a C- or better.

This is the typical mapping from % to letter grade at the end: A+ 97 A 92 A- 87 B+ 82 B 77 B- 72 C+ 67 C 62 C- 55 D 50 F

In the event that distribution does not align with the CMPT departmental guidelines, we may decrease the raw score boundaries, but they will not increase i.e. it is possible to receive a higher grade than the mapping suggests, but not a lower one. this will not apply to WD students or Incompletes.

Tentative Letter Grade
A1 (4%) A2 (4%) A3 (7%) A4 (5%) A5 (5%) A6 (5%) Ex1 (15%) Ex2 (15%) Final (30%) Quiz (10%)

Overall Grade:

Computer-based Testing

In 295, we extensively use computer-based testing for all quizes, midterms, final, and programming assignments. State-of-the-art computer-based testing has been developed to eliminate TA-opinion based scoring ensure fairness, and accurately measure student ability to program. The scores essentially reflect at this specific moment in your educational trajectory, the programming knowledge required for 300 and 400-level courses, and minimum programming expertise required for a job. Programming is an unusual form of computer interaction that demands precise output and testing; there is no such things as “somewhat correct” in programming. Hence, we award scores based on demonstrable tests passed and failed. TAs simply verify and upload the grades; they are not evaluating the tests and cannot influence your actual scores. Please email them only in the event that there is an error in our grading scheme. We understand that tests and scores do not inherently measure your intrinsic worth as a student or human. Remember, the letter grades are not passing judgement on you as a person.

Participation grades

Participation grades are awarded at the end of the course. I want to encourage participation in my classes. I believe that learning goes both ways, and that it’s important for you to participate to get the full learning experience. Therefore, I encourage participation by making part of your grade dependent on it.

Extra credit: 0.5% class wide for active classes of your total grade comes from actively participating in class (defined broadly) and attending labs. In general, if the overall classroom environment is active everyone will be awarded this grade. So ask questions for both your sake and your neighbor’s sake. I will be judging this after each class.

  • First, half the battle in learning is asking questions. So I would like to reward you.
  • Second, questions help class wide learning experience and promotes a healthy classroom environment.

5% Wednesday quizes. Quizzes will always be held on Wednesdays. You are allowed to retake a quiz if you fail. We will only consider your best submission.

What is the class about ?

Understanding Software in Action

In this course, we’ll embark on an exciting exploration of what really happens when software runs. This journey takes us through multiple levels of abstraction, from hardware architecture to assembly language, and down to the intricate workings of C programming. At the core of our study is a trio of fundamental elements: C programming, assembly language, and low-level data representation. But our exploration doesn’t stop there; we’ll connect these core elements to higher-level concepts, diving into how programming languages are translated into assembly, understanding the general structure of a processor, and comprehending the processor’s role and implementation.

This course is designed to introduce you to the fascinating world of computer organization, systems programming, and the hardware/software interface. Our topics are comprehensive and include instruction sets, computer arithmetic, datapath design, data formats, addressing modes, memory hierarchies (covering both caches and virtual memory), and multicore architectures. You’ll gain hands-on experience with assembly language programming and even design a pipelined RISC V processor! This course is perfectly suited for any undergraduate who has successfully completed the 120s material.

RISC V

In this iteration of the course, we’ll delve into the core components of computer architecture through the lens of the RISC-V (Roman numeral V for Five) Instruction Set Architecture (ISA). RISC-V is a modern, open-source ISA, offering a unique opportunity for you to learn both assembly-level programming and the digital design of a processor. We’ve chosen RISC-V because it’s a standard ISA taught worldwide at prestigious universities like Berkeley, Cornell, MIT, Princeton, Stanford, and more. This choice allows us to explore the end-to-end design and toolflow of a commercially viable processor within a single term, rather than being limited to a small fraction of a more complex ISA, like x86.

A Hands-On, Programming-Intensive 4 credit Experience

Prepare for a hands-on, programming-intensive experience. This course will immerse you in the practical aspects of C, assembly, and computer architecture. We’ll engage in detailed discussions about the fundamental design and engineering trade-offs in computer organization at every level, ensuring a rich and comprehensive learning experience.

Staff

Arrvindh Shriraman
Email: ashriram
Office hrs
Instructor Webpage
Food: Pizza
Cafe: Batard (Fraser and 24th)
Music: Timecop
Language: C++, Python, Chisel, LLVM
Email: srazmpou
Food:
Cafe:
Music:
Language: C++ , VHDL
Email: mta188
Food:
Cafe:
Music: Piano
Language: C, C++, Python, JS, MATLAB, Verilog
Email: ata175
Food: Pizza, Tahchin
Cafe:
Music: Classic, Blues, Rock, Metal
Language: English, Farsi, C++
Email: mba186
Food: Pizza
Cafe:
Music: Classic
Language: C++,Python
Why is CMPT 295 a required course ?

CMPT 295 is a great way to gain a deep understanding of how computers work, build a strong foundation in computer science, and pursue a career in technology. Here are some reasons:

  • Understand how computers work: CMPT 295 is the study of how computer systems are designed and how they operate. You will gain a deep understanding of how computers work, from the low-level hardware components to the high-level software applications.

  • Build a strong foundation in computer science Computer organization is a fundamental topic in computer science, and it provides a strong foundation for many other areas of the field.

  • Pursue a career in technology: By mastering computer organization, you can develop a strong foundation that will help you succeed in other areas of computer science, such as software engineering, database management, and artificial intelligence.

  • Optimize computer performance: By understanding how hardware and software interact, you can identify areas where performance can be improved and make changes to improve overall system performance.

  • Drive innovation: As researchers continue to push the boundaries of what AI can do, they require more powerful systems to enable them to explore more complex models and algorithms. For example, specialized AI chips such as Google’s Tensor Processing Units (TPUs) and NVIDIA’s Tesla GPUs have driven significant improvements in AI performance.

AI in 295

CMPT 295 encourages use of AI Bots as a Supplemental Instructor , NOT a Contract Cheater.

It’s important to note that while AI Bots can be a helpful resource for students, it’s not a substitute for in-depth study and understanding of the material. It’s important to always verify information and double-check it against reliable sources.

We have developed a custom AI Bot or Buddy for CMPT 295. It is a GPT-4 based chatbot that can answer questions about the course material. 295Bot

Waitlisted and Late Enrollments

WE DO NOT CONTROL ENROLLMENTS INTO THE COURSE, CANVAS, OR COURSYS PLEASE TALK TO AN ADVISOR or helpdesk@cs.sfu.ca

  • Fill out this form: https://forms.gle/Te2aMDMCQYPmg3XH7
  • Lab 0 needs to be complete before we can grade your assignment and subsequent quizzes.
  • If you arrive late, Lab 0 and Lab 1 might be complete. You have to complete these on your own.

Disclaimers about this web page

  • All course information on this web page is tentative and could be in error. It can also change at any time. Confirm crucial dates or information with me in person during class. Double check with SFU calendar or schedule information for official class times and final exams time and location.
  • Students are expected to attend all classes: announcements about assigned readings, homeworks and exams will be made available at the start of each class. Such announcements may not be made on this web page, so don’t rely on information here instead of attending class.