01 Intro
01 Intro
Instructor:
Gaetano Borriello
Teaching Assistants:
Peter Ney, Sunjay Cauligi, Ben Du,
Sara Hansen-Lund, Errol Limenta, Whitney Schmidt
University of Washington
Gaetano Borriello
At UW since 1988
PhD at UC Berkeley
MS at Stanford
BS at NYU Poly
costruzioni.net
Research trajectory:
Integrated circuits
Computer-aided design
Reconfigurable hardware
Embedded systems
Networked sensors espresso.repubblica.it
Ubiquitous computing
Mobile systems
Applications in developing world
Autumn 2013 Introduction 2
University of Washington
Quick Announcements
¢ Website: cs.uw.edu/351
¢ Section information to be updated soon…
¢ Lab 0 released, due Monday, 9/30 at 5pm
§ Basic exercises to start getting familiar with C
§ Credit/no-credit
¢ What is an interface?
a ce
te rf
In
/ SW
HW
Autumn 2013 Introduction 5
University of Washington
ê
cmpl $0, -4(%ebp) 1000001101111100001001000001110000000000
je .L2 0111010000011000
movl -12(%ebp), %eax 10001011010001000010010000010100
movl -8(%ebp), %edx è 10001011010001100010010100010100
leal (%edx, %eax), %eax 100011010000010000000010
movl %eax, %edx 1000100111000010
sarl $31, %edx ç 110000011111101000011111
idivl -4(%ebp) 11110111011111000010010000011100
movl %eax, -8(%ebp) 10001001010001000010010000011000
.L2:
Hardware
User
program
in Assembler Hardware
asm
C language specification
User
program C Assembler Hardware
in C compiler
User
program C Assembler Hardware
in C compiler
Note: The compiler and assembler are just programs, developed using
this same process.
Computer
system:
Course Outcomes
¢ Foundation: basics of high-level programming (Java)
¢ Understanding of some of the abstractions that exist
between programs and the hardware they run on, why they
exist, and how they build upon each other
¢ Knowledge of some of the details of underlying
implementations
¢ Become more effective programmers
§ More efficient at finding and eliminating bugs
§ Understand some of the many factors that influence program
performance
§ Facility with a couple more of the many languages that we use to
describe programs and data
¢ Prepare for later classes in CSE
Autumn 2013 Introduction 18
University of Washington
CS 143
Intro Prog II
Course Perspective
¢ This course will make you a better programmer.
§ Purpose is to show how software really works
§ By understanding the underlying system, one can be more effective as
a programmer.
§ Better debugging
§ Better basis for evaluating performance
§ How multiple activities work in concert (e.g., OS and user programs)
§ Not just a course for dedicated hackers
§ What every CSE major needs to know
§ Job interviewers love to ask questions from 351!
§ Provide a context in which to place the other CSE courses you’ll take
Textbooks
¢ Computer Systems: A Programmer’s Perspective, 2nd Edition
§ Randal E. Bryant and David R. O’Hallaron
§ Prentice-Hall, 2010
§ http://csapp.cs.cmu.edu
§ This book really matters for the course!
§ How to solve labs
§ Practice problems typical of exam problems
Course Components
¢ Lectures (29)
§ Introduce the concepts; supplemented by textbook
¢ Sections (10)
§ Applied concepts, important tools and skills for labs, clarification of
lectures, exam review and preparation
¢ Written homework assignments (4)
§ Mostly problems from text to solidify understanding
¢ Labs (5, plus “lab 0”)
§ Provide in-depth understanding (via practice) of an aspect of system
¢ Exams (midterm + final)
§ Test your understanding of concepts and principles
§ Midterm currently scheduled for Wednesday, October 30, in class
§ Final is definitely Wednesday, December 11, in this same room
Resources
¢ Course web page
§ cse.uw.edu/351
§ Schedule, policies, labs, homeworks, and everything else
¢ Course discussion board
§ Keep in touch outside of class – help each other
§ Staff will monitor and contribute
¢ Course mailing list – check your @uw.edu
§ Low traffic – mostly announcements; you are already subscribed
¢ Office hours, appointments, drop-ins
§ Poll: will be posted this week
¢ Staff e-mail: [email protected]
§ Things that are not appropriate for discussion board or better offline
¢ Anonymous feedback
§ Any comments about anything related to the course where you would
feel better not attaching your name
Autumn 2013 Introduction 24
University of Washington
Policies: Grading
¢ Exams (40%): 15% midterm, 25% final
¢ Written assignments (20%): weighted according to effort
§ We’ll try to make these about the same
¢ Lab assignments (40%): weighted according to effort
§ These will likely increase in weight as the quarter progresses
¢ Late days:
§ 3 late days to use as you wish throughout the quarter – see website
¢ Collaboration:
§ http://www.cse.uw.edu/education/courses/cse351/13au/policies.html
§ http://www.cse.uw.edu/students/policies/misconduct
Other details
¢ Consider taking CSE 390A, 1 credit, useful skills
¢ Poll on office hours (starting next week)
§ Monday late morning / afternoon
§ Tuesday late morning / afternoon
§ Wednesday late morning / afternoon
§ Thursday late morning / afternoon
§ Friday late morning / afternoon
¢ Lab 0 due Monday 5pm.
§ On the website
§ Non-majors: should be able to work without CSE accounts, but …
§ Install CSE home VM
§ Thursday section on C and tools
Welcome to CSE351!
¢ Let’s have fun
¢ Let’s learn – together
¢ Let’s communicate
¢ Let’s make this a useful class for all of us