UCR CS 61: Computer Organization & Assembly Language
Fall 2005
Lecture Schedule  
Lab Schedule  
Resources  
Turnin  
Previous CS61's  
In this course we start with transistors, logic gates, latches, logic structures,
and memory circuits. We cover the von Neumann model of computing, and then use all
these tools to understand thoroughly the Instruction Set Architecture of a simple
computer, the LC-3. This leads on to assembly language programming of the LC-3.
Catalog description :
Lecture, 3 hours; laboratory, 3 hours. An introduction to computer organization.
Topics include number representation, combinational and sequential logic,
computer instructions, memory organization, addressing modes, interrupt,
input/output (I/O), assembly language programming, assemblers, and linkers.
Prerequisite: CS 010 with a grade of "C-" or better
NOTICE:
If for any reason your official enrollment in this course is delayed,
you are still expected to attend all lectures and labs, and submit all assignments,
from the beginning of class. Make-ups for missed labs, tests, assignments etc. are
generally not granted.
Class communications
Will be done using the
Moodle system.
Instructor :
Teaching Assistants and office hours:
Lectures:
Labs:
Lab attendance is mandatory. Plan to stay in the lab for the entire
lab session, working on material related to this course.
Section 021: M 11 - 2 pm, EBUII 129
Section 022: M 8 - 11 am, EBUII 127
Section 023: T 8 - 11 am, EBUII 226
Text Book:
Course grading:
Letter grades are assigned (approximately) according to the usual
90/80/70/60 scale out of 100 total course points, with 90 and
above corresponding to an A, 80 and above to a B, 70 and above to a
C, 60 and above to a D, and less than 60 to an F. +/- grades will
likely be given. A+'s will be given to students in the high 90's who
also have turned in all required material and many of the challenge
Lab exercises. You must receive 60% or higher in each the
lecture-related aspects of the course, and the lab-related aspects of
the course, to pass the course.
There are two types of coursework: one designed to help you develop your skills
and understanding (DRILL), and the other designed to measure, as objectively as
possible, your mastery of those skills (ASSESSMENT). You will receive recognition
for your efforts in both components, but ASSESSMENT items carry more
weight:
DRILL (35%)
- 12%: Homeworks (roughly weekly, will drop lowest) and
In-Lecture Exercises
- 13%: At-Home Programming Assignments
(roughly weekly, will drop the lowest)
- 10%: In-Lab Exercises (weekly, will count all)
ASSESSMENT (65%)
- 13%: Lecture Quizzes (roughly weekly, will drop lowest)
- 12%: Lab Quizzes (5: will count best 4)
- 20%: Midterm exam
- 20%: Final exam
Approximate Time Requirements:
This is a four-unit CS course. UCR guidelines specify about 3 hours of
of work per week per unit. As such, you should expect to spend
the following approximate amount of time:
3 hours/week in lecture
3 hours/week in lab
6 hours/week doing individual study (readings,
homework, programming, lab preparation, etc). Some students
may require a bit more time, some a bit less.
Please make sure to allow for the 6-8 hours of work outside of
lecture and lab. These are real time amounts spent by successful
past students. Computer Science and Engineering are challenging
disciplines requiring appropriate time to master -- learn to have
fun with it, and the work is definitely worth it in the end.
Subject to change as the quarter progresses.
Submission due times
- Homework problem sets: normally set on Tuesdays, due via e-turnin
by the following Sunday, at 9:00 pm
- Home programming assignments: normally set on Tuesdays, due via
e-turnin by the following Sunday, at 9:00 pm
- Lecture Quizzes: Generally on Thursdays, but may be at other times,
announced or unannounced.
Make sure you have a few copies of your
personalized answer sheet
with you in every class (only the first page is needed).
- Week 0 (Sep 29-30):
* Introduction to Concepts of Computer Organization and LC-3 Assembly
language (Chap 1)
slides
* Binary arithmetic and data types (Chap 2)
slides
             
Homework 1 (assigned Thu Sep 29)
Due via e-turnin by 9:00 pm, Wed Oct 5
             
Homework 1 solution
- Week 1 (Oct 3-7):
* Binary arithmetic and data types (Chap 2) (continued)
slides
* Logic operations, Boolean algebra (Chap 3)
slides
             
Homework 2
Due via e-turnin by 9:00 pm, Sun, Oct 9
             
Homework 2 solution
             
Programming assignment 1
Due via e-turnin by 9 pm, Sunday, Oct 9
             
