CS30 Fall 2009 -- Main
Course Overview
Logistics:
- Lectures:
Mon/Wed 9:30-10:50AM PHELPS
1425
- Professor: Heather Zheng, htzheng at cs dot ucsb dot edu (Office Hours: Monday 11am--noon, HFH 1121)
- TA
information: Youngjoon Choi (ychoi01 at cs.ucsb.edu), Zengbin Zhang (zengbin at cs dot
ucsb dot edu) ; (Office
Hours: Friday: 11:50am -- 12:50pm (PHELPS 1413))
- Discussion sections:
(Attendence
Required)
Friday, 10-10:50AM (PHELP 1401) 1-1:50PM (GIRV 1112)
- Textbooks:
- Charles H. Roth, Jr. and Larry Kinney, Fundamentals of Logic Design, 6th Edition
- Robert L. Britton, MIPS
Assembly Language Programming
(Pearson
Prentice Hall)
- Prerequisites:
- Engineering 3 or CS 5AA-ZZ or 10; and, Mathematics 3C
- Not open if you have received credit for ECE 15A
- For computer science pre-majors only or consent of department
- Please note that it is essential that you have programmed in at least one procedural language like Java or C++. The course is intended for computer science pre-majors and will concentrate on computer construction and programming at the lowest or most basic level.
- Class Mailinglist: We will use a Google Group (CS30-F09) as the discussion forum / mailing list for CS30. Membership is by invite only.
- Topics covered (tentative)
- Basic computer hardware components
- Data representation and conversion
- MIPS assembly language programming
- Digital logic, clocks, flip flops
- Basic processor architecture
- Basic memory system architecture (e.g. caching and
virtual
memory)
- Advanced topics
What to expect from the course
This course is an introduction to computer architecture and assembly language programming. It covers a wide range of introductory topics on computer organizations. At the end of the course, you should understand how computers really work and how to program them at the lowest level. Main topics include: data representation and conversion; assembly language programming; digital logic design; basic processor architecture. The course is motivated by the following fact:
"The great division between hardware and software is marked by what is known as the Instruction Set Architecture (ISA). The ISA is completely and concisely defined by the machine language for a given computer or class of computers. All hardware design must be directed towards supporting and improving the implementation of ISA. All software must eventually be executed by the ISA of a given computer. Assembly language is the direct link to machine code for the programmer and computer scientist."
The class itself has two main components, a design side that will be emphasized in lectures and an implementation side that will be explored through several assembly programming projects (using SPIM simulator).
I will cover all of the course material in class in a presentation form. PLEASE finished the required reading before coming into lecture. I will lecture assuming you have read the material, and skipping reading assignments will just make it harder for you to keep up in lectures.
You should contact the TA for all questions regarding the homework assignments and labs. I will hold weekly office hours in order to answer questions on the materials covered in class and the exams, but simply will not have time to look at homework or programming assignments.