Last updated by Karen on May 13, 2013
Please send me e-mail and stay home if you have fever and other flu symptoms.
This web page section lists class announcements. Items will not remain on this page for the entire semester, but will instead attempt to represent the current week's announcements.
Week of May 13
There will be no assigned textbook for this course, this semester. Use the provided writings and lecture notes (links below, within the Schedule), and listen in class for directions, if there will be readings from textbooks.
You will need access to information about programming in the C language. Online sources may be enough, but no guarantees. Most any textbook that introduces the C language (not C++) is acceptable, so if you already have a book, use it. If you do not already have a book, please consider purchasing your own copy of
The C Programming Language
Brian W. Kernighan and Dennis M. Ritchie
Second Edition
You will find this book relevant and useful in both further coursework and in industry. The university bookstore will not have many copies, and they will not be in the textbook section, as this is neither a required nor a recommended book for the course. In today's world, it will be easy and quick to obtain a copy at local bookstores or online sources.
printf formatting for integers
printf formatting for floating point values
There are both written homeworks and programs in this course. Programs focus on course topics. Grading is based on both correctness and programming style. You write both a C program and several assembly language programs in this course. You will be expected to design algorithms and organize code for these programs. Algorithm details will not often be covered in class. You are expected to write grammatically correct, clear documentation for the code. A description of our expectations for programs is given in this Guidelines for Programs document. You will not be given test cases for your programs. So, you will need to identify reasonable test cases, and test your own program with them.
You will use computers that are running RedHat Linux, a Unix operating system. For the Spring 2013 semester, these are the mumble and king machines in rooms 1350 and 1351 CS. If you had an account in CS last semester, it will still be available to you. Otherwise, you have been assigned a new account.
Programs and homeworks are due as stated on each assignment: given by both a due date and a time. Assignments will be turned in online. Any assignment turned in after the due date/time and up to 24 hours late will receive a deduction of 25% of the total available points. Any assignment turned in more than 24 hours after the due date/time will not be graded, and it will receive a zero score. Exceptions to this late policy will be considered only if discussed with your instructor well before the assignment is due.
Grading is quite strict. Pay attention to the requirements given with each assignment; missing requirements will result in deductions. Expect later assignments to depend on earlier ones; the programs build on each other in concept implementation. Doing a good job on the earlier program will result in less time needed to implement a subsequent program.
You may work in pairs on assignments. Both students working together must be currently enrolled in the course. Each student must (individually) turn in each assignment. On collaborated assignments, there will be 2 copies of the assignment turned in: one by each of the pair working together. This is required to simplify the grading and to insure that both partners have copies of code that will be utilized in subsequent assignments. Include the names and sections of both students involved. The TA will choose to grade just one of these turned in assignments, giving the same score to both students. Pairings may be different on different assignments.
Exam questions will require your understanding of both homeworks and programs. Expect exam questions to determine whether you both did and understood the assignments.
There will be 3 exams. The first two are 50-minute exams, starting at the beginning of the 5:30pm midterm time period; the last exam is given during the summary activity period. The dates of the exams are given in the schedule below.
Bring a current photo ID to all exams. Your UW student ID is preferred. No ID, no exam!
Each student may use one 8.5 by 11 inch sheet of paper with hand-written notes when taking the exams. Both sides of the paper may be used. These notes may not be shared when taking the exam. The goal of these notes is to reduce anxiety and help students prepare for exams by deciding what should be on the page of notes.
Copies of appropriate tables for ASCII/MAL/TAL will be provided with the exam.
No electronic devices (such as calculators and laptop computers) may be used during exams. Cell phones will be turned off during exams. A phone that rings during an exam may result in a penalty, determined by the instructor.
If you have a conflict with any listed exam time, you must notify Karen before Friday Feb 8.
Here are many previous exams (some with solutions). Some of the questions are representative of questions you are likely to see on this semester's exams. However, because of changes in the course as well as the credit reduction (this course used to be 4 credits), lots of questions are neither representative nor appropriate. The more recent the exam, the more appropriate the questions. The course material on function linkage, implementation, and MIPS conventions for register usage were extensively changed as of the Spring 2007 semester.
University policies will be followed strictly in this course. Please, pay particular attention to policies on academic misconduct and incompletes.
Grades will be based on the exams, homework, and program scores. More difficult, and more time consuming assignments will be given more weight than easier ones.
| percentage | |
| homeworks and programs | 30% |
| exam 1 | 20% |
| exam 2 | 25% |
| exam 3 | 25% |
Requests for re-grades must be made within one week after graded work is returned. For programs and homeworks, contact the TA listed as the grader on your grade sheet. For exams, talk to Karen.
Here are some (possibly) helpful web pages.
C Programming
All students are responsible for the material under the headings of Writings and Lecture Notes and On Your Own. The difference between these 2 categories is that the material under the heading of On Your Own will not be covered in class.
Only assume that lecture slides are ready the week they are
used in lecture. The slides posted far ahead may be referenced,
but they are from last semester, and have not yet been
updated for this semester.
| Dates | Topics | Writings and Lecture Notes | On Your Own | Beyond 354 | Due Dates |
| - | prerequisite material:
Number Systems on Important Terms you must know |
||||
| 1/23-25 | class policies:
powerpoint slides,
pdf slides
basics of computer operation: powerpoint slides, pdf slides |
the basics of computer operation | |||
| 1/28 -2/1 |
C programming: Pt. 1 powerpoint slides, Pt. 1 pdf slides |
introduction to C, I/O in C |
finish the optional Assignment 0 by Friday |
||
| 2/4-8 |
more on C programming: Pt. 2 powerpoint slides, Pt. 2 pdf slides |
on pointers,
on functions and memory allocation |
on argv and argc:
questions, questions with answers integer representations: questions, questions with answers character representation: questions, questions with answers |
floating point representation | |
| 2/11-15 |
integer arithmetic and logical operations:
powerpoint slides, pdf slides motivation for registers: powerpoint slides, pdf slides |
integer arithmetic,
logical, and shift operations
motivation for registers |
addressibility: questions, questions with answers | two's complement multiplication |
Assignment 1 due Wednesday: C program |
| 2/18-22 |
assembly language:
ppt slides set 1, pdf slides set 1 ppt slides set 2, pdf slides set 2 |
basics of MAL (MIPS assembly language),
MIPS instructions, code implementation examples |
need-to-know aspects of MAL | ||
| 2/25 - 3/1 |
finish MIPS assembly language
data structures: Powerpoint slides, pdf slides |
on addressing modes arrays, stacks, and queues |
Exam 1 Monday 5:30-6:30pm
Location: 1351 Chemistry Bldg. (covers thru arithmetic and logical operations) Assignment 2 due Friday: super simple MAL program |
||
| 3/4-8 | finish data structures | array code implementation: questions, questions with answers | |||
| 3/11-15 |
functions:
Powerpoint slides,
pdf slides |
function implementation |
Assignment 3 due Wednesday: MAL program using arrays | ||
| 3/18-22 |
finish material on function implementation
the assembly process: powerpoint slides, pdf slides |
the assembly process | MIPS conventions | ||
| 3/25-29 | Spring Break | ||||
| 4/1-5 | finish material on assembly | linking and loading | Assignment 4 due Wednesday: MAL programs with functions | ||
| 4/8-12 |
on I/O:
powerpoint slides, pdf slides |
input and output
more on I/O and DMA |
Assignment 5 due Wednesday: hand assembly | ||
| 4/15-19 |
exception handling:
powerpoint slides, pdf slides |
interrupts, an incomplete kernel, and a complete, non-reentrant kernel. |
Just for fun, read The Story of Mel. |
Exam 2 Wednesday 5:30-6:30pm
Location: 1351 Chemistry (covers thru function implementation) | |
| 4/22-26 |
finish material on exception handling
performance: powerpoint slides, pdf slides, |
on perfomance issues | |||
| 4/29 - 5/3 |
finish material on performance
and on speedup: powerpoint slides, pdf slides |
Assignment 6 due Wednesday: MAL program using interrupts | |||
| 5/6-11 | extra topics: Intel x86 architecture, floating point appreciation: pdf scan of slides on floating point arithmetic |
floating point appreciation,
Intel x86 appreciation |
introduction to pipelining | ||
| Tuesday May 14, 7:45am |
Exam 3
(Covers the assembly process, I/O, interrupts, caches, and performance topics.) Location: ?? |