Academics / Courses / DescriptionsCOMP_SCI 213: Intro to Computer Systems
VIEW ALL COURSE TIMES AND SESSIONS
Prerequisites
COMP_SCI 211Description
This course has four purposes: (1) to learn about the hierarchy of abstractions and implementations that comprise a modern computer system; (2) to demystify the machine and the tools that we use to program it; (3) to come up to speed on systems programming in C in the Unix environment; (4) to prepare students for upper-level systems courses.
- This course is a required Core course in the CS curriculum in McCormick and Weinberg
COURSE GOALS: This course has four purposes. First, you will learn about the hierarchy of abstractions and implementations that comprise a modern computer system. This will provide a conceptual framework that you can then flesh out with courses such as compilers, operating systems, databases, networks, security, real-time systems, and others. The second purpose is to demystify the machine and the tools that we use to program it. This includes telling you the little details that students usually have to learn by osmosis. In combination, these two purposes will give you the background to understand many different computer systems. The third purpose is to bring you up to speed in doing systems programming in a low-level language (C) in the Unix (Linux/GCC/GDB/etc) environment. The final purpose is to prepare you for upper-level courses in systems.
This is a learn-by-doing kind of class. You will write pieces of code, compile them, debug them, disassemble them, measure their performance, optimize them, etc.
This course is ideally taken after COMP_SCI 211 early in your academic career. This is a REQUIRED COURSE for the CS Major.
The current iteration of Prof. Peter Dinda's section is always at http://pdinda.org/ics
REQUIRED TEXTBOOK: Randal E. Bryant and David R. O’Hallaron, Computer Systems: A Programmer’s Perspective, Third Edition, Prentice Hall, 2015, (ISBN-13:978-0134092669,ISBN-10:013409266X)
RECOMMENDED TEXTS, not required:
- The C Programming Language, Second Edition, Prentice Hall, 1988 (ISBN 0-131-10370-9)(Reference)
- Richard Stevens and Stephen Rago, Advanced Programming in the Unix Environment, ThirdEdition, Addison-Wesley, 2013(ISBN-10: 0321637739 | ISBN-13: 978-0321637734) (Reference)
COURSE INSTRUCTORS: Prof. Peter Dinda (Fall), Prof. Branden Ghena, (Winter), Prof. Nikos Hardavellas (Spring).
COURSE COORDINATOR: Prof. Peter Dinda
PREREQUISITES: COMP_SCI 211
PREREQUISITE FOR: COMP_SCI 322 (Compilers), ELEC_ENG/COMP_ENG/COMP_SCI 339 (Databases), COMP_SCI 340 (Networking), COMP_SCI 343 (Operating Systems), COMP_SCI 350 (Security), COMP_SCI 397 (Real-time), COMP_SCI 441