For Computer Systems, Computer Organization and Architecture courses in CS, EE, and ECE departments. Few students studying computer science or computer engineering will ever have the opportunity to build a computer system. On the other hand, most students will be required to use and program computers on a near daily basis. Computer Systems: A Programmers Perspective introduces the important and enduring concepts that underlie computer systems by showing how these ideas affect the correctness, performance, and utility of application programs. The text's hands-on approach (including a comprehensive set of labs) helps students understand the under-the-hood operation of a modern computer system and prepares them for future courses in systems topics such as compilers, computer architecture, operating systems, and networking.Visit the CSS:AP web page http://csapp.cs.cmu.edu for more information and resources.
Cited By
- Zhang X, Wang J, Cheng Y, Li Q, Sun K, Zheng Y, Zhang N and Li X (2024). Interface-Based Side Channel in TEE-Assisted Networked Services, IEEE/ACM Transactions on Networking, 32:1, (613-626), Online publication date: 1-Feb-2024.
- Smyth S, Petzold J, Schürmann J, Karbus F, Margaria T, von Hanxleden R and Steffen B Executable Documentation: Test-First in Action Leveraging Applications of Formal Methods, Verification and Validation. Software Engineering, (135-156)
- Iqbal M, Krishna R, Javidian M, Ray B and Jamshidi P Unicorn Proceedings of the Seventeenth European Conference on Computer Systems, (199-217)
- Li Y, Phanishayee A, Murray D and Kim N Doing more with less Proceedings of the Workshop on Hot Topics in Operating Systems, (119-127)
- Hu Z, Chen P, Zhu M and Liu P (2021). A Co-Design Adaptive Defense Scheme With Bounded Security Damages Against Heartbleed-Like Attacks, IEEE Transactions on Information Forensics and Security, 16, (4691-4704), Online publication date: 1-Jan-2021.
- Kang S, Choi K and Park Y PreScaler: an efficient system-aware precision scaling framework on heterogeneous systems Proceedings of the 18th ACM/IEEE International Symposium on Code Generation and Optimization, (280-292)
- Rodrigues V, Donetti S and Damiani F (2019). Certifying delta-oriented programs, Software and Systems Modeling (SoSyM), 18:5, (2875-2906), Online publication date: 1-Oct-2019.
- Underwood A and Stine J An Emphasis on Memory and Processor Interactions in Undergraduate Computer Architecture Education Proceedings of the Workshop on Computer Architecture Education, (1-8)
- Su P, Wen S, Yang H, Chabbi M and Liu X Redundant loads Proceedings of the 41st International Conference on Software Engineering, (982-993)
- Estebanez A, Llanos D and Gonzalez-Escribano A (2016). New Data Structures to Handle Speculative Parallelization at Runtime, International Journal of Parallel Programming, 44:3, (407-426), Online publication date: 1-Jun-2016.
- Zheng H, Yang J and Zhao W (2016). Probabilistic QoS Aggregations for Service Composition, ACM Transactions on the Web, 10:2, (1-36), Online publication date: 25-May-2016.
- Dixon B (2016). Code isolation for accurate performance scoring using Raspberry PIs, Journal of Computing Sciences in Colleges, 31:4, (94-99), Online publication date: 1-Apr-2016.
- Archibald J and Wilde D Preparing Students for Embedded Software Development Proceedings of the WESE'15: Workshop on Embedded and Cyber-Physical Systems Education, (1-8)
- Lee S, Jung W, Chon Y and Cha H EnTrack Proceedings of the 2015 ACM International Joint Conference on Pervasive and Ubiquitous Computing, (191-202)
- Mahani A and Sharabiani M (2015). SIMD parallel MCMC sampling with applications for big-data Bayesian analytics, Computational Statistics & Data Analysis, 88:C, (75-99), Online publication date: 1-Aug-2015.
- Nistor A, Chang P, Radoi C and Lu S Caramel Proceedings of the 37th International Conference on Software Engineering - Volume 1, (902-912)
- Zhou Y, Wu F, Huang P, He X, Xie C and Zhou J An efficient page-level FTL to optimize address translation in flash memory Proceedings of the Tenth European Conference on Computer Systems, (1-16)
- Ho K and Chang Y A New Asynchronous Pipeline Template for Power and Performance Optimization Proceedings of the 51st Annual Design Automation Conference, (1-6)
- Liu Q and Russell R A performance study of InfiniBand fourteen data rate (FDR) Proceedings of the High Performance Computing Symposium, (1-10)
- Nistor A, Jiang T and Tan L Discovering, reporting, and fixing performance bugs Proceedings of the 10th Working Conference on Mining Software Repositories, (237-246)
- Nistor A, Song L, Marinov D and Lu S Toddler: detecting performance problems via similar memory-access patterns Proceedings of the 2013 International Conference on Software Engineering, (562-571)
- Karpierz K, Kitching J, Shillingford B, Patitsas E and Wolfman S "Dictionary Wars" (abstract only) Proceeding of the 44th ACM technical symposium on Computer science education, (740-740)
- Patitsas E, Kroeker V, Jordan R and Voll K Teaching CPU architecture Proceedings of the 12th Koli Calling International Conference on Computing Education Research, (149-150)
- Rahimian A, Charland P, Preda S and Debbabi M RESource Proceedings of the 5th international conference on Foundations and Practice of Security, (211-226)
- Bikker J (2012). Improving Data Locality for Efficient In-Core Path Tracing, Computer Graphics Forum, 31:6, (1936-1947), Online publication date: 1-Sep-2012.
- Coppa E, Demetrescu C and Finocchi I (2012). Input-sensitive profiling, ACM SIGPLAN Notices, 47:6, (89-98), Online publication date: 6-Aug-2012.
- Farhad S, Ko Y, Burgstaller B and Scholz B Profile-guided deployment of stream programs on multicores Proceedings of the 13th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems, (79-88)
- Coppa E, Demetrescu C and Finocchi I Input-sensitive profiling Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation, (89-98)
- Rüegg M and Sommerlad P Refactoring towards seams in C++ Proceedings of the 7th International Workshop on Automation of Software Test, (117-123)
- Farhad S, Ko Y, Burgstaller B and Scholz B (2012). Profile-guided deployment of stream programs on multicores, ACM SIGPLAN Notices, 47:5, (79-88), Online publication date: 18-May-2012.
- Brady B, Bryant R and Seshia S Learning conditional abstractions Proceedings of the International Conference on Formal Methods in Computer-Aided Design, (116-124)
- Farhad S, Ko Y, Burgstaller B and Scholz B (2011). Orchestration by approximation, ACM SIGPLAN Notices, 46:3, (357-368), Online publication date: 17-Mar-2011.
- Farhad S, Ko Y, Burgstaller B and Scholz B (2011). Orchestration by approximation, ACM SIGARCH Computer Architecture News, 39:1, (357-368), Online publication date: 17-Mar-2011.
- Desnoyers P Teaching operating systems as how computers work Proceedings of the 42nd ACM technical symposium on Computer science education, (281-286)
- Farhad S, Ko Y, Burgstaller B and Scholz B Orchestration by approximation Proceedings of the sixteenth international conference on Architectural support for programming languages and operating systems, (357-368)
- Yilmaz C and Porter A Combining hardware and software instrumentation to classify program executions Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering, (67-76)
- ATLAS Proceedings of the Eighth ACM/IEEE International Conference on Formal Methods and Models for Codesign, (31-40)
- Hong G, Hong K, Burgstaller B and Blieberger J AdaStreams Proceedings of the 15th Ada-Europe international conference on Reliable Software Technologies, (208-221)
- Gries D, Eckmann M, Erkan A and Heliotis J (2009). Discrete mathematics/structures, Journal of Computing Sciences in Colleges, 24:6, (110-112), Online publication date: 1-Jun-2009.
- Pfaff B, Romano A and Back G (2009). The pintos instructional operating system kernel, ACM SIGCSE Bulletin, 41:1, (453-457), Online publication date: 4-Mar-2009.
- Pfaff B, Romano A and Back G The pintos instructional operating system kernel Proceedings of the 40th ACM technical symposium on Computer science education, (453-457)
- Huang Y, Zhang W and Zang B Undergraduate education in the computer system of software school, Fudan University Proceedings of the 1st ACM Summit on Computing Education in China on First ACM Summit on Computing Education in China, (1-3)
- Siever W, Tauritz D, Miller A, Crow M, Mcmillin B and Atcitty S (2008). Symbolic Reduction for High-Speed Power System Simulation, Simulation, 84:6, (297-309), Online publication date: 1-Jun-2008.
- Xu L (2008). A modular approach to language engineering using XML and inexpensive robots, Journal of Computing Sciences in Colleges, 23:5, (133-141), Online publication date: 1-May-2008.
- Xu L Language engineering in the context of a popular, inexpensive robot platform Proceedings of the 39th SIGCSE technical symposium on Computer science education, (43-47)
- Xu L (2008). Language engineering in the context of a popular, inexpensive robot platform, ACM SIGCSE Bulletin, 40:1, (43-47), Online publication date: 29-Feb-2008.
- Scholz B, Burgstaller B and Xue J (2008). Minimal placement of bank selection instructions for partitioned memory architectures, ACM Transactions on Embedded Computing Systems, 7:2, (1-32), Online publication date: 1-Feb-2008.
- Viinikainen A, Puttonen J, Sulander M, Hämäläinen T, Ylönen T and Suutarinen H (2006). Flow-based fast handover for mobile IPv6 environment - implementation and analysis, Computer Communications, 29:16, (3051-3065), Online publication date: 1-Oct-2006.
- Martin F (2006). Integrating hardware experiences into a computer architecture core course, Journal of Computing Sciences in Colleges, 21:6, (39-52), Online publication date: 1-Jun-2006.
- Shahbahrami A, Juurlink B and Vassiliadis S Improving the memory behavior of vertical filtering in the discrete wavelet transform Proceedings of the 3rd conference on Computing frontiers, (253-260)
- Lopez J, O'Hallaron D and Tu T Big Wins with Small Application-Aware Caches Proceedings of the 2004 ACM/IEEE conference on Supercomputing
- Marwedel P and Sirocic B Bridges to computer architecture education Proceedings of the 2004 workshop on Computer architecture education: held in conjunction with the 31st International Symposium on Computer Architecture, (12-es)
- Najafzadeh H and Chaiken S Validated observation and reporting of microscopic performance using Pentium II counter facilities Proceedings of the 4th international workshop on Software and performance, (161-165)
- Najafzadeh H and Chaiken S (2004). Validated observation and reporting of microscopic performance using Pentium II counter facilities, ACM SIGSOFT Software Engineering Notes, 29:1, (161-165), Online publication date: 1-Jan-2004.
- Montagner I, Ferrão R, Marossi E and Ayres F Teaching C programming in context: a joint effort between the Computer Systems, Embedded Computing and Programming Challenges courses 2019 IEEE Frontiers in Education Conference (FIE), (1-9)
- Maia A, Melo L, Pereira F, Neto O and Oliveira L SMOV: Array Bound-Check and access in a single instruction 2016 13th IEEE Annual Consumer Communications & Networking Conference (CCNC), (745-751)
Recommendations
Supporting K-12 computer science education
The Computer Science Teachers Association (CSTA) supports and promotes the teaching of computer science and other computing disciplines at the K-12 educational level. During this presentation we will explore the issues for K-12 computer teachers, the ...
Attracting Secondary School Students to Computer Science through Training Teachers to Establish Computer Clubs: (Abstract Only)
SIGCSE '18: Proceedings of the 49th ACM Technical Symposium on Computer Science EducationThe poster describes an innovative approach to help secondary school teachers enhance their computer science (CS) knowledge through the Google funded CS4HS (Computer Science for High School) program. Through a 4-day professional training workshop ...
Computerization of the campus coping with small computer systems (Introductory Remarks)
CSC '84: Proceedings of the ACM 12th annual computer science conference on SIGCSE symposiumAlthough the cover topic is Computerization of the Campus, the specific topic really is Coping with Small Computers. I am not certain that Coping with Small Computers really is a subset of Computerization of the Campus. Unquestionably, we have all been ...