 | |  |  |  |  Home»Undergraduate Education»Courses»Undergraduate Course Descriptions»CSE30
|  | |  |  | Undergraduate Course Descriptions
CSE30 -
Computer Organization and Systems Programming
Units: 4
Course Objectives: This course gives an introduction to computer organization of modern digital computers,
from the basic stored program model attributed to John von Neumann in the 1940s. The influence of
these principles can be found in almost every computer which is in use these days, and they will
lead the student to an understanding of the various components of a computer and their inter-relationships.
We will use a specific machine to study computer architecture at the assembly language and C interface level.
We are currently using Sun workstations and their SPARC series microprocessor to familiarize students
with machine-oriented programming. Efficient and portable high-level language software engineering is
achieved by understanding comparative architecture-dependent implementations of various constructs and
mechanisms, such as stack frame implementation within the runtime environment (text/data/BSS/ heap/stack)
and internal storage representations (including byte ordering and number of bytes of an object on different
architectures). Programming assignments using C and assembly languages with some emphasis on UNIX systems
programming will be used to reinforce these concepts.
Course Description: Introduction to organization of modern digital computers - understanding the
various components of a computer and their interrelationships. Study of a specific architecture/machine
with emphasis on systems programming in C and Assembly languages in a UNIX environment.
Format:
Per week: 3 hours of lecture, 3 hour of discussion sections, 5 hours of
computer lab, and 2 hours of outside preparation.
Prerequisites:
CSE 12, CSE 15L, and CSE 20 or Math 15A, or consent of the instructor.
Example Textbook(s): SPARC Architecture, Assembly Language Programming & C, 2nd Edition,
Richard P. Paul, Prentice Hall, 1999.
Laboratory work: 4 to 5 programming assignments using C and assembly languages to familiarize the
student with a particular architecture at the C/assembly and assembly/hardware levels with
emphasis on the runtime environment, to include the structure and use of stack frames and
how they support conventions of C/assembler routines calling each other, recursion, dynamic
memory management, etc. With the understanding of a specific architecture implementation
and general comparisons of other architectures, students should gain the knowledge and
skills necessary to produce more efficient and portable high-level language code throughout
their careers. These programming assignments will also emphasize concepts in UNIX systems
programming. This course assumes a good working knowledge of C programming.
Offered: Every quarter: Fall, Winter, and Spring.
 |  |  | back to top ^ |
 |
|  |