1  Reading List

1.1 Programmign 0

  • Programming from First Principles. Bornat
  • Karel the Robot - A Gentle Introduction to the Art of Programming. Pattis

1.1.1 Pascal

  • Programming via Pascal. Rohl
  • Writing Pascal Programs. Rohl
  • Pascal at Work and Play. Forsyth
  • A Practical Introduction to Pascal. Addyman
  • Introduction to Computing with Pascal. Biggs

1.1.2 Python

  • Practical Programming - An Introduction to Computer Science Using Python 3.6. Gries
  • Explorations in Computing - An Introduction to Computer Science and Python Programming. Conery
  • A Beginners Guide to Python 3 Programming. Hunt
  • Fundamentals of Pthon - First Programs. Kenneth A Lambert
  • Python for Everyone (3rd ed). Cay Horstmann, Rance necaise
  • Learn Python Visually - Creating Coding with Processing.py
  • Python Crash Course - A Hands-on, Project-based Guide. Eric Matthes
  • Learning Python - Powerful Object Oriented Programming. Mark Lutz
  • Python Programming Exercises - Gently Explained. Sweigart
  • Invent Your Own Computer Games with Python. Al Sweigart
  • Beyond the Basic Stuff with Python - Best Practices for Writing Clean Code. Al Sweigart

1.1.3 Processing

  • Make: Getting Started with p5.js - Making Interactive Graphics in JavaSCript and Processing. McCarthy, Reas, Fry
  • The Nature of Code. Daniel Shifffman
  • Introduction to Game Development Using Procesesing. James R Parker
  • Processing - An Introduction to Programming. Nyhoff
  • Programmieren lernen mit Computergrafik - Eine Einfuehrung mit Java und Processing. Deussen, Ningelgen

1.2 Programming I

1.2.1 Competitive Programming & Algorithmic Thinking

  • Algorithms and Programming - Problems and Solutions. Shen
  • How to Solve it By Computer. Dromey
  • Learning Algorithms Through Programming and Puzzle Solving. Kulikov, Pevzner
  • Principles of Algorithmic Problem Solving. Sannemo
  • Algorithmic Thinking, 2nd ed. Zingaro
  • Problem Solving in Data Structures & Algorithms Using C++. Hemant Jain
  • Competitive Programming in Python. Duerr
  • Problem Solving & Computer Programming. Grogono, Nelson
  • Problem Solving Principles - Programming with Pascal. Prather
  • Primes and Programming - Computers and Number Theory. Giblin
  • Exploring Mathematics with Your Computer. Engel
  • Programming Concepts - A Second Course. Jones

1.2.2 Insightful and Theoretical

  • Theoretical Introduction to Programming. Mills
  • Programming for Mathematicians. O’Shea
  • Reasoned Programming. Broda
  • Practical Formal Software Engineering - Wanting the Software You Get. Mills
  • What Computing is All About. Snepsheut
  • Elements of Programming. Stepanov, McJones
  • Isomorphism - Mathematics of Programming. Liu
  • The Craft of Programming. Reynolds
  • The Logic of Programming. Hehner
  • Informatik - Eine Grundlegende Einfuehrung, Vol I - IV. Broy
  • Logische und Methodische Grundlagen der Progarmm- und Systementwicklung - Datenstrukture, funkionale, sequenzielle, und objektorientierte Programmierung. Broy
  • Concepts, Techniques, and Models of Computer Programming. Van Roy, Haridi
  • Elements of Programming. Alexander Stepanov, Paul McJones
  • From Mathematics to Generic Programming. Alexander A. Stepanov

1.2.3 Recursion Specific

  • Introduction to Recursive Programming. Rubio-Sanchez
  • Recursion Via Pascal. Rohl
  • Thinking Recursively in Java. Roberts
  • The Recursive Book of Recursion. Sweigart

1.2.4 Practical & Program Design

  • The Practice of Programming. Kernighan, Pike
  • Writing Efficient Programs. Bentley
  • Elements of Programming Style. Kernighan, Plauger