Skip to main content

CMPT 295 : Introduction to Computer Systems


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/iEQeNoC5w1uhLoTh9
  • 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.

Announcements

Date Post Link
11-28-2023 Assignment 6 is up link
11-20-2023 Finals Dec 13th. 3:30PM-6:30AM. CSIL.
11-17-2023 Assignment 5 is up link
11-1-2023 Lab 8 posted (no in-person attendance)
10-29-2023 Assignment 4 posted. Due Nov 16 at 9 PM link
10-08-2023 Lab 6 is up link
10-08-2023 Assignment 3 is up link
10-06-2023 Midterm-Oct 24th link
10-10-2023 Week 5,6 is up
09-27-2023 Lab 4 is up link
09-21-2023 Assignment 2 is up link
09-21-2023 Lab 3 is up link
09-21-2023 Week 3 is up.
09-07-2023 Week 2 and Lab 2 up
09-07-2023 Assignment 1 up link
09-02-2023 Lab 0 and 1 is up (deadline 11th)
09-02-2023 Week 1 and Week 2 Videos/Slides
09-02-2023 Course Webpage is Up link

Piazza

This term we will be using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email team@piazza.com.

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

Laptop/Computer Requirements

  • A computer. with a webcam, required to take a verification photo during quizzes (and optionally also for office hours, etc). If you don’t have a webcam but do have a phone, I’ll point out EpocCam.
  • that is powerful enough to run a VM: at least 8 GB memory, 20 GB disk, reasonably decent processor (not too old, not a Celeron or macbook air).
  • a stable internet connection.
  • participation during the lecture time required for the quizzes.

Delivery Plan

  • Tuesday, SSC 9001, Burnaby Tuesday lectures. In person and live.
  • Thursdays, SSC 9001, 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.
  • Tuesday F2F Lectures: On Tuesdays 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 Thursdays. Thursdays 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 Thursdays
  • 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

This version of CMPT 295 will combine asynchronous and synchronous content.

  • Lecture Tuesday 8:30AM—10:20AM: will be live lecture day. I will be on presenting almost all the relevant material from the week’s module. Caution: live lectures may not be recorded; if recorded you will find link on video page.
  • Multi-use Thursdays. 8:30-9:20 Refer syllabus for schedule.Weekly quizzes weekly quiz 20 mins; and 30 mins lecture material.
  • Labs Tuesdays 1:30, 2:30, 3:30 will be dedicated lab days. (required lab). Labs will be in person
  • Videos Videos will serve as slide-by-slide commentary. You can choose to watch videos either before or after class to revise the material. It is important that you watch it (unless they are tagged with PRErequisite or F2F)

We have scheduled ample office hours given the TA constraints. ~25 hrs (~30 minutes/student). Try to take advantage of this using the booking links below. Please do not book more than one slot per day as you will be locking out others. If you feel TA support is insufficient, please let the department advisor know

Calendar

Lab Date Quiz, OH Date Lectures Tuesday
Thursday   Tuesday Classroom    
Sep 07 Week 1   Sep 12 2023 Week 1 Lab 1
Sep 14 Quiz 1. Week 2   Sep 19 2023 Week 2 Lab 2
Sep 21 Quiz 2. Week 3 Ass 1 due   Sep 26 2023 Week 3 Lab 3
Sep 28 Quiz 3. Week 4   Oct 03 2023 Week 4 Lab 4
Oct 05 Quiz 4. Week 5   Oct 10 2023 SFU Holiday **Ass 2 Oct-10 Lab 5
Oct 12 Quiz 5,6. Week 5   Oct 17 2023 Week 6 Lab 6
Oct 19 Midterm OH   Oct 24 2023 Midterm Exam Lab 7
Oct 26 Week 7   Oct 31 2023 Week 7 Ass 3 due  
Nov 02 Quiz 7. Week 8   Nov 07 2023 Week 8 Lab 8
Nov 09 Quiz 8. Week 9   Nov 14 2023 Week 9  
Nov 16 Quiz 9. Week 10 Ass 4 due   Nov 21 2023 Week 10 Lab 9
Nov 23 Quiz 10/11. Week 11   Nov 28 2023 Week 11 Ass 5 due  
Nov 30 Review Session   Dec 05 2023 Review Session Ass 6 due  



Timing Staff   Booking link
Wed and Fri 5pm (starting Sep 6). TA OH Zoom [Book App (required)] zoom link
Tuesday 8:30PM—10:20PM Arrvindh/Alaa C9001  
Thursday 8:30-9:20 Quizzes+Lec Arrvindh/Alaa C9001  
Thursday 9:30-10:30 Arrvindh OH (until Oct 15) Alaa OH (post Oct 15) TASC 9009 Booking preferrable (not required) Book ins
Tuesday 1:30,2:30,3:30 F2F Labs. CSIL. Starts Sep 13    

OH Rules

  • Instructor OH are technical content, and material only. Debugging questions should be either piazza or TA OH. e.g., my program segfaults, my pointer is broken is a TA OH. How is an instruction decoded: Instructor OH
  • You have to fix an appointment for TA OH or they may not be able to meet you.
  • Piazza is your best aid. Please post on it to obtain quicker help than OH. Last term our piazza response rate was $<90 minutes$. We do not guarantee it; but the TAs have been informed.
  • We may not respond to conceptual questions on piazza. Please fix an instructor OH.

