Close Modal

Computer Science From Scratch

Building Interpreters, Art, Emulators and ML in Python

Look inside
Paperback
$49.99 US
7.06"W x 9.19"H x 0.65"D   (17.9 x 23.3 x 1.7 cm) | 19 oz (539 g) | 26 per carton
On sale Sep 30, 2025 | 280 Pages | 9781718504301
Grades 9-12 + AP/IB
Sales rights: World

Computer Science From Scratch pages 24-25
Computer Science From Scratch pages 64-65
Computer Science From Scratch pages 76-77
You know how to write Python. Now master the computer science that makes it work.

If you’ve been programming for a while, you may have found yourself wondering about the deeper principles behind the code. How are programming languages implemented? What does an interpreter really do? How does the microprocessor execute instructions at a fundamental level? How does a machine learning algorithm make decisions?

Computer Science from Scratch is for experienced Python programmers who want to fill in those gaps—not through abstract lectures, but through carefully designed projects that bring core CS concepts to life. Understanding these fundamental building blocks will make you a more versatile and effective programmer.

Each chapter presents a focused, hands-on project that teaches a fundamental idea in computer science:
  • INTERPRETERS: Understand syntax, parsing, and evaluation by writing a BASIC interpreter
  • EMULATORS: Learn computer architecture by building an NES emulator from the ground up
  • GRAPHICS: Explore image manipulation and algorithmic art through computer graphics projects
  • MACHINE LEARNING: Demystify classification by implementing a simple, readable KNN model

These projects aren’t about building tools—they’re structured lessons that use code to reveal how computing works. Each chapter concludes with real-world context, thoughtful extensions, and exercises to deepen your understanding.

Authored by David Kopec, a computer science professor and author of the popular Classic Computer Science Problems series, this is not a beginner’s book, and it’s not a theory-heavy academic text. It’s a practical, code-driven introduction to the essential ideas and mechanisms of computer science—written for programmers who want more than syntax.

