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.
tait.tech/_site/melody/cmpt-295/01/Lecture_01_Course_Overview_...

106 lines
3.9 KiB

<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>
## Todays 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