Documente Academic
Documente Profesional
Documente Cultură
Umakishore Ramachandran
College of Computing
Georgia Institute of Technology
e-mail: rama@cc.gatech.edu, bleahy@cc.gatech.edu
The design of instruction sets is influenced by high
level language. The OS abstractions (such as
process, threads, and page tables) are influenced by
the details of the processor and memory hardware.
The design of the network protocol stack is
influenced by the characteristics of the network
interface and the vagaries of the physical network.
The list goes on Unfortunately, most students
never see this connection when these two courses are
offered as distinct stovepipes.
Abstract
At Georgia Tech, since the Fall of 1999, we have
been teaching a first course in systems that
represents a radical departure from the usual
stovepipe model of teaching computer architecture
and operating systems. By making this course a
required one for CS majors in their sophomore year,
we have accomplished several goals the most
important of which is the opportunity for students to
pursue deeper exposure to systems in their junior and
senior years, through additional courses and
research, if they so choose. The pedagogical style
embodied in this course fosters a good understanding
of the symbiotic relationship between hardware and
software for the students early on in their
undergraduate experience.
3.
4.
5.
2.
2.3
Implementing
the
proposed
pedagogical style in a CS curriculum
This course is intended as a first course in
systems for students, preferably in the sophomore
year of the undergraduate program. This is the way
we have used it at Georgia Tech for the past eight
years as a required course for all CS majors, where
students coming into this course have had a prerequisite course that deals with logic design and C
programming (currently taught using the pedagogical
style of Patt and Patel [3]).
Where does such a course fit into the continuum
of CS curriculum? Students coming into this course
should have a good understanding of data structures,
structured programming, and basic logic design.
3. Experience in
pedagogical style
implementing
this
3.
7. Concluding remarks
Appendix
This appendix gives a brief description of the
projects that could be used in such an integrated
course. We will be happy to provide pointers to
detailed project descriptions as well as support tools
such as simulators.
References
[1] CS2200: Introduction to Systems and Networks,
http://www.cc.gatech.edu/classes/AY2007/cs2200_spring/
[2] Threads An Undergraduate Educational Program of
The College of Computing at Georgia Tech,
http://www.cc.gatech.edu/content/view/692/144/
[3] Y. N. Patt and S. J. Patel, Introduction to Computing
Systems: from bits & gates to C & beyond, McGraw-Hill.
[4] J. L. Hennessy and D. A. Patterson, Computer
Architecture: A Quantitative Approach, Morgan
Kaufmann Publishers.
[5] A. S. Tanenbaum, Modern Operating Systems,
Prentice-Hall.
[6] Kurose and Ross, Computer Networking: A top down
approach featuring the Internet, Addison-Wesley.
[7] CS 2200 Project 1: Processor Design.
http://www.cc.gatech.edu/classes/AY2007/cs2200_spring/p
rojects/p1/prj1.html
[8] CS 2200 Project 2: Interrupt & Input/Output.
http://www.cc.gatech.edu/classes/AY2007/cs2200_spring/p
rojects/p2/prj2.html
[9] CS 2200 Project 3: Virtual Memory Subsystem.
http://www.cc.gatech.edu/classes/AY2007/cs2200_spring/p
rojects/p3/prj3.html
[10] CS 2200 Project 4: Multithreaded Operating System.
http://www.cc.gatech.edu/classes/AY2007/cs2200_spring/p
rojects/p4/prj4.html
[11] CS 2200 Project 5: Reliable Transport Protocol.
http://www.cc.gatech.edu/classes/AY2007/cs2200_spring/p
rojects/p5/prj5.html
[12] D. A. Patterson and J. L. Hennessy, Computer
Organization & Design: The Hardware/Software Interface,
Morgan Kaufmann Publishers.