Anyone Can Code : The Art and Science of Logical Creativity book cover
SAVE
$13.99
1st Edition

Anyone Can Code
The Art and Science of Logical Creativity




  • Available for pre-order. Item will ship after November 24, 2020
ISBN 9780367199692
November 24, 2020 Forthcoming by CRC Press
352 Pages - 80 B/W Illustrations

 
SAVE ~ $13.99
was $69.95
USD $55.96

Prices & shipping based on shipping country


Preview

Book Description

“Ali Arya guides you in a fantastic journey full of creativity in a coherent way that allows the traveler to learn and build up over the knowledge acquired in previous chapters until the reader accomplishes skills to develop solutions using programming.”

-- Andrés A. Navarro Newball, Professor, Pontificia Universidad Javeriana Cali Colombia

“An excellent book that teaches programming and software development the way it should be done: independent from a specific implementation language and focusing on the main principles that are fundamental and substantive to any kind of software production.”

-- Dr Marc Conrad, Principal Lecturer, University of Bedfordshire

Anyone Can Code: The Art and Science of Logical Creativity introduces computer programming as a way of problem-solving through logical thinking. It uses the notion of Modularization as a central lens through which we can make sense of many software concepts. The book takes the reader through fundamental concepts in programming by illustrating them in three different and distinct languages, C/C++, Python, and Javascript.

Key features:

  • Focuses on problem-solving and algorithmic thinking instead of programming functions, syntax, and libraries.
  • Includes engaging examples, including video games and visual effects
  • Provides exercises and reflective questions.

It gives the beginner and intermediate learners a strong understanding of what they are doing so that they can do it better and with any other tool or language that they may end up using later.

About the Author:

Ali Arya is an Associate Professor of Information Technology at Carleton University, Ottawa, Canada. He received his Ph.D. in Computer Engineering from the University of British Columbia in 2003. Ali has over 25 years of experience in professional and academic positions related to software development and information technology. He is passionate about computer programming that brings together logical and creative abilities.

Table of Contents

Table of Contents

Table of Sidebars

Table of Figures

Preface

Definition of Key Terms

Abbreviation

Companion Website

PART 0. GETTING STARTED

Chapter 0. Introduction

0.0. Hello, World! 

0.1. Software Development

Highlights

End-of-Chapter Notes

Chapter 1. Computers, Programs, and Games

1.0.      Overview

1.1. Brief History of Computing

1.2. Circuits and Numbers, Bits and Bytes

1.3. What is a Program, anyway?

1.4. Games as Programs: Data vs. Code

Highlights

End-of-Chapter Notes

Chapter 2. Logical Creativity

2.0. Overview

2.1. Problem-solving and Creativity

2.2. Visual Design and Visual Thinking

2.3. Algorithms and Algorithmic Thinking

2.4. Data-centered Approach to Problem-solving and Algorithm Design

2.5. Stepwise Refinement for Algorithms

Highlights

End-of-Chapter Notes

PART 1. UNDERSTANDING PROGRAMS

Chapter 3. Information a.k.a. Data

3.0. Overview

3.1. High-level Programming Languages

3.2. Data and Variables

3.3. Programming in Python

3.4. Programming in C and C++

3.5. Data Types

Highlights

End-of-Chapter Notes

Chapter 4. Data Processing a.k.a. Code

4.0. Overview

4.1. Sequential Execution and Program Control 

4.2. Selection

4.3. Iteration

4.4. Combining Selection and Iteration

4.5. Naming Conventions

Highlights

End-of-Chapter Notes

Chapter 5. Functions

5.0. Overview

5.1. Defining and Using Functions

5.2. Functions in C/C++

5.3. Local and Global Variables

5.4. Function Parameters

Highlights

End-of-Chapter Notes

PART 2. STRUCTURED PROGRAMMING

Chapter 6. Types, Files, and Libraries

6.0. Overview

6.1. Data Types Revisited

6.2. Outside the File

6.3. Graphics Programming

Highlights

End-of-Chapter Notes

Chapter 7. Modularization of Data

7.0. Overview

7.1. User-Defined Types as Modules of Data

7.2. Arrays as Modules of Data

7.3. Examples of Using Arrays

7.4. Combined Data Modules

Highlights

End-of-Chapter Notes

Chapter 8. Modularization of Code

8.0. Overview

8.1. Functions Revisited

8.2. Information Hiding and Abstraction

8.3. Modular Design

8.4. A Modular Game Program

Highlights

End-of-Chapter Notes

PART 3. OBJECT-ORIENTED PROGRAMMING

Chapter 9. Modularization of Data and Code

9.0. Overview

9.1. Objects and Classes

9.2. Object-Oriented Programming

9.3. Object-Oriented Games

Highlights

End-of-Chapter Notes

Chapter A. Object-Oriented Design

A.0. Overview

A.1. Software Design with Classes

A.2. Dynamic objects

Highlights

End-of-Chapter Notes

PART 4. MORE ABOUT OBJECTS AND CLASSES

Chapter B. Class Hierarchies

B.0. Overview

B.1. Extending Classes with Inheritance

B.2. Different Types of Game Objects

Highlights

End-of-Chapter Notes

Chapter C. Object Identities

C.0. Overview

C.1. Rendering Multiple GameObject Types

C.2. Dynamic Polymorphism

C.3. Physics Class Revisited

Highlights

End-of-Chapter Notes

PART 5. MOVING FORWARD

Chapter D. Software Design

D.0. Overview

D.1. Design Patterns

D.2. Data Structures

D.3. Software Architecture

D.4. Suggested Projects

Chapter E. Software Projects

E.0. Overview

E.1. Project Management 

E.2. Version Control 

Chapter F. Concluding Notes

F.0. Overview

F.1. Summary of Key Points

F.2. Some Practical Advice

Bibliography 

...
View More

Author(s)

Biography

Ali Arya is an Associate Professor of Information Technology at Carleton University, Ottawa, Canada. He received his Ph.D. in Computer Engineering from the University of British Columbia in 2003. Ali has over 25 years of experience in professional and academic positions related to software development and information technology. He is passionate about computer programming that brings together logical and creative abilities. His work has always involved hands-on programming combined with teaching and research on various related technologies. He has developed and taught graduate and undergraduate courses on computer programming, software design, and project management. His current research focuses on the use of computer games and virtual reality in education. Before his academic career, Ali worked as software engineer, lead designer, and project manager. Ali lives in Ottawa, Canada, with his wife, son, and two cats. Despite his teaching, research, and administrative duties, he still enjoys spending hours writing code and learning new programming trends and tricks.  

Reviews

“An excellent book that teaches programming and software development the way it should be done: independent from a specific implementation language and focusing on the main principles that are fundamental and substantive to any kind of software production…. Overall, a well-developed book that provides a comprehensive journey through the substantive topics essential to programming; I agree with the title; with the help of this book anyone can code. Given the unique strength of being agnostic to a specific language in the presentation of the central themes I wish that this book becomes a core reading text to academic institutions delivering on Computer Science and Software Development.”

-- Dr Marc Conrad, Principal Lecturer, University of Bedfordshire

“Ali Arya guides you in a fantastic journey full of creativity in a coherent way that allows the traveler to learn and build up over the knowledge acquired in previous chapters until the reader accomplishes skills to develop solutions using programming.”

-- Andrés A. Navarro Newball, Professor, Pontificia Universidad Javeriana Cali Colombia