|
|
<aside>Hello everyone!</aside>
|
|
|
|
|
|
# Welcome to CMPT 295
|
|
|
## Introduction to Computer Systems
|
|
|
|
|
|
My name is Anne Lavergne
|
|
|
|
|
|
Lecture 1 – Course Overview + Activity
|
|
|
|
|
|
<aside>How does it feel to be back on campus?</aside>
|
|
|
|
|
|
## Today’s Menu [1]
|
|
|
|
|
|
* 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
|
|
|
|
|
|
## 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, … <img src="" alt="a car with its hood up.">
|
|
|
* 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
|
|
|
|