Conceptual Programming with Python


Book Description

Thorsten and Isaac have written this book based on a programming course we teach for Master's Students at the School of Computer Science of the University of Nottingham. The book is intended for students with little or no background in programming coming from different backgrounds educationally as well as culturally. It is not mainly a Python course but we use Python as a vehicle to teach basic programming concepts. Hence, the words conceptual programming in the title. We cover basic concepts about data structures, imperative programming, recursion and backtracking, object-oriented programming, functional programming, game development and some basics of data science.




Programming Languages: Concepts and Implementation


Book Description

Programming Languages: Concepts and Implementation teaches language concepts from two complementary perspectives: implementation and paradigms. It covers the implementation of concepts through the incremental construction of a progressive series of interpreters in Python, and Racket Scheme, for purposes of its combined simplicity and power, and assessing the differences in the resulting languages.




Python Programming Fundamentals


Book Description

This easy-to-follow and classroom-tested textbook guides the reader through the fundamentals of programming with Python, an accessible language which can be learned incrementally. Features: incudes numerous examples and practice exercises throughout the text, with additional exercises, solutions and review questions at the end of each chapter; highlights the patterns which frequently appear when writing programs, reinforcing the application of these patterns for problem-solving through practice exercises; introduces the use of a debugger tool to inspect a program, enabling students to discover for themselves how programs work and enhance their understanding; presents the Tkinter framework for building graphical user interface applications and event-driven programs; provides instructional videos and additional information for students, as well as support materials for instructors, at an associated website.




A Primer on Scientific Programming with Python


Book Description

The book serves as a first introduction to computer programming of scientific applications, using the high-level Python language. The exposition is example and problem-oriented, where the applications are taken from mathematics, numerical calculus, statistics, physics, biology and finance. The book teaches "Matlab-style" and procedural programming as well as object-oriented programming. High school mathematics is a required background and it is advantageous to study classical and numerical one-variable calculus in parallel with reading this book. Besides learning how to program computers, the reader will also learn how to solve mathematical problems, arising in various branches of science and engineering, with the aid of numerical methods and programming. By blending programming, mathematics and scientific applications, the book lays a solid foundation for practicing computational science. From the reviews: Langtangen ... does an excellent job of introducing programming as a set of skills in problem solving. He guides the reader into thinking properly about producing program logic and data structures for modeling real-world problems using objects and functions and embracing the object-oriented paradigm. ... Summing Up: Highly recommended. F. H. Wild III, Choice, Vol. 47 (8), April 2010 Those of us who have learned scientific programming in Python ‘on the streets’ could be a little jealous of students who have the opportunity to take a course out of Langtangen’s Primer.” John D. Cook, The Mathematical Association of America, September 2011 This book goes through Python in particular, and programming in general, via tasks that scientists will likely perform. It contains valuable information for students new to scientific computing and would be the perfect bridge between an introduction to programming and an advanced course on numerical methods or computational science. Alex Small, IEEE, CiSE Vol. 14 (2), March /April 2012 “This fourth edition is a wonderful, inclusive textbook that covers pretty much everything one needs to know to go from zero to fairly sophisticated scientific programming in Python...” Joan Horvath, Computing Reviews, March 2015




Advanced Guide to Python 3 Programming


Book Description

Advanced Guide to Python 3 Programming 2nd Edition delves deeply into a host of subjects that you need to understand if you are to develop sophisticated real-world programs. Each topic is preceded by an introduction followed by more advanced topics, along with numerous examples, that take you to an advanced level. This second edition has been significantly updated with two new sections on advanced Python language concepts and data analytics and machine learning. The GUI chapters have been rewritten to use the Tkinter UI library and a chapter on performance monitoring and profiling has been added. In total there are 18 new chapters, and all remaining chapters have been updated for the latest version of Python as well as for any of the libraries they use. There are eleven sections within the book covering Python Language Concepts, Computer Graphics (including GUIs), Games, Testing, File Input and Output, Databases Access, Logging, Concurrency and Parallelism, Reactive Programming, Networking and Data Analytics. Each section is self-contained and can either be read on its own or as part of the book as a whole. It is aimed at those who have learnt the basics of the Python 3 language but wish to delve deeper into Python’s eco system of additional libraries and modules.




Introduction to Scientific Programming with Python


Book Description

This open access book offers an initial introduction to programming for scientific and computational applications using the Python programming language. The presentation style is compact and example-based, making it suitable for students and researchers with little or no prior experience in programming. The book uses relevant examples from mathematics and the natural sciences to present programming as a practical toolbox that can quickly enable readers to write their own programs for data processing and mathematical modeling. These tools include file reading, plotting, simple text analysis, and using NumPy for numerical computations, which are fundamental building blocks of all programs in data science and computational science. At the same time, readers are introduced to the fundamental concepts of programming, including variables, functions, loops, classes, and object-oriented programming. Accordingly, the book provides a sound basis for further computer science and programming studies.




HT THINK LIKE A COMPUTER SCIEN


Book Description

The goal of this book is to teach you to think like a computer scientist. This way of thinking combines some of the best features of mathematics, engineering, and natural science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions. The single most important skill for a computer scientist is problem solving. Problem solving means the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That's why this chapter is called, The way of the program. On one level, you will be learning to program, a useful skill by itself. On another level, you will use programming as a means to an end. As we go along, that end will become clearer.




Programming in Python 3


Book Description

