ECE220: Computer Systems & Programming
Fall 2020 ZJUI Section
Announcements
THINK-PAIR-SHARE: Go
here
to enter your solution to think-pair-share assignments, copy your code into the window, then press "Share" (yellow button at the top), grab the "Share Code" and post it to Piazza so that I can review it with the class.
- Welcome to ECE220! I hope that you had a great summer break, and that
you and your family remain healthy!
- We will use Blackboard for distributing grade information.
- We will Piazza for discussion of class issues, assignments, exams, and so forth. (Get the access code from the TAs.)
- If you need to refresh your knowledge of the LC-3 tools, try the old homework under References below.
- Please note that lecture recordings are available from our class--see the
link lower on this page.
- Some materials for preparing for MT1:
- Here's a grading scale including both an absolute scale and a curve.
- MP5 competition entries are shown here.
- Some materials for preparing for MT2:
- First (rules) page of Midterm 2 from Spring 2018 can be found here. You won't need the LC-3 reference this time.
- You MAY use computer aid to prepare your two A4 sheets (both sides)
this time, but please be aware that doing so without involving your brain in
the activity (by printing someone else's work, or simply cutting and pasting
figures from the slides) is likely to negatively impact your exam score.
- Here are some old exam problems that you can peruse to study for MT2 (zip or tar.bz2).
- Spring 2018 Midterm 2, and with solutions
- Fall 2018 Midterm 2, and with solutions
- MT2 Review #1 (also see recording)
- MT2 Review #2 (also see recording)
- Solution to your midterm is here (conflict version).
- MP10 deadline EXTENDED by one day to SUNDAY 13 DECEMBER 11:59:59 China time.
- Some materials for preparing for the final exam:
Course Information
Staff and Office Hours
Prof. Steve Lumetta (lumetta) |
|
Tu 21:00-23:00 |
Zoom--see Piazza for a link |
Qi Li (qili.17) |
|
Th 18:00-19:00 |
D-211 |
Tingkai Liu (tingkai.17) |
|
Tu 18:00-19:00 |
D-331 |
Zikai Liu (zikai.17) |
|
W 19:00-20:00 |
D-331 |
Wenqing Luo (wenqing.17) |
|
Tu 16:00-17:00 |
D-331 |
Assignments
- MP1: Printing Subroutines
- MP2: Translating and Printing a Student's Schedule
- MP3: Solving a Scheduling Problem with DFS
- MP4: Solving a Row in a Nonogram (gold version included)
- MP5: Using Functions to Draw a Picture (due 1 November)
- MP6: Blocky: A Game of Falling Blocks
- MP7: Testing and Debugging C Programs
- MP8: Flood Fill with Recursion
- MP9: Mieber: Walk Me There (due 6 December)
- MP10: Mieber: Walk Me There, Part II (DEADLINE EXTENDED until SUNDAY 13 December)
- MP11: Code Generation for an LC-3 Compiler (due 26 December--TWO WEEKS)
- MP12: Dancing Turtles (OPTIONAL)
Discussion Section Lab Materials
- Lab 1: Preparing for ECE220
- Lab 2: Matching and Balancing Expressions with a Stack
- Lab 3: Decoding a Secret Message
- Lab 4: Searching a Maze
- Lab 5: Decoding a Secret Message with Puzzle Pieces
- Lab 6: Cave Explorer: Event-Driven Function Execution
- Lab 7: Edge Detection Using Arrays
- Lab 8: Learning to Use a Debugger (and reverse execution in GDB)
- Lab 9: Drawing Trees
- Lab 10: Using Randomness to Find Order
- Lab 11: Analyzing LC-3 Programs
- Lab 12: Basic Blocks for LC-3 Programs
- Lab 13: Reading Lines and Evaluating Expressions
- Lab 14: Matching Teams with Function Pointers
Exams
Midterm #1 |
Thursday 29 October |
6:30-9:30 p.m. |
LTE102 and LTW102
|
Midterm #2 |
Thursday 3 December |
6:30-9:30 p.m. |
LTE102 and LTW102
|
Final |
date TBD |
time TBD |
location TBD |
Lecture Notes and Overviews
Note that I may edit these slides as we go through the topics this semester.
Lecture recordings from our class will be available here.
- MT1 Material
- MT2 Material
- Final Material
Reference Sheets
Example Programs
- LC-3
- C
- C to LC-3 example: C, LC-3
- C function examples: functions.c
- Loop design example: dump memory
- Prime printing example: primes
- Quadratic solving example: quadratic
- Reverse printing example: print_reverse
- Nim solution example: Nim
- Dynamic allocation think-pair-share: trees.c and the tree from the slides. Replace build_tree with your own version; main includes a few tests, and the output file should match the input file.
- Implementation of dynamic allocation: header file (pdf, source), source file (pdf, source), test code source
- Pyramid tree I/O example: Makefile, C header, C source, example graph, and second example graph
- Three-part I/O example: word split (pdf, source), line sort (pdf, source), and unique count (pdf, source)
- Generic sort routine (including three examples of use): isort.c