Quiz 1 solution (Thu Oct 6)
- Week 2-10 :
Please go to the course's site on
Moodle for further
course contents.
Subject to change as the quarter progresses.
- Week 1: Lab 1:
Basic systems intro; Assembly language tools; Turnin
- Week 2: Lab 2: Lab Quiz 1 &
Using LC-3 registers; adding integers
- Week 3: Lab 3: Memory addressing modes; loops
- Week 4: Lab 4: Lab Quiz 2 & Storing and retrieving data
- Week 5: Lab 5: Subroutines
- Week 6: Lab 6: Lab Quiz 3 & Bit manipulation
- Week 7: Lab 7: Character arrays
- Week 8: Lab 8: Lab Quiz 4 & Tables
- Week 9: Lab 9: Stacks
- Week 10: Lab Quiz 5 & Review
- Material covered: The course consists of all topics
covered in lectures, labs, assigned reading, programming assignments,
etc. While these elements have some overlap, not every elements covers
every topic. Exams will include topics from all elements, and not
just those topics covered in lectures.
- Collaboration policy
In general, we have found that one of the best predictors of success in these
courses is participation in a study group of some kind. We encourage you to
work together and learn from each other in as many ways as possible, and we will
provide any assistance we can to make this happen.
However, we also have to assess each student individually, so there are very
explicit boundaries to collaboration:
- Midterm, final, lecture quizzes, lab quizzes -- Obviously
no collaboration
- In-lecture exercises -- mostly done as teams requiring active participation.
- Homeworks -- Collaboration is strongly ENCOURAGED, although of
course, you should still submit your own solutions. Overly
similar solutions may result in 0 credit for the homework
and possibly other penalties within the course (especially
for "cut-and-paste" submissions), but will in NO cases be
treated as academic dishonesty -- rather, just error in
judgement.
Questions on exams often come almost directly from homeworks,
so doing homework is in your best interest.
- In-lab exercises -- Collaboration is strongly ENCOURAGED. If you
complete an exercise, feel free to help others -- teaching
enhances your own learning.
- Home programming assignments -- Collaboration is strongly
ENCOURAGED, within a programming team: again, you will be working
in teams, but the programs you submit must still
represent YOUR OWN original work.
Teams should work on the algorithm together, and help debug/test
each others code.
However, copying code from ANY outside source
(any book, current or past students, past solutions, web sites,
etc.) is STRICTLY FORBIDDEN: we test every submission for
copying, and when we find copying, we treat it as academic
dishonesty (see below).
Teammates' code is expected to be similar, but you may not
just copy a teammate's solution.
- Academic dishonesty: cheating will be punished.
Report cheating (anonymously if you wish)
at:
https://www.cs.ucr.edu/cheating/.
We often catch several cases of academic dishonesty in a quarter,
with strong penalties given, and an academic dishonesty case
opened with UCR's vice-chancellor for student affairs.
Other forms of cheating, such as lying to an instructor in order to
be allowed to make up a test, may be treated with the same severity.
PLEASE, don't risk it!! We do not like pursuing these case, but
we do so vigoursly to protect the hard-working honest students.
- Regrade policy: regrade requests must be submitted in
writing and within one week of the posting of the relevant grades.
Likewise, grade-database errors should be pointed out within one week of posting.
- Communicating with the instructors and TAs: when emailing your
instructors or TAs, please remember that
many students have the same name, and your instructor may be teaching
other courses too. So please give your full name and list the
course you are referring to, and preferably include your student ID
number. You should use your UCR email account
(remember that UCR sends many official notices now only
by email). Please try to be polite and professional, and use
reasonable grammar and formatting.
- Assignments and lab reports: All turned-in assignments
will be turned in electronically.
Each file should be headed with your name, student id, email, lab
& lecture section numbers.
REMEMBER: Debugging typically takes three times
longer than figuring out how to write your program. So don't leave
your programming assignments to the last minute!
- Reading: Read the current book sections before coming
to lecture, and attend all lectures in their entirety. To encourage these
important college study habits, we may give a few simple pop quizzes
during the quarter, at any time during lecture.
- Students are required to stay the full three hours of lab session
every week. You'll have Lab exercises, discussions, and possibly
practical exams. Work ahead or on extra course-related material if you
finish early.
- During lab discussion time, students should not use the computers.
Ideally, students would move their chairs to the whiteboard area.
- Prepare for lab before arriving.
- To reduce disruptions and provide for the best educational
environment, all persons in lab during scheduled lab time
should be formally registered in that section. In general, no
swapping sections and no unregistered people in the lab are allowed,
even if there are extra computers.
Electronic assignment turn-in
Anonymously report suspected cheating
Anonymously Provide Comments/Suggestions
- Grades will be mailed to you on a regular basis thriughout the quarter.