CS310 - Computer Organization and Programming
(Spring 2007 - the hardware/software interface)
aka "open up the box and look inside"

Current Status: Exam3 Scores are online. See the Score Statistics for a coarse curve. Course Grades should be available by the end of Sunday.

Schedule with
agenda, notes,


News &

 For You!!




Computer Organization and Programming
Computer Sciences 310
Unique Numbers: 54817, 54818, 54825, and 54827


Chris Edmondson-Yurkanan
Taylor Hall 4.136.....Phone: 471-9546
chris (at sign) cs (DoT) utexas (doT) edu

I also have an email alias: "dragon" , does it stand for dragonslayer or dragon's lair?  You decide ;-)

Office Hours: Wed 3-4:15 MicroLab PAI 3.06-3.22, and Fri 9:30-10:30 TAY 4.136 (my office).
Additionally: before/after class, and by appointment.

Teaching Assistants:



Office Hours

Office Location 


Padmanabha Iyer

aiyer(at) mail dot utexas dot edu

Tues 11-12, Wed 9:30-10:30
by appointment



Vinod K.  Valsalam

vkv (at) cs dot utexas dot edu

Mon 12:15-1:15, Thurs 4-5
by appointment.





Nallan Chakravarti, Archit (architnc (at) mail dot utexas DoT edu)
Office Hrs: PAI MicroLab, Mon 3-3:45. 3rd floor. (Archit will focus on grading hmwks.)

Class Meetings:

