Academic Success is designed to help students on their university journey. It is divided into four parts, each reflecting different aspects of a student's tertiary experience. Part A: Successful Beginnings addresses what it is like to be a new student at an Australian university. Part B: Successful Foundations introduces basic skills in Englis...
In this open book, our goal is to study the fundamental concepts in programming languages, as opposed to learning a range of specific languages. Languages are easy to learn, it is the concepts behind them that are difficult. The basic features we study in turn include higher-order functions, data structures in the form of records and variants, muta...
Types are the central organizing principle of the theory of programming languages. Language features are manifestations of type structure. The syntax of a language is governed by the constructs that define its types, and its semantics is determined by the interactions among those constructs. The soundness of a language design - the absence of ill-d...
This book started out as about 30 pages of notes for students in my introductory programming class at Mount St. Mary's University. Most of these students have no prior programming experience, and that has affected my approach. I leave out a lot of technical details and sometimes I oversimplify things. Some of these details are filled in later ...
The study of algorithms and data structures is central to understanding what computer science is all about. Learning computer science is not unlike learning any other type of difficult subject matter. The only way to be successful is through deliberate and incremental exposure to the fundamental ideas. A beginning computer scientist needs practice ...
This original edited volume takes William Blake's aphorism as a basis to explore how British Romantic literature creates its own sense of time. It considers Romantic poetry as embedded in and reflecting on the march of time, regarding it not merely as a reaction to the course of events between the late-eighteenth and mid-nineteenth centuries, ...
Functional and flexible, this guide takes an objects-first approach to Java programming and problem using games and puzzles. Offers independent introductions to both a command-line interface and a graphical user interface (GUI). Features coverage of Unified Modeling Language (UML), the industry-standard, object-oriented design tool. Illustrates key...
The purpose of this book is to help you program shared-memory parallel systems without risking your sanity. Nevertheless, you should think of the information in this book as a foundation on which to build, rather than as a completed cathedral. Your mission, if you choose to accept, is to help make further progress in the exciting field of parallel ...
This book looks at some of the central issues in the philosophy of computer science. It is not designed to answer all (or even any) of the philosophical questions that can be raised about the nature of computing, computers, and computer science. Rather, it is designed to "bring you up to speed" on a conversation about these issues - to gi...
How to Think Like a Computer Scientist: Learning with Python - is an introduction to computer science using the Python programming language. It covers the basics of computer programming, including variables and values, functions, conditionals and control flow, program development and debugging. Later chapters cover basic algorithms and data structu...
This issue we're paying homage to some of our favourite projects built on the Raspberry Pi. We're living in a golden age for experimentation, accessible making and digital discovery - and a large part of that is thanks to this teeny tiny computer. Just add imagination!
- How one maker achieved perfection (yes, really!) by embracing fai...
Do you know that an empowering word can spark ideas, open doors, change attitudes, and create solutions?
Words can do all these things and much more. They have the potency to redefine personalities, lives, and entire communities. Just think of some of the things words are used for every day:
- To communicate a message
- To express a feeling
-...
Anyone can be a scientist, and this issue we'll show you how. Whether you're interested in space, traffic, the oceans, or something else, there's a citizen science project for you. The world has never been more connected - so let's use that connectivity to make our planet better!
- We talk to a real-like scientist about the e...
If your 3D printer is looking a little dusty and unloved, now's the time to put it to work: we've 50 of the best 3D prints to improve your home, office, workshop and more. From functional to frivolous, we've got ideas for you. It's time to unleash the awesome power of your printer!
- Oskitone: where 3D printing meets analogue...
The home computer boom of the 1980s brought with it now iconic machines such as the ZX Spectrum, BBC Micro, and Commodore 64. Those machines would inspire a generation. Written by Tim Danton.
The Computers That Made Britain (300 pages, hardback) tells the story of 19 of those computers - and what happened behind the scenes. With dozens of new in...
Ever fancied creating your own first-person shooter game? Now you can with this 140-page bookazine, brought to you by the Wireframe magazine team with tips from expert video game developers!
Making a fast-paced 3D action game needn't be as daunting as it sounds. Build Your Own First-Person Shooter in Unity will take you step-by- step throug...
This stunning 224-page hardback book not only tells the stories of some of the seminal video games of the 1970s and 1980s, but shows you how to create your own games inspired by them using Python and Pygame Zero, following examples programmed by Raspberry Pi founder Eben Upton.
In the first of two volumes, we remake five classic video games - ra...
The book is based on "First semester in Numerical Analysis with Julia". The contents of the original book are retained, while all the algorithms are implemented in Python (Version 3.8.0). Python is an open source (under OSI), interpreted, general-purpose programming language that has a large number of users around the world. Python is ran...
In this elementary textbook, Philip S. Peek draws on his twenty-five years of teaching experience to present the ancient Greek language in an imaginative and accessible way that promotes creativity, deep learning, and diversity.
The course is built on three pillars: memory, analysis, and logic. Readers memorize the top 250 most frequently occurr...
This is an introduction to the Go language from Google. Its aim is to provide a guide to this new and innovative language.
The intended audience of this book is people who are familiar with programming and know multiple programming languages,be it C, C++, Perl, Java, Erlang, Scala or Haskell. This is not a book which teaches you how to program, ...
The Tiny Book of Rulesis tiny and it's about the Rules module for Drupal.
Rules is a module usually used to auto-mate actions on your Drupal site. Rules can react on events occurring on your site - such as a user logging in or a node being created - and perform customized follow-up actions such as redirecting to a certain page or setting fi...
Bash is the shell, or command language interpreter, for thegnuoperating system. Thename is an acronym for the 'Bourne-Again SHell', a pun on Stephen Bourne, the authorof the direct ancestor of the current Unix shellsh, which appeared in the Seventh Edition Bell Labs Research version of Unix.
Bash is largely compatible withshand incorpo...
The audience for this guide is mainly developers, development leads, and architects who are interested in building modern web applications using Microsoft technologies and services in the cloud.
A secondary audience is technical decision makers who are already familiar ASP.NET or Azure and are looking for information on whether it makes sense to...
If you're new to programming, this book will introduce you to thepatterns and concepts used to build modern web applications. You'lllearn how to build a web app (and how the big pieces fit together) by building something from scratch! While this little book won't be able tocover absolutely everything you need to know about programmin...
Java 3D Programming steps programmers through the important design and implementation phases of developing a successful Java 3D application. The book provides invaluable guidance on whether to use Java 3D, user interface design, geometry creation, scene manipulation and final optimizations. The book does not attempt to exhaustively cover the API or...
Greatly enhanced and updated from the third edition, this is the title any JavaScripter cannot afford to be without! JavaScript Bible, 4th Edition covers the new powerful functionality JavaScript will gain with the release of new revs of Internet Explorer and Netscape Communicator. This book features essential new JS information, additional ready-t...
Mastering Dyalog APL is a complete guide to the use of Dyalog, beginning with a thorough introduction to the APL programming language. Following this, the tutorial describes a large number of common coding techniques and discusses a variety of interfaces, including file handling and COM/OLE. Bernard Legrand provides a comprehensive introduction to ...
Covering the design and implementation of assemblers and loaders, this comprehensive book opens with an introduction to one-pass and two-pass assemblers. Important concepts such as absolute and relocatable object files are discussed, as are assembler features such as local labels and multiple location counters. The format, meaning and implementatio...
In Horos, Thea Potter explores the complex relationship between classical philosophy and the 'horos', a stone that Athenians erected to mark the boundaries of their marketplace, their gravestones, their roads and their private property. Potter weaves this history into a meditation on the ancient philosophical concept of horos, the foundat...
In a world where information has never been so accessible, and answers are available at the touch of a fingertip, we are hungrier for the facts than ever before - something the Covid-19 crisis has brought to light. And yet, paywalls put in place by multi-billion dollar publishing houses are still preventing millions from accessing quality, scientif...
Containers change how developers build, test, and deploy code. Adopting them takes time. Using them the wrong way can slow down your delivery process.
But you don't have a team of engineers to dedicate to this like Spotify or Netflix do. Maybe you're a startup CTO with features to ship - you can't spend hundreds of hours on intern...
Application Programming Interfaces (APIs) are seemingly everywhere. Thanks to the popularity of web-based products, cloud-based X-as-a-service offerings, and IoT, it is becoming increasingly important for engineers to understand all aspects of APIs, from design, to building, to operation.
Research shows that there is increasing demand for near r...