This is the concepts reference for Advanced Android Development, a training course created by the Google Developers Training team. This course builds on the skills you learned in the Android Developer Fundamentals course. This course is intended to be taught in a classroom, but all the materials are available online for individual study.
Principles of Computation with Python (CC BY-NC-SA)
This course provides an introduction to Python and elementary principles of computing, including iteration, recursion, and binary representation of data. Additional topics on cellular automata, encryption, and the limits of computation are also introduced. The main goal of this course is to teach the fundamental principles used in computer science to a general audience so that they understand how computer scientists use these principles to solve complex problems to improve their daily lives.
This collection of activities is intended to support the use of POGIL in intermediate-level undergraduate computer science courses on functional programming and the implementation of programming languages.
This collection of free notes is aimed at helping the complete beginner learn the basics of computer programming using Processing, a free and easy to use program available for many platforms. With Processing, students start with making graphics, and skip much of the ugly, memorization-based syntax of beginner Java. Unlike other guides, this focuses on learning programming, not the features of Processing.
The assignments use the Python coding language and the repl.it coding platform and cover the following topics: Modules, Functions, Selections, Loops, Strings, Lists, Files, Dictionaries.
R Tutorials (CC BY)
R is a programming language and free software environment for statistical computing and graphics supported by the R Foundation for Statistical Computing. The R language is widely used among statisticians and data miners for developing statistical software and data analysis. R Conversations are a series of six videos created to teach R at a distance to online MSc students.
How to Design Programs, 2nd Edition (CC BY-ND-ND)
Many professions require some form of programming. Accountants program spreadsheets; musicians program synthesizers; authors program word processors; and web designers program style sheets. This book approaches the creation of software that relies on systematic thought, planning, and understanding from the very beginning, at every stage, and for every step. To emphasize this point, we speak of systematic program design and systematically designed programs.
This book presents one of the fundamental data modeling techniques in an informal tutorial style. Learn how to predict system outputs from measured data using a detailed step-by-step process to develop, train, and test reliable regression models. Key modeling and programming concepts are intuitively described using the R programming language. All of the necessary resources are freely available online.
The Nature of Code (CC BY-NC, GNU)
Learn the basics of programming (variables, conditionals, loops, objects, arrays) as well as a survey of applications related to making interactive projects (images, pixels, computer vision, networking, data, 3D).
Programming Fundamentals (CC BY-SA)
R @ R(D)SVS (CC0)
This open textbook, created by Dr Jill Mackay, Lecturer (Veterinary Medical Education) at the Royal (Dick) School of Veterinary Studies, is designed to help staff and students get to grips with with R. The book includes everything you need to get started and includes code blocks and plain English explanations of what the code is doing.
A collection of open textbooks covering various programing and computer science topics.
Think Python – 2nd Edition (CC BY-NC)
An introduction to Python programming for beginners. It starts with basic concepts of programming; it is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters.
A collection of 16 videos introducing different topics in programming.