Computer Science (CS) is a very rich community when dealing with programmes, knowledge, competencies, material and skills. The ACM Computer Science Curricula is a great example (and guide) when building CS programmes.
This page contains links to references and useful material I use in my courses together with my fellow teachers at TELECOM Nancy. We hope it can be useful to both our students and colleagues.
Like many teachers in algorithms and data structures, my courses are heavily inspired by the Introductions to Algorithms (4th Edition) reference book By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein. However, I do also strongly recommend Steven S. Skienna's "chef d'oeuvre" entitled "The Algorithm Design Manuel" (3rd edition). A really great book. Paper copies are more and more difficult to find for this edition.
No starch press have also issued a couple of nice books on the topic. "Algorithmic Thinking - A problem -based introduction" by Daniel ZIngaro is one of them which I do recommend.
Inspired by both Pierre-Etienne Moreau's course on programming and the CS50 philisophy, we have set up a new integrated course entitled CS54 :-) providing an initial "global picture" of Computer Science in the first semestre of the Engineering Degree at TELECOM Nancy. Among the various elements of the course, we do participate with our students to the Advent of Code yearly challenges.
Most of the books on algorithms cited above do address data structures since algorithms and data structures are strongly related. In our course on data structures, however, we put a stong emphasis on getting the students to actually implement the studied structures in C. This gives them the insights of the structures they will use thourought their CS activities.
C without the black book (white in its second edition :-) of Kernighan & Ritchie is not C. For current updates on the language, I recommend the book writtent by our colleague Jens Gustedt entitled "Mordern C". Since 2022, I also use in my course the "Effective C" book by Robert C. Seacord.
My teaching is often done in french and in french we have a great course reference on C programming written by Anne Canteaux from Inria. The quality of the explanation in this support is simply great.
When it comes to Data Structures, the library is extremely rich. In my courses, I am using, in addition to the books laready mentioned in the Algorithms section, the "Data Structures : the Fun Way" book, authored by Jeremy Kubica. Simple and straight!
Data Science is heavily used in Computer Networks monitoring and security (my research field). With the boom of AI in all disciplines, we are increasingly invited to contribute to courses in the area. While not a "native" AI expert (we have great colleagues on the topic at our university), we are more and more sollicited on the basics of the discipline.
To give a very pragmatic and introductory course with labs on the subject to almost any student in engineering, I really enjoy the book written by Chirag Shah entitled "A Hands-On Introduction to Data Science" published by Cambridge University Press.