PASSWORD: See welcome email

` If you have trouble setting appointment``try different browser or clear cache `

Grading

Submit homework source code and check your grades 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%.
  • Midterm (30%). Week 1-6
  • Finals.(35%) Week 7,8,10,11 + Week 3-5

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 your 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. Please note that we will not include WD students or Incompletes in any adjustments we do.

  • You have to get atleast 50% in your midterm and final to pass this course.
  • If a student earns a ``pass’’ (50% or more usually) on the either the final exam, or on the weighted average of the final and midterm, then the student gets whatever grade they have otherwise earned in the course.
  • If a student does not earn a pass on the final, and does not earn a pass on the weighted average of the midterm and final, then the student can get at most a D in the class. The grade D is a pass, but means the course cannot be used as a prerequisite for later courses.
  • This policy ensures that students are able to demonstrate they are proficient with the course content in an exam setting in order to earn a C- or better. For example, if a student does not know the course material but has relied too heavily on others for completing their assignments, they will likely have low exam scores and high assignment scores. This policy helps ensure everyone can independently demonstrate their knowledge on exams.

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% Thursday quizes. Quizzes will always be held on Thursdays. You are allowed to retake a quiz if you fail. We will only consider your best submission.

What is the class about ?

This course should develop students’ sense of what really happens when software runs — and that this question can be answered at several levels of abstraction, including the hardware architecture level, the assembly level and the C programming level. The core around which the course is built is C, assembly, and low-level data representation, but this is connected to higher levels. Roughly how programming langauges are converted to assembly, the general structure of a processor, and the role of the processor and how it is implemented.

This course provides an introduction to computer organization, systems programming and the hardware/software interface. Topics include instruction sets, computer arithmetic, datapath design, data formats, addressing modes, memory hierarchies including caches and virtual memory, and multicore architectures. Students learn assembly language programming and design a pipelined RISC V processor. The course is open to any undergraduate who has mastered the 120s material.

RISC V

This version of the course will study the core components in computer architecture through the lens of the RISC-V (V : Five) ISA. What is RISC V? It is a modern open source instruction set that enables students to learn both assembly-level programming, the digital design of a processor. From 295’s perspective, we adopt a standard ISA that is taught widely across multiple universities world wide (e.g., Berkeley, Cornell, MIT, Princeton, Stanford etc). It affords an opportunity to study the end-to-end design and toolflow of a commercially viable processor within a term, as opposed to being restricted to less than 10% of a complex ISA (e.g., x86).

This course is a hands-on, programming-heavy course. Expect to get down and get your hands dirty with C, assembly, and hardware design. We will discuss the fundamental design and engineering trade-offs in computer organization at every level.

Staff

Instructor

Arrvindh Shriraman
Email: ashriram
Office hrs
Instructor Webpage
Food: Pizza
Cafe: Batard (Fraser and 24th)
Music: Timecop
Language: C++, Python, Chisel, LLVM
Alaa Alameldeen (from Week7)
Email: alaa
Office hrs
Instructor Webpage
Food: Chocolate!
Cafe:
Music: Cairokee
Language: C++, Python

TAs

Email: aha149
Food:
Cafe:
Music:
Language: English,
Email: fsa40
Food: Lasagna
Cafe:
Music: Evanescence
Language: English, C++
Email: ata175
Food: Pizza, Tahchin
Cafe:
Music: Classic, Blues, Rock, Metal
Language: English, Farsi, C++
Email: mza148
Food: Gheimeh
Cafe: Cafe 40 (Tehran)
Music: Daft Punk
Language: C++, Python
Email: mba186
Food: Pizza
Cafe:
Music: Classic
Language: C++,Python
Email: srazmpou
Food:
Cafe:
Music:
Language: C++ , VHDL

Pilot ChatGPT program

I am sure many of you have heard of ChatGPT; you may have even tried it. ChatGPT is a type of Artificial Intelligence (AI) language model created by OpenAI. It is designed to process natural language and generate human-like responses to text-based prompts. ChatGPT has been trained on a massive amount of text data from the internet, books, and other sources, which enables it to generate responses on a wide range of topics. How can it help you in CMPT 295

We are running a pilot program to see if we can use ChatGPT to help students with their learning. ChatGPT is not a replacement for the lectures, but it is a tool that can help you understand the concepts better. In this pilot program, students can use ChatGPT to help with only the modules we specify. Refer to each module for specific rules.

  • Beware that ChatGPT might exhibit hallucinations see here for example and relying on it blindly might in many cases to incorrect answers.
  • Generating examples: ChatGPT can generate examples for various concepts such as decoding/encoding assembly instructions and pointer manipulation.
  • Answering questions: Students can ask ChatGPT questions about specific RISC-V instructions, concepts or design features. ChatGPT can provide detailed explanations that may help clarify these topics and imp
  • You can use it for quizes. IMPORTANT: You must adhere to the rules
  • You can use it for labs. IMPORTANT: You must adhere to the rules
  • You can use it only for the programming assignments we explicitly permit it.
  • YOU CANNOT USE IT DURING THE MIDTERM AND FINALS.
  • Why not to use ChatGPT? because many companies currently forbid it due to copyright issues.
  • Overall, CMPT 295 encourages use of ChatGPT as a Supplemental Instructor , NOT a Contract Cheater.

It’s important to note that while ChatGPT 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.

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.

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.