The textbook is designed for an introductory course in theoretical computer science. It includes topics from propositional and predicate logic, proof techniques, set theory and the theory of computation, along with practical applications to computer science. It has been reviewed.
This book focuses on the programming strategies and techniques behind computer simulations of natural systems.
Includes: Source files, exercises
The textbook is designed for a one-semester course in theoretical computer science. Reviews are available.
CS100 and CS110 Labs
These sites accompany lab instruction in introductory computer science courses at the University of Regina. CS100 covers the basics of computer literacy, managing files, spreadsheets and website design for non-programmers, while CS110 provides an introduction to the C++ programming language, problem solving, running, testing, and debugging code, and other foundational skills required by all programmers.
This text presents exercises and activities using Racket. It has been reviewed.
This text provides the developer with an understanding of the various elements of web development. Reviews are available.
Think OS is an introduction to Operating Systems for programmers.
Think C++ is an introduction to programming using the C++ programming language.
Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Reviews are available.
Includes: Glossary, exercises
Modeling and Simulation in Python is an introduction to physical modeling using a computational approach in a Jupyter notebook.
We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the “objects first” approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles. Reviews are available.
Includes: Case studies
Includes: Exercises, code sandbox
Think Java is a hands-on introduction to computer science and programming Its conciseness, emphasis on vocabulary, and informal tone make it particularly appealing for readers with little or no experience. The book starts with basic programming concepts and gradually works its way to advanced object-oriented techniques. Reviews are available.
Includes: Vocabulary, exercises
This text organizes topics around an application—web search—that uses data structures extensively. Reviews are available.
An introductory coverage of algorithms and data structures with application to graphics and geometry. Reviews are available.
Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. Reviews are available. Please note that while this book is free to read and share, it is not licensed for editing or remixing.
Includes: Discussion, exercises
Think Stats is an introduction to Probability and Statistics for Python programmers. It has been reviewed.
Includes: Exercises, glossary
This book is designed to introduce students of the life sciences with little to no programming experience to the concepts and methodologies of bioinformatics, and contemporary software applications.
This book covers topics such as the usage of the command-line interface, installing and running bioinformatics software (without access to administrator privileges on the machine), basic analysis of data using built-in system tools, visualization of results, and introductory programming techniques in 3 languages commonly used for bioinformatics: Unix/Linux, Python, and R. Reviews are available.
Blueprints is a concise yet comprehensive coverage of Object-Oriented Analysis and Design concepts, suitable for a second programming course in Computer Science. It introduces and teaches application development in a command-line environment, and assumes basic expertise with the Java programming language.
This text provides an interactive approach to learning to write and execute Python code. It includes videos as well as a codelens feature to allow students to control the flow of execution in order to gain a better understanding of how the program works.