Dr. Jim Sasaki, CS Dept., Illinois Institute of Technology
For posted scores, go to myIIT → Blackboard.
This syllabus contains information about the course topics, the textbook, and the ground rules for the course.
Required: Introduction to Computing Systems: From Bits & Gates to C & Beyond (2nd edition), by Yale N Patt, Sanjay J Patel, Patt Yale, © 2004 McGraw-Hill, ISBN 0072467509. The text's Student Resources website contains links to the LC-3 simulator and lab manual.
Introduction to the internal architecture of computer systems-including micro-, mini-, and mainframe computer architectures. Focuses on the relationship among a computer's hardware, its native instruction set, and the implementation of high-level languages on that machine. Uses a set of assembly language programming exercises to explore and analyze a microcomputer architecture. 2-2-3 (C) Prerequisites: CS 116 or CS 201.
Digital logic hardware, Low-level data representation, von Neumann computing model, Instruction set architectures, Assembly language, Input/output, Interrupts, Traps and subroutines, Call stack, C programming, Other computer architectures.
The course goal is for you to learn, at a deeper level of abstraction, how computers and software work. The basic hardware of a computer represents data and actions in ways different from much that we see as computer users or as high-level programmers, so we'll look at questions like "How do we represent data in hardware (and why those representations)?" "What are stored-program computers, and why do we use them?" "What kinds of instructions does basic hardware support?" and "What does all this mean for people who program in languages like C++ or Java?"
Coursework includes lectures, tests (= exams and quizzes), assignments , and a final project. Regular class attendance and class participation is expected.
Research in how to teach shows that students learn better when they are active participants in studying and answering questions than when they are passive receivers of lectures. In addition to calling on people in lecture, I plan to use group activities to get people to discuss and practice and teach each other. (Ungraded) mini-quizzes will help me get quicker feedback on what people understand and what they need more practice on.
Try to avoid coming to lecture cold (without having looked at the textbook at all). You don't need to study everything in detail before lecture, but try to skim things so that you get more exposure to the material beforehand. Try to form questions about any parts you don't understand. Similarly, study the textbook after lecture in view of the ideas discussed.
There will be two quizzes, one midterm exam, and a final exam. (Open notes? Closed book? Closed notes? Let's discuss this.)
The midterm exam will be between quizzes 1 and 2. The final exam will be comprehensive but emphasize material since the second preliminary exam.
Lab assignments will be assigned periodically. Labs don't count for much toward the final grade; their primary purpose is to prepare you for the tests. Doing the labs doesn't guarantee you'll earn an A in the course, but not doing the labs is a good way to get flattened at test time. The weekly lab meetings are for discussing the next lab(s) due and the answers to graded lab(s) being returned.
Submitting electronic files is preferred, but written/printed documents are okay. For electronic Files, PDF is preferable, but anything okay with the TA is okay. Use the assignment folder on myIIT → Blackboard to submit your file. You can submit written/printed work in lecture or lab, or you can submit it to someone at the CS department office during normal business hours. Get it time-stamped and have it put in the instructor's mailbox. Written assignments slipped under the door after business hours are considered to be submitted the next business day.
Include your name, the assignment number, and a page number on each page of your submission. Turn in your entire assignment at once (don't turn in a problem here and a problem there). Present your answers in the same order as the questions. (Give the answer to Question 1 first, the answer to Question 2 second, etc.)
Labs will typically be due on Fridays, but if you attend lab that day or (or the day before, depending on when you have lab), then you get an automatic extension to Monday. (If you arrive late or leave early, the extension is only to Saturday.) Students in the TV section automatically get an extension to Monday. Work is due by 2400 hrs (midnight, end-of-the-day). (Remember, you must submit electronically if you want to submit work after the department office is closed for the day.)
Labs may be handed in up to two weekdays days late, with a penalty of 10% per day. (Saturday and Sunday are free.) Only the instructor can grant exceptions (and he is very reluctant to do so). After this deadline, homework can be discussed with the TAs but gets a score of 0.
Badly organized or submitted material may be penalized up to an additional 10%. An illegible or hard-to-read answer may be penalized up to the full credit for a problem.
Evidence indicates that people learn better in pairs or groups, so I recommend you work together on labs. You may also use outside sources such as the Internet. Note “working with” someone means things like sharing ideas and checking each other's work; it doesn't mean just copying someone else's work -- that won't help at test time either. Each of you should understand what you're handing in as well as though you'd done it alone.
If you work with someone, you must each submit your own copy of the answers -- writing your own solution will give you practice writing. When you submit your work, include the name of the person/people you worked with and any resources you used, so that we can cross-reference if need be. (It may help us figure out your answer if we can check it against a partner's.) Don't include the textbook, teaching assistants, or instructor in the list of resources you used.
You aren't banned from handing in exactly the same solution as your partner(s) -- for some problems, there's only a small possible number of solutions or ways to phrase them. On the other hand, if you just staple your partner's solution to Problem 1 to your solution for Problem 2, you aren't both learning the material, which will be problem at exam or quiz time. So a possible scenario is you work on Problem 1, your partner works on Problem 2, you get together and explain your work to each other so that now both of you know how to solve both problems. (See below for how much tests count toward the final grade.)
Another recommendation: Don't work with the same partner(s) the whole semester. It's good to learn to work with different people.
There will be a Final Project due at the end of the semester, details to be discussed. This will be an individual project, not a group project
If you're sick or have an emergency, contact the instructor (or have a friend or family member contact the instructor) as soon as you can. Don't wait until you get well/get back in town. If you know you're going to miss class, please send the instructor an email.
Make-up assignments and tests are at the discretion of the instructor (not a guaranteed right), especially if you ask after the due date/exam date. (See My Grading Philosophy below.) Barring some urgent reason, you must take tests at the scheduled time. (Getting a cheaper airline ticket is not considered to be an urgent reason.)
Note that because of the "Second Chance" policy for tests, missing a preliminary test isn't necessarily as critical a problem as you might think.
Reasonable accommodations will be made for students with a letter of accommodation from The Center for Disability Resources (LS 218, 312-567-5744, ) Please also speak with the instructor about any necessary accommodations well ahead of time.
Here's a tentative breakdown -- I want to discuss it with you before the end of the semester: 10% Labs; 10% Final Project; 3% Participation/presentations; two 30-min Quizzes @ 10% each; 23% Midterm Exam (75 min), 34% Final Exam (120 min). (The Lab score will be your average score, scaled to be between 0 and 100.)
If you do badly on a quiz, you have a chance to redeem yourself by doing well on the next exam (midterm or final exam). If you do badly on the midterm, you can redeem yourself by doing well on the final exam:
In theory, you could get zeros on the quizzes and the Midterm Exam but still earn all your exam points by doing fantastically on the Final Exam. (But don't try this :-)
My default scheme is A: 90-100, B: 80-89, C: 70-79, D: 60-69; E: 59-0. (I really try to stick to these numbers, and I promise not to make them higher.) There may or may not be a curve added to the final grade. Curving is done by adding a constant to everyone's end-of-semester score.
I reserve the right to assign a failing semester grade to any student who fails the final exam or commits ethics violations.
To me, grading is about describing the quality of your work. At the end of the semester, I take all your work and put it on a big scale and tell you what the quality gauge says. Maybe nine times out of ten, there's no ambiguity as to what the reading is: A, B, etc. The only judgement comes in at the borders. My personal algorithm is to push people up to the next higher grade if I can -- if you're two points short on the final exam, I'll give you the benefit of the doubt because I can't guarantee to myself that my grading is accurate to within two points when we're talking about an exam full of programs and proofs. On the other hand, if you're ten points short, you get the lower grade.
Your grade must be based solely on the quality of your work. It would be unethical and unprofessional of me to base the grade on anything else, and it would cheat the other students. Please don't ask me to raise your grade because a low grade will make your life more difficult.
Grading has to be done on a level playing field: I can't give you extra make-up work that I don't give to everyone else, especially once the semester is over. On the other hand, if in my judgement some uncontrollable factor has significantly unleveled the playing field for you, I may decide to on an exception. So if you miss a test because a flaming asteroid takes out the Kennedy Expressway, I will probably give you a make-up exam. (If you have a core sample and a note from your geologist :-)
Everyone starts the semester with half of the class participation points in the bank. You can gain participation points by (uh, well...) participating: Volunteer an answer once in a while, or at least make a game attempt to answer a question if called on in class. For group activities, join in the discussion.
You can lose class participation points by distracting the instructor/teaching assistant or the other students with cell phone calls, excessive talking, noisily entering class late, any kind of harassment, etc.
If you know you'll have to leave class early, I'd appreciate your telling me ahead of time. On the other hand, I know emergencies do happen.
Students are responsible for maintaining the highest level of academic integrity; the IIT Code of Academic Honesty can be found in the undergraduate handbook at The Office of Student Affairs. The normal penalty for violations of this policy, especially copying or other cheating during tests is an E for the course, plus notification of the student's advisor and/or department and any appropriate administrators.
Please take advantage of the instructor and TA office hours, email, etc., whenever you have problems or questions.
If you find yourself getting that lost feeling, don't wait weeks before seeing the instructor. If you shout "Help!" just as you're falling out of the airplane, I might be able to throw you a rescue parachute (or maybe a drogue chute to slow you down). If you fall for 15 weeks before shouting for help, there's really nothing I can do. As an instructor, it's very depressing when some poor soul comes in, just before finals, panic-stricken about the final grade, with an Indiana-Jones-sized boulder looming just behind.