GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ChrisMayfield/ThinkJava2: LaTeX and Markdown source for Think Java, 2nd edition, by Allen Downey and Chris Mayfield.

BranchesTags
Open more actions menu

Latest commit

 

History

364 Commits
364 Commits

Folders and files

NameName
Last commit message
Last commit date
code
code
 
 
figs
figs
 
 
hevea
hevea
 
 
links
links
 
 
quarto
quarto
 
 
trinket
trinket
 
 
.gitignore
.gitignore
 
 
Filist.py
Filist.py
 
 
Makefile
Makefile
 
 
PROJECT_BOARD.md
PROJECT_BOARD.md
 
 
README.md
README.md
 
 
TODO.txt
TODO.txt
 
 
V6archive.tex
V6archive.tex
 
 
appa.tex
appa.tex
 
 
appb.tex
appb.tex
 
 
appc.tex
appc.tex
 
 
appd.tex
appd.tex
 
 
appe.tex
appe.tex
 
 
ch00.tex
ch00.tex
 
 
ch01.tex
ch01.tex
 
 
ch02.tex
ch02.tex
 
 
ch03.tex
ch03.tex
 
 
ch04.tex
ch04.tex
 
 
ch05.tex
ch05.tex
 
 
ch06.tex
ch06.tex
 
 
ch07.tex
ch07.tex
 
 
ch08.tex
ch08.tex
 
 
ch09.tex
ch09.tex
 
 
ch10.tex
ch10.tex
 
 
ch11.tex
ch11.tex
 
 
ch12.tex
ch12.tex
 
 
ch13.tex
ch13.tex
 
 
ch14.tex
ch14.tex
 
 
ch15.tex
ch15.tex
 
 
ch16.tex
ch16.tex
 
 
ch17.tex
ch17.tex
 
 
custom.css
custom.css
 
 
environment.yml
environment.yml
 
 
headings.ist
headings.ist
 
 
latexonly.tex
latexonly.tex
 
 
localdef.py
localdef.py
 
 
onechap.tex
onechap.tex
 
 
postprocess.py
postprocess.py
 
 
preprocess.py
preprocess.py
 
 
thinkjava2.pdf
thinkjava2.pdf
 
 
thinkjava2.tex
thinkjava2.tex
 
 
toc.html
toc.html
 
 
xmlsplit.py
xmlsplit.py
 
 

Repository files navigation

Think Java, Second Edition

Think Java is an introduction to computer science and programming intended for people with little or no experience. The goal is to help students learn to design and implement object-oriented solutions to non-trivial problems.

This book is free to read online and available for purchase in print and electronic formats.

Are you using this book in a class? We'd like to know about it! Please consider filling out this short survey.

Reading the Book

Free HTML Version: Read online at GitHub Pages

Free PDF: Download from GitHub (canonical). Stable mirror: greenteapress.com/thinkjava7/thinkjava2.pdf.

Purchase Options (affiliate links):

  • Bookshop.org - Support independent bookstores
  • Amazon - Kindle and paperback editions

Building from Source

Note: Most readers won't need to build from source. The free HTML version is available online.

Prerequisites

  • Quarto (required for make html; install separately, not via conda)
  • Python 3.12 for conversion scripts — use the conda env below
  • LaTeX distribution (texlive-latex-extra, texlive-fonts-recommended on Linux) for PDF

Conda environment

make create_environment   # or: mamba env create -f environment.yml
conda activate ThinkJava2

Update later with make update_environment. Remove with make delete_environment.

No JDK is required for the interactive HTML book: java-runner runs entirely in the browser.

Build Commands

# HTML version (Quarto) — primary interactive book path
make html

# PDF version (LaTeX) — canonical PDF for GitHub + GTP
make pdf

# Legacy HTML versions
make hevea    # static HTML
make trinket  # interactive version (Trinket.io; being replaced by java-runner)

Publishing the PDF

Same pattern as ThinkDSP: GitHub is canonical; Green Tea Press keeps old URLs in sync.

make pdf                 # build thinkjava2.pdf
make distrib             # confirm the PDF is ready to commit
git add thinkjava2.pdf && git commit && git push

# Optional: mirror to greenteapress.com/thinkjava7/ (requires ~/.ssh/config Host gtp)
make publish-gtp-dry
make publish-gtp

publish-gtp rsyncs only the PDF (no --delete, no HeVeA HTML). HTML for readers is Quarto on GitHub Pages.

Repository Structure

ThinkJava2/
├── quarto/              # Quarto book project
│   ├── _quarto.yml      # Book configuration
│   ├── split_book.py    # LaTeX to QMD converter
│   ├── convert.py       # LaTeX command converter
│   └── custom.css       # Custom styling
├── book/                # Generated Quarto output
├── code/                # Example Java programs
├── figs/                # Source figures (xfig, dia)
├── ch*.tex             # Chapter source files
├── app*.tex            # Appendix source files
├── thinkjava2.tex      # Main LaTeX file
└── Makefile            # Build automation

License

Copyright (c) 2020 Allen B. Downey and Chris Mayfield.

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. See LICENSE for details.

About

LaTeX and Markdown source for Think Java, 2nd edition, by Allen Downey and Chris Mayfield.

thinkjava.org

Resources

Readme
Activity

Stars

87 stars

Watchers

7 watching

Forks

55 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.