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 Amazon

Office Hours

  • Doyle 309
  • Wednesday: 10:00 — 11:00AM

TA Jack West

  • Discussion Section/Lab
  • Thursday 10-11 AM Doyle 304

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
Mon 08/30 Intro, Class Structure, Policies, etc. / Hex & Binary Homework 1 Assigned
Intro Slides
Binary Slides
Activity: Hex
Wed 09/01 Hex & Binary Video: Hex & Binary
Slides
Fri 09/03 Hex & Binary In-Class Activity: Java Hex Activity
Mon 09/06 Labor Day: No Class
Wed 09/08 Combinatorial Logic Homework 1 Due
Homework 2 Assigned
Quiz: Hex & Binary
Video: Circuitverse Tutorial | Circuitverse
Reading:
Fri 09/10 Combinatorial Logic Quiz 1 Makeup
In-Class Activity: Building an Adder
Mon 09/13 Logic Lab In-Class Activity: Four Bit Adder
Wed 09/15 git/Rev Control Env setup: apt, cd, ls, vim, make
Linux filesystem
Quiz: Combinatorial Logic
Installing Raspberry Pi OS
GitHub Username Survey
Video: Compiling C Programs
Fri 09/17 Pi Setup Fail Homework 2 Due
Reading:
  • Raspberry Pi Assembler: Chapter 1 & 2
  • TYPE IN EXAMPLE PROGRAMS ON YOUR PI
Mon 09/20 Pi Setup Fail, Part II Activity: ASM Intro
gdb cheat sheet
Wed 09/22 Intro to Assembly Language & Registers Homework 3 Assigned
Video: Memory
Reading:
  • Raspberry Pi Assembler: Chapter 3
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 3
Fri 09/24 Memory & Global Variables Checkin: Tools Due
Reading:
  • Raspberry Pi Assembler: Chapter 5
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 5
Mon 09/27 Branches (loops) Homework 3 Due
Homework 4 Assigned
Quiz: Loops & Control Structures
Reading:
  • Raspberry Pi Assembler: Chapter 7
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 7
Wed 09/29 Arrays & Passing Parameters on the Command Line Reading:
  • Raspberry Pi Assembler: Chapter 8
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 8
Fri 10/01 The Stack & Local Variables Homework 8 Assigned | string.s
Mid-Semester Survey
Quiz: Functions and the Stack
Reading:
  • Raspberry Pi Assembler: Chapter 6
  • TYPE IN ALL EXAMPLE PROGRAMS FROM CHAPTER 6
Reading
  • Raspberry Pi Assembler: Chapter 17
Mon 10/04 The Stack & Local Variables Homework 4 Due Stack Activity
Stack Slides
Wed 10/06 The Stack & Local Variables
Fri 10/08 The Stack & Local Variables
Mon 10/11 File IO: Writing to Files
Wed 10/13 Mid-Semester Break: No Class
Fri 10/15 File IO: Reading from Files
Mon 10/18 Linked lists in asm
Wed 10/20 Pointers
Fri 10/22 Pointers
Mon 10/25 Dynamic Memory Allocation
Wed 10/27 Dynamic Memory Allocation
Fri 10/29 Intro to C
Mon 11/01 Datatypes in C
Wed 11/03 Loops in C
Fri 11/05 Makefiles, objdump, Linker
Mon 11/08 Linker Scripts
Wed 11/10 C Arrays
Fri 11/12 C structs
Mon 11/15 Command Line Parameters in C
Wed 11/17 File I/O in C
Fri 11/19 Command Line Parameters in Asm
Mon 11/22 Monday before Thanksgiving
Wed 11/24 Thanksgiving: No Class
Fri 11/26 Thanksgiving: No Class
Mon 11/29 Linked Lists in C
Wed 12/01 Linked Lists in C
Fri 12/03 Trees in C Assembly from C Lab
Mon 12/06 Calling assembly language functions from C
Wed 12/08 XXX
Fri 12/10 XXX