If you’ve been writing Python and are ready to explore the foundations behind computing, this book will guide you there—with clarity, depth, and purpose.
David Kopec is an associate professor of computer science at Albright College. He is the author of five programming books, including the Classic Computer Science Problems series, and spent several years as an iOS developer for startups. In addition to his teaching work, David is an avid podcaster and indie app developer with an MS in computer science from Dartmouth and an EMBA from Quantic.
Available for sale exclusive:
•     Afghanistan
•     Aland Islands
•     Albania
•     Algeria
•     Andorra
•     Angola
•     Anguilla
•     Antarctica
•     Antigua/Barbuda
•     Argentina
•     Armenia
•     Aruba
•     Australia
•     Austria
•     Azerbaijan
•     Bahamas
•     Bahrain
•     Bangladesh
•     Barbados
•     Belarus
•     Belgium
•     Belize
•     Benin
•     Bermuda
•     Bhutan
•     Bolivia
•     Bonaire, Saba
•     Bosnia Herzeg.
•     Botswana
•     Bouvet Island
•     Brazil
•     Brit.Ind.Oc.Ter
•     Brit.Virgin Is.
•     Brunei
•     Bulgaria
•     Burkina Faso
•     Burundi
•     Cambodia
•     Cameroon
•     Canada
•     Cape Verde
•     Cayman Islands
•     Centr.Afr.Rep.
•     Chad
•     Chile
•     China
•     Christmas Islnd
•     Cocos Islands
•     Colombia
•     Comoro Is.
•     Congo
•     Cook Islands
•     Costa Rica
•     Croatia
•     Cuba
•     Curacao
•     Cyprus
•     Czech Republic
•     Dem. Rep. Congo
•     Denmark
•     Djibouti
•     Dominica
•     Dominican Rep.
•     Ecuador
•     Egypt
•     El Salvador
•     Equatorial Gui.
•     Eritrea
•     Estonia
•     Ethiopia
•     Falkland Islnds
•     Faroe Islands
•     Fiji
•     Finland
•     France
•     Fren.Polynesia
•     French Guinea
•     Gabon
•     Gambia
•     Georgia
•     Germany
•     Ghana
•     Gibraltar
•     Greece
•     Greenland
•     Grenada
•     Guadeloupe
•     Guam
•     Guatemala
•     Guernsey
•     Guinea Republic
•     Guinea-Bissau
•     Guyana
•     Haiti
•     Heard/McDon.Isl
•     Honduras
•     Hong Kong
•     Hungary
•     Iceland
•     India
•     Indonesia
•     Iran
•     Iraq
•     Ireland
•     Isle of Man
•     Israel
•     Italy
•     Ivory Coast
•     Jamaica
•     Japan
•     Jersey
•     Jordan
•     Kazakhstan
•     Kenya
•     Kiribati
•     Kuwait
•     Kyrgyzstan
•     Laos
•     Latvia
•     Lebanon
•     Lesotho
•     Liberia
•     Libya
•     Liechtenstein
•     Lithuania
•     Luxembourg
•     Macau
•     Macedonia
•     Madagascar
•     Malawi
•     Malaysia
•     Maldives
•     Mali
•     Malta
•     Marshall island
•     Martinique
•     Mauritania
•     Mauritius
•     Mayotte
•     Mexico
•     Micronesia
•     Minor Outl.Ins.
•     Moldavia
•     Monaco
•     Mongolia
•     Montenegro
•     Montserrat
•     Morocco
•     Mozambique
•     Myanmar
•     Namibia
•     Nauru
•     Nepal
•     Netherlands
•     New Caledonia
•     New Zealand
•     Nicaragua
•     Niger
•     Nigeria
•     Niue
•     Norfolk Island
•     North Korea
•     North Mariana
•     Norway
•     Oman
•     Pakistan
•     Palau
•     Palestinian Ter
•     Panama
•     PapuaNewGuinea
•     Paraguay
•     Peru
•     Philippines
•     Pitcairn Islnds
•     Poland
•     Portugal
•     Puerto Rico
•     Qatar
•     Reunion Island
•     Romania
•     Russian Fed.
•     Rwanda
•     S. Sandwich Ins
•     Saint Martin
•     Samoa,American
•     San Marino
•     SaoTome Princip
•     Saudi Arabia
•     Senegal
•     Serbia
•     Seychelles
•     Sierra Leone
•     Singapore
•     Sint Maarten
•     Slovakia
•     Slovenia
•     Solomon Islands
•     Somalia
•     South Africa
•     South Korea
•     South Sudan
•     Spain
•     Sri Lanka
•     St Barthelemy
•     St. Helena
•     St. Lucia
•     St. Vincent
•     St.Chr.,Nevis
•     St.Pier,Miquel.
•     Sth Terr. Franc
•     Sudan
•     Suriname
•     Svalbard
•     Swaziland
•     Sweden
•     Switzerland
•     Syria
•     Tadschikistan
•     Taiwan
•     Tanzania
•     Thailand
•     Timor-Leste
•     Togo
•     Tokelau Islands
•     Tonga
•     Trinidad,Tobago
•     Tunisia
•     Turkey
•     Turkmenistan
•     Turks&Caicos Is
•     Tuvalu
•     US Virgin Is.
•     USA
•     Uganda
•     Ukraine
•     Unit.Arab Emir.
•     United Kingdom
•     Uruguay
•     Uzbekistan
•     Vanuatu
•     Vatican City
•     Venezuela
•     Vietnam
•     Wallis,Futuna
•     West Saharan
•     Western Samoa
•     Yemen
•     Zambia
•     Zimbabwe

Acknowledgments
Introduction

Part I: Interpreters
Chapter 1: The Smallest Possible Programming Language
Chapter 2: Writing a BASIC Interpreter

Part II: Computational Art
Chapter 3: Retro Image Processing
Chapter 4: A Stochastic Painting Algorithm

Part III: Emulators
Chapter 5: Building a CHIP-8 Virtual Machine
Chapter 6: Emulating the NES Game Console

