Course Description

  • This is an intermediate course that teaches the basics of computer organization, mainly from the pogrammer's perspective. The high-level goal of this course is to make you a more versatile and dextrous programmer. We will do that by teaching you how the computer works, which will help you understand how your program is executed. The course will be roughly organized as five weeks of assembly programming, five weeks of C programming, and a five week team project.
  • The schedule on this page lists the topics we will cover by date.

Required Materials

  • Raspberry Pi Development System You are required to buy and build the development system for this class. Parts are available from pishop.us
  • A limited number of pre-built kits will be made available by the autonomous vehicle club. The cost of those kits will be a little bit higher than the total parts cost on pishop.us.
Part Number Description Cost
DigiKey | Pishop Raspberry Pi 4 2/4/8GB RAM $35
DigiKey | Pishop | Amazon USB-C Power Supply $7.95
DigiKey | Pishop | Amazon SD Card $9.95
DigiKey | Pishop Heat Sink Kit $1.95
DigiKey | Pishop | Amazon SD Card Reader $5.95

Office Hours

  • Online
  • Tuesday: 12:15 — 1:15PM

TA Jack West

  • Discussion Section/Lab
  • Thursday 4:30 — 6PM

Grading

  • Treat this course like a job where you are trying to get promoted. If you show up and do your work, you will get a good grade.
  • Each person will get five slop days to turn in assignments late. You can use up to two days per assignment. The lowest quiz AND homework score will be dropped before computing the final grade.
  • No partial credit for code that does not compile.
    • Homework: 30 %
    • Participation: 10 %
    • Progress: 10 %
    • Checkins & Quizzes: 25 %
    • Final Project: 25 %
    Percentage Letter Grade
    91+ A
    89-90 A-
    87-88 B+
    77-86 B
    75-76 B-
    73-74 C+
    62-72 C
    60-61 C-
    50-59 D
    Below 50 F

Scheduling Conflicts

  • If you have a (legitimate) scheduling conflict with a quiz or exam, it is possible to schedule a makeup session. You must let me know at least two weeks prior to the quiz/exam date. Legitimate scheduling conflicts include religious observances.
  • LUC's academic calendar can be found here.

Mandatory Reporter Statment

  • Each faculty and staff member at Loyola University Chicago is required to report any incidents of gender-based misconduct that they are made aware of, even if it happened in the past. Gender-based misconduct includes discrimination based on actual or perceived sex, sexual orientation, gender expression or identity, or pregnancy or parenting status; dating and domestic violence; sexual misconduct (including sexual assault, sexual harassment, and sexual exploitation); and stalking.

Collaboration

  • Students are expected to write their own code for homework assignments. No copying or code sharing is allowed. Copying code from the Internet is also not allowed.

Course Schedule

Tenative

Date Topic Details
Tue 01/19 Intro, Class Structure, Policies, etc. / Hex & Binary Homework 1 Assigned
Intro Slides
Binary Slides
Activity: Hex
Thu 01/21 Hex & Binary Video: Hex & Binary
Slides
Activity: Java Hex Activity
Tue 01/26 Combinatorial Logic Homework 1 Due
Homework 2 Assigned
In-Class Activity: Building an Adder
Video: Circuitverse Tutorial | Circuitverse
Quiz: Hex & Binary
Thu 01/28 More Combinatorial Logic In-Class Activity: Four Bit Adder
Reading:
Tue 02/02 git/Rev Control Env setup: apt, cd, ls, vim, make
Linux filesystem
Quiz: Combinatorial Logic
Homework 2 Due
Installing Raspberry Pi OS
GitHub Username Survey
Homework 3 Assigned
Video: Compiling C Programs
Thu 02/04 Intro to Assembly Language & Registers Homework 3 Due
Homework 4 Assigned
Reading:
  • Raspberry Pi Assembler: Chapter 1 & 2
  • TYPE IN EXAMPLE PROGRAMS ON YOUR PI
Tue 02/09 Debugging Demo
Memory & Global Variables
Homework 4 Due
Homework 5 Assigned
Activity: ASM Intro
Video: Memory
gdb cheat sheet
Reading:
  • Raspberry Pi Assembler: Chapter 3
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 3
Thu 02/11 Spring Break: No Class
Tue 02/16 Branches (function calls) Checkin: Tools Due
Homework 5 Due
Homework 6 Assigned
Reading:
  • Raspberry Pi Assembler: Chapter 5
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 5
Thu 02/18 Branches (loops) Homework 6 Due
Homework 7 Assigned
Quiz: Loops & Control Structures
Reading:
  • Raspberry Pi Assembler: Chapter 7
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 7
Tue 02/23 Arrays & Passing Parameters on the Command Line Reading:
  • Raspberry Pi Assembler: Chapter 8
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 8
Thu 02/25 The Stack & Local Variables Homework 7 Due
Homework 8 Assigned | string.s
Mid-Semester Survey
Quiz: Functions and the Stack
Reading:
Homework 9 Assigned
  • Raspberry Pi Assembler: Chapter 6
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 6
Reading
  • Raspberry Pi Assembler: Chapter 17
Tue 03/02 The Stack & Local Variables Project Slides
Thu 03/04 The Stack & Local Variables Homework 8 Due
Stack Activity
Stack Slides
Tue 03/09 Spring Break: No Class
Thu 03/11 The Stack & Local Variables Homework 9 Assigned
Tue 03/16 File IO: Opening Files
Thu 03/18 File IO: Reading from Files Homework 9 Due
Homework 10 Assigned
Assembly from C Lab
Tue 03/23 Linked lists in asm Homework 10 Assigned
Video: LED & Temp Sensor Setup Project Ideas | Proposal Guidelines
  • Implement a "Citizen Science" kit for context-based authentication on the Pi
  • Home Automation Monitoring
  • Build a computer or a microcontroller board
Thu 03/25 Pointers
Tue 03/30 Pointers Project Proposals Due
Thu 04/01 Easter: No Class
Tue 04/06 Dynamic Memory Allocation Project Feedback Returned
Thu 04/08 Dynamic Memory Allocation
Tue 04/13 netcat and VPNs
Thu 04/15 Databases Intro
Tue 04/20 SQL
Thu 04/22 Mid-Project Scrum
Tue 04/27 Project Work Session Project Presentation Guidelines