CSE 240: Introduction to Computer Architecture (Autumn 2006)

Mon/Wed/Fri 12:00 - 12:50 Towne Heilmeier Hall (class schedule)
Email: cse240@seas.upenn.edu
Web: http://www.seas.upenn.edu/~cse240
Forums & Quizzes: available on Blackboard



    Prof. Milo Martin (milom@cis.upenn.edu)

Teaching Assistants
    Nick Monfort (graduate TA)
    Netta Doron
    Geoffrey Hayes
    Andrew Lagatta
    Amanda Leicht

Administrative Assistant
    Cheryl Hickey (cheryl@central.cis.upenn.dot.edu), 502 Levine Hall - Turn in late/early homework to her.

The alias cse240@seas.upenn.edu reaches the CSE 240 instructor and all TAs. You are much more likely to get a fast response with it than sending mail to individuals.

Office Hours

Please let us know if these office hours are insufficient. You may also request an appointment via e-mail.

Lecture Notes

Homework Assignments

Prior Exams


Previous offerings


Course Description

You know how to program, but do you know how computers really work? How do millions of transistors come together to form a complete computing system? This bottom-up course begins with transistors and simple computer hardware structures, continues with low-level programming using primitive machine instructions, and finishes with an introduction to the C programming language. This course is a broad introduction to all aspects of computer systems architecture and serves as the foundation for subsequent computer systems courses, such as Digital Systems Organization and Design (CSE 371), Computer Operating Systems (CSE 380), and Compilers and Interpreters (CSE 341).


CSE 120 is a prerequisite for CSE240. CSE 121 (or other equivalent significant programming experience) strongly recommended.


Introduction to Computing Systems: From Bits and Gates to C and Beyond (2nd Edition) by Yale N. Patt and Sanjay J. Patel (errata).


Midterm: 25%
Final: 30%
Homework: 35%
Quizzes: 5%
Participation, attendance, etc.: 5%

Each student is given three "free" extensions that may be used to turn in a homework (not quizzes) at the next class without penalty (for example, if a homework is due on Wednesday but you turn it in Wednesday evening, Thursday or before class on Friday, you will be charged one extension and your grade will not be impacted). Only one extension may be used per homework. Our expectation is that most students will not need to use these extension, but they are a buffer for extraordinary circumstances.

Once you're out of extentions, 30% will be deducted from your grade for each late class period. Homeworks may not be turned in after solutions have been handed out (usually one or two class periods after the due date).


There will be approximately nine homework assignments. Some will be paper and pencil problem sets, while others will involve writing programs. Some will take a couple hours, while others will be very challenging mini projects.

Homeworks are due at the beginning of class. If an extension is used or the homework is late, it may be turned in at the beginning of the next class. If you want to submit an assignment early (or at an odd time) you may leave it with Cheryl Hickey (Levine 502).


There will be an open-book online quiz before each lecture. These simple quizzes must be completed before the start of class. They are only available online via Blackboard. Feel free to take several quizzes at once (i.e., work ahead).

Important Note: Exams will not look anything like the quizzes!


The midterm exam will be Wednesday, October 18th (in class). The final exam is scheduled for Wednesday, December 20th, 9am-11am. I've been informed that this is the official exam date/time and it will not change.

Academic Integrity

The work you submit in this class is expected to be your own. If you submit work that has in part or in whole been copied from some published or unpublished source (including current or former CSE 240 students), or that has been prepared by someone other than you, or that in any way misrepresents somebody else's work as your own, you will face severe discipline by the university. (Adapted from text appearing at the Office of Student Conduct page.)

Although you may talk with your classmates about the assignments, assignments are to be completed individually. To ensure this, make sure you take a break (e.g., watch an episode of Gilligan's Island) after a group study session, before sitting down to start the assignment. This is called the "Gilligan's Island Rule." If you have any questions about what is appropriate, don't hesitate to ask.

Appropriate: Adam doesn't understand whether a homework problem is asking for the answer to be written in machine language or assembly language. He discusses this with Beth to arrive at one or the other.

Appropriate: Beth and Adam do problems together from the "Exercises" section of the textbook. These questions are very similar to some questions on a particular homework. When they work on the homework, they work completely independently.

Inappropriate: Together, Adam and Beth work out each homework problem on a whiteboard; then they separately copy down their work and turn it in.

Inappropriate: Adam completed a programming assignment and it was working perfectly. Just before turning it in, he deleted his program (oops!). Desperate, he asks Beth if he can turn in a copy of her program.

It is important to understand that you must not give any appearance of inappropriate sharing/borrowing of work. It is worth going the extra effort to ensure their are no problems or misunderstandings.

See Penn's Code of Academic Integrity page.