Python 3 is the best version of the language yet: It is more powerful, convenient, consistent, and expressive than ever before. Now, leading Python programmer Mark Summerfield demonstrates how to write code that takes full advantage of Python 3’s features and idioms. The first book written from a completely “Python 3” viewpoint, Programming in Python 3 brings together all the knowledge you need to write any program, use any standard or third-party Python 3 library, and create new library modules of your own. Summerfield draws on his many years of Python experience to share deep insights into Python 3 development you won’t find anywhere else. He begins by illuminating Python’s “beautiful heart”: the eight key elements of Python you need to write robust, high-performance programs. Building on these core elements, he introduces new topics designed to strengthen your practical expertise—one concept and hands-on example at a time. This book’s coverage includes Developing in Python using procedural, object-oriented, and functional programming paradigms Creating custom packages and modules Writing and reading binary, text, and XML files, including optional compression, random access, and text and XML parsing Leveraging advanced data types, collections, control structures, and functions Spreading program workloads across multiple processes and threads Programming SQL databases and key-value DBM files Utilizing Python’s regular expression mini-language and module Building usable, efficient, GUI-based applications Advanced programming techniques, including generators, function and class decorators, context managers, descriptors, abstract base classes, metaclasses, and more Programming in Python 3 serves as both tutorial and language reference, and it is accompanied by extensive downloadable example code—all of it tested with the final version of Python 3 on Windows, Linux, and Mac OS X.




Monty Karel


Book Description

"Monty Karel" is an introduction to computer programming for novices. It uses the Python programming language to introduce the principles of dynamic object-oriented programming. It is the latest version in the "Karel The Robot" series, originally developed by Richard Pattis. It is a true successor to the original, emphasizing problem solving in a simple but "Turing Complete" and interesting virtual world. "Monty Karel" stresses problem solving rather than language syntax. It has been shown to be an effective learning environment for novice programmers. A student able to do the exercises in this book, or one of its companions, is truly on his or her way to a deep understanding of programming. Learn to write sophisticated Python code in a few weeks. It is not a comprehensive treatment of Python, but emphasizes problem solving using objects, writing classes, and developing skill in algorithmic and polymorphic thinking. It goes beyond thinking of computing as just "if" and "while." The advantages pointed out by reviewers of the earlier "Karel J Robot" apply to this version as well: "Karel J Robot" is an excellent introduction to modern computer science, without letting students get overwhelmed by the details of a programming language (even though it is real Java). KJR provides a framework for understanding Object-Oriented Programming from the very beginning. Students are encouraged to develop problem-solving skills by producing projects that solve very complex problems with a relatively small set of tools. Don Slater, Carnegie-Mellon University I have been successfully introducing students in grades 9 through 12 to programming using Karel for the past twenty years and "Karel J Robot" is the most effective version yet. Students love it They find principles of OOP (class design, constructors, methods, inheritance, polymorphism) come naturally to them, even before they learn about control structures. They discover recursive solutions without ever being taught recursion. Best of all, Karel is gender neutral --- both girls and boys are so involved and excited that I have to push them out the door and on to their next class when the period ends. Kathy Larson, Kingston High School, Kingston New York "Karel J Robot: A Gentle Introduction to the Art of Object-Oriented Programming in Java" takes you on a well-sequenced and thoughtful journey through the essential concepts in a first semester computer science course. Experience computer science at the level that it is most inspiring - the conceptual level. The visual environment will help you teach and your students learn because everyone will have immediate visual feedback, enabling them to see what they are doing. You will leave the Karel world with a deep understanding of polymorphism, inheritance, abstraction, modularization, and step-wise refinement, to name just a few topics. If you are an AP Computer Science teacher, you have just found the perfect guide to help ensure you do not lose sight of the forest (i.e., computer science) through the trees (i.e., the details of the language). Dave Wittry, Troy High School "Karel J Robot" provides an uncluttered setting for laying the foundation for all of the key OO concepts. The perfect "starter" for understanding objects, OO design and OO programming. Michael Goldweber, Xavier University




Learn Python 3 the Hard Way


Book Description

You Will Learn Python 3! Zed Shaw has perfected the world’s best system for learning Python 3. Follow it and you will succeed—just like the millions of beginners Zed has taught to date! You bring the discipline, commitment, and persistence; the author supplies everything else. In Learn Python 3 the Hard Way, you’ll learn Python by working through 52 brilliantly crafted exercises. Read them. Type their code precisely. (No copying and pasting!) Fix your mistakes. Watch the programs run. As you do, you’ll learn how a computer works; what good programs look like; and how to read, write, and think about code. Zed then teaches you even more in 5+ hours of video where he shows you how to break, fix, and debug your code—live, as he’s doing the exercises. Install a complete Python environment Organize and write code Fix and break code Basic mathematics Variables Strings and text Interact with users Work with files Looping and logic Data structures using lists and dictionaries Program design Object-oriented programming Inheritance and composition Modules, classes, and objects Python packaging Automated testing Basic game development Basic web development It’ll be hard at first. But soon, you’ll just get it—and that will feel great! This course will reward you for every minute you put into it. Soon, you’ll know one of the world’s most powerful, popular programming languages. You’ll be a Python programmer. This Book Is Perfect For Total beginners with zero programming experience Junior developers who know one or two languages Returning professionals who haven’t written code in years Seasoned professionals looking for a fast, simple, crash course in Python 3