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/2UESC8B9rtwrg5nN8

  • Lab 0 needs to be complete before we can grade your assignment and subsequent quizzes.

    • Lab 0 and Lab 1 might be complete. You have to complete this on your own.

Announcements

Date Post Link
10-20-2022 Finals Dec 9th. 7pm-9:30pm. All CSIL.
11-28-2022 Assignment 6 is up link
11-14-2022 Assignment 5 is up link
11-14-2022 Week 10,11 is up
11-1-2022 Lab 8 posted
10-29-2022 Assignment 4 posted link
10-20-2022 Week 7,8, (9 F2F)
10-13-2022 Lab 6 is up link
10-13-2022 Assignment 3 is up link
10-10-2022 Midterm-Oct 20 link
10-10-2022 Week 6 is up
09-27-2022 Lab 4 is up link
09-27-2022 Assignment 2 is up link
09-21-2022 Lab 3 is up link
09-21-2022 Week 3,4,5 is up
09-13-2022 Week 2 and Lab 2 up
09-09-2022 Assignment 1 up link
09-02-2022 Lab 0 and 1 is up (deadline 13th)
09-02-2022 Week 1 and Week 2 Videos/Slides
09-02-2022 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/fall2022/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

  • Thursday, SWH10081, Burnaby Thursday lectures and Instructor Office Hours. In person and live.
  • Mondays, SWH10081, Burnaby Quiz on Canvas. Quiz can only be taken from SFU Campus.
  • We are confident that this arrangement will be ideal for many of you who may still be distanced from class and can enjoy this hybrid structure that enables a collegial atmosphere as well as some benefits of remote learning.

  • Flipped Lectures : Complete week videos will premier on youTube 2 weeks prior to lecture for flipped (pre-class) viewing. See the schedule accompanying the weekly notes for links. It is essential students view the flipped videos ahead of class to follow class content. These will serve as slide-by-slide commentary.
  • Thursday F2F Lectures: C9001, Burnaby. On Thursdays 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 Mondays. Mondays 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 Mondays
  • 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: You are expected to have watched the videos prior to attending the lab and class. 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 Thursday 4:30PM—6:20AM: will be live lecture day. I will be reviewing the quiz from the previous week. I will be on presenting some of the material from the week’s module. Further time will be spent on answering class-wide questions (caution: live lectures may not be recorded; if recorded you will find link on video page).
  • Multi-use Mondays. Refer syllabus for schedule.Weekly quizzes weekly quiz.
  • Labs Tuesdays 3:30, 4:30, 5:30 will be dedicated lab days. (required lab). Labs will be in person

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

Finals time will be set by SFU

Date Lectures Date Quiz, OH Date  
Thursday Classroom Monday Classroom Tuesday CSIL
Sep 08 Week 1 Sep 12 Quiz 1. (Class) Sep 13 Lab 1
Sep 15 Week 2 Sep 19 Holiday Async Quiz 2. Sep 20 Lab 2
Sep 22 Week 3 Sep 26 Quiz 3. (Ass1 due) Sep 27 Lab 3
Sep 29 Week 4 Oct 03 Quiz 4. Oct 04 Lab 4
Oct 06 Week 5 Oct 10 --No Session-- Quiz 5 Oct 11 Lab 5
Oct 13 Week 6 Async Quiz 6 (Ass2 due) Oct 17 Midterm OH Oct 18 Lab 6
Oct 20 Midterm Exam Oct 24 Midterm review Oct 24 Lab 7
Oct 27 Week 7 Oct 31 Quiz 7. (Ass 3 due) Class. Sep 1 Lab 8
Nov 03 Week 8 Nov 07 Quiz 8. Class. Nov 8  
Nov 10 Week 9 Nov 14 Class (Ass 4 due) Nov 15 Lab 9
Nov 17 Week 10 Nov 21 Class Nov 22  
Nov 24 Week 11 Nov 28 Quiz 10/11. (Ass 5 due) Nov 29  
Dec 01 Revision Dec 05 Revision Ass 6 due Dec 06  
Dec 09 Finals SWH 10081 and CSIL        

