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_...

3.9 KiB

Welcome to CMPT 295

Introduction to Computer Systems

My name is Anne Lavergne

Lecture 1 Course Overview + Activity

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, … 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