ECE120: Introduction to Computing
Spring 2019 ZJUI Section
- Welcome to ECE120! We are looking forward to working with you!
- We will use Blackboard for distributing grade information.
- Join Piazza
to follow further announcements and discussions.
- All three midterm exams will be held in LTW-102,
which is large enough to fit our whole class. For dates and times,
please see the course timeline.
- The review session for the first midterm will be held on Wednesday 13
March from 6:00 to 7:00 p.m. in LTN-A414/416. See you there!
- The first and last pages of your first midterm are here. Note the rules and the reference materials provided.
- Please fill out the mid-semester feedback form by Friday 12 April 2019.
- The first page of your second midterm is here. Note the rules. There are no reference materials, but you get TWO A4 sheets (both sides) of notes this time.
- Here are a couple of extra practice problems for MT3.
- The first page
and last page
of your third midterm are now available. Note the rules. You get THREE
A4 sheets (both sides) of notes this time. The reference sheet has more
information than you will need--you only need to know how instructions
are processed (fetch/decode/execute), not how to use LC-3 to write
- Here's a new version of the grading scale
including both an absolute scale and a curve.
- The first page
and last pages
of your final exam are now available. Note the rules. You get FOUR
A4 sheets (both sides) of notes this time.
Staff and Office Hours
||Library Cafe (north end of canteen until cafe re-opens)
||Thursday 5:00-6:00 p.m.
||30 minutes after TTh lectures
||Residential College Lobby
||Wed 6:00-7:00 p.m.
||Wed 7:00-8:00 p.m.
||109 Residential College
||Tue 7:00-8:00 p.m.
||Tue 6:00-7:00 p.m.
These tools have been designed to help you master some of the skills that
can execute in a variety of browsers, including Chrome on Android devices.
Each tool focuses on a particular set of skills, and most of the tools
create problems randomly, allow you to solve them, and allow you to check
your answers with quick feedback.
A little more detail on testing:
The tools have been tested reasonably thoroughly on Chrome on both my laptop
and on a Samsung Galaxy S3 (Android). I developed mostly on Firefox, so
that's well-tested, too. I did run them all on IE, too. (I also used
Chrome on a Samsung Galaxy S5.) They do not work on the
default Samsung mobile browser. Apple ... not so well. Feel free to
lend me yours for a bit and I'll debug.
Exercises for Part 1
The truth table exercises also have
a couple of extra parts for students who want to get ready for part 2 of
the class (K-maps and so forth).
Exercises for Part 2
Here are the exams from the last two times I was involved in teaching
ECE120 at UIUC. Your exams are likely to be somewhat harder. Please
note both the rules and the reference materials provided--they will be
similar here. Please also note that you must write your scratch work
on the exam. You may NOT bring additional sheets of scratch paper.
These are the slides that I plan to use in lecture, roughly in the
order given here. I may edit them a bit
this semester, at which point I will silently replace the versions from last
semester. Check the printing date on the slides to see if they have changed.
As in the notes, an asterisk (*) indicates material provided solely for
your interest and education.
Some topics may be skipped in lecture in the interest of time.
- Part 1: Representations
- also Part 1: C Programming
- Part 2: Transistors to Circuits
- Part 3: Finite State Machines (FSMs) to the von Neumann Model
- Part 4: LC-3, Programming, and Computers
These are lectures recorded in Fall 2016.
- Part 1: Representations (REVIEW SESSION)
- Monday 22 August: Introduction, start of Abstraction Layers
- Wednesday 24 August: Abstraction Layers, Representations and Bits, Unsigned Representation, Modular Arithmetic
- Friday 26 August: 2's Complement, Boolean Logic -- note that hyperexponential functions (2^(2^N)) are not the same as exponential functions (4^N) despite my agreeability in the video.
- Monday 29 August: Boolean Logic, Logical Completeness, Fixed- and Floating-Point
- Wednesday 31 August: Fixed- and Floating-Point, Hexadecimal, Terminology, and Text, Extra Slides on Representations
- also Part 1: C Programming
- Friday 2 September: Introduction to C, Expressions and Operators
- Wednesday 7 September: Expressions and Operators, Basic I/O, Statements in C
- Friday 9 September: Program Execution, Program Analysis, Testing Programs, Bit Manipulation in C; Unfortunately, the mic died a few minutes into the lecture, so you may want to just read the slides (above on this page) and read/download and play with the code (below on this page).
- Part 2: Transistors to Circuits (REVIEW SESSION)
- Monday 12 September: Logic Gates, Optimizing Logic Expressions
- Wednesday 14 September: Boolean Terminology, Karnaugh Maps (K-maps)
- Friday 16 September: Karnaugh Maps (K-Maps), Two-Level Logic, Pareto Optimization
- Monday 19 September: REVIEW FOR MIDTERM 1
- Wednesday 21 September: Boolean Properties, Don't Care Outputs, Caring About Don't Cares
- Friday 23 September: Caring About Don't Cares, The Ripply Carry Adder, Bit-Sliced Designs, Bit-Sliced Comparator
- Monday 26 September: Bit-Sliced Comparator, Analyzing and Optimizing the Bit-Sliced Comparator
- Wednesday 28 September: A Comparator for 2's Complement, A Power of Two Checker, Building with Abstraction and a First Example
- Friday 30 September: Checking for Upper-Case Characters, Multiplexers, Decoders
- Monday 3 October: Storing a Bit, The Clock Abstraction; sorry, the video feed seems to have had a problem on this day, so the slide view is completely broken; remember that you can get copies of the slides for both of these topics higher up on this page.
- Wednesday 5 October: Static Hazards, Registers
- Part 3: Finite State Machines (FSMs) to the von Neumann Model (REVIEW SESSION)
- Friday 7 October: Serialization, Example of Serialization
- Monday 10 October: Examples of Serialization, Finite State Machines (FSMs)
- Wednesday 12 October: Binary Counters, Machine Models, FSM Design Process
- Friday 14 October: Color Sequencer, Design of the Lab FSM
- Monday 17 October: REVIEW FOR MIDTERM 2
- Wednesday 19 October: Extending Keyless Entry, Vending Machine Implementation
- Friday 21 October: Vending Machine Implementation, Memory
- Monday 24 October: Memory, From FSM to Computer
- Wednesday 26 October: From FSM to Computer
- Friday 28 October: The von Neumann Model, LC-3 as a von Neumann Machine, Instruction Formats
- Monday 31 October: Instruction Formats, Instruction Processing, Instructions Illustrated, The LC-3 ISA
- Wednesday 2 November: The LC-3 ISA
- Friday 4 November: Counting to Ten
- Part 4: LC-3, Programming, and Computers (REVIEW SESSION--starts around 11:10)
- Monday 7 November: Typing in a Number, Computers are Dumb
- Wednesday 9 November: Systematic Decomposition, Good Design, Letter Frequency Planning
- Friday 11 November: Letter Frequency Decomposition, Letter Frequency Coding
- Monday 14 November: REVIEW FOR MIDTERM 3
- Wednesday 16 November: Letter Frequency Coding, Assembly Language, Assemblers
- Friday 18 November: an Example of Programming (not from slides)
- Monday 28 November: LC-3 Control Signals and Examples: Fetch, Decode, and LDI Execution
- Wednesday 30 November: Hardwired Control Unit Design, Microprogrammed Control Unit Design, The Patt and Patel Control Unit
- Friday 2 December: Error Detection, Parity and Hamming Distance (skip ICES by going to time 22:00)
- Monday 5 December: Error Correction, Hamming Codes, SEC-DED Codes, Advice
- Wednesday 7 December: Advice and REVIEW FOR FINAL EXAM
Examples of C Code
Here are five examples programs that we will examine in class to help you
learn how C works. I will have copies of
this handout made for you to use in
class, but if you want to download and try the programs, they are also here.
For more experience with reading and understanding C code, try the
online tool linked at the top of this page.
Examples of LC-3 Code
Here are examples of LC-3 code that we shall develop in class. I will also
try to track down copies of flow charts and other niceties for these codes.
They are all included in this old ECE190 student manual.
- Example of counting to 10
"Typing in a Number" from the keyboard example
Letter frequency histogram example
ASCII screen art example (from Friday 18 November 2016): assemble a solution version and a message, run the command-line simulator on the message, use the file command to load the solution code, then continue to see the message
String sorting example with linked lists (from Friday 21 April 2017): assemble the final version and run it in the simulator; change the set of strings if desired (bottom of the file).
I/O in C*
Since many of you seem to be interested in understanding how to manage
I/O more elegantly, I am going to add these old notes to our page.
Please be aware that our class will not require this material in any
way nor even explain most of the background material necessary to
understand it!. That said, here are some
Notes on I/O in C
Return to Steve's Home Page