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.

Slop Days

  • Each student will be granted five slop days at the beginning of the semester. A slop day allows you to turn in work up to 24 hours past the deadline. You can't use more than two slop days on a single assignment (which would allow you to turn in up to 48 hours past the deadline). Work that is submitted more than 48 hours late or without the use of slop days will not be accepted.
  • In order to use a slop day, you must do two things: (1) alert Neil and Jack via email or slack that you will be turning your homework in late before the homework deadline and (2) alert Neil and Jack via email or Slack when the homework has been submitted. If you don't do both, your homework will not be graded and you will get a zero for the late assignment.

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.
  • The lowest quiz AND homework score will be dropped before computing the final grade.
  • No partial credit for code that does not compile.
    • Homework: 55 %
    • Participation: 10 %
    • Progress: 10 %
    • Checkins & Quizzes: 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.

Office Hours

  • Doyle 309
  • Monday: 2:00 — 3:00PM
  • Lab — Doyle Basement
  • Wednesday 4:00 — 6:00 PM

Course Schedule

Tenative

Date Topic Details
Wed 01/19 Intro, Class Structure, Policies, etc. / Hex & Binary Homework 1 Assigned
Intro Slides
Binary Slides
Activity: Hex
Fri 01/21 Hex & Binary Video: Hex & Binary
Video: 2's Complement
Slides
Mon 01/24 Combinatorial Logic In-Class Activity: Java Hex Activity
Wed 01/26 Combinatorial Logic Homework 1 Due
Homework 2 Assigned
Quiz: Hex & Binary on Sakai
Video: Circuitverse Tutorial | Circuitverse
Reading:
Fri 01/28 Sequential Logic Video: Flip Flop Theory
In-Class Activity: Building an Adder
Mon 01/31 Sequential Logic Video: Circuitverse Flip Flops
In-Class Activity: Four Bit Adder
Wed 02/02 Logic Lab Homework 2 Due
Homeworl 3 Assigned | Circuitverse Group Link
Video: Load Immediate to Accumulator
Video: Load/Store to Memory
Fri 02/04 Logic Lab
Mon 02/07 git/Rev Control Env setup: apt, cd, ls, vim, make
Linux filesystem
Quiz: Combinatorial Logic
GitHub Username Survey
Video: Compiling C Programs
GitHub Personal Access Token Guide
Wed 02/09 Intro to Assembly Language & Registers Homework 3 Due
Homework 4 Assigned | GitHub Link
Video: Intro to 68k Assembly Language
Video: Memory
Reading:
Fri 02/11 Intro to Assembly Language & Registers Video: Function Calls in Assembly
Mon 02/14 Addressing Modes In-Class Activity: Memory Lab
Addressing Modes Slides
Wed 02/16 Memory & Global Variables
Fri 02/18 Branches (loops) Homework 4 Due
Homework 5 Assigned

Reading:
Mon 02/21 if blocks Quiz: Functions and Loops Fail
gdb Primer
Wed 02/23 The Stack & Local Variables Quiz: Functions and Loops Retry
Homework 6 Assigned
Stack Activity
Stack Slides
Fri 02/25 The Stack & Local Variables Homework 5 Due
Homework 6 Assigned
Mon 02/28 The Stack & Local Variables Video: Arrays in 68k
Wed 03/02 The Stack & Local Variables Homework 6 Due
Homework 7 Assigned
Fri 03/04 The Stack & Local Variables
Mon 03/07 Spring Break — No Class
Wed 03/09 Spring Break — No Class
Fri 03/11 Spring Break — No Class
Mon 03/14 Machine Code
Wed 03/16 More Stack Mid-Semester Survey
Fri 03/18 More Stack Homework 7 Checkin
Stack Activity
Mon 03/21 More Stack FSM Notes
Wed 03/23 More Stack Quiz: Local Variables and the Stack
Fri 03/25 Interrupts commentstripper.X68
Mon 03/28 Linked Lists in ASM Homework 7 Due
Wed 03/30 Intro to C Video: Compiling Programs in Linux
Video: Debugging with gdb
Fri 04/01 Datatypes in C
Mon 04/04 Loops in C Homework 8 Assigned
Wed 04/06 Makefiles, objdump, Linker
Fri 04/08 Linker Scripts
Mon 04/11 Linked Lists in C Homework 8 Due
In-Class Activity: Comment Stripping | base.c
Comment Stripping GitHub Repo
Reading:
Wed 04/13 Neil Sick/Class Cancelled
Fri 04/15 Good Friday: No Class
Mon 04/18 Good...Monday?: No Class
Wed 04/20 Command Line Parameters in Asm Homework 9 Assigned
Activity: Linked Lists
Fri 04/22 Linked Lists in C Activity: More linked list fun!!
Mon 04/25 Linked Lists in C
Wed 04/27 Linked Lists in C
Fri 04/29 More Liked Lists in C Homework 9 Due