On Mondays, I will be available for public office hours in the classroom. There will be no lecture on Mondays. This is dedicated for lecture and quiz related Q/A from previous week 1-1 Q/A will be by appt on Thursdays only.

Timing Staff   Booking link
11:30—12:30pm Wed. 12 - 1pm and 6pm-7pm Fri (starting Sep 12th) TA OH ASB 9810 Book TA
Thursday 4:30-6:20pm (starting Sep 19th) Arrvindh Shriraman SWH 10081. Book Inst.
Monday 4:30-5:20 Quizes Arrvindh Shriraman SWH 10081  
Tuesday 3:30,4:30,5:30,6:30 F2F Labs. CSIL    

Midterms/Finals

  • Midterm will be held over two time slots between 2:00pm - 4:00pm and 4:30pm - 6:30pm on Oct 20th since the class is a large cohort. You will be provided a sign up sheet. But if your preferred slot fills up then you will be expected to write in the another slot.
  • Finals will be held on Dec 9. 7:00pm - 9:30pm. CSIL and SWH 10081. The assignments have been made based on your midterm choice (Slot 1 will be in CSIL. Slot 2 will be in SWH 10081).

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 does hashing work: Instructor OH
  • You have to fix and appointment or we 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%)
  • Finals. Week 7,8,10,11 + Week 3-5 (35%)

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

You have to get atleast 45% in your midterm and final to pass this course.

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.

Computer-based Testing

In 295, we extensively use computer-based testing for all quizes, midterms, final, and programming assignments. 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% Monday quizes. Quizzes will always be held on Mondays. 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.

Prerequisite Expectations

295 is an intensive course. We do try to administer the prerequisites in Week 1 and 2, that should have been taught by previous courses. If you find this material and Assignment 1 even a little uncomfortable then we strongly encourage you to consider taking this course in a different term once you have built up the required prerequisites.

Either MACM 101, and CMPT 125 and CMPT 127, or CMPT 135. or MATH 151 and CMPT 102 for students in an Applied Physics program, all with a minimum grade of C-. Please see here for prerequisites we expect you to know from prior courses:

As outlined above we expect prior courses to administer the requisite C or C++ knowledge with experience in working with linux terminal/shell. If you do not have this experience; please head to the tutorials page and follow the tutorials, and self-learn using the videos we post and recommend. All assignments and lab in this course are administered through the linux environment and assume you have the prerequisites.

WARNING: We have minimal TA support (~50 students/TA) and do not have resources to be imparting prerequisites that should have been taught in previous courses.

If you are not comfortable working with C/C++ and linux terminal then you do not have the prereqs (irrespective of your grade in the prior course), please talk to an academic advisor

Linux knowledge

Solid programming skills (C). Working at shell/terminal in unix/linux.

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: minh_bui_3
Food: pho, curry, ramen, sushi
Cafe: None
Music: Backstreet boys, Blackpink, Green days
Language: English, Vietnamese
Email: milad_hakimi
Food: Pizza, Qeimeh
Cafe: Moon
Music: Classic/Middle Eastern Jazz
Language: English, Parseltongue
Email: apa120
Food: Double Egg Kathi Rolls
Cafe: N/A
Music: Imagine Dragons
Language: English
Email: ama241
Food:
Cafe: Honey's Donuts
Music: Classical and Carnatic
Language: English, Python, C, Java
Email: aha149
Food:
Cafe:
Music:
Language: English,
Email: ygk1
Food: Injera, Pizza
Cafe:
Music: Ethiopiques Series
Language: English, C, C++
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: fma44
Food: dizi
Cafe:
Music:
Language: C++ , Python, VHDL
Email: shiges
Food:
Cafe:
Music:
Language: C++ , Python
Email: srazmpou
Food:
Cafe:
Music:
Language: C++ , VHDL

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.