Skip to main content

CMPT 295 : Introduction to Computer System


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
2021-10-10 Final Solutions. Dec 10th link
2021-11-29 Assignment 6 is up link
2021-11-14 Assignment 5 is up link
11-15-2021 Week 9,10,11 is up
11-21-2021 Q8 solution link
11-21-2021 Q7 solution link
11-14-2021 no lab on Nov 14
11-1-2021 Lab 8 posted
11-1-2021 Assignment 4 posted
06-26-2021 Week 7,8, (9 F2F)
10-28-2021 Midterm Solution link
10-28-2021 Midterm Questions link
10-18-2021 Q5 solution link
10-18-2021 Q4 solution link
10-13-2021 Lab 6 is up link
10-13-2021 Assignment 3 is up link
10-10-2021 Week 6 is up
09-27-2021 Q3 solution link
09-27-2021 Lab 4 is up link
09-27-2021 Assignment 2 is up link
06-27-2021 Lab 3 is up link
09-24-2021 Q2 solution link
09-24-2021 Q1 solution link
09-17-2021 Week 3,4,5 is up
09-12-2021 Week 2 and Lab 2 up
09-12-2021 Assignment 1 up link
09-02-2021 Lab 0 and 1 is up (deadline 13th)
09-02-2021 Week 1 and Week 2 Videos/Slides
09-02-2021 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/fall2021/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

We understand that a number of you may be cautious and trepid about return to in class sessions. To ensure that we are all safe we would like to encourage you all to wear masks and practice social distancing. I will be wearing a mask during instruction.

Also, since this is the first semester back we would like to remain vigilant. Further through last year we have learnt how to make teaching effective and efficient online. We would like to retain some of those practices. As a consequence our initial plan is

  • Thursay lectures and Instructor Office Hours. In person and live.
  • Monday sessions will be through zoom
  • All TA sessions will be zoom
  • 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. Our plan

  • 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: 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 below on how to join. Students can interact with the TA and post questions on piazza.
  • Homeworks/Assignments Submissions - Github. Refer lab0 for steps.
  • Online Mondays. To begin with all sessions on monday will be conducted online. This includes biweekly quizes and labs
  • Zoom Weekly Quizzes - These quizzes exist for me to obtain feedback on the learning rate and appropriately tailor future lectures. You can ask questions and discuss with your peers during these quizzes (the objective is to learn). The quizzes will be conducted during thursday lecture hours.
  • Zoom Labs/Tutorials Labs. Attend the labs and practice tutorials will be held online 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 8:30PM—10: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 Zoom Mondays. Refer syllabus for schedule. Biweekly quizzes weeekly quiz. 2.5% of overall grade.
  • Zoom labs Mondays 9:30AM-10:20 or 10:30-11:20: will be dedicated lab days. (required lab). Please visit this page to find your TA zoom link. Attendance is required and counts towards 2.5% of your overall grade.
  • Zoom Monday 8:30 - 9:20 Biweekly quizes or Instructor OH. See calendar below

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 Monday online zoom Labs Date Thursday In class.
Semester starts   Lab 0 (self) Sep 9 Week 1
Sep 13 No session. Lab 1 Sep 16 Week 2.
Sep 20 Online Quiz Week 1-2 deck Lab 2 Sep 23 Week 3.
Sep 27 Sep 30 makeup. [Zoom] Lab 3 Sep 30 Holiday
Oct 4 Online Quiz Week 3 deck Lab 4/5 Oct 7 Week 4.
Oct 11 Holiday   Oct 14 Week 5.
Oct 18 Online Quiz Week 4,5 deck Lab 6 Oct 21 Week 6.
Oct 25 Midterm OH [Zoom] Lab 7 Oct 28 Midterm
Nov 1 No session Nov Week 7.
Nov 8 Makeup Week 8 Nov 11 Lab 8 Nov 11 Holiday. Rememberance
Nov 15 Online Quiz Week 7,8 deck Nov 18 Week 9.
Nov 22 No session Lab 9 Nov 25 Week 10.
Nov 29 Online Quiz Week 10 deck   Dec 2 Week 11.

Zoom

To connect to links below you have to be logged into sfu.zoom.us

WE DO NOT CONTROL INSTRUCTIONS ON THIS PAGE. PLEASE CONTACT SFU IT

Zoom Setup

Timing Staff   Booking link
2:30—3:20pm Tue and Thu. Wed 11:30-12:30 (from Sep 14) TA OH zoom Passcode: 999999 Book TA
Thu 10:30-11:30 SRY 5127E   Arrvindh Shriraman Book Inst.
Thu 8:30-10:20pm Arrvindh Shriraman F2F  
Mon 8:30-9:20 Biweekly online quizes Arrvindh Shriraman zoom Passcode: 999999
Mon 9:30-10:30pm (201-202) 10:30-11:30 (203-204) TA Labs zoom  

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.

PASSWORD: See welcome email

If you have trouble setting appointmenttry different browser or clear cache

  • TA-only Calendar. TAs use this link to check appointments

  • You can message the instructor (but not another students) in the Zoom chat window during lecture hours. If the instructor prompts, you may unmute yourself to speak.
  • During lab hours, we are permitting chat windows to be open to aid in discussion. But if any of you find this uncomfortable do not hesitate to speak with us and we will take appropriate action.
  • Any messages to TA will be prefixed with @TA and any messages intended for instructor will be prefixed with @PROF.

Grading

Submit homework source code and check your grades on Coursys

  • Six programming assignments. (50%)
  • Labs and Participation (2.5%). Attendance and participation required to get the grade.
  • Weekly Quizzes (2.5%). Points are awarded if you pass the quiz (you can retake the quiz if you want to pass).
  • Midterm (15%)
  • Final (30%)
  • EPA: Extra credit 2%

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 a cumulative grade of C- across your midterm and final to pass this course.

In the event that our 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 PNP students or Incompletes in any adjustments we do.

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.

1.25% 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.

1.25% attend the lab of your total grade comes from labs. If you attend the labs you will be awarded this.

2.5% pass the thursday quizes. Quizzes will always be held on mondays. You simply have to pass them. You are allowed to retake a quiz if you fail. We will only consider you final submission (however you must take the quiz atleast once before we reveal the answers).

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 basic other programming langauges could could be implemented), lower levels (the general structure of a processor), and the role of the processor and its 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 and the digital design of a processor.

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

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 you should have been taught in 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.

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

TAs

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: henry_fang
Food:
Cafe:
Music:
Language: English,

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.