How to Think Like a Computer Scientist
Ben Lauwens, Allen B. Downey

#Julia
#Think_Julia
#Computer_Scientist
#data_structures
#web_programming
#syntax
If you’re just learning how to program, Julia is an excellent JIT-compiled, dynamically typed language with a clean syntax. This hands-on guide uses Julia 1.0 to walk you through programming one step at a time, beginning with basic programming concepts before moving on to more advanced capabilities, such as creating new types and multiple dispatch.
Designed from the beginning for high performance, Julia is a general-purpose language ideal for not only numerical analysis and computational science but also web programming and scripting. Through exercises in each chapter, you’ll try out programming concepts as you learn them. Think Julia is perfect for students at the high school or college level as well as self-learners and professionals who need to learn programming basics.
• Start with the basics, including language syntax and semantics
• Get a clear definition of each programming concept
• Learn about values, variables, statements, functions, and data structures in a logical progression
• Discover how to work with files and databases
• Understand types, methods, and multiple dispatch
• Use debugging techniques to fix syntax, runtime, and semantic errors
• Explore interface design and data structures through case studies
Table of Contents
Chapter 1. The Way of the Program
Chapter 2. Variables, Expressions, and Statements
Chapter 3. Functions
Chapter 4. Case Study: Interface Design
Chapter 5. Conditionals and Recursion
Chapter 6. Fruitful Functions
Chapter 7. Iteration
Chapter 8. Strings
Chapter 9. Case Study: Word Play
Chapter 10. Arrays
Chapter 11 . Dict ionaries
Chapter 12. Tuples
Chapter 13. Case Study: Data Structure Selection
Chapter 14. Files
Chapter 15. Structs and Objects
Chapter 16. Structs and Functions
Chapter 17. Multiple Dispatch
Chapter 18. Subtyping
Chapter 19. The Goodies: Syntax
Chapter 20. The Goodies: Base and Standard library
Chapter 21. Debugging
Why Julia?
Julia was originally released in 2012 by Alan Edelman, Stefan Karpinski, Jeff Bezanson, and Viral Shah. It is a free and open source programming language. Choosing a programming language is always subjective. For me, the following characteristics of Julia are decisive:
• Julia is developed as a high-performance programming language.
• Julia uses multiple dispatch, which allows the programmer to choose from different programming patterns adapted to the application.
• Julia is a dynamically typed language that can easily be used interactively.
• Julia has a nice high-level syntax that is easy to learn.
• Julia is an optionally typed programming language whose (user-defined) data types make the code clearer and more robust.
• Julia has an extended standard library and numerous third-party packages are available.
Julia is a unique programming language because it solves the so-called “two languages problem.” No other programming language is needed to write high-performance code. This does not mean it happens automatically. It is the responsibility of the programmer to optimize the code that forms a bottleneck, but this can done in Julia itself.
Who Is This Book For?
This book is for anyone who wants to learn to program. No formal prior knowledge is required. New concepts are introduced gradually and more advanced topics are described in later chapters.
Think Julia can be used for a one-semester course at the high school, or college level.
Ben Lauwens is a professor of mathematics at the Royal Military Academy (RMA Belgium). He has a PhD in engineering and master’s degrees from KU Leuven and RMA and a bachelor’s degree from RMA.
Allen Downey is a Professor of Computer Science at Olin College of Engineering. He has taught at Wellesley College, Colby College and U.C. Berkeley. He has a Ph.D. in Computer Science from U.C. Berkeley and Master's and Bachelor's degrees from MIT.