Part IV: Super-Simple Machine Learning
Chapter 7: Classification with K-Nearest Neighbors
Chapter 8: Regression with K-Nearest Neighbors

Afterword
Appendix: Bitwise Operations
Index

Photos

Computer Science From Scratch pages 24-25
Computer Science From Scratch pages 64-65
Computer Science From Scratch pages 76-77

About

You know how to write Python. Now master the computer science that makes it work.

If you’ve been programming for a while, you may have found yourself wondering about the deeper principles behind the code. How are programming languages implemented? What does an interpreter really do? How does the microprocessor execute instructions at a fundamental level? How does a machine learning algorithm make decisions?

Computer Science from Scratch is for experienced Python programmers who want to fill in those gaps—not through abstract lectures, but through carefully designed projects that bring core CS concepts to life. Understanding these fundamental building blocks will make you a more versatile and effective programmer.

Each chapter presents a focused, hands-on project that teaches a fundamental idea in computer science:
  • INTERPRETERS: Understand syntax, parsing, and evaluation by writing a BASIC interpreter
  • EMULATORS: Learn computer architecture by building an NES emulator from the ground up
  • GRAPHICS: Explore image manipulation and algorithmic art through computer graphics projects
  • MACHINE LEARNING: Demystify classification by implementing a simple, readable KNN model

These projects aren’t about building tools—they’re structured lessons that use code to reveal how computing works. Each chapter concludes with real-world context, thoughtful extensions, and exercises to deepen your understanding.

Authored by David Kopec, a computer science professor and author of the popular Classic Computer Science Problems series, this is not a beginner’s book, and it’s not a theory-heavy academic text. It’s a practical, code-driven introduction to the essential ideas and mechanisms of computer science—written for programmers who want more than syntax.

If you’ve been writing Python and are ready to explore the foundations behind computing, this book will guide you there—with clarity, depth, and purpose.

Author

David Kopec is an associate professor of computer science at Albright College. He is the author of five programming books, including the Classic Computer Science Problems series, and spent several years as an iOS developer for startups. In addition to his teaching work, David is an avid podcaster and indie app developer with an MS in computer science from Dartmouth and an EMBA from Quantic.

Rights

