CIT 593 - Fall 2012

blackboard | google | wikipedia

CIT 593 Course Overview



Course Objectives

This course provides an introduction to fundamental concepts of computer systems. You will learn the C programming language and an instruction set (machine language) as a basis for understanding how computers represent data, process information, and execute programs. The course also focuses on the Unix environment and tools, and serves as a foundation for the subsequent course, CIT 595.

Class Meeting Times

Lab: M 1:30-3:00, Moore 207

Lecture: TR 4:30-6, Towne 303

Back to Top



Introduction to Computing Systems: from bits & gates to C & beyond
Author: Yale N. Patt and Sanjay J. Patel
ISBN: 0072467509 (2nd Ed)
Errata  Preface

  • The C Programming Language, by Brian W. Kernighan and Dennis M. Ritchie, often referred to as "K&R"
  • Problem Solving and Program Design in C, by Jeri R. Hanly and Elliot B. Koffman OR
  • Practical C Programming, by Steve Oualline (also can be found on Safari Online Textbooks through Penn Library)

Supplemental books On Reserve in Engineering Library:

  1. Structured Computer Organization – 5th Edition by Andrew S. Tanenbaum
  2. Principle of Computer Architecture by Miles J. Murdocca and Vincent P. Heuring

Online Resources: A lot of online material throughout the course can be found under the Resources section.

Back to Top


Final course grading will be weighted as follows:

  • Homework assignments: 50% of grade
  • Lab assignments: 10% of grade
  • Midterm exam: 15% of grade
  • Final exam: 25% of grade
The assignment of weighted averages to letter grades will likely be as follows:
over 98 A+
93-98 A
90-93 A-
87-90 B+
83-87 B
80-83 B-
77-80 C+
73-77 C
70-73 C-
50-70 D
under 50 F
Note that this may change slightly after grading of the final exam is completed.

Back to Top

Academic Integrity

All work submitted for this class is expected to be your own, unless otherwise noted in the assignment instructions. If you are caught submitting work that is completely copied from some other source, or that has been prepared by somebody other than you, you will face severe discipline by the university.

Homework assignments are to be completed individually unless explicitly stated. You may talk to fellow classmates regarding the assignment and share ideas on Blackboard, but keep in mind what is appropriate and inappropriate about your collaboration:


  • Person A doesn't understand what exactly the problem is asking, e.g. writing actual C code vs. pseudocode. He discusses this with Person B to arrive at one or the other.
  • Person A does not understand a particular concept. Person B explains the concept using an example, other than one asked on the homework.


  • A attempts half the problem, and B attempts the other half. A and B copy the solutions to half the assignment that the other person wrote.
  • Together, A and B work out each homework problem on chalk/white board; then they separately copy down their work and turn it in.
  • Person A completed a programming assignment and just before turning it in, he deleted his program - oh no!!!. In desperation, he asks Person B if he can turn in a copy of her program.
  • Person A happens to be in the lab working on the assignment and notices that Person B is working on the same assignment. Person A is having trouble compiling his program, and asks Person B to fix the problem for him. Sounds safe, right? It's not.

Note: When in doubt always ask the instructor or TA first, to avoid any potential collabration that can lead to academic dishonesty.

You can further read Penn's Code of Academic Integrity page on this subject matter, as well as the SEAS Graduate Student guidelines on the code of ethics.

Back to Top

Homework turn-in procedure

You will turn-in all programming assignments using Blackboard.

First, prepare the submission according to these instructions:

  1. Be sure the files you submit follow the naming guidelines stated in the assignment. This is to make things easier for the graders.
  2. Put all files in a directory named [your-id]_hwk[#]. For instance, if I were submitting homework #3, my directory would be cdmurphy_hwk3.
  3. From the parent directory, create a tar file named [your-id]_hwk[#].tar.

Then submit the file as follows:

  1. Log into Blackboard
  2. Open your course (CIT 593).
  3. In the main menu on the left-hand side, click "Assignments".
  4. Click on the assignment for which you want to submit your homework.
  5. In Section #2, "Assignment Materials", leave the "Submission" (the text area at the top) blank, as your submission will consist of files that you will upload.
  6. Below the textbox, next to the label "Attach File", click the "Browse My Computer" button. After you choose the file, you should see it listed next to the label "Attached files" (i.e., it should be uploaded automatically when you select it). Unless otherwise noted, your submission should consist of a single .tar file.
  7. After uploading all files, click the "Submit" button.

You may submit multiple times, but only the last submission will be graded.

Submissions after the deadline are subject to a 10% per day penalty, up to seven days, after which the submission will not be accepted.

Previous Course Offerings