CIS 2400 (Fall 2022)

Welcome to CIS 2400! We’re super excited to have you here this term!

Announcements

Due Next

Calendar

Wellness and Inclusion

It is very important to us that you succeed in CIS 2400. We provide many extra resources to help you.

It is also very important to us that you maintain your mental wellness throughout the course. A few points are not worth losing sleep over. Everyone on the course staff is available to chat, and you can always attend office hours for a non-academic conversation if necessary. You can also visit counseling services if you find you need help beyond the course staff. If you have a temporary health condition or permanent disability (either mental health or physical health related), you should contact the Weingarten Center if you have not already. Additionally, if there is something we can do to make your experience better, please let us know.

All participants in the course have a right to a learning environment that feels safe, where you are treated with respect and feel that you can contribute ideas constructively. Put another way, you have the right to an inclusive learning environment.

We want every student to feel that they have a safe and healthy learning environment, and if at any point you feel like this is not the case in any way, we encourage you to let course staff know so that we can help.

Tools

Ed Discussion OHQ Poll Everywhere Gradescope Grades Zoom

Course Staff

Instructor

any/all
Book a meeting!
Levine 269 A
tqmcgaha@seas.upenn.edu

Teaching Assistants

Ali
he/him
krema@seas
Andrew
he/him
arigas@seas
Anisha
she/her
anishab@sas
Audrey
she/her
auyang@seas
Craig
he/him
leecraig@seas
Daniel
he/him
duaniel@seas
David
he/him
davidlz@wharton
Eddy
he/him
eddyyang@seas
Ernest
he/him
ngernest@seas
Heyi
she/her
heyiliu@seas
Janavi
she/her
janavic@seas
Jason
he/him
jasonhom@seas
Kat
she/her
katawang@seas
Kyrie
she/her
kyrdo@seas
Mohamed
he/him
alnasir7@seas
Noam
he/him
nelul@seas
Patrick
he/him
pkehinde@seas
Patricia
she/her
mariaagn@sas
Ria
she/her
rias@wharton
Sarah
she/her
saluthra@wharton
Sofia
smouchta@seas

References

The following is a list of references that you might find helpful throughout the course.

Course Information

Syllabus – an overview of the course and course policies

Meeting Requests – For requesting meetings with the course instructor

Course Setup

VMWare Install instructions – Instructions for setting up the CIS 2400 virtual machine

PennSim.jar – A copy of the PennSim.jar used for various homeworks, just in case you need to redownload it

Course Texts

Dive Into Systems Textbook – An optional textbook that contains well written information on most things covered in the class

C reference – a reference of features and useful utilites in C.

Linux Man Pages – Contains useful information on user terminal commands (section 1) and C standard library functions (section 3)

LC4 References

LC4 Instruction Sheet – Contains an organized table of all LC4 instructions and their behaviour

LC4 Single Cycle Processor – Shows an high level view of a single-cycle LC4 processor

Control Signals Description – Lists every control signal in LC4, its possible values, and what those different values mean for each control signal.

ALU Internals for LC4 single-cycle – Shows some details for how the ALU would is implemented in this single cycle LC4 processor.

Schedule

