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