With its flexibility for programming both small and large projects, Scala is an ideal language for teaching beginning programming. Yet there are no textbooks on Scala currently available for the CS1/CS2 levels. Introduction to the Art of Programming Using Scala presents many concepts from CS1 and CS2 using a modern, JVM-based language that works we
While the development of Information Technology has been obvious to all, the underpinning computer science has been less apparent. Subrata Dasgupta provides a thought-provoking introduction to the field and its core principles, considering computer science as a science of symbol processing.
"Bloodied toy soldiers, gilded shopping carts, and Lego concentration camps. Contemporary art is supposed to be a realm of freedom where artists shock, break taboos, and switch between confronting viewers with works of great profundity and jaw-dropping triviality. But away from shock tactics in the gallery, there are many unanswered questions. What is contemporary about contemporary art? What effect do politics and big business have on art? And who really runs the art world?" "Previously published as Art Incorporated, this controversial and witty Very Short Introduction is an exploration of the global art scene that will change the way you see contemporary art."--BOOK JACKET.
R is the world's most popular language for developing statistical software: Archaeologists use it to track the spread of ancient civilizations, drug companies use it to discover which medications are safe and effective, and actuaries use it to assess financial risks and keep economies running smoothly. The Art of R Programming takes you on a guided tour of software development with R, from basic types and data structures to advanced topics like closures, recursion, and anonymous functions. No statistical knowledge is required, and your programming skills can range from hobbyist to pro. Along the way, you'll learn about functional and object-oriented programming, running mathematical simulations, and rearranging complex data into simpler, more useful formats. You'll also learn to: –Create artful graphs to visualize complex data sets and functions –Write more efficient code using parallel R and vectorization –Interface R with C/C++ and Python for increased speed or functionality –Find new R packages for text analysis, image manipulation, and more –Squash annoying bugs with advanced debugging techniques Whether you're designing aircraft, forecasting the weather, or you just need to tame your data, The Art of R Programming is your guide to harnessing the power of statistical computing.
Donald Knuth is Professor Emeritus of the Art of Computer Programming at Stanford University, and is well-known worldwide as the creator of the Tex typesetting language. Here he presents the third volume of his guide to computer programming.
The new edition of an introductory text that teaches students the art of computational problem solving, covering topics ranging from simple algorithms to information visualization. This book introduces students with little or no prior programming experience to the art of computational problem solving using Python and various Python libraries, including PyLab. It provides students with skills that will enable them to make productive use of computational techniques, including some of the tools and techniques of data science for using computation to model and interpret data. The book is based on an MIT course (which became the most popular course offered through MIT's OpenCourseWare) and was developed for use not only in a conventional classroom but in in a massive open online course (MOOC). This new edition has been updated for Python 3, reorganized to make it easier to use for courses that cover only a subset of the material, and offers additional material including five new chapters. Students are introduced to Python and the basics of programming in the context of such computational concepts and techniques as exhaustive enumeration, bisection search, and efficient approximation algorithms. Although it covers such traditional topics as computational complexity and simple algorithms, the book focuses on a wide range of topics not found in most introductory texts, including information visualization, simulations to model randomness, computational techniques to understand data, and statistical techniques that inform (and misinform) as well as two related but relatively advanced topics: optimization problems and dynamic programming. This edition offers expanded material on statistics and machine learning and new chapters on Frequentist and Bayesian statistics.
Learn to program with visual examples. Programs increase in complexity as you progress — from drawing a circle to 3D graphics, animations, and simulations. A Graphical Introduction to Programming teaches computer programming with the aid of 100 example programs, each of which integrates graphical or sound output. The Processing-language-based examples range from drawing a circle and animating bouncing balls to 3D graphics, audio visualization, and interactive games. Readers learn core programming concepts like conditions, loops, arrays, strings and functions, as well as how to use Processing to draw lines, shapes, and 3D objects. They’ll learn key computer graphics concepts like manipulating images, animating text, mapping textures onto objects, and working with video. Advanced examples include sound effects and audio visualization, network communication, 3D geometry and animation, simulations of snow and smoke, predator-prey populations, and interactive games.
Bosch provides a lively and accessible introduction to the geometric, algebraic, and algorithmic foundations of optimization. He presents classical applications, such as the legendary Traveling Salesman Problem, and shows how to adapt them to make optimization art--opt art. art.
Algorithmic puzzles are puzzles involving well-defined procedures for solving problems. This book will provide an enjoyable and accessible introduction to algorithmic puzzles that will develop the reader's algorithmic thinking. The first part of this book is a tutorial on algorithm design strategies and analysis techniques. Algorithm design strategies — exhaustive search, backtracking, divide-and-conquer and a few others — are general approaches to designing step-by-step instructions for solving problems. Analysis techniques are methods for investigating such procedures to answer questions about the ultimate result of the procedure or how many steps are executed before the procedure stops. The discussion is an elementary level, with puzzle examples, and requires neither programming nor mathematics beyond a secondary school level. Thus, the tutorial provides a gentle and entertaining introduction to main ideas in high-level algorithmic problem solving. The second and main part of the book contains 150 puzzles, from centuries-old classics to newcomers often asked during job interviews at computing, engineering, and financial companies. The puzzles are divided into three groups by their difficulty levels. The first fifty puzzles in the Easier Puzzles section require only middle school mathematics. The sixty puzzle of average difficulty and forty harder puzzles require just high school mathematics plus a few topics such as binary numbers and simple recurrences, which are reviewed in the tutorial. All the puzzles are provided with hints, detailed solutions, and brief comments. The comments deal with the puzzle origins and design or analysis techniques used in the solution. The book should be of interest to puzzle lovers, students and teachers of algorithm courses, and persons expecting to be given puzzles during job interviews.