Which resources do we have to help us learn all this?
Activity
Questions
COVID protocol – About masks! [2]
Here is a message from Elizabeth Elle, SFU Vice Provost Learning & Teaching, based on the public health order:
Unless we have an approved exemption, we are required to wear a mask in all indoor common and learning spaces, including classrooms. Please come to campus prepared with a non-medical mask.
If we forget our mask, disposable masks are available from Student Central in Burnaby and at the information desks in Vancouver and Surrey.
If we require a mask exemption in the classroom for medical reasons, please contact the Centre for Accessible Learning at cal_admin@sfu.ca for assistance.
If we are requesting mask exemptions on other protected grounds, such as religion, we can contact the Office of Student Support, Rights and Responsibilities at student_support@sfu.ca.
And please remember to be kind to each other. If we see someone not wearing a mask, do not make assumptions or judgments as that person may be exempt.
What is CMPT 295? [3]
The goal of this course is to give us, software developers, a look “under the hood” of a computer, i.e., to learn about Computer Systems => microprocessor, memory, …
This knowledge will allow us to become more efficient software developers
The big picture: [4]
In CMPT 295, we shall learn …
C programs (.c) – How our code and data are represented in memory
Assembly programs (.s) – How a compiler transforms our code into machine executable code in several steps
Object (.o) file an executable – How a compiler optimizes (or not) our code
Computer executes it – How a microprocessor is designed and how it executes our code
CPU, Memory – How memory is designed
How all of this can impact the execution of our code How to write more efficient and reliable code:
* Be able to find and eliminate bugs
more efficiently
* Be able to ascertain program performance and tune it by optimizing our code
What should we already know? [5]
Write correct C programs
C constructs (variables, data types, pointers, if/else, switch/case, for/while/do while, function calls, arrays, …)
What a stack is and how it works
Binary/decimal/hexadecimal numeral systems
How to convert from one numeral system to the others
Basic arithmetic
Perform Boolean algebra using and, or, not, xor
Which resources do we have? [6]
Course web site
https://www2.cs.sfu.ca/CourseCentral/295/alavergn/index.html
Textbook
Computer Systems: A Programmer’s Perspective, 3/E, Randal E. Bryant, David R. O'Hallaron, Pearson, 2016
Labs in CSIL (Computing Science Instructional Lab)
Target Machine: CSIL workstation
Linux platform (or OS)
C programming language
x86-64 assembly language
gcc compiler
Instructor and TAs - Office hours
Activity - Discover our resources [7]
Instructions:
1. Form teams of 3 to 4
2. Do Lecture 1 Activity on CourSys
3. Time: about 30 minutes
Question? [8]
Blank page.
Summary [9]
COVID Protocol
What is CMPT 295?
What shall we learn in CMPT 295?
What should we already know?
Which resources do we have to help us learn all this?
Activity
Questions
Next Lecture [10]
Data Representation
Representing information as bits
To get ready for our next lecture:
Optional: Read Chapter 1 of textbook
Not so optional: Read Section 2.1 of Chapter 2
Download the partial lecture notes found under the column Lecture in the table on our course web site