601.229.02 (F19): Home page

Reference solution for final exam: final_ref_soln.pdf

What is this web page?

This web page supplements Prof. Koehn’s CSF web page. It is mainly intended for Section 02 of the course, taught by David Hovemeyer.

We’ll be using Piazza for Q&A and other important information about the course: https://piazza.com/jhu/fall2019/601229

Readings

Recommended textbooks:

Assignments

Homework assignments are based on assignments designed by Peter Froehlich for his version of the class.

Homework 1: Warmup, due Friday, Sep 13th by 10pm

Homework 2: Digital Logic, due Friday, Sep 20th by 10pm

Solution: HW2_soln.zip

Homework 3: Machine-level Programming, due Friday, Sep 27th by 10pm

Solution: HW3_soln_partial.zip

Homework 4: MIPS, cache simulator, due Monday, Oct 28th by 10pm Tuesday, Oct 29th by 10pm

Homework 5: x86-64 hexdump, due Friday, Nov 8th by 10pm Monday, Nov 11th by 10pm

Homework 6: Internet calculator, due Friday, Nov 22nd by 10pm

Homework 7: Multithreaded Internet calculator, due Friday, Dec 6th by 10pm

Resources

Logisim evolution (digital logic simulator):

C64 and 6502 resources: see the C64 and 6502 resources page

Grading

Note also the late days policy. There is no grade deduction for a late submission as long as you are using one of the late days to which you’re entitled.

Schedule

The schedule is tentative and subject to change. Any changes will be announced in class.

Date Topic Readings
Th Aug 29 Introduction: Electricity and Circuits (slides, markup) CODE Chapters 4, 8, 10, 11; HCW page basic 1, basic 4
  Digital Circuits  
Fr Aug 30 Boolean Algrebra (slides, markup, note about CNF) CODE Chapter 8, 15
Mo Sep 2 Labor day, no class  
We Sep 4 Addition and Subtraction (slides, markup) CODE Chapter 12-13
Fr Sep 6 Feedback and Flip-Flops (slides, markup, logisim circuits) CODE Chapter 14
Mo Sep 9 Memory (slides, markup, logisim circuits) CODE Chapter 16
We Sep 11 Instructions (slides, markup, logisim circuits) CODE Chapter 17
  SCRAM  
Fr Sep 13 SCRAM Introduction (slides, markup, logisim circuits) SCRAM handout
Mo Sep 16 SCRAM Instructions (slides, logisim circuits)  
  6502  
We Sep 18 Introduction (slides, markup) Reference; Commodore C64 Emulation;
Re-engineering the 6502 Video
Fr Sep 20 Stack (slides, markup) JavaScript 6502 assembler and simulator
Mo Sep 23 Interrupts and Bus (slides, markup) 6502 Diagram; Fun Glitch
  MIPS  
We Sep 25 Introduction (slides, markup) PH 2.1-2.3, 2.5-2.7
Fr Sep 27 Fast Arithmetic (slides, markup) PH 2.10, 3.3, 3.4
Mo Sep 30 Pseudo Instructions and Functions (slides) PH 2.8
  Midterm  
We Oct 2 Midterm Review Midterm 2016, Midterm 2018, 6502 review
Fr Oct 4 Midterm  
  MIPS (continued)  
Mo Oct 7 Pipelining (slides, markup) PH 4.5-4.6
We Oct 9 Data Hazards (slides, markup) PH 4.7
Fr Oct 11 Branch Prediction (slides, markup) PH 4.8-4.9
Mo Oct 14 Cache Basics (slides, markup) PH 5.1-5.3
We Oct 16 Cache Control (slides) PH 5.4, 5.8-5.9
Fr Oct 18 Fall break, no class  
Mo Oct 21 Cache Policies (slides, markup) PH 5.7
We Oct 23 Floating Point Numbers (slides, markup) PH 3.5
  x86  
Fr Oct 25 x86 Introduction (slides, markup) BO 3.1, online links: 1 2 3 4 5 Intel Manual
Mo Oct 28 Compiling C code (slides, markup) BO 3.2-3.6
We Oct 30 Functions and Stack (slides, markup) BO 3.7
Fr Nov 1 Linking (slides, markup) BO 7
Mo Nov 4 Process Control (slides, markup) BO 8
We Nov 6 Work day  
Fr Nov 8 Virtual Memory (slides) BO 9.1-9.5
Mo Nov 11 Virtual Memory II (slides, markup) BO 9.6-9.9
  Networks  
We Nov 13 Unix I/O (slides, markup) BO 10
Fr Nov 15 IP Protocol, Unix Sockets (slides, server.c) BO 11.1-11.4
Mo Nov 18 Application protocols, HTTP (slides, markup, webserver.zip, webclient.zip) BO 11.5-11.6
  Threads and concurrency  
We Nov 20 Concurrency with processes, I/O multiplexing (slides, markup, mp_webserver.zip) BO 12.1-12.2
Fr Nov 22 Concurrency with threads (slides, markup, mt_webserver.zip, mandelbrot.zip) BO 12.3
Mo Nov 25 Thanksgiving vacation, no class  
We Nov 27 Thanksgiving vacation, no class  
Fr Nov 29 Thanksgiving vacation, no class  
Mo Dec 2 Synchronizing access to data (slides, synch.zip) BO 12.4-12.5
We Dec 4 Parallelism, concurrency issues (slides, synch2.zip) BO 12.7
Fr Dec 6 Final exam review Fall 2016 final, solutions, Networks/threads review problems, networks/threads solutions