Cornell University
School of Electrical and Computer Engineering
ECE 2400 / ENGRD 2140
Computer Systems Programming
Fall 2021
Prof. Christopher Batten
Monday, Wednesday, Friday • 10:10–11:00am • 219 Phillips Hall
home | syllabus | staff | schedule | readings | handouts | resources
Online and Computing Resources
- Form for GitHub IDs
- Canvas Learning Management System
- Ed Discussion Forums
- GitHub Course Organization
- Codecov.io Code Coverage Service
Bjarne Stroustrup C++ Books
Bjarne Stroustrup is the creater of the C++ programming language, and his book titled "The C++ Porgramming Language" is the definitive reference. This book is how I learned to program in C++ in the early 2000s, and the newest 4th edition adds excellent content related to modern C++ development using C++11. The "Programming: Principles and Practice Using C++" book is designed for C++ programmers that want to focus on improving their style and technique. It is less about the language, and more about how to program using C++. Both books are excellent references for serious C++ programmers to have on their bookshelves.
- B. Stroustrup. The C++ Programming Language, 4th
edition.
Addison-Wesley, 2013.
[ amazon | publisher ] - B. Stroustrup. Programming: Principles and Practice Using
C++, 2nd edition.
Addison-Wesley, 2014.
[ amazon | publisher ]
Scott Myers C++ Books
C++ is such a powerful and expressive language there are many, many different approaches to achieve the same goal. Some of these approaches are better than others, but it is hard to find general advice on effectively using C++ in practice. The following excellent books by Scott Myers provide a concrete list of useful and easy to understand advice. Gradually reading these books can help transform good programmers into great programmers.
- S. Myers. Effective C++, 3rd
edition.
Addison-Wesley, 2005.
[ amazon | library ] - S. Myers. More Effective C++, 1st edition.
Addison-Wesley, 1996.
[ amazon ] - S. Myers. Effective STL, 1st edition.
Addison-Wesley, 2001.
[ amazon ] - S. Myers. Effective Modern C++, 1st edition.
O'Reilly, 2014.
[ amazon | library ]
Other Articles About Programming
- M. Godbolt, Optimizations in C++ Compilers.
ACM Queue, 17(5):1-32, Oct 2019.
[ link | pdf ] - B. Gregg, The Flame Graph.
ACM Queue, 14(2):1-28, Apr 2016.
[ link | pdf ] - E. Bendersky, Are Pointers and Arrays Equivalent in
C?
Oct 2009.
[ link ] - A. Videla, Metaphors We Compute By.
Communications of the ACM, 60(10):42-45, Oct 2017.
[ link | pdf | notes ]
Other Books About Programming
- K.N. King. C Programming: A Modern Approach, 2nd
edition.
W.W. Norton & Co., 2008.
[ amazon | publisher | library ] - R. Reese. Understanding and Using C Pointers, 1st
edition.
O'Reilly Media., 2013.
[ amazon | publisher | library ] - R. Sedgewick. Algorithms in C, Parts 1–4, 3rd
edition.
Addison-Wesley, 1998.
[ amazon | publisher | library ] - R. Sedgewick. Algorithms in C, Part 5, Graph Algorithms 3rd
edition.
Addison-Wesley, 1998.
[ amazon | publisher ] - S.B. Lippman, J. Lajoie, and B.E. Moo. C++ Primer, 5th
edition.
Addison-Wesley, 2013.
[ amazon | publisher | library ] - M. Weiss. Data Structures and Algorithm Analysis in C++, 4th
edition.
Pearson, 2013.
[ amazon | publisher | library ] - E. Gamma, et al. Design Patterns: Elements of Reusable
Object-Oriented Software, 1st edition.
Addison-Wesley, 1994.
[ amazon | library ] - A. Williams. C++ Concurrency in Action: Practical Multithreading, 1st
edition.
Manning Pub, 2012.
[ amazon | publisher | library ] - J. Lakos. Large-Scale C++ Software Design, 1st
edition.
Addison-Wesley, 1996.
[ amazon | library ] - W.R. Stevens and S.A. Rago. Advanced Programming in the UNIX Environment, 3rd
edition.
Addison-Wesley, 2013.
[ amazon | publisher | library ]
C/C++ Programming Resources
- C Reference Card
- C Programming Wikibook
- C Standard Library Reference
- C++ Standard Library Reference
- Compiler Explorer
- repl.it
- C/C++ Shell
- IEEE-754 Floating Point Converter