L00 Wed, Aug 31 Introduction and Binary [ pdf ]
Course administrivia. Everything is Bits. Binary/Decimal conversions. Hexadecimal. ASCII. Finite Length Integers.
:( Mon, Sep 05 No Class
L01 Wed, Sep 07 2's Compliment, Overflow, Floats [ pdf ]
2's Compliment, arithmetic operations, integer overflow, IEEE floats (start)
Survey00 (Pre-Semester Survey) due @ 11:59 pm on Fri, Sep 09
Check-in00 (Binary Representation) due @ 04:59 pm on Mon, Sep 12
L02 Mon, Sep 12 Rounding, Logical Op's, Boolean Algerbra [ pdf ]
IEEE floats (cont.), Logical operators, Shifting, Boolean Algerbra & Simplification
R00 Tue, Sep, 13
Wed, Sep 14
Recitation00: Binary Representation [ slides ]
2C, Hexadecimal, IEEE Floats
L03 Wed, Sep 14 Intro to CMOS [ pdf ]
Brief Circuits & Physics, Introduction to CMOS transistors, Designing CMOS Circuits (start)
bonus_transistor_internals.pdf
hw00 (Binary Representation Quiz) due @ 11:59 pm on Fri, Sep 16
Check-in01 (Logic & CMOS) due @ 04:59 pm on Mon, Sep 19
L04 Mon, Sep 19 Designing CMOS, Gates, PLAs [ pdf ]
Designing CMOS (cont.), Gates, PLAs, Gate Delays & Other physical world concerns
R01 Tue, Sep, 20
Wed, Sep 21
Recitation01: Boolean Algebra & VM [ slides ]
Boolean Algebra, Truth Tables, VM Setup & Terminal Demo
L05 Wed, Sep 21 Combinational Logic [ pdf ]
Incrementer, Adder, Subtracter, Muxes, Multiplier
hw01 (bits.c) due @ 11:59 pm on Fri, Sep 23
Check-in02 (Gates & Combinational Logic) due @ 04:59 pm on Mon, Sep 26
L06 Mon, Sep 26 Sequential Logic [ pdf ]
SR Latch, D Latch, Clock, D Flip Flops
R02 Tue, Sep, 27
Wed, Sep 28
Recitation02: Transistors & Gates [ slides ]
Transistors, CMOS Logic & Design, PLA's, Gates
L07 Wed, Sep 28 Memory: Heirarchy, Registers [ pdf ]
Flip Flops -> Memory, Memory Heirarchy, Registers, LC4 ISA (start)
hw02 (Combinational Logic Written) due @ 11:59 pm on Fri, Sep 30
Check-in03 (LC4) due @ 04:59 pm on Mon, Oct 03
L08 Mon, Oct 03 LC4 ISA [ pdf ]
LC4 examples, labels, memory, LC4 instruction overview
R03 Tue, Oct, 04
Wed, Oct 05
Recitation03: Sequential Logic [ slides ]
Latch, Flip Flop, Gate Delay, Clock & Timing
L09 Wed, Oct 05 PennSim, LC4 Control Structures, LC4 Memory [ pdf ]
PennSim, LC4 Control Structures, Pointers, Memory, Strings, Arrays
hw03 (Sequential Logic Written) due @ 11:59 pm on Fri, Oct 07
L10 Mon, Oct 10 LC4 Single Cycle Processor [ pdf ]
LC4 Single Cycle Processor & Control Signals
R04 Tue, Oct, 11
Wed, Oct 12
Recitation04: LC4 [ slides ]
LC4 ASM Design & Practice, Penn Sim Demo
Check-in04 (LC4, Pointers, Memory) due @ 04:59 pm on Wed, Oct 12
L11 Wed, Oct 12 Processor Wrapup & OS Intro [ pdf ]
LC4 Single Cycle Processor Discussion and Operating System Start
hw04 (LC4 Programming) due @ 11:59 pm on Fri, Oct 14
Check-in05 (LC4 Single Cycle) due @ 04:59 pm on Mon, Oct 17
L12 Mon, Oct 17 I/O and subroutines in LC4 [ pdf ]
I/O in LC4 (start)
R05 Tue, Oct, 18
Wed, Oct 19
Recitation05: Datapth [ slides ]
Single-cycle Processor Components, Control Signals
L13 Wed, Oct 19 OS in LC4 [ pdf ]
I/O in LC4 (cont.), Subroutines,OS in LC4
hw05 (Control Signals C Program) due @ 11:59 pm on Fri, Oct 21
L14 Mon, Oct 24 Midterm Review [ pdf ]
Midterm Practice Questions made by Travis
R06 Tue, Oct, 25
Wed, Oct 26
Recitation06: Midterm Review [ slides ]
Midterm Review
E00 Wed, Oct 26 Midterm Exam 05:15 pm - 06:45 pm @ Chem 102  [exam info]
L15 Mon, Oct 31 C: Basics & Pointers [ pdf ]
C vs Java, Control Structures, Printing, Pointers, Arrays, Strings
R07 Tue, Nov, 01
Wed, Nov 02
Recitation07: OS & C [ slides ]
OS Traps, Directives, Strings, Pointers, Intro C
Check-in06 (LC4 I/O and OS) due @ 04:59 pm on Wed, Nov 02
L16 Wed, Nov 02 C: Memory [ pdf ]
Global Memory, The Stack, The Heap, Structs, Creating Datastructures
hw06 (Video Game) due @ 11:59 pm on Fri, Nov 04
Check-in07 (C & Memory) due @ 04:59 pm on Mon, Nov 07
L17 Mon, Nov 07 C: Compilation & Tools [ pdf ]
C Pre-Processor, gcc, Header Files, Makefiles, valgrind, gdb
R08 Tue, Nov, 08
Wed, Nov 09
Recitation08: Heap & C Tools [ slides ]
The Heap, Structs, Makefiles, GDB, Valgrind
L18 Wed, Nov 09 C: Command Line Args & File I/O [ pdf ]
Command Line Arguments, File I/O with stdio.h, binary files, endianness
Survey01 (Mid-Semester Survey) due @ 11:59 pm on Wed, Nov 09
hw07 (Stack & Stack Calculator) due @ 11:59 pm on Fri, Nov 11
Check-in08 (LC4 Memory) due @ 04:59 pm on Mon, Nov 14
L19 Mon, Nov 14 Stack & Globals in Detail, Calling Conventions (start) [ pdf ]
Accessing Memory, Calling Conventions, Caller vs. Callee
R09 Tue, Nov, 15
Wed, Nov 16
Recitation09: Binary Files [ slides ]
Bitwise Operations, Endianness, C File I/O, hexdump
L20 Wed, Nov 16 Calling Conventions (cont.), Implications of the Stack [ pdf ]
Calling Conventions (cont.), Stack Frames, Overhead & Runtime Concerns
hw08 (Disassembler) due @ 11:59 pm on Fri, Nov 18
L21 Mon, Nov 21 Translating C to ASM [ pdf ]
C to ASM, Control Structures
R10 Tue, Nov, 22
Wed, Nov 23
Recitation10: Relaxed Office Hours [ slides ]
HW8 Office hours
:( Wed, Nov 23 No Class
Check-in09 (LC4, C, Memory, Stack) due @ 04:59 pm on Mon, Nov 28
L22 Mon, Nov 28 History, Modern Processors, Modern ISAs [ pdf ]
hw09 (cancelled) due @ 11:59 pm on Mon, Nov 28
R11 Tue, Nov, 29
Wed, Nov 30
Recitation11: J Compiler [ slides ]
J Compiler Overview
:( Wed, Nov 30 No Class
hw10 (Compiler Pt. 1) due @ 11:59 pm on Fri, Dec 02
L23 Mon, Dec 05 Special Topics: Java vs C, C tips [ pdf ]
R12 Tue, Dec, 06
Wed, Dec 07
Recitation12: J Compiler Pt. 2 [ slides ]
Calling Conventions, J Compiler Pt.2 overview
L24 Wed, Dec 07 Course Wrap-Up [ pdf ]
hw11 (Compiler Pt. 2) due @ 11:59 pm on Fri, Dec 09
L25 Mon, Dec 12 Final Exam Review [ pdf ]
E01 Thu, Dec 15 Final Exam 06:00 pm - 08:00 pm @ MEYH B1  [exam info]

Credits

Credit to Professor Adam Blank (they/them), who gave Travis McGaha this website template :D
More on Adam can be found on their website here.