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 systemfor 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
2GB-9003 Raspberry Pi 4 2GB RAM $35
1203 USB-C Power Supply $7.95
1309 SD Card $9.95
1723 Heat Sink Kit $1.95
317 Keyboard & Trackpad $15.59
2165 Display $53.95

Office Hours

  • Online
  • Wednesday: 1:30 - 2:30PM
  • Or by appointment

TA Jack West

  • Discussion Section
  • Saturday 10AM - Noon

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.

Programming Resources

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
Mon 08/24 Intro, Class Structure, Policies, etc. Homework 1 Assigned
Slides
Wed 08/26 Hex & Binary Video: Hex & Binary
Slides
Activity: Hex
Fri 08/28 Hex & Binary Quiz: Hex & Binary
Activity: Java Hex Activity
Mon 08/31 Basic Electronics: Current, Voltage, and Resistors Homework 1 Due
Homework 2 Assigned
Activity: Circuits Activity | Solutions
Video: Voltage and Resistors
Wed 09/02 Basic Electronics: Kirchoff's Current & Voltage Laws Video:Kirchoff's Voltage Law
Fri 09/04 Combinatorial Logic Quiz: Circuits
Reading:
Mon 09/07 Labor Day: No Class
Wed 09/09 More Combinatorial Logic Homework 2 Due
Homework 3 Assigned
Fri 09/11 Lab Kit Pickup
Mon 09/14 git & Rev Control Video: Compiling C Programs
Wed 09/16 Environment setup: apt, cd, ls, openvpn, vim Video: Raspberry Pi Setup | Environment Setup Instructions
Homework 3 Due
Fri 09/18 Compilers, linkers and make
Mon 09/21 The Linux filesystem
Wed 09/23 Intro to Assembly Language & Registers Homework 4 Assigned
Activity: ASM Intro
Reading:
  • Raspberry Pi Assembler: Chapter 1 & 2
  • TYPE IN EXAMPLE PROGRAMS ON YOUR PI
Fri 09/25 Debugging Demo: Jack
Memory & Global Variables
Checkin: Tools Due
Homework 4 Due
Homework 5 Assigned
Video: Memory
Reading:
  • Raspberry Pi Assembler: Chapter 3
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 3
Mon 09/28 Memory & Global Variables Homework 5 Due
Homework 6 Assigned
Wed 09/30 Branches (if blocks) Homework 6 Due
Homework 7 Assigned | TODOS
Reading:
  • Raspberry Pi Assembler: Chapter 5
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 5
Fri 10/02 Addressing Modes Mid-Semester Survey
Homework 7 Due
Quiz: Loops & Control Structures
Reading:
  • Raspberry Pi Assembler: Chapter 7
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 7
Mon 10/05 Arrays Homework 8 Assigned | string.s
Reading:
  • Raspberry Pi Assembler: Chapter 8
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 8
Wed 10/07 Passing Parameters on the Command Line
Fri 10/09 The Stack Homework 8 Due
Quiz: Functions and the Stack
Reading:
  • Raspberry Pi Assembler: Chapter 6
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 6
Mon 10/12 The Stack Homework 9 Assigned
Wed 10/14 Local Stack Variables Reading
  • Raspberry Pi Assembler: Chapter 17
Project Ideas
  • Implement a "Citizen Science" kit for context-based authentication on the Pi
  • Design a cool kit form factor
  • Home Automation Monitoring
Fri 10/16 Calling Conventions
Mon 10/19 Intro to C Homework 9 Due
Project Slides
Wed 10/21 printf
Fri 10/23 Strings in C
Mon 10/26 Loops in C
Wed 10/28 C Programming Competition Checkin: C Programming Competetion
Fri 10/30 Arrays in C
Mon 11/02 Pointers
Wed 11/04 Pointers Project Proposals Due
Fri 11/06 Call by Value/Call by Reference
Mon 11/09 C structs
Wed 11/11 Calling an ASM program from C Project Feedback Returned
Fri 11/13 File Manipulation in C
Mon 11/16 Databases Intro
Wed 11/18 SQL
Fri 11/20 bash scripts
Mon 11/23 Thanksgiving Break: No Class
Wed 11/25 Thanksgiving Break: No Class
Fri 11/27 Thanksgiving Break: No Class
Mon 11/30 bash scripts
Wed 12/02 Project Work Session
Fri 12/04 Project Work Session