|
|
<p><aside>Hello everyone!</aside></p>
|
|
|
|
|
|
<h1>Welcome to CMPT 295</h1>
|
|
|
|
|
|
<h2>Introduction to Computer Systems</h2>
|
|
|
|
|
|
<p>My name is Anne Lavergne</p>
|
|
|
|
|
|
<p>Lecture 1 – Course Overview + Activity</p>
|
|
|
|
|
|
<p><aside>How does it feel to be back on campus?</aside></p>
|
|
|
|
|
|
<h2>Today’s Menu [1]</h2>
|
|
|
|
|
|
<ul>
|
|
|
<li>COVID Protocol</li>
|
|
|
<li>What is CMPT 295?
|
|
|
|
|
|
<ul>
|
|
|
<li>What shall we learn in CMPT 295?</li>
|
|
|
<li>What should we already know?</li>
|
|
|
<li>Which resources do we have to help us learn all this?</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>Activity</li>
|
|
|
<li>Questions</li>
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<h2>COVID protocol – About masks! [2]</h2>
|
|
|
|
|
|
<p>Here is a message from Elizabeth Elle, SFU Vice Provost Learning & Teaching, based on the public health order:</p>
|
|
|
|
|
|
<ul>
|
|
|
<li>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.
|
|
|
|
|
|
<ul>
|
|
|
<li>If we forget our mask, disposable masks are available from Student Central in Burnaby and at the information desks in Vancouver and Surrey.</li>
|
|
|
<li>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.</li>
|
|
|
<li>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.</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>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.</li>
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<h2>What is CMPT 295? [3]</h2>
|
|
|
|
|
|
<ul>
|
|
|
<li>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."></li>
|
|
|
<li>This knowledge will allow us to become more efficient software developers</li>
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<h2>The big picture: [4]</h2>
|
|
|
|
|
|
<p>In CMPT 295, we shall learn …</p>
|
|
|
|
|
|
<p>C programs (.c) – How our code and data are represented in memory</p>
|
|
|
|
|
|
<p>Assembly programs (.s) – How a compiler transforms our code into machine executable code in several steps</p>
|
|
|
|
|
|
<p>Object (.o) file an executable – How a compiler optimizes (or not) our code</p>
|
|
|
|
|
|
<p>Computer executes it – How a microprocessor is designed and how it executes our code</p>
|
|
|
|
|
|
<p>CPU, Memory – How memory is designed</p>
|
|
|
|
|
|
<p>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</p>
|
|
|
|
|
|
<h2>What should we already know? [5]</h2>
|
|
|
|
|
|
<ul>
|
|
|
<li>Write correct C programs
|
|
|
|
|
|
<ul>
|
|
|
<li>C constructs (variables, data types, pointers, if/else, switch/case, for/while/do while, function calls, arrays, …)</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>What a stack is and how it works</li>
|
|
|
<li>Binary/decimal/hexadecimal numeral systems
|
|
|
|
|
|
<ul>
|
|
|
<li>How to convert from one numeral system to the others</li>
|
|
|
<li>Basic arithmetic</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>Perform Boolean algebra using and, or, not, xor</li>
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<h2>Which resources do we have? [6]</h2>
|
|
|
|
|
|
<ul>
|
|
|
<li>Course web site
|
|
|
https://www2.cs.sfu.ca/CourseCentral/295/alavergn/index.html</li>
|
|
|
<li>Textbook
|
|
|
|
|
|
<ul>
|
|
|
<li>Computer Systems: A Programmer’s Perspective, 3/E, Randal E. Bryant, David R. O'Hallaron, Pearson, 2016</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>Labs in CSIL (Computing Science Instructional Lab)
|
|
|
|
|
|
<ul>
|
|
|
<li>Target Machine: CSIL workstation
|
|
|
|
|
|
<ul>
|
|
|
<li>Linux platform (or OS)</li>
|
|
|
<li>C programming language</li>
|
|
|
<li>x86-64 assembly language</li>
|
|
|
<li>gcc compiler</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>Instructor and TAs - Office hours</li>
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<h2>Activity - Discover our resources [7]</h2>
|
|
|
|
|
|
<p>Instructions:
|
|
|
1. Form teams of 3 to 4
|
|
|
2. Do Lecture 1 Activity on CourSys
|
|
|
3. Time: about 30 minutes</p>
|
|
|
|
|
|
<h2>Question? [8]</h2>
|
|
|
|
|
|
<p>Blank page.</p>
|
|
|
|
|
|
<h2>Summary [9]</h2>
|
|
|
|
|
|
<ul>
|
|
|
<li>COVID Protocol</li>
|
|
|
<li>What is CMPT 295?
|
|
|
|
|
|
<ul>
|
|
|
<li>What shall we learn in CMPT 295?</li>
|
|
|
<li>What should we already know?</li>
|
|
|
<li>Which resources do we have to help us learn all this?</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>Activity</li>
|
|
|
<li>Questions</li>
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
<h2>Next Lecture [10]</h2>
|
|
|
|
|
|
<ul>
|
|
|
<li><p>Data Representation</p>
|
|
|
|
|
|
<ul>
|
|
|
<li>Representing information as bits</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li><p>To get ready for our next lecture:</p>
|
|
|
|
|
|
<ul>
|
|
|
<li>Optional: Read Chapter 1 of textbook</li>
|
|
|
<li>Not so optional: Read Section 2.1 of Chapter 2</li>
|
|
|
<li>Download the partial lecture notes found under the column Lecture in the table on our course web site</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
</ul>
|
|
|
|