CSE 30 Syllabus

Textbooks

[Harris and Harris]: "Digital Design and Computer Architecture: ARM Edition" by Sarah Harris and David Harris.

This is a great book that has chapters dedicated to the working with the Raspberry Pi.

[Hohl]: "ARM Assembly Language: Fundamentals and Techniques, Second Edition" by William Hohl.

This is a good reference book for ARM, although its a little dry.

Peer Instruction : Clickers

The course lectures will follow a Peer Instruction format, a teaching model which places stronger emphasis on classroom discussion and student interaction. As part of this you will need to own an iClicker register it on TED. Be sure to register your clicker by the end of the first week.

You can use the same iclicker for multiple courses. The iClicker can be purchased at the UCSD book store.

You will be expected to have completed the assigned reading and ready to discuss with your classmates.






Hardware and Software

To complete the programming assignments you will need to purchase a Raspberry Pi. The Pi is a nifty little ARM-based computer, fun to program and great for doing embedded projects. Hopefully you will make the most of your investment beyond the requirements of this class.

If you are pair programming, you would naturally share the hardware (and the cost) with your partner. Even if you plan to work individually, you may share the hardware with another student in the class. If you have the older (model B) of the Pi, you don't need to purchase a new one. Here is a complete list of items that you will need:

Schedule

Date Topics Note Readings
Week 0 Course Overview | The Computer- Past, Present, Trends | The principle of abstraction - From a high level language to language of the h/w
Lec1: Introductory Slides
Weeks 1-2 Data and number representation| C run time environment | Variables and data types | C arrays| C strings | Pointer arithmetic | Stack | Sources of run time errors:
Lec2: Data Representation (Before slides) After Slides
Lec3: More on representation (Before slides) After Slides
Lec4: Overflow, Memory Organization (Before slides) After Slides
Lec5: Memory Organization (contd), C Runtime environment (Before slides) After Slides
Lec6: Pointers (Before slides) After Slides
Lec7: C Arrays and Pointer Arithmetic (Before slides) After Slides

Reading for Quiz 1(Due 10/2): Chapter 1, Section 1.3, 1.4, 1.5.1, 1.5.3, 1.6
Reading for Quiz 2: Pointers-online reference
Section 1 of Unix Programming Tools (from the Stanford CS Education Library)
Weeks 3-5 Endiannness | Pointers and Functions | Assembly programmer's model| Instruction Set Architectures with focus on ARM ISA | ARM arithmetic instructions | Structs and linked lists | Dynamic memory management | Heap vs stack | Memory leaks and dangling pointers:
ARM Data Transfer Instructions| C loops and ARM Control Flow Instructions
Lec8: Type casting, Endianness, pointer arithmetic (Before slides) After slides
Lec9: Pointers and functions, dynamic memory allocation (Before slides) After slides
Lec10: Program memory leaks, C structs(Before slides) After slides
Lec11: C Program Memory Map, ARM Instruction Set Architecture (Before slides) After slides
Lec12: ARM data transfer instructions (Before slides) After slides (Detailed slides)
Lec13: ARM control flow instructions (Before slides) After slides (Detailed slides)
Lec14: Midterm Review and linked lists (Before slides) After slides
Midterm 1
Lec15: ARM loops and functions (Before slides) After slides
Quiz 3: Dynamic Memory Management-Online resource

Quiz 4:
Chapter 5, Section 5.1 to 5.3
Week 6-7 C and ARM Bitwise and Logical Instructions| ARM functions, ARM procedure call standard| ARM Data transfer continued
Lec16: Nested procedures, Assembler directives, data alignment (Before slides) After slides
Lec17: File I/O (Before slides) After slides
Lec18: Bitwise Instructions (before slides) After slides Detailed slides
Lec19: Shifts and Rotates, Addressing modes After slides
Lec20: Application of shifts to fast multiplication, Midterm review After slides
Quiz 5, due Sun (11/8) at 11:59pm Tutorial on Assembler Directives
GNU Assembler, the complete reference (Not on quiz but use as reference)
Chapter 4: 4.1 - 4.4

Quiz 6, due Sun (11/15) at 11:59pm
Chapter 6, 6.1 - 6.2
Chapter 7, 7.4.1 - 7.4.2
Tutorial on File I/O
Weeks 8-10 The hardware/runtime stack| Recursion in C and ARM
Multi-dimensional and multi-level arrays
Lec21: The hardware stack After slides
Lec22: Recursion After slides
Lec23: Recursion (contd), debugging exercises After slides
Lec24: More on PA4, multi-dimensional arrays After slides
Lec25: Multi-dimensional vs Multi-level arrays, Complex C declarations After slides
Lec26: Final Review After slides
Extra Review Session (Sun 12/06) After slides
Quiz 7: Due Sun (12/06) at 11:59pm
Chapter 13, Sec 13.1 to 13.5

Last updated: Fri Feb 14 16:15:24 -0800 2015 [validate xhtml]