Section 1: MWF 11:00-noon, WAG 214  (Unique #s: 54825/54827)

Section 2: MWF  2:00-3:00, BUR 224  (Unique #s: 54817/54818)

Discussion Sections:

#54817: TH 10:00-11:00a.m., JES A217A (Anand)
#54818: TH 2:00-3:00p.m., RAS 313A (Vinod)
#54825: TH 10:00-11:00a.m., RAS 218 (Vinod)
#54827: TH 1:00-2:00p.m.,  RAS 211A (Anand)


Required Reading:


Typically, students have completed CS307 and CS315 (or their honors versions), with a grade of at least C in each. Enrollment is limited to Computer Sciences majors.

Course Catalog: CS310 Course Objectives

To understand the basic operation of computing systems. Upon completing this course, students should have a high-level understanding of the role played by each major component of the system, including compiler, operating system, assembler, instruction set, and hardware. This is a particularly interesting course, because it exposes so many components that have been hidden until now, and yet these components can have a significant impact on performance or diagnosing the problem.  CS310 topics are also needed for your future courses, such as Programming Languages, Architecture, Operating Systems, and Compilers.

Student Evaluation

 Your performance in this class will be evaluated through homework and programming assignments, three exams, a few quizzes for pacing, and participation. The weights of each of these components is listed below:

Three Exams: Ex1, Ex2, Ex3
55% : 17, 19, and 19
Your Best Exam:
Homework & Programming Assignments
30% (all are counted)
Three short quizzes (in class)
3%: (1% each)
Participation: Answer a  "Mystery question" (turn in next class)
3.5%: for 9 short, exploring activities
(Best 7 of 9)
Attendance for lecture and discussion (excluding participation days):

3.5%:  This is a new emphasis designed to help motivate you to succeed in the class:  -.5% per absence, up to 7 lectures or discussion sections. See details below. (2 free absences.)

ATTENDANCE at Lecture and Discussion Section:

It is very much to your advantage to keep up with the course by attending each and every class.  Many members of the CS Department have been discussing that attendance can have a strong association with both exam performance and the overall course grade.  Typically, without an attendance policy, students who miss several lectures are much more likely to fail the course.  Our goal is to help students balance their heavy course loads and time demands, while appreciating the heavy cost to missing lectures in courses.  The attendance policy elsewhere has been very successful and well-received by students. 

The first 2 absences will not count; after that students will lose .5% of their final course grade for each absence.  Attendance will be taken at the beginning of each lecture and discussion section.  Students who are more than 5 minutes late will be counted at absent.  If you know that you are going to be late to a lecture or discussion section, please make prior arrangements with your instructor or TA.

The attendance policy is intended to be both a strong incentive for attendance and to help students be aware of the importance of attendance and participation on academic performance in this course. 


The first two midterms will last 2-hours and will be given in the evening. Make-up exams will be given ONLY for an official UT conflict, and you must submit a written make-up request with proof of conflict to the instructor one week before the exam.   The exam schedule is as follows:

Monday, February 26th, 7-9p.m. 
WEL 3.502
Monday, April 9, 7-9p.m.
Location TBA
Friday, May 4, 7-9p.m.
WEL 3.502

This semester we will have approximately 8 homeworks.  The assignments are designed to help students master the subject.  Please use them as positive feedback  on how you are proceeding in the subjet.  The non-programming problems are given to ensure that you are mastering concepts, such as data representation and hardware designs.  The programming problems will focus on implementing algorithms used by compilers and the Operating System, along with modelling hardware concepts, and is vitally important to your understanding of this course.  Be sure to read each assignment's turn-in procedure and it's time of day deadline. Each assignment will specify a unique turn-in deadline, and the maximum number of penalty days allowed for that assignment.  A common late penalty is -10% per day for a maximum of two late days.

The programming languages we will use are JAVA and LC-3.  LC-3 is a simple, generic example of an Instruction Set Architecture, thus you will need to use a simulator in order to run and test your programs.  The students from last semester used the LC-3 simulator for the Windows platform either in the UTCS MicroLab, or else downloaded the simulator and then worked at home. A LINUX version of the simulator is available via Patt/Patel and a home-grown UTCS version is also available.  NEW:  we will explore a few features of "C",  a systems programming language.

NOTE:  approximately several of the assignments will specify that you can work with one other person on a specific question.  (If you do work with someone, you should use the "pair-programming" style of working together.)  I will always specify the exact problems that you may work with one other student.   Please read the section below on Academic Dishonesty.

Electronic Turnin:  Your programming assignments will be submitted electronically using a UT CS LINUX turnin utility and thus will require you to use your CS departmental Unix account. We will not be using the MicroLab turnin.  Do NOT  email your assignments to the teaching staff. The programs will be graded on correctness, readability, style, and documentation.  All CS students who meet the prerequisites for CS310 are eligible for a CS departmental Microlab account and undergraduate Unix account

NEW Procedures for getting Accounts:

Interaction with your TA

Feel free to attend any/all of the CS310 office hours and make appointments with the team.

Your TA will conduct 50 min. discussion sections each Thursday to provide extra time for questions, to present additional examples of problem-solving techniques, to review the assignments, and to present new material.

The grading of assignments and tests will be shared among myself, the TAs, and the proctor, but your contact point for grades will be your TA.  Assignments and tests will be returned by your TA.  Any grading problems should be submitted in writing to your TA for resolution first, before appealing to me. You have one week to turn in a written appeal, after the TA returns the assignment.

Classroom Distractions:

Academic Dishonesty Policy

You are free to discuss the course material with your classmates and are encouraged to form study groups, particularly for reading, quizzes, and exams.  Collaboration on homework or programming assignments is absolutely not permitted... unless I explicitly state that you may work together with one person for a specific problem of an assignment.

While helping a friend understand the wording of a homework question or programming assignment specification is permitted, helping a friend in any way to answer the question is NOT permitted.  Students who work together too closely (e.g. design their solution together) should be aware that this is a form of cheating called COLLUSION and is subject to severe academic penalties.  The penalty for academic misconduct is a failing grade in this course. 

Both the University of Texas and the Computer Sciences Department, believes that collusion and other academic dishonesty warrants an F in the course.    Remember, each assignment in CS310 is only weighted 3-5% of the entire course grade, and the grading policy has partial credit.  Given the significance of collusion, do NOT turn in a single problem that was not solved by you, and you alone.

The homework, programs, and exams must be the work of students turning them in. University policy will be followed strictly. (See the  Dean of Students' policies on academic integrity) Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:

We urge everyone in the class to take appropriate measures for protecting one's work. You must protect your files, homework solution sheets, etc. as deemed reasonable.

Studying for tests together is permitted and encouraged. Please come talk to me if you are unsure about how to work together with your friend in a legal, helpful manner. Remember, it is always ok to "work together" with your professor or TA!

Your Responsibilities in This Class: