You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.9 KiB
3.9 KiB
Welcome to CMPT 295
Introduction to Computer Systems
My name is Anne Lavergne
Lecture 1 – Course Overview + Activity
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, …
- 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
- Target Machine: CSIL workstation
- Instructor and TAs - Office hours
Activity - Discover our resources [7]
Instructions:
- Form teams of 3 to 4
- Do Lecture 1 Activity on CourSys
- 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