Available for sale exclusive:
•     Afghanistan
•     Aland Islands
•     Albania
•     Algeria
•     Andorra
•     Angola
•     Anguilla
•     Antarctica
•     Antigua/Barbuda
•     Argentina
•     Armenia
•     Aruba
•     Australia
•     Austria
•     Azerbaijan
•     Bahamas
•     Bahrain
•     Bangladesh
•     Barbados
•     Belarus
•     Belgium
•     Belize
•     Benin
•     Bermuda
•     Bhutan
•     Bolivia
•     Bonaire, Saba
•     Bosnia Herzeg.
•     Botswana
•     Bouvet Island
•     Brazil
•     Brit.Ind.Oc.Ter
•     Brit.Virgin Is.
•     Brunei
•     Bulgaria
•     Burkina Faso
•     Burundi
•     Cambodia
•     Cameroon
•     Canada
•     Cape Verde
•     Cayman Islands
•     Centr.Afr.Rep.
•     Chad
•     Chile
•     China
•     Christmas Islnd
•     Cocos Islands
•     Colombia
•     Comoro Is.
•     Congo
•     Cook Islands
•     Costa Rica
•     Croatia
•     Cuba
•     Curacao
•     Cyprus
•     Czech Republic
•     Dem. Rep. Congo
•     Denmark
•     Djibouti
•     Dominica
•     Dominican Rep.
•     Ecuador
•     Egypt
•     El Salvador
•     Equatorial Gui.
•     Eritrea
•     Estonia
•     Ethiopia
•     Falkland Islnds
•     Faroe Islands
•     Fiji
•     Finland
•     France
•     Fren.Polynesia
•     French Guinea
•     Gabon
•     Gambia
•     Georgia
•     Germany
•     Ghana
•     Gibraltar
•     Greece
•     Greenland
•     Grenada
•     Guadeloupe
•     Guam
•     Guatemala
•     Guernsey
•     Guinea Republic
•     Guinea-Bissau
•     Guyana
•     Haiti
•     Heard/McDon.Isl
•     Honduras
•     Hong Kong
•     Hungary
•     Iceland
•     India
•     Indonesia
•     Iran
•     Iraq
•     Ireland
•     Isle of Man
•     Israel
•     Italy
•     Ivory Coast
•     Jamaica
•     Japan
•     Jersey
•     Jordan
•     Kazakhstan
•     Kenya
•     Kiribati
•     Kuwait
•     Kyrgyzstan
•     Laos
•     Latvia
•     Lebanon
•     Lesotho
•     Liberia
•     Libya
•     Liechtenstein
•     Lithuania
•     Luxembourg
•     Macau
•     Macedonia
•     Madagascar
•     Malawi
•     Malaysia
•     Maldives
•     Mali
•     Malta
•     Marshall island
•     Martinique
•     Mauritania
•     Mauritius
•     Mayotte
•     Mexico
•     Micronesia
•     Minor Outl.Ins.
•     Moldavia
•     Monaco
•     Mongolia
•     Montenegro
•     Montserrat
•     Morocco
•     Mozambique
•     Myanmar
•     Namibia
•     Nauru
•     Nepal
•     Netherlands
•     New Caledonia
•     New Zealand
•     Nicaragua
•     Niger
•     Nigeria
•     Niue
•     Norfolk Island
•     North Korea
•     North Mariana
•     Norway
•     Oman
•     Pakistan
•     Palau
•     Palestinian Ter
•     Panama
•     PapuaNewGuinea
•     Paraguay
•     Peru
•     Philippines
•     Pitcairn Islnds
•     Poland
•     Portugal
•     Puerto Rico
•     Qatar
•     Reunion Island
•     Romania
•     Russian Fed.
•     Rwanda
•     S. Sandwich Ins
•     Saint Martin
•     Samoa,American
•     San Marino
•     SaoTome Princip
•     Saudi Arabia
•     Senegal
•     Serbia
•     Seychelles
•     Sierra Leone
•     Singapore
•     Sint Maarten
•     Slovakia
•     Slovenia
•     Solomon Islands
•     Somalia
•     South Africa
•     South Korea
•     South Sudan
•     Spain
•     Sri Lanka
•     St Barthelemy
•     St. Helena
•     St. Lucia
•     St. Vincent
•     St.Chr.,Nevis
•     St.Pier,Miquel.
•     Sth Terr. Franc
•     Sudan
•     Suriname
•     Svalbard
•     Swaziland
•     Sweden
•     Switzerland
•     Syria
•     Tadschikistan
•     Taiwan
•     Tanzania
•     Thailand
•     Timor-Leste
•     Togo
•     Tokelau Islands
•     Tonga
•     Trinidad,Tobago
•     Tunisia
•     Turkey
•     Turkmenistan
•     Turks&Caicos Is
•     Tuvalu
•     US Virgin Is.
•     USA
•     Uganda
•     Ukraine
•     Unit.Arab Emir.
•     United Kingdom
•     Uruguay
•     Uzbekistan
•     Vanuatu
•     Vatican City
•     Venezuela
•     Vietnam
•     Wallis,Futuna
•     West Saharan
•     Western Samoa
•     Yemen
•     Zambia
•     Zimbabwe

Table of Contents

Acknowledgments
Introduction

Part I: Interpreters
Chapter 1: The Smallest Possible Programming Language
Chapter 2: Writing a BASIC Interpreter

Part II: Computational Art
Chapter 3: Retro Image Processing
Chapter 4: A Stochastic Painting Algorithm

Part III: Emulators
Chapter 5: Building a CHIP-8 Virtual Machine
Chapter 6: Emulating the NES Game Console

Part IV: Super-Simple Machine Learning
Chapter 7: Classification with K-Nearest Neighbors
Chapter 8: Regression with K-Nearest Neighbors

Afterword
Appendix: Bitwise Operations
Index