COMPUTER SYSTEMS AND ASSEMBLY LANGUAGE
RESOURCES
Useful Links
IMPORTANT STUFF
SAMPLE EXAMS
GIT
ucsc's gitlab documentation
git videos
git immersion tutorial
learn git branching tutorial
SUPPLEMENTAL RESOURCES
(instruction op codes and formats, ascii table, mars syscalls)
COMMAND LINE INTERFACE
command line interface reference
vim quick reference
emacs reference sheet
videos
(turn your volume down)
WORKSHEETS
I teach Computer Systems and Assembly language using fill-in-the-blank worksheets that I’ve designed. Research has shown that students who manually write out notes are more likely to retain information presented in class over students who type notes.
Having these worksheets allows students to handwrite notes and follow along in class, without getting overwhelmed with feeling like they need to write everything. I include examples for students to work out both during lecture with their classmates, and outside of class.
INTRO TO COMPUTING SYSTEMS
notes 0
history of computing, computing levels of abstraction
SUPPLEMENTARY VIDEOS
INTEGER NUMBERING SYSTEMS
notes 1
unary, grouping, positional, decimal, octal, hexadecimal, binary
SUPPLEMENTARY MATERIAL
COMBINATIONAL LOGIC I
notes 2a
MOSFET transistors, PMOS, NMOS, logic gates, inverter, and, or, nand, nor, xor, xnor, Venn diagrams
SUPPLEMENTARY VIDEOS
CMOS
(watch 13:05 - 17:00)
COMBINATIONAL LOGIC II
notes 2b
digital circuit examples, sum of products (SOP), product of sums (POS), minterms, maxterms, programmable logic array (PLA)
SUPPLEMENTARY VIDEOS
COMBINATIONAL LOGIC III
notes 2c
multiplexors, decoders, half adder, full adder, ripple-carry adder, ALU
BOOLEAN ALGEBRA
notes 3
Boolean identities, De Morgan's Law
SUPPLEMENTARY VIDEOS AND LINKS
BOOLEAN ALGEBRA
NAND/NOR ONLY VIDEOS
SEQUENTIAL LOGIC
notes 4
SR latch, active high, active low, D latch, D flip-flop
SUPPLEMENTARY VIDEOS
TIMING DIAGRAMS
SR LATCHES
FLIP-FLOPS / REGISTERS
SIGNED INTEGER REPRESENTATION
notes 5
signed numbers, sign magnitude, two’s complement, bias / excess notation, floating point, fixed point
SUPPLEMENTARY VIDEOS
TWO'S COMPLEMENT
BIAS NOTATION
ARITHMETIC AND LOGIC OPERATIONS
notes 6
carry out, overflow, bitwise, reduction, shifts, rotate
SUPPLEMENTARY VIDEOS
OVERFLOW
FRACTIONAL REPRESENTATION
notes 7
VON NEUMANN MODEL
notes 9
von Neumann architecture, memory, address space, addressibility, processing unit, control unit, input, output, memory
MIPS INSTRUCTION SET ARCHITECTURE
notes 10
general purpose registers, assembler directives, data directives, labels, instruction format, instruction types, operate instructions, data movement (loads and stores), control flow instructions, little endian, big endian, memory alignment, pseudo instructions, instruction encoding
SUPPLEMENTARY MATERIAL
MARS: MIPS ASSEMBLER AND RUNTIME SIMULATOR
notes 11
MIPS ADDRESSING MODES
notes 12
register direct, immediate, register indirect, base + offset (displacement), PC relative, pseudo direct
STACK AND SUBROUTINES
notes 13
stack, jump instructions, return address, subroutines
SUPPLEMENTARY MATERIAL
procedures (David B.)
videos 2.7 - 2.12
functions (Amell Peralta)
video tutorials 15 - 18
MIPS DATA PATH
notes 14
mips data path, r-type, i-type, j-type, pc, register file, alu, control unit
SUPPLEMENTARY MATERIAL
load, store, branch data path examples
EXTRA CREDIT
Each extra credit assignment is worth up to 1% added to your final grade.
COMPUTER ARCHEOLOGY
Write 250 words about the background, functionality, and social implications of an artifact from computer history.
Create 1 - 3 slides on that artifact and present it to the class.
HAM RADIO LICENSE
Get your ham radio license and attend 4 ucsc amateur radio club events.
SKILL PROGRESSION
Learn a new skill, or progress in a skill you already have. Show documentation of your skill progression and journal about it four times throughout the quarter. Examples: juggling, drawing, singing, dancing, playing a musical instrument, movement progression (hand balancing, acrobatics).
MALLEABLE INTELLIGENCE ESSAY
Read the chapter “Intelligence as a Malleable Construct” from the Handbook of Intelligence and write a 500+ word essay. This assignment will have 3 parts: summary, reflection, and recommendations.