Skip to main content
It looks like you're using Internet Explorer 11 or older. This website works best with modern browsers such as the latest versions of Chrome, Firefox, Safari, and Edge. If you continue with this browser, you may see unexpected results.
Welcome to your Introduction to Programming reading list! Here you will find the resources to support you throughout your module.
Effective Java by The Definitive Guide to Java Platform Best Practices--Updated for Java 7, 8, and 9 Java has changed dramatically since the previous edition of Effective Java was published shortly after the release of Java 6. This Jolt award-winning classic has now been thoroughly updated to take full advantage of the latest language and library features. The support in modern Java for multiple paradigms increases the need for specific best-practices advice, and this book delivers. As in previous editions, each chapter of Effective Java, Third Edition, consists of several "items," each presented in the form of a short, stand-alone essay that provides specific advice, insight into Java platform subtleties, and updated code examples. The comprehensive descriptions and explanations for each item illuminate what to do, what not to do, and why. The 3rd edition covers language and library features added in Java 7, 8, and 9, including the functional programming constructs that were added to its object-oriented roots. Many new items have been added, including a chapter devoted to lambdas and streams. New coverage includes Functional interfaces, lambda expressions, method references, and streams Default and static methods in interfaces Type inference, including the diamond operator for generic types The @SafeVarargs annotation The try-with-resources statement New library features such as the Optional interface, java.time, and the convenience factory methods for collections
Call Number: 005.133 BLO
Publication Date: 2017
C++ Primer by This edition has been completely revised and rewritten to conform to today's C++ usage.
Students new to C++ will find a clear and practically organised introduction to the language enhanced by numerous pedagogical aids. Students returning to C++ will be able to update their knowledge with new material on using C++ libraries and programming styles.
Call Number: 005.133 LIP
Publication Date: 2012
Code Complete by Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking--and help you build the highest quality code.
Call Number: 005.1 MCC + eBooks
Publication Date: 2004
Test Driven Development by Quite simply, test-driven development is meant to eliminate fear in application development. While some fear is healthy (often viewed as a conscience that tells programmers to "be careful!"), the author believes that byproducts of fear include tentative, grumpy, and uncommunicative programmers who are unable to absorb constructive criticism. When programming teams buy into TDD, they immediately see positive results. They eliminate the fear involved in their jobs, and are better equipped to tackle the difficult challenges that face them. TDD eliminates tentative traits, it teaches programmers to communicate, and it encourages team members to seek out criticism However, even the author admits that grumpiness must be worked out individually! In short, the premise behind TDD is that code should be continually tested and refactored. Kent Beck teaches programmers by example, so they can painlessly and dramatically increase the quality of their work.
Call Number: 005.1 BEC
Publication Date: 2002
Head First Design Patterns by What's so special about design patterns?
At any given moment, someone struggles with the same software design problems you have. And, chances are, someone else has already solved your problem. This edition of Head First Design Patterns--now updated for Java 8--shows you the tried-and-true, road-tested patterns used by developers to create functional, elegant, reusable, and flexible software. By the time you finish this book, you'll be able to take advantage of the best design practices and experiences of those who have fought the beast of software design and triumphed.
What's so special about this book?
We think your time is too valuable to spend struggling with new concepts. Using the latest research in cognitive science and learning theory to craft a multi-sensory learning experience, Head First Design Patterns uses a visually rich format designed for the way your brain works, not a text-heavy approach that puts you to sleep.
Call Number: 005.2762 FRE + eBook
Publication Date: 2004
Scratch Programming by Scratch Programming in Easy Steps introduces readers to Scratch, a programming language that is widely used on the Raspberry Pi. Using Scratch's highly visual interface, you'll learn how to make games and animations. Along the way, you'll learn about some important ideas that underpin most programming languages. The book includes examples of games and techniques that readers are invited to customize and build on to make their own programs, and begins with a foreword by Mitchel Resnick, Professor of Learning Research at the MIT Media Lab, which created Scratch.
Scratch makes it easy to create your own games, animations, music, art or applications. It's the perfect way to learn programming because it takes away a lot of the complexity. That means you can focus on having great ideas and bringing them to life.
This book is an in-depth guide to both the new web-based Scratch 2.0, and Scratch 1.4, as used on the Raspberry Pi. With no prior knowledge needed, this book takes you from scratch to Scratcher!
Call Number: 005.133 MCM
Publication Date: 2013
Design Patterns by Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.
The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently.
Call Number: 005.12 GAM
Publication Date: 1994
Accelerated C++ by Want to learn how to program in C++ immediately? Want to start writing better, more powerful C++ programs today? Accelerated C++'s uniquely modern approach will help you learn faster and more fluently than you ever believed possible. Based on the authors' intensive summer C++ courses at Stanford University, Accelerated C++ covers virtually every concept that most professional C++ programmers will ever use -- but it turns the "traditional" C++ curriculum upside down, starting with the high-level C++ data structures and algorithms that let you write robust programs immediately. Once you're getting results, Accelerated C++ takes you "under the hood," introducing complex language features such as memory management in context, and explaining exactly how and when to use them. From start to finish, the book concentrates on solving problems, rather than learning language and library features for their own sake. The result: You'll be writing real-world programs in no time -- and outstanding code faster than you ever imagined.
Call Number: 005.133 KOE
Publication Date: 2000
Programming Language Pragmatics by The innovative approach of the first edition of Programming Language Pragmatics provided students with an integrated view of programming language design and implementation, while offering a solid teaching text on timely language topics in a rigorous yet accessible style. The new edition carries on these distinctive features as well as the signature tradition of illustrating the most recent developments in programming language design with a variety of modern programming languages. Addresses the most recent developments in programming language design, including C99, C#, and Java 5 Introduces and discusses scripting languages throughout the book as well as in an entire new chapter Includes a comprehensive chapter on concurrency, with coverage of the new Java concurrency package (JSR 166) and the comparable mechanisms in C# Updates many sections and topics, including iterators, exceptions, polymorphism, templates/generics, scope rules and declaration ordering, separate compilation, garbage collection, and threads and synchronization Highlights the interaction and tradeoffs inherent in language design and language implementation decisions with over 100 "Design and Implementation" call-out boxes Adds end-of-chapter "Exploration" exercises--open-ended, research-type activities Provides review questions after sections for quick self-assessment Includes over 800 numbered examples to help the reader quickly cross-reference and access content
Call Number: eBook
Publication Date: 2005
Programming by An introduction to programming by the inventor of C++, Programming prepares students for programming in the real world. This book assumes that they aim eventually to write non-trivial programs, whether for work in software development or in some other technical field. It explains fundamental concepts and techniques in greater depth than traditional introductions. This approach gives students a solid foundation for writing useful, correct, maintainable, and efficient code. This book is an introduction to programming in general, including object-oriented programming and generic programming. It is also a solid introduction to the C++ programming language, one of the most widely used languages for real-world software. It presents modern C++ programming techniques from the start, introducing the C++ standard library to simplify programming tasks.
Call Number: 005.133 STR
Publication Date: 2014