GithubHelp home page GithubHelp logo

cvphelps / courseware Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cs107e/cs107e.github.io

1.0 1.0 0.0 128.24 MB

Makefile 0.40% C 97.38% Assembly 0.95% HTML 0.14% C++ 0.73% Objective-C 0.37% Python 0.01% Shell 0.02%

courseware's Introduction

Computer Systems from the Ground Up

Welcome to the Winter 2015 offering of CS107e.

Announcements

All class announcements will be posted to Piazza.

Course Information

Lectures: Mon & Fri 12:50-2:05 pm, Rm 107, Littlefield Center

Lab: Tue 7:00-9:00 pm, Gates 415, if you have trouble getting in call Phil's office at 650-725-9046 (across the hall)

Lecturers: Dawson Engler, Pat Hanrahan, Phil Levis

CA: Isabel Bush

Office Hours:

  • Hanrahan, Mon 2:15 to 3:30 pm, Gates 370
  • Levis, Fri 11AM-Noon, Gates 412
  • Engler, Fri 2:15 to 3:30 Gates 314 or appt
  • Isabel, Wed noon-2pm, Gates B28; Thurs 4-6pm, Huang Basement

Schedule

In the readings, K&R is The C Programming Language (Kernighan and Ritchie), and EssentialC is a PDF available at http://cslibrary.stanford.edu/101. A digital copy of K&R is available to Stanford students via [Safari Books Online] (http://proquest.safaribooksonline.com.ezproxy.stanford.edu/book/programming/c/9780133086249). Please read the assigned readings before attending lecture and lab.

You should also read the Guides for each week.

Note that the schedule includes a guest lecturer Quinn Dunki on Mon Feb 2nd, and a tour of the Computer History Musuem on President's Day Feb 16th.

Topics Readings
Week 1 Jan 5
Lecture 1 (Mon): Introduction (slides) Review electricity, binary and hexadecimal numbers and bitwire operations, and the unix command line.
No Lab
Lecture 2 (Fri): Introduction to ARM (slides) : Blinking an LED (code) Start with Baking Pi (intro, ok01, ok02) and then read about ARM ASM.
Week 2 Jan 12
Lecture 3 (Mon): ARM Assembly and Machine Code (slides) Read sections 4.1-4.5 from the ARM ISA
Lab 1 : Setup the Raspberry Pi
Assignment 1 : Larson scanner
Lecture 4 (Fri): Introduction to C (slides), (code) Brush up on C syntax, data types, operators, control structure, function calls. EssentialC chapters 1, 2, and 4; or K&R 1, 2, 3, 4 and 5.1-5.4. Skip sections involving characters, strings, io, and standard libraries. Read the about the history of C
Week 3 Jan 19
Martin Luther King Holiday - No Class
Lab 2 : Below C Level
Assignment 2 : Clock
Lecture 6 (Fri): Functions (slides, code) Read (or read again) about functions in C (Chapter 4 in K&R, Section 4 in Essential C), Read this nice explanation of local data and frame pointers
Week 4 Jan 26
Lecture 7 (Mon): Serial communication, ASCII and strings (slides, code) Read about characters and strings, basic IO (getc, putc, puts, printf), and structures (Section 1.5, 1.6, 1.9, 5.5, 6, 7 in K&R; Section 3 in EssentialC). Read about Serial Communication.
Lab 3 : Programming a UART
Assignment 3 : String formatting and printing
Lecture 6 (Fri): Linking, loading and starting (slides, code) Read David Welch's articles on baremetal programming and bss data.
Week 5 Feb 2
Guest Lecture (Mon): Quinn Dunki, Building Veronica
Lab 4 : Understanding linking and loading
Assignment 4 : Debugger
Lecture 7 (Fri): Graphics and the framebuffer
Week 6 Feb 9
Lecture 8 (Mon): GPIO and the keyboards
Lab 5: Setting up the framebuffer
Assignment 5: Displaying strings
Lecture 9 (Fri): Interrupts
Week 7 Feb 16
President's Day - Computer History Musueum Tour
Lab 6: PS2 keyboard hack
Assignment 6: Keyboard to console
Lecture 10 (Fri): Interrupts, continued
Week 8 Feb 22
Lecture 11 (Mon): C Programming
Lab 7: Handling Interrupts
Assignment 7: Interrupt console
Lecture 12 (Fri): Sound and MIDI
Week 9 Mar 2
Lecture 13 (Mon): Networking
Lecture 14 (Fri): Memory management: sbrk/malloc
Week 10 Mar 9
Lecture 15 (Mon): Caches
Lecture 16 (Fri): To Linux and Beyond

Information

Course description

Labs

Assignments and grading

Late days

Collaboration policy

Resources

Readings

courseware's People

Contributors

dddrrreee avatar phanrahan avatar phil-levis avatar zelenski avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.