Computer Architecture
Curricula
(under construction)
This web page is a detailed description and analysis
of the Computer Architecture Curricula of a select group of universities,
including top CS research-oriented departments in the U.S. The following
is an alphabetical list with links to each analysis section:
- Analysis of undergraduate CS architecture at:
University of California at Berkeley
- Analysis of undergraduate CS architecture at:
California Institute of Technology
- Analysis of undergraduate CS architecture at:
Carnegie Mellon University
- Analysis of undergraduate CS architecture at:
Cornell University
- Analysis of undergraduate CS architecture at:
Harvard
- Analysis of undergraduate CS architecture at:
University of Illinois at Urbana-Champaign
- Analysis of undergraduate CS architecture at:
MIT
- Analysis of undergraduate CS architecture at:
Princeton University
- Analysis of undergraduate CS architecture at:
Stanford
- Analysis of undergraduate CS architecture at:
University of Texas at Austin
- Analysis of undergraduate CS architecture at:
University of Washington
- Analysis of undergraduate CS architecture at:
University of Wisconsin at Madison
- I will eventually include the following:
- some Texas schools UT ECE dept, Rice, Texas A&M
University,
- schools that architecture education researchers
are at: UMass, Penn, Duke?, Michigan
- a couple of liberal arts schools - the ones that
Scragg, Walker, and Schneider are at,
- plus a couple of european universities - including
where Tanenbaum is, and ???
- schools where some of my friends are - Univ of
Houston, Univ of Richmond, Arizona
UNIVERSITY OF CALIFORNIA-BERKELEY,
Electrical
Engineering and Computer Sciences Department, College of Engineering
UCB offers a BS in EECS ( with several CS-oriented
options ) or a BA in CS(Letters and Sciences) URL: for degree
options and official descriptions of all courses.
#Arch. Units required: approximately 9. All CS students take 2 courses
devoted to Computer Architecture topics ( CS61C Machine Structures and
CS150 Components and Design Techniques for Digital Systems ) for a total
of 8 units, and CS61A devotes up to 1 unit as well.
#Arch. Units recommended: at least 5 by taking CS152 Computer
Architecture and Engineering.
Undergraduate semester courses containing a computer architecture
component:
- CS 61A The Structure and Interpretation of Computer Programs, Required,
freshman, 4units
- CS 61C Machine Structures, Required, sophomore, 3 units
Topics: The internal organization and operation of digital computers.
Machine architecture support for high-level languages, logic, arithmetic,
instruction sequencing and operating systems (I/O, interrupts, memory management,
process switching). Elements of computer logic design. Tradeoffs involved
in fundamental architectural design decisions. (From the '97-'99 General
Catalog updated as of 05/15/97) Course format: Two hours of lecture, one
hour of discussion, and an average of six hours of self-scheduled programming
laboratory per week. Prerequisites: CS61B Data Structures and CS61A
Text: Goodman/Miller A Programmer's View of Computer Architecture
and Hennessy/Patterson Computer Organization and Design
Assembler: Modified SPIM simulator to support interrupts
URL: official description, recent semester course
- CS 150 Components and Design Techniques for Digital Systems, Required,
junior,5 units
Topics:Basic building blocks and design methods to contruct synchronous
digital systems. Alternative representations for digital systems. Bipolar
TTL vs. MOS implementation technologies. Standard logic (SSI, MSI) vs.
programmable logic (PLD, PGA). Finite state machine design. Digital computer
building blocks as case studies. Introduction to computer-aided design
software. Formal hardware laboratories and substantial design project.
Informal software laboratory periodically throughout semester. (From the
'97-'99 General Catalog updated as of 05/15/97) Course format: Three hours
of lecture, one hour of discussion, and three hours of laboratory per week.
Prerequisites:CS 61C, EE 40 (or 42) Introduction to Electronics.
Text: Katz Contemporary Logic Design, and several recommended
books, especially Digital Design: Principles and Practice.
URL: official description, recent
semester course
- CS 152: Computer Architecture and Engineering, Optional-but
suggested, senior (5 units)
Topics: Instruction set design, Register Transfer. Computer design
project requiring about 100 hours. Data-path design. Controller design.
Memory system. Addressing. Microprogramming. Computer arithmetic. Survey
of real computers and microprocessors. Course format: Three hours of lecture
and two hours of discussion per week and one large design project. This
course will give you an in-depth understanding of the inner-workings of
modern digital computer systems and tradeoffs present at the hardware-software
interface. You will get an understanding of the design process in the context
of a complex hardware system and practical experience with computer-aided
design tools. Topics include: Instruction set design, computer arithmetic,
controller and datapath design, memory systems, input-output systems, networks
interrupts and exceptions, pipelining, performance and cost analysis, computer
architecture history, and a survey of advanced architectures. There will
be a computer design project requiring 100+ hours. We will implement a
major subset of the MIPS architecture to the gate level. Prerequisites:
CS 150 and CS 61C
URL: official description, recent semester course
Text: Hennessy/Patterson Computer Organization and Design
URL: official description, recent
semester course
Graduate architecture courses ( incomplete )
CALIFORNIA INSTITUTE
OF TECHNOLOGY, Computer Science, Division of Engineering and Applied
Science
The
undergraduate course description reveals courses such as: CS/EE 4 Introduction
to Digital Electronics, CS/EE 11 Digital Electronics Laboratory, CS 20
abc. Computation, Computers, and Programs, EE/CS 51. Principles of Microprocessor
Systems
Undergraduate quarter courses containing a computer architecture
component:
- CS 20abc Computation, Computers, and Programs,
Required, Sophomore-full year
Topics: This course will focus on fundamental concepts of
computer science that transcend particular programming languages and computer
architectures. Topics will include models of computation, analysis of algorithms,
formal languages, numeric and symbolic computation, and program verification.
Practical examples will be drawn from diverse areas including computational
geometry, program translation, and artificial intelligence. Course work
will be both theoretical and practical, with assignments involving both
proofs and programs. Students will program in Java and Lisp. Recommended
Background: Students should have taken a course in calculus, acquired an
in-depth knowledge of at least one programming language, preferably C++,
Java, or Lisp, and have some familiarity with data structures.
Text: Ellis/Papadimitriou .... , Snepscheut
URL: official description, recent semester course
- CS/EE 4 Introduction to Digital Electronics, Recommended, freshman-one
term
Topics: Overview, number systems, codes, representation of binary
quantities, Boolean algebra, axioms and theorems, logic and sets, truth
tables, logic gates, and implementation using AND-OR-INVERT gates. Combinational
logic, canonical forms, simplification and minimization of Boolean functions
using Karnaugh maps. Implementing combinational logic circuits using NAND,
NOR, decoders, multiplexers, ROMs and PLDs. Synchronous sequential logic,
flip-flops, counters, registers. Memory devices, RAMs, and analog-to-digital
conversion. Computer Arithmetic, the Arithmetic Logic Unit (ALU) Algorithmic
state machines, controllers, sequencers, Digital Computer Design
Text: Katz Contemporary Logic Design
URL: official description, recent
semester course
- CS/EE 11 Digital Electronics Laboratory, Recommended, freshman-one
term
Topics: 6 labs and a project( microprocessor ). Prerequisite: CS/EE
4
Text:
URL: official description, recent
semester course
- CS/EE 51/52/53 Principles of Microprocessor Systems and various labs.
Option, Sophomore-full year
Topics: The principles and design of microprocessor-based computer
systems. Covers both hardware and software aspects of microprocessor system
design, including interfacing techniques. The homework emphasis is on software
development, especially hardware interfacing, in assembly language. Instructor:
George. , Then there are the 52 and 53 labs
Text:
URL: official
description, recent semester course
CARNEGIE MELLON UNIVERSITY,
Computer Science Department,
School of Computer Science
CMU has a few degree options in the undergraduate
program in CS. These options require three courses, taken by both CS
and ECE students, that contain approximately 8-9 credits worth of computer
architecture topics. The capstone course is CS 15-347, also known as ECE
18-347, Introduction to Computer Architecture. This course has prerequisites
that cover other architecture topics including ECE 18-240 Fundamentals
of Computer Engineering that introduces not only digital design but also
basic organization and assembly language programming. Also, check out the
undergraduate
program in the ECE department.
Undergraduate semester courses containing a computer architecture
component:
- ECE 18-100 Introduction to Electrical and Computer Engineering, Required,
freshman, 4 credits/12 units
Topics: The goals of the introductory course are: to introduce basic
concepts in electrical and computer engineering in an integrated manner;
to motivate basic concepts in the context of real applications; to illustrate
a logical way of thinking about problems and their solutions; and to convey
the excitement of the field. These goals are attained through analysis,
construction and testing of an electromechanical system (e.g. a robot)
that incorporates concepts from a broad range of areas within Electrical
and Computer Engineering. Some of the specific topics that will be covered
include system decomposition, real and ideal sources, Kirchhoff's and Ohm's
Laws, Linear and Nonlinear circuit elements, Ideal Op-Amp characteristics,
combinational logic circuits, Karnaugh Maps and Flip-Flops. The course
will culminate in a final project that will provide an opportunity for
creative design. 3 hr. lec., 1 hr. rec., 3 hr. lab. Corequisites: 15-127
Intro to Programming and 21-121 Calculus 1.
Text:
URL: official description, recent semester course
- ECE 18-240 Fundamentals of Computer Engineering, Required, sophomore,12
units(?4 credits)
Topics: This course introduces basic issues in design and verification
of modern digital systems. Topics include: Boolean algebra, digital number
systems and computer arithmetic, combinational logic design and simplification,
sequential logic design and optimization, register-transfer abstractions
of digital systems, basic machine organization and instruction set issues,
assembly language programming and debugging, and microprogramming. Emphasis
is on the fundamentals, the levels of abstraction that allow designers
to cope with hugely complex systems and connections to practical hardware
implementation problems. Students will use computer-aided digital design
software and actual hardware implementation laboratories to learn about
real digital systems. 3 hrs. lec., 1 hr. rec., 3 hrs. lab. Corequisite:
21-127 Intr to Modern Math.
Text: Katz Contemporary Logic Design and Thomas/Moorby The
Verilog Hardware Description Language (for lab work)
Assembler: A class-specific simulator (called the P18240) that looks
a lot like the PDP-11, but simpler, including memory is modelled as 16bit
addressable, and each instruction is fixed length, 16-bits. This tool runs
on Unix and PC platforms? And supports both assembly and micro-assembly
and the ability to re-configure assembler instructions (and define new
ones???)
Projects: Verilog, LogicWorks(with Logic Box and protoboards),
URL: official
description, recent
semester course
- CS 15-347 Introduction to Computer Architecture, Required, junior/senior,
12 units(?4 credits)
Topics: The goal of this course is to develop an understanding of
the structure and operation of contemporary computer systems from the instruction
set architecture level through the register transfer implementation level.
We explore: theory of computation, levels of abstraction, instruction set
design, assembly language programming, processor data paths, data path
control, pipeline design, design of memory hierarchies, memory management,
input/output. Several of the principles presented in lecture are reinforced
through laboratory projects including assembly language programming, evaluation
of instruction set architectures by benchmarks, behavioral simulation of
an instruction set architecture, and design/simulation of a register transfer
implementation of an instruction set architecture. A contemporary behavioral/functional/logical
simulator will be used for the laboratory projects. Prerequisites: 15-211
Fundamental Structures of CS and 18-240 Fundamentals of Computer Engineering.
Text: Hennessy/Patterson Computer Organization and Design
Assembler: examining MIPS code generated by gcc, MIPS assembler/disassembler
and gcc running on an actual MIPS processor
URL: official
description, recent
semester course
Projects: (several on performance of particular programs, some team
projects)Assignment 1: Running and measuring programs Assignment 2: MIPS
assembly language Assignment 3: Understanding procedure linkages Assignment
4: Computer performance Assignment 5: Data hazards Assignment 6: write
a MIPS simulator Assignment 7: Arithmetic Assignment 8: Cache basics Assignment
9: Measuring the performance of memory systems Assignment 10: Memory hierarchy
Lab 1: Using your knowledge of MIPS to optimize C code Lab 2: Implementing
a pipelined processor Lab 3: Understanding the performance of an Internet
application
Graduate architecture courses ( incomplete )
Graduate level
courses, such as 15-740 Computer Systems covers H/P Computer Architecture,
Comer's TCP/IP books and parallel architecture readings.
CORNELL UNIVERSITY,
Department of Computer Science,
College of Arts and Sciences and College of Engineering
The undergraduate
computer science core of required courses includes 1 architecture course:
CS 314.
The core has 9 classes, and consists of: 100, 211 (or 212), 314, data structures,
414 Systems Programming and Operating Systems, discrete structures, theory
of computing, analysis of algorithms, Numerical analysis.
Undergraduate semester courses containing a computer architecture
component:
- CS 314 Introduction to Digital Systems and Computer Organization, Required,
sophomore, 4 credits.
Topics: Introduction to computer organization. Topics include representation
of information, machine-assembly languages, processor organization, interrupts
and I/O, memory hierarchies, combinatorial and sequential circuits, data
path and control unit design, RTL, and microprogramming. Prerequisite:
CS 211Computers and Programming ( i.e. a CS2 course with C++ )
Assembler: was PPC601 and Metrowerks Code Warrior, now
MIPS or DLX
Projects: The following will change to more of a hands on hardware
approach: the original CAD tool was LogicWorks, but they will be switching
to:__________ (Old: In the first project you will write a small assembler
program. in the second project you will write a PPPC314 machine language
simulator in C, in the third project you will build a PPC314 CPU in three
phases: phase1: datapath logic phase 2: datapath implementation, control
logic final: all implemented and working .)
Special
comments: (K. Pingali, March 97)
"The previous version of CS314 was a course on assembly language and
architecture. The new revised version is a course on digital systems and
architecture which includes a big implementation project, namely: build
processor using a CAD tool."
Text:notes/PPC data book/optional: Hennessy/Patterson Computer
Organization and Design
URL: official
description, recent
semester course
Graduate architecture courses ( incomplete )
CS 516 High-Performance Computer Systems, grad class
Topics:This course discusses the design of high-performance computer
systems. This includes processor design techniques such as RISC, superscalar,
superpipeled, 64-bit instruction set extensions, cache coherency, and co-processors,
as well as high-speed networks and bus-based cache coherent multiprocessors.
Text: ? probably Hennessy/Patterson or just slides/notes/readings
but don't know...
URL: official
description, recent
semester course
HARVARD UNIVERSITY,
Computer Science, Division of Engineering
and Applied Sciences
Undergraduate Program. The
official course description. It appears that the only required course
that has an architecture component is CS51(Intro to CS II), with possibly
1/5-1/3 of the course on architecture topics. One popular,optional undergraduate
class CS 141 covers most architecture topics, and of course the Operating
Systems course ties into architecture as well.
Undergraduate semester courses containing a computer architecture
component:
- CS 51 Introduction to Computer Science II, Required, undergrad.
Topics: Abstract models for computational processes and their concrete
realizations. Functional and imperative styles of programming; processor
and memory architectures; interpretation and compilation of programming
languages. State-space search, finite-state processes, formal logic, data
and functional abstraction, and syntactic and semantic formalisms as examples
of useful abstractions. The engineering of complex software. Laboratory
exercises using LISP, C++, and assembly language. Prerequisite: Computer
Science 50 ( Computer Science 1 that also includes computer architecture
as one of it's "topics" or equivalent.)
Text: Graham ANSI Common LISP, Johnsonbaugh/Kalin Object-Oriented
Programming in C++, and sections of Walton's draft book Abstract
Specification
Assembler: SPIM simulator for MIPS (Unix and Linux environments)
URL: official description, recent
semester course
Projects: One or more MIPS assembly language programs, with
the rest in Lisp/C++
- CS141: Computing Hardware, Optional, undergrad.
Topics: Introduction to the design, structure, and operation of
digital computers; logic circuits and digital electronics; computer arithmetic;
computer architecture; and machine language programming. Consideration
of the design interactions between hardware and software systems. Prerequisite
CS 50 Computer Science 1.
Text: both Katz Contemporary Logic Design, Wakerly Digital
Logic Design, and Hennessy/Patterson Computer Organization and Design
Assembler: Z80, paper/pencil hmwks with Z80 and MIPS
Projects: LogicWorks, Z80 Case study and interfacing, Micro-Trainer...,hands-on
hardware design using MSI/SSI and CAD tool usage
URL: official description, recent
semester course
Graduate courses (incomplete) I believe that the following courses are
graduate courses???
- CS 245r Compilers and Architecture, Optional, under??
Topics: A quantitative approach to the design and analysis of computer
architectures. Particular emphasis on execution and emulation of compiled
x86 code. Architectural design of an x86 translation engine will be discussed,
developed, and evaluated. Prerequisite: Background in computer software
and hardware, and permission of the instructors.
Text:
URL: official description, recent semester course
- CS 246r Computer Architecture and Implementation, Optional,
under??
Topics: Hardware and software issues for implementation of microprocessor
architectures. In particular, the translation engine architecture developed
in Computer Science 245r (above) will be implemented and simulated in detail.
Issues for high-performance execution of compiled x86 code will be investigated.
Prerequisite: Background in computer software and hardware, and permission
of the instructors.
Text:
URL: official description, recent
semester course
- CS248r:
The Hardware/Software Interface , optional, ? grad ?
Topics:Explores issues in the design of hardware-software interface
for modern uniprocessor computer systems. Course work will consist of a
course project, readings in computer systems research, and several small
programming assignments. The course for 1996 will focus on operating system
support for high-performance and real-time networking.
Text: readings and 4.4BSD UNIX book.
URL: official description, recent
semester course
UNIVERSITY OF ILLINOIS at URBANA-CHAMPAIGN,
CS department, College of Engineering
U.I.U-C has several
different bachelor's programs in Computer Science, including a BS in
CS, CS and math, CS and statistics, CS and ECE, and CS and teaching. For
a CS department, they have a strong focus on computer architecture and
hardware. "The University of Illinois has traditionally been a major
center for computer architecture education and research in the nation."
[For additional info and background, see the article by J. Torrellas, Feb
1996, at the 2nd Annual Workshop on Computer Architecture Education: Computer
Architecture Education at the University of Illinois: Current Status and
Some Thoughts.]
(The following comments apply to the basic BS program in CS.)
Undergraduate semester courses containing a computer architecture
component:
- CS 231 Computer Architecture 1, Required of all CS degrees.( approx.
30 hrs of lecture )
Topics: mostly a logic design course.
Text: Mano's Computer Engineering Hardware Design
Projects: LogicWorks
URL: official
description, recent
semester course
- CS 232 Computer Architecture 2. Required of all CS degrees. 3hrs credit
( 2 hrs lecture/week + disc.)
Topics: Basic organization, with a nice way of focusing on HW/SW
interface: "This course provides an introduction to the basics of
computer hardware organization, instruction execution, and the relationships
between higher-level programming languages and machine language."
However, the current semester version is pretty much classic H/P COD...
Text: Hennessy/Patterson's Computer Organization & Design
The Hardware/Software Interface
Assembler: SPIM for MIPS, installed on dept. Unix systems, and
links to MAC/PC versions for at home work.
Projects: ?none? just few MIPS programs and paper/pencil? homeworks
URL: official
description, recent
semester course
- CS 331 Embedded Systems Architecture, ( either this or CS333 is required
for BS majors )
Topics: embedded systems architecture and software
URL: official
description
- CS 333 Computer System Organization (either this or CS331 is required
for undergrads) ( approx 43 hrs lecture) Also for graduate students.
Topics: classic H/P Computer Architecture through I/O and including
vector proc.
Text: Hennessy/Patterson Computer Architecture: A. Q. A.
URL: official
description , recent
semester course
Various other links include:CS397:
Computer Architecture Laboratory and ECE411:
High-Performance Computer Architecture: Hardware and Software
MASSACHUSETTS INSTITUTE OF
TECHNOLOGY, Department of Electrical
Engineering and Computer Science, School of Engineering
MIT's EECS undergraduate
degree programs require 1 course that is completely an architecture
course, EECS 6.004, while other architecture topics are sprinkled throughout
courses, such as EECS 6.001 and 6.033 Computer Systems Engineering. Undergraduates
must select a concentration and one of the CS concentrations is in Computer
Systems and Architecture Engineering. The long list of possible courses
to satisfy that concentration include: 6.823 Computer System Architecture
and 6.313,
a hardware-oriented approach to Contemporary Computer Design in ????
Undergraduate semester courses containing a computer architecture
component:
- EECS 6.001 Structure and Interpretation of Programs, Required,
undergrad 1st course,
Topics: Control of complexity in large programming systems. 1) Building
abstractions: .. 2)Controlling interactions... 3) Meta-linguistic abstraction:
interpretation of programming languages; machine model; compilation; embedded
languages.
Text: Abelson/Sussman Structure and Interpretation of Computer
Programs
URL: official description, recent semester course
- EECS 6.004 Computation Structures, required, undergraduate,
?4 credits
Topics: introduces architecture of digital systems, emphasizing
structural principles common to a wide range of technologies. Multilevel
implementation strategies; definition of new primitives (e.g., gates, instructions,
procedures, processes) and their mechanization using lower-level elements.
Analysis of potential concurrency; precedence constraints and performance
measures; pipelined and multidimensional systems. Instruction set design
issues; architectural support for contemporary software structures. Prerequisite:
6.001 and 6.002 Circuits and Electronics
Text: Ward/Halstead, Computation Structures
Assembler: Text-specific Beta (RISC-like)
Projects:
URL: official
description, recent semester
course
- EECS 6.823 Computer System Architecture, Optional, "graduate"
level/half is undergrad
Topics: Emphasizes the relationship among technology, hardware organization,
and programming systems in the evolution of computer architecture. Technology
constraints, machine organization, instruction set architecture, I/O and
memory system design, addressing structures and memory management, and
their impact on performance and programmability; design and programming
of pipelined processors, vector processors, and parallel computers. Assumes
an undergraduate knowledge of computer systems.
Text: Hennessy/Patterson Computer Architecture A Quantitative
Approach
URL: official
description, recent
semester course
PRINCETON UNIVERSITY,
Computer Science Department,
School of Engineering and Applied Science
Undergraduate Program: The required classes that cover architecture
topics add up to 2-3 credits: half of CS217 and one-fifth of CS126. Two
courses that cover architecture more traditionally are optional: CS306
and CS 417.
Undergraduate semester courses containing a computer architecture
component:
- CS 126, General Computer Science, Required, freshman.
Topics: An introductory survey for students in the sciences and
engineering. Hardware and software systems. Programming in C and other
languages. Introduction to algorithms and data structures. Applications
to solving scientific problems. Fundamentals of the theory of computation.
Text: Deitel/Deitel C, ... ,class notes
Assembler: TOY simulator
Projects: 10 assignments (1 of which is to write 3 TOY assembly
language progs, given C spec)
URL: official
description, recent
semester course
- CS 217 Introduction to Programming Systems, Required, sophomore.
Topics: The purpose of this course is to provide the fundamental
background necessary to understand, design and implement the components
of programming systems. Examples of such components include text editors,
assemblers, compilers, loaders, interpreters, and portions of operating
systems. The course is divided into three major parts, machine organization
and assembly language programming, program design and development, and
software tools. Prerequisite: 126.
Text:Richard P. Paul. SPARC Architecture, Assembly Language Programming,
& C.
plus several other C books and programming style books
Projects: Several C programs, then several SPARC programs: the unix
"tail" command, a system call ( printf ), then more C, finally
a group Java project
URL: official
description, recent
semester course
- CS 306/EE 206 Introduction to Logic Design, Required for BSE,
Optional for BA, junior
Topics: Boolean algebra and digital logic gates. Design with two-
and multilevel combinational logic. Basic memory elements -- latches, flip-flops,
SRAM and DRAM cells. Timing methodologies. Synchronous and asynchronous
designs. Counters. Finite-state machines. Designs with programmable logic.
Basic computer organization. Prerequisite: 126.
Text: Katz, Contemporary Logic Design
URL: official
description, recent
semester course
- CS 471 Computer Architecture and Organization,Required for BSE,
Optional for BA, senior
Topics: This course is an introduction to computer architecture
and organization, with a special focus on the principles underlying contemporary,
mainstream, uniprocessor design. It will explore the interaction of hardware
and software, and consider the efficient use of hardware to achieve high
performance. Topics will include the MIPS instruction-set architecture,
computer arithmetic, processor design, performance measurement and analysis,
pipelining, caches and virtual memory, high-performance MIPS implementations,
parallel processors, and design tradeoffs among cost, performance, and
complexity. Prerequisites: 217 and 306.
Text: Hennessy/Patterson Computer Organization and Design
Projects: Based on book, mostly paper/pencil, some experiments
using a constructed program, some use pixie and prof.
URL: official
description, recent
semester course
- EE 375 and EE 475 can be substituted as a whole for CS 471. EE375 Computing
Structures is hands-on design course where you might build a complete PDP-8.
EE475 Computing Architecture. See EE
undergrad courses.
Graduate architecture courses ( incomplete )
STANFORD UNIVERSITY,
CS department, School of Engineering
Stanford essentially requires 3 quarter courses
that contain varying amounts of architecture topics, one computer organization
course that has pre-requisite courses that include topics of HLL-ISA mapping
and some logic design. Stanford's computer architecture education approach
was influenced by the challenge of designing one course, EE182, for three
distinct majors: CS, EE, and Computer Systems Engineering students. This
approach was recently adopted ( ? 1995? ) and was described by Hennessy,
Stanford EE and CS professor, at a talk at the 2nd Annual Workshop on Computer
Architecture Education describing Stanford's challenges and approaches.
Complete degree information is available.
The Undergraduate
Handbook describes the different CS-related majors, and emphasizes
that the first CS courses in Programming Methodolgy and Abstractions really
precede the "core set of courses that begin the actual study of
computer science which are CS 107 Programming Paradigms, CS 108 Object-Oriented
Systems Design, and CS 109 A, B Introduction to Computer Science".
Undergraduate quarter courses containing a computer architecture
component:
- CS107 Programming Paradigms, Required, undergrad, 5 credits.
Topics: Contains some of the material mapping a high-level language
to a computer architecture (instruction set and memory layout). "Introduces
a variety of programming language paradigms and their implementations.
Topics: structure and implementation of compiled languages, basic concurrent
programming, the functional paradigm, and the object-oriented paradigm.
Languages include C++ and Lisp. Small programming projects. "
Text: ?Eric Roberts?
URL: official
description, recent
semester course
- E 40 Introductory Electronics, Required, undergrad
Topics: a first course in electronics for all engineering students.
As such, it is intended to provide a broader, less thorough treatment than
might be covered in a typical first course for just electrical engineers.
On the other hand, more topics can be considered and a greater sense of
the breadth, capabilities, and usefulness of electrical engineering can
be presented....In the second half of the course we move to digital circuits,
beginning with simple gates and Boolean algebra, and carry it through registers,
counters, memory, and finally a simple microprocessor.
Text:
URL: official description, recent
semester course
- EE182 (CS 112) Computer Organization and Design, Required of
CS, EE, CSE degrees, 4 credits
The cornerstone undergraduate computer architecture course which
has eliminated the pre-req of the (CS110) org/assembly language class by
expanding the EE182 assignments to also include individual, assembly language
programming projects.(and thus has moved the course from 3 to 4 credits).
Pre-requisites: CS107 and E40
Topics: The official EE description is: Basic computer organization.
Computer components: memory systems including caches, computer arithmetic,
processors, controllers, input/output, buses, DMA. Data formats, addressing
modes, instruction sets, and microcode. Study of the design of a small
computer.
Text: Hennessy/Patterson's Computer Organization & Design
The Hardware/Software Interface
URL: official description, recent
semester course
- EE 282 (CS 212) Computer Architecture and Organization, Optional,
undergrad/grad course.
Topics: Structure of systems using processors, memories, input/output
(I/O) devices, and I/O interfaces as building blocks. Computer system instruction
set design and implementation, including memory hierarchies and pipelining.
Issues and tradeoffs involved in the design of computer system architectures
with respect to the design of instruction sets. Prerequisite: 182.
Text: HennessyPatterson, Computer Architecture: A Quantitative
Approach
URL: official description, recent
semester course
CS110 Introduction to Computer Architecture and Assembly Language Programming
Optional, undergrad.
Topics: (The "eliminated" course, that is no longer a
pre-req for EE182. The Stanford advisor for CS undergraduate courses says
that the course is still being offerred once a year, but with its considerable
"overlap with CS107 and EE182", it may end up disappearing in
a couple of years.)
URL: official
description, recent
semester course
UNIVERSITY OF TEXAS
AT AUSTIN
Undergraduate semester courses containing a computer architecture
component:
- CS 222 Template, Required, undergrad.
Topics:
Text:
URL: official description, recent semester course
Graduate architecture courses ( incomplete )
UNIVERSITY OF WASHINGTON,
Department of Computer Science
and Engineering, College of Engineering
Undergraduate
CS (arts/sciences) degree requirements must take all of these
classes: CSE/ENGR 142, CSE 143, 321, 322, 326, 341, 370, 378. A second
BS degree is also available, called the Computer
Engineering degree (from the College of Engineering).
( also, see the short official
descriptions)
Undergraduate quarter courses containing a computer architecture
component:
- CSE 370 Introduction to Digital Design, Required, ?level, 3
credits
Topics: Introductory course in digital logic and its specification
and simulation. Boolean algebra, combinational circuits including arithmetic
circuits and regular structures, sequential circuits including finite-state-machines,
use of programmable logic devices. Simulation and high-level specification
techniques are emphasized.
Text: Katz, Contemporary Logic Design
URL: official description, recent
semester course
- CSE 378 Machine Organization and Assembly Programming, Required,
?level, 4 credits,
Topics: Difference and similarities in machine organization; central
processors; fundamentals of machine language and addressing; assembly language
programming, including macros; operating system interfaces. Prerequisite:
CSE 143. No credit if CSE 410 has been taken.
Text: Hennessy/Patterson, Computer Organization and Design
URL: official description, recent
semester course
- CSE 471 Computer Design and Organization, Optional for CS majors,
junior/senior, 4 credits
Topics: CPU instruction addressing models, CPU structure and functions,
computer arithmetic and logic unit, register transfer level design, hardware
and microprogram control, memory hierarchy design and organization, I/O
and system components interconnection. Laboratory project involves design
and simulation of an instruction set processor. Prerequisite: CSE 370 and
CSE 378.
Text: Flynn.....
and Hennessy/Patterson Computer Architecture....
URL: official description, recent
semester course
- CSE 467 Advanced Digital Design, Optional for CS majors, junior/senior,
3 credits
Topics: Advanced techniques in the design of digital systems. Hardware
description languages, combinational and sequential logic synthesis and
optimization methods, partitioning, mapping to regular structures. Emphasis
on reconfigurable logic as an implementation medium. Memory system design.
Digital communication including serial/parallel and synchronous/asynchronous
methods. Prerequisites: CSE370 and CSE326 Data Structures.
Text: Katz, Contemporary Digital Design and NOTES
URL: official description, recent
semester course
Graduate architecture courses (incomplete)
UNIVERSITY OF WISCONSIN at MADISON,
CS dept. in the College of Letters
and Sciences(reviewed by J. Goodman 6/7/97 )
The undergraduate description
reveals that their architecture courses are the same in the CS and the
ECE departments. {They have a very similar structure to UT's CS Department.}
Jim Goodman, a full professor here, gave an invited talk at the 2nd annual
computer architecture education workshop emphasizing that the "assembly
language" class is a fundamental/first computer architecture course.
Undergraduate semester courses containing a computer architecture
component:
- CS/ECE 354 Machine Language Programming, required, 4credits{reasonably
similar to UT's CS310}
Topics: An introduction to computer organization using assembly
and machine language. Number representation, computer arithmetic, instruction
sets, I/O interrupts, and programming interrupts. Projects involve detailed
study and use of a specific computer hardware and software system.
Text: Goodman/Miller, A Programmer's View of Computer Architecture,
URL: official
description, recent semester course
- CS/ECE 352 Digital System Fundamentals, required, 4 credits
Topics: digital logic design
Text: Mano, Digital Design
URL: official
description, recent semester course
- CS/ECE552: Introduction to Computer Architecture, not required for
all CS majors, but is required for a specific CS specialization and the
ECE computer engineering option.
{most similar to Jenevein's version of CS352 I think that Dahlin would
like this specification, because it is oriented towards hardware design.
} Note: this is also open to graduate students.
Topics: "It is expected that students at the end of this course
will be able to design a stored program computer using logic gates, flip-flops,
and components from a given library of digital components.
Text: Hennessy/Patterson Computer Organization and Design The Hardware/Software
Interface
URL: official
description, recent
semester course
Graduate courses (incomplete)
- The first course CS/ECE 752 focuses on traditional methods of
achieving high performance ( including snooping caches ) and uses
Hennessy/Patterson Computer Architecture, 2nd edition. {UT comment: this
looks similar to Dahlin's grad architecture.} See: U.
of Wisconsin: ECE752: Advanced Computer Architecture I
- The second course CS/ECE 757 emphasizes current techniques,
which generally menas that the 2nd course covers more parallel computing,
but also "Multiscalar and DataScalar".
Architecture Course Web Pages - contributed by
the authors and I haven't looked at yet.
This group was found in ??? www comp arch ??? if so, I'll delete it
The following links that I will examine and synthesize were originally
from: Georgio Ingarglio
at Temple Univ.