About this course
CSE 30 is an undergraduate course in computer organization and systems programming. The goals are:
- To understand the organization of modern digital computers
- To understand the various components of a computer and their interrelationships.
- To understand a specific architecture/machine with emphasis on systems programming in C and Assembly Language.
Required and Recommended Resources
Required textbooks
-
Digital Design and Computer Architecture: ARM Edition, by Harris and Harris. Free e-copy available through UCSD library link to e-book. The book can only be accessed on the UCSD network/VPN.
-
C Programming: A Modern Approach, 2nd Edition by K. N. King. Available for rent or purchase on Amazon
Recommended textbooks
-
Computer Systems: A Programmer’s Perspective, by Randal E. Bryant and David R. O’Hallaron
-
Learn C the Hard Way: Practical Exercises on the Computational Subjects You Keep Avoiding (Like C) (Zed Shaw’s Hard Way Series)
-
Expert C Programming Deep C Secrets, by Peter van der Linden
Peer Instruction : iClickers (required)
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 the iclicker website. 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.
Raspberry Pi hardware (recommended)
The programming assignments for the course involve writing ARM assembly code. If you are interested in working on the actual hardware, I recommend purchasing a Raspberry Pi. The Pi is a nifty little ARM-based computer, fun to program and great for doing embedded projects. Any of the following raspberry Pi models would work for our purpose: RPi 1 model B+, RPi 2 model B or RPi 3. Unless you already own a raspberry Pi, the Raspberry Pi 3 kit will probably give you the best return on investment. Also purchase an ethernet cable so you have a way of getting into the Pi if you have trouble with the school WiFi. Here is the cheapest option If your laptop doesn’t have an ethernet port, you will need an adaptor
If you do not wish to purchase the hardware, you may take a software only route. We will use docker and an ARM emulator (qemu-user-static package) to virtulaize the raspberry pi in software.
Labs
The lab space for the course is B230. There are 10 stations with a keyboard, monitor and mouse that you can connect your Raspberry Pi to for one -time graphical setup. Although you can use these stations throughout the quarter, we recommend that you set up your Pi for remote connection via ssh instead of using it in a desktop configuration