From 1933df27896679c5ff603edcbff0296b3b885e02 Mon Sep 17 00:00:00 2001 From: Tyler Conzett Date: Wed, 5 Jul 2017 14:58:38 -0500 Subject: [PATCH 001/448] Fixed typo --- source/Java4Python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Java4Python.rst b/source/Java4Python.rst index 53ccc88..068247c 100644 --- a/source/Java4Python.rst +++ b/source/Java4Python.rst @@ -676,7 +676,7 @@ examples shown in the table we will use a string variable called “str” Python Java Description ========================== ======================== ============================================================= ``str[3]`` ``str.charAt(3)`` Return character in 3rd position - ``str[2:5]`` ``str.substring(2,4)`` Return substring from 2nd to 4th + ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd to 4th ``len(str)`` ``str.length()`` Return the length of the string ``str.find('x')`` ``str.indexOf('x')`` Find the first occurrence of x ``str.split()`` ``str.split('\s')`` Split the string on whitespace into a list/array of strings From 35d8a74f764d0006cdee1a9a9f2c326bb950d187 Mon Sep 17 00:00:00 2001 From: Tyler Conzett Date: Wed, 5 Jul 2017 15:00:38 -0500 Subject: [PATCH 002/448] Updated description of typo --- source/Java4Python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Java4Python.rst b/source/Java4Python.rst index 068247c..50b0d4c 100644 --- a/source/Java4Python.rst +++ b/source/Java4Python.rst @@ -676,7 +676,7 @@ examples shown in the table we will use a string variable called “str” Python Java Description ========================== ======================== ============================================================= ``str[3]`` ``str.charAt(3)`` Return character in 3rd position - ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd to 4th + ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd up to 4th ``len(str)`` ``str.length()`` Return the length of the string ``str.find('x')`` ``str.indexOf('x')`` Find the first occurrence of x ``str.split()`` ``str.split('\s')`` Split the string on whitespace into a list/array of strings From b6389c8d7b7c25d87defeb4b2a541af58a529312 Mon Sep 17 00:00:00 2001 From: Tyler Conzett Date: Wed, 5 Jul 2017 16:25:21 -0500 Subject: [PATCH 003/448] Updated description 'Return substring from 2nd up to, but not including, 4th' --- source/Java4Python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Java4Python.rst b/source/Java4Python.rst index 50b0d4c..e679d23 100644 --- a/source/Java4Python.rst +++ b/source/Java4Python.rst @@ -676,7 +676,7 @@ examples shown in the table we will use a string variable called “str” Python Java Description ========================== ======================== ============================================================= ``str[3]`` ``str.charAt(3)`` Return character in 3rd position - ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd up to 4th + ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd up, to but not including, 4th ``len(str)`` ``str.length()`` Return the length of the string ``str.find('x')`` ``str.indexOf('x')`` Find the first occurrence of x ``str.split()`` ``str.split('\s')`` Split the string on whitespace into a list/array of strings From 31b77bad73b8a46dc73315f4b033f49d0ca55d9b Mon Sep 17 00:00:00 2001 From: Tyler Conzett Date: Wed, 5 Jul 2017 16:25:52 -0500 Subject: [PATCH 004/448] Update Java4Python.rst --- source/Java4Python.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/Java4Python.rst b/source/Java4Python.rst index e679d23..a403937 100644 --- a/source/Java4Python.rst +++ b/source/Java4Python.rst @@ -676,7 +676,7 @@ examples shown in the table we will use a string variable called “str” Python Java Description ========================== ======================== ============================================================= ``str[3]`` ``str.charAt(3)`` Return character in 3rd position - ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd up, to but not including, 4th + ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd up to but not including 4th ``len(str)`` ``str.length()`` Return the length of the string ``str.find('x')`` ``str.indexOf('x')`` Find the first occurrence of x ``str.split()`` ``str.split('\s')`` Split the string on whitespace into a list/array of strings From c1457057c8c81b93165bbca7bb8d211539db4b2b Mon Sep 17 00:00:00 2001 From: Brad Miller Date: Thu, 10 Aug 2017 09:44:10 -0500 Subject: [PATCH 005/448] updates to work with runestone 3 --- LICENSE.txt | 1 + {source => _sources}/Java4Python.rst | 0 .../_templates/#runestone.html# | 0 .../sphinx_bootstrap/globaltoc.html | 0 .../sphinx_bootstrap/layout.html | 0 .../sphinx_bootstrap/localtoc.html | 0 .../sphinx_bootstrap/relations.html | 0 .../sphinx_bootstrap/sourcelink.html | 0 .../bootstrap-3.0.0/css/bootstrap.min.css | 0 .../fonts/glyphicons-halflings-regular.eot | Bin .../fonts/glyphicons-halflings-regular.svg | 0 .../fonts/glyphicons-halflings-regular.ttf | Bin .../fonts/glyphicons-halflings-regular.woff | Bin .../bootstrap-3.0.0/js/bootstrap.min.js | 0 .../static/bootstrap-sphinx.css_t | 0 .../static/bootstrap-sphinx.js | 0 .../sphinx_bootstrap/static/img/Facebook.png | Bin .../static/img/Facebook_icon.png | Bin .../sphinx_bootstrap/static/img/Twitter.png | Bin .../static/img/Twitter_icon.png | Bin .../static/img/logo_small.png | Bin .../sphinx_bootstrap/subchapter.html | 0 .../sphinx_bootstrap/theme.conf | 0 {source => _sources}/fraction.py | 0 {source => _sources}/index.rst | 0 {source => _sources}/somerights20.png | Bin build/.gitignore | 4 + source/conf.py => conf.py | 7 +- pavement.py | 97 ++++++++++-------- requirements.txt | 2 + 30 files changed, 68 insertions(+), 43 deletions(-) create mode 100644 LICENSE.txt rename {source => _sources}/Java4Python.rst (100%) rename {source => _sources}/_templates/#runestone.html# (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/globaltoc.html (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/layout.html (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/relations.html (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/js/bootstrap.min.js (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html (100%) rename {source => _sources}/_templates/plugin_layouts/sphinx_bootstrap/theme.conf (100%) rename {source => _sources}/fraction.py (100%) rename {source => _sources}/index.rst (100%) rename {source => _sources}/somerights20.png (100%) create mode 100644 build/.gitignore rename source/conf.py => conf.py (96%) create mode 100644 requirements.txt diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..4344bf1 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1 @@ +This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/4.0/. diff --git a/source/Java4Python.rst b/_sources/Java4Python.rst similarity index 100% rename from source/Java4Python.rst rename to _sources/Java4Python.rst diff --git a/source/_templates/#runestone.html# b/_sources/_templates/#runestone.html# similarity index 100% rename from source/_templates/#runestone.html# rename to _sources/_templates/#runestone.html# diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/globaltoc.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/globaltoc.html similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/globaltoc.html rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/globaltoc.html diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/layout.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/layout.html similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/layout.html rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/layout.html diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/relations.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/relations.html similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/relations.html rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/relations.html diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/js/bootstrap.min.js b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/js/bootstrap.min.js similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/js/bootstrap.min.js rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/js/bootstrap.min.js diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook_icon.png diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter.png diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Twitter_icon.png diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/logo_small.png diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html diff --git a/source/_templates/plugin_layouts/sphinx_bootstrap/theme.conf b/_sources/_templates/plugin_layouts/sphinx_bootstrap/theme.conf similarity index 100% rename from source/_templates/plugin_layouts/sphinx_bootstrap/theme.conf rename to _sources/_templates/plugin_layouts/sphinx_bootstrap/theme.conf diff --git a/source/fraction.py b/_sources/fraction.py similarity index 100% rename from source/fraction.py rename to _sources/fraction.py diff --git a/source/index.rst b/_sources/index.rst similarity index 100% rename from source/index.rst rename to _sources/index.rst diff --git a/source/somerights20.png b/_sources/somerights20.png similarity index 100% rename from source/somerights20.png rename to _sources/somerights20.png diff --git a/build/.gitignore b/build/.gitignore new file mode 100644 index 0000000..5e7d273 --- /dev/null +++ b/build/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore diff --git a/source/conf.py b/conf.py similarity index 96% rename from source/conf.py rename to conf.py index 56aa4f4..fd96cdc 100644 --- a/source/conf.py +++ b/conf.py @@ -9,6 +9,7 @@ # serve to show the default. import sys, os +from runestone import runestone_static_dirs, runestone_extensions # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -23,7 +24,9 @@ # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.mathjax','luther.sphinx.disqus','luther.sphinx.reveal','luther.sphinx.poll','luther.sphinx.video','luther.sphinx.codelens','luther.sphinx.activecode','luther.sphinx.tabbedStuff', 'luther.sphinx.assess', 'luther.sphinx.animation','luther.sphinx.meta', 'gatech.parsons', 'luther.sphinx.datafile', 'luther.sphinx.livecode'] +extensions = ['sphinx.ext.mathjax'] + runestone_extensions() + +templates_path = ['./_sources/_templates'] # The suffix of source filenames. source_suffix = '.rst' @@ -136,7 +139,7 @@ #html_style = "style.css" # Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ["_templates/plugin_layouts"] +html_theme_path = ["./_sources/_templates/plugin_layouts"] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". diff --git a/pavement.py b/pavement.py index ea8fa18..7c18686 100644 --- a/pavement.py +++ b/pavement.py @@ -2,62 +2,77 @@ from paver.easy import * import paver.setuputils paver.setuputils.install_distutils_tasks() -import os, sys +from os import environ, getcwd +import os.path +import sys +from socket import gethostname +import pkg_resources -from sphinxcontrib import paverutils +sys.path.append(getcwd()) +sys.path.append('../modules') + +updateProgressTables = True +try: + from runestone.server.chapternames import populateChapterInfob +except ImportError: + updateProgressTables = False -sys.path.append(os.getcwd()) ######## CHANGE THIS ########## -project_name = "java4pythoni" +project_name = "java4python" ############################### -try: - from paverconfig import master_url, master_app, minify_js -except: - master_url = 'http://127.0.0.1:8000' - master_app = 'runestone' - minify_js = False + +master_url = None +doctrees = None +if master_url is None: + if gethostname() in ['web608.webfaction.com', 'rsbuilder']: + master_url = 'http://interactivepython.org' + if os.path.exists('../../custom_courses/{}'.format(project_name)): + doctrees = '../../custom_courses/{}/doctrees'.format(project_name) + else: + doctrees = './build/{}/doctrees'.format(project_name) + else: + master_url = 'http://127.0.0.1:8000' + doctrees = './build/{}/doctrees'.format(project_name) + +master_app = 'runestone' +serving_dir = "./build/java4python" +dest = "../../static" options( sphinx = Bunch(docroot=".",), build = Bunch( - builddir="source", - sourcedir="source", - outdir="../static/"+project_name, - confdir="source", - template_args={'course_id':project_name, - 'login_required':'false', - 'appname':master_app, - 'loglevel':10, - 'course_url':master_url } + builddir="./build/"+project_name, + sourcedir="./_sources/", + outdir="./build/"+project_name, + confdir=".", + project_name = project_name, + doctrees = doctrees, + template_args = { + 'course_id':project_name, + 'login_required':'false', + 'appname':master_app, + 'loglevel':10, + 'course_url':master_url, + 'use_services': 'true', + 'python3': 'true', + 'dburl': 'postgresql://bmiller@localhost/runestone', + 'basecourse': 'java4python', + } + ) ) if project_name == "": - print "Please edit pavement.py and give your project a name" + print("Please edit pavement.py and give your project a name") exit() +version = pkg_resources.require("runestone")[0].version +options.build.template_args['runestone_version'] = version -@task -@cmdopts([ - ('all','a','rebuild everything'), - ('outputdir=', 'o', 'output static files here'), - ('masterurl=', 'u', 'override the default master url'), - ('masterapp=', 'p', 'override the default master app') -]) -def build(options): - if 'all' in options.build: - options['force_all'] = True - options['freshenv'] = True - - bi = sh('git describe --long',capture=True)[:-1] - bi = bi.split('-')[0] - options.build.template_args["build_info"] = bi - - if 'outputdir' in options.build: - options.build.outdir = options.build.outputdir - print 'Building into ', options.build.outdir - paverutils.run_sphinx(options,'build') - +if 'DBHOST' in environ and 'DBPASS' in environ and 'DBUSER' in environ and 'DBNAME' in environ: + options.build.template_args['dburl'] = 'postgresql://{DBUSER}:{DBPASS}@{DBHOST}/{DBNAME}'.format(**environ) +from runestone import build +# build is called implicitly by the paver driver. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..7dbd163 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,2 @@ +runestone>=3.0.0b5 +SQLAlchemy>=1.0.8 From 78f606da3b3cff825246ead3996a41fd040cffc8 Mon Sep 17 00:00:00 2001 From: Brad Miller Date: Thu, 10 Aug 2017 10:22:18 -0500 Subject: [PATCH 006/448] more updates for runestone3 --- _sources/_static/.gitignore | 0 _sources/_static/activecodethumb.png | Bin 0 -> 92708 bytes .../_static/audio/Example04_Tour01_Line01.mp3 | Bin 0 -> 87168 bytes .../_static/audio/Example04_Tour01_Line01.wav | Bin 0 -> 273068 bytes .../_static/audio/Example04_Tour01_Line02.mp3 | Bin 0 -> 115328 bytes .../_static/audio/Example04_Tour01_Line02.wav | Bin 0 -> 361772 bytes .../_static/audio/Example04_Tour01_Line03.mp3 | Bin 0 -> 310985 bytes .../_static/audio/Example04_Tour01_Line03.wav | Bin 0 -> 978092 bytes _sources/_static/clock.png | Bin 0 -> 23942 bytes _sources/_static/close.png | Bin 0 -> 4497 bytes _sources/_static/first.png | Bin 0 -> 16165 bytes _sources/_static/last.png | Bin 0 -> 15899 bytes _sources/_static/next.png | Bin 0 -> 15743 bytes _sources/_static/pause.png | Bin 0 -> 15344 bytes _sources/_static/prev.png | Bin 0 -> 15719 bytes conf.py | 3 +-- 16 files changed, 1 insertion(+), 2 deletions(-) create mode 100644 _sources/_static/.gitignore create mode 100644 _sources/_static/activecodethumb.png create mode 100755 _sources/_static/audio/Example04_Tour01_Line01.mp3 create mode 100644 _sources/_static/audio/Example04_Tour01_Line01.wav create mode 100755 _sources/_static/audio/Example04_Tour01_Line02.mp3 create mode 100644 _sources/_static/audio/Example04_Tour01_Line02.wav create mode 100755 _sources/_static/audio/Example04_Tour01_Line03.mp3 create mode 100644 _sources/_static/audio/Example04_Tour01_Line03.wav create mode 100644 _sources/_static/clock.png create mode 100755 _sources/_static/close.png create mode 100644 _sources/_static/first.png create mode 100644 _sources/_static/last.png create mode 100644 _sources/_static/next.png create mode 100644 _sources/_static/pause.png create mode 100644 _sources/_static/prev.png diff --git a/_sources/_static/.gitignore b/_sources/_static/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/_sources/_static/activecodethumb.png b/_sources/_static/activecodethumb.png new file mode 100644 index 0000000000000000000000000000000000000000..c23b900464eda9a545ef8c8120475477e2e0e059 GIT binary patch literal 92708 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 b;=um}cEAZzlC}T;00000NkvXXu0mjf)cHV$ literal 0 HcmV?d00001 diff --git a/_sources/_static/audio/Example04_Tour01_Line01.mp3 b/_sources/_static/audio/Example04_Tour01_Line01.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..a29d503c17a2be30265608b1e102b7037573f500 GIT binary patch literal 87168 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 W`Gkgv{r#u@`mO>D{(qaV_`d+AD+o3K literal 0 HcmV?d00001 diff --git a/_sources/_static/audio/Example04_Tour01_Line01.wav b/_sources/_static/audio/Example04_Tour01_Line01.wav new file mode 100644 index 0000000000000000000000000000000000000000..6fe9d20b41896004f27edf03dfd8dc4f04cbd75b GIT binary patch literal 273068 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

B5s@h#z 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

iKE<4h@y-l?T$no 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%0A-=R8l|%gye1SesT}@YSYr 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

    c7H!|L6Q2Z=ckrz

    H^n)rK3>rabhY%OKL@uH03f&RW(+rALPDhrOztt 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�SA4!C;~1-u)p0U!m=^NZ#CY$}hd2%DTVf++s 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

    qX=CI~7PZQhkk5VM`-vT0MP7OXuoq2kF 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 M@7f+zk6K9%r=@PIa`@|roKKB%@=^*bX`Wu3|` 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

    +9kFac(y28{QF)!cO>FY zJni({qo>b2&&Jc=0r=z@!=9t;IEum@Kz4+0J@@1p51wmEXqSoa^xsD*`0ME(9s5}D zqyN61j`v9U-CLeB+i)cVBgVveJ?C_yS3Gy*c|R<;?*ET?&t3h0KU>kl|9_UAcS6M( zwBNs;qdj-;xof~rxQBdf_q?y3c6s9%PY-(T3&MW1(bFsX?^Yo7AbvdCJkN{3_Z*&= zfi`=_spq*dIM%?O5onR;44(gJZ1cQd%J1uX+U6O9798zqfsSi?o~CD9c=q!2f#)dC zJLmcJ^uOn-o@e1{rKc}F*Y@-f{rlRUc6vsDXViL*_4KS~PtP{)_qgz!-!oFN5qtd~ D6wWY) literal 0 HcmV?d00001 diff --git a/_sources/_static/audio/Example04_Tour01_Line03.mp3 b/_sources/_static/audio/Example04_Tour01_Line03.mp3 new file mode 100755 index 0000000000000000000000000000000000000000..bd88e1cf2821111497a65d67daccc67934bba444 GIT binary patch literal 310985 zcmbrGbyS;O+OI>kbd7NihdO7Q}1DH1|(*8;`etw0OKy%e`XUtC(+ zVs-lVbo!n(=bLY4zB%ih{I%ESS$Cdw@#EU}-g&~$%a##<0gEY~!X}h}!oj=FtI9p& zRx7nujMf#&?wB7+D+i~hwM0s&l@7|oUP7dh!-#Si5kPW!eJKfg&QGujKmriNj`i#x zl4a0owuHt^QGQ}zlDnV#cAi_69!AZT#6Nls^jnl(@;Tpm?rc?x$F%N^5o21do2}}X zkHgvGYSv#Pgc%aXbiEm$evzBxWRcWvkhO;*UYbKn&Ev8KfZr{^D+GQH4Le2N)bOC z{`Q`yAC?nFF|d-qT}Je){M@hV-#>p~`(0ib&i>r0e*KT<5kLM`n&H=#t$UwO|8@rs z&F(J0Z;MT-@58;wQL|MVH3M^cOE{hoxjv+Ic+`Px9#(FG#n)d%)IRIh^Fb zG33+Dw#b)ytIQ9b5msTcZzxgT@8gij0jn&k|iRRVPS*_^=^n) z*1nu;{{V(3mmpTsiv&b$%_lQ3fpH-O6Er{`0>yt03<2H}((EB1?YWMUn@E)r;}Ak6 zt_H|BC=x&gfT$|}JZn=?fdhums0c|){2;7Ejv^8&0|;vXwFe2gsxj;yaKKuDAc|Uu z1gK{8^XH#r00Ec|padg8KoCuRMM47fL!-!}TM#*9QLWnuJ5s<<3p>>@7X!x}Ra9h2 z5DEFflb=6-eo+Ca3?K!`KLNK95Xxv3MxY7@V^pLc7Armpkxl&3tKeWDD*rO|n;#O@1uq zGxz;w;!A|bbX&V?^M0`)r8eKIr~DDGAP&*W!lg+XH7*h-tc9gBtoSj?O6et>g!t_6 z4`p@OvWUZV#H|SSK6r#vkGtn%>xyt~ZLzZM?ppHLNu4ky;`Jp67`1~?mFW|Ln)>5=wQjRF> zJ&o>4!?^oJGu4aLp{rFlw>R_ilibUU-sAWW z;r@&EjA;$gYdD;FJZZ}W{?x$lg_6s2-3C?}V59*yiOrb~8Z{JmN8OZ)`Q~w(50Gs^Z_1ezx~8Kl{!XnFTLknZ9QNN+VK2C3u=ELZpa^(^^PY z9D3Id6i#!OzxhTHQ5$T<{Hd+9{g0@nAQT8g>mGsiBGDXUir&g}U0I=ed*qrNu;8esfn* z^zffsAs^!iwW~O)%JOqr3K`-50rszK|I+r&B&M0J2v}B0Ty8{kIB2Ae2dFJ=t@KL$ zI&_Fw_@IP2Pr_Z(^~BrPgb=gVv}qL25%rn6|M+8uVv``9MWv^m-z@o3SOY#U{GwV8?jbc!K)Qsh75`v08yEfN!b z2Q2U~vuiK8Ih-m5Hp&aY!{^t;EE?b-2o12zDjy=)@VN#i#3=kMKp2 z00eLCn~4L5b0$k$2UU<5-YYodxdwsGP}NBcW=S8s_^kqxMmsUq25z|78;yX=jnm|j zHX@8fxw`5y-rlwo(oALK1^9K)24!H6IDbtNa=pM+i6~yX!u-3Uf`(T;%Ismp8 z(6H`8)sdi^mazk3Z9DEz=1YImP&FxOkS=1VpXX{qmhA@??8Im2S+$u9qon<$g(zq! z;5V@wG<@8*vrQ6g@HIOli@dyIgK}tLsKQ{Gg>EL)D?XixLHZWll?l$Io^V6BfYE`D z3vH^<$TRO&%0J1V3PzQL#q<4piT{qa8P*{bc$l{p6&dA5!w*Xpa53SGF(Dl}$^keY zggw*bBWJ>sx%G)9lf9sfmBLF8k6waFw_@&#s5L9lG7=W2jxO^^YMM+*@(BBXITo(u_9 z^3$?8(^dg=&h|wUwVeaxJjwH7@L4Znebn-@8sp{Pu*AHtkaipv>+n?5ZL5>^tb7S0 zu&$I$u-hrqX((#52s$^nzAIzdk1fcnap<0SmM*bbnp14AdfsJwA<(!KD`x~VzWKD_w*aGsaBbi;P&7mi`Q4pLlbFzBgJ zZZYE{F@bMQdFbPrgo9Aj)a;9R^0MTtabfC@JTi=IxWLYv~Y!V`TKu&G<#_&F;& zeN_WZDKUAZnB?F8ApX+!h-oDFecl$;42Y0eb@7JgeEHJA+02RQF;O;v=u%i^pheQD zY{q#FYu}oV#0LP0-6V+`T|CtINcVRD(n>a}eELZiG>HV1_Yt=E+g6BL5rKwX6O8Xw~7QvMLyxsJxsLmySLJPr8+`BA{<~^K$uw(sm4?NBAFEIaa-oI%Z_(C)5;9y={3(f$xCt2%kSvDz z;P|4K+GFb7WDCrQTqMTHzqI1BG`UsfYJklUj@v8}3U3pK7L*d{bBL(rV^majZSn^4 z3214FSPhLUm(@pB@d@}!zZoe|O8-K2LBjImMnUZ2z;fNo5srJ8=di7Ki-e^W*B;B9 zn@yUXH~02@m%WvS;fC_;1tXREgzrm7S~>RPXx=vF8kUxgCxYeuNt-J#>V37;Ev%Am zSt}z$?0P(YTGmL2)s~)c^@l8YB)(+phzaZcZqe{f? zdAxij+I#2C$Qy*MdiGGp`9qB*Xwtx2aki+vJsNAZh{9)r%duJQ^LlsI%N%9oxG-QZ z!F>P8LI1SBXZYU@erwxY+ARq1-g*;3FGGYKbEwjSM;)?ClS&F4vH-`#2nmMMu^RrH zW9jh(QAtSz3DGoBLr!r+YaDO{fDExFK}<+O2T&!DzpcX01Sl)n_V70Y0FN62z>V0~ z+-ZPq0G~;WemWQ|6HKh8;^(AZ(=)X}!Lr0qoF69uuh@A57;xE22Jp0M)&A+u;hbb) zx9-UqXN_bR!AJ5w;E8NA>rq!JsLohR?@rDxn%en9{c|-{yX?!%VEzw#G5#DYG62x_ zrn!wCZ*@(Xvrwh+;1Yk`cESjLsnxlhN*#^=g5D*VvJlNddsN|T_We9R=E-V`8`Vv$ zN}rpc<*4iIc*GPgv&H#8*0`q^w`;MY=kI?F4^9@)$6XxsH~4YU6?wFr=+0`{DbQj+ zlk;N_yd`K+d%O(Yy#n$ILKP1AUhpLp>RBA|TEgCU6A(1kezh{FewLO>LV{R^ex`eW zyL;j{|KHIz?{N4V>~*5ZLkRZJwz7(u@Q|u;T)o7N1W&?Vj{`&v^Q8|q>BQ`q;C!Q| zwFi@j&QrKs$W##5($bFoTuk~P@C*&m{Jw>=0C4pbp*{iRh19*^j*F4pLrexlS%V`H z;9HRi;&1?s)+q@{F8xYAYk-o7y5_=#H+ooPLLn1EM;+j0Z4;(CrBXJ5kgVZD(2#`u zXgbXGJ@cw3E% z3~nxe3|aJ;b;MMRk;sjfFo+662H!qWsQY9H7RGXNJtu-UXS@4oWXr(~qWa*Kp^Jg(kC* zkR()5r>N=c*JlPS38=i{msE)hWFD?JUN(rFNt|C&LukEUTQKI_i*y`J;S_>TQlPhy zW^!Vt^`$)49wksP+L^?_(R#t_Ig0Ng%zJjfU#}HDFleWh)qW6Yq_o(y!j5f--0*=7 zr>D;^cg@H10aF@si{dL^1w^tZSX-y55#VM@QX|z3ZQ^6B?>KGVO?=ie4>ajEFYS9I zB`HcdMo+_C`jRTvMAR0GPx|47pLXrX&V4zuY>28KcRh5M3NQSwR51^NztYa)RceLA z=AvC5Q!RB{I7o`rAVo%cV(VwKkfDy1#)US`bkiDbU$1nF6&psiDlulO+CTgiKk?8k zlxYk;6BDcir$0BRBQfNqBOO17Zz%kuWqymqlm!zBJT#+MjZvqJAJRPJAp*J{`pUz| zbTJ>1enc=2#9*PZog1;ln7I};AN#jx0U`j&Y_5hE~2G%TJsV+oPq z41F1+&PxI@k0c@{R@I&_h2*b7mx(I0`NPlQ$bNG^&V$!9LP{!Wz)3Qk6rnyLxRh*8 zB7=#iy4Is?Vs;!N12(+Zs|-lfa z1b;`{l;v;zpACcRU40}RX&gD|7(-@eMD$RUrX&SC=0qRqc_M3YF^1SV9SSe^7@)|Y zl48Hg!efSOOSMZ!&a+?wZJgA}e8i>$aZV-+UbPZ&6>c#Cc|2OKrkHKff!2Kn;sKc5 zyb^qJV_~qik_BI`(K9Tv^E*XM_IAT3>ExaU8yA`kT*9AWr4wnfCy@ARAf6X zDKS8$44$f`L2}u!LYaz|)H@v|9wwuqaI2KN7#IbXbejwD^N{5ssP`_IFir&gKPX*K zDQSp6nb@HL$+hZlAm&fONnH{;H1CA@JrD*`Gu5vr?Mm;pdyyWBG8E%hH>bayxQpLq z$GftwP;`%R)@T-3fVgZX*ULo!m$VR^&_2Xs0$s2PaYQnb0aY?)`Q*$Z_0@nKKs!+E&1bl!qOA2F5b3L zw-r9wRp_4J-g@c3*yH?_?Q6_^@Zs7fr4?5I?8}&l9>N*2O&9}WGZ0Zgc+d}E%&=Md z2sViyunDZ0_!!lgyQHbdMC}}H%_za*uiTa)VmL8p2-L473g3c9t_?wE;nWk58M6K1 zS)EiZyQEI)gHnT`$Waah8M`SBeHa1rQbXT}8sr)X8u!%@?+y`@GS|^n{#q~Syvk9=JRNKSUpnG{Azb?6 ztyp&_&&dp(`13KMxCUzm#fNrVU(B3V17?0`_}<#quxDN`7lw{}h8K zI?U?`eSEmeQf}GNa$K+%vNFXGh68UR`&h1J?V`U}OgI(rB5|dc$_R-lH zpa$t^EH42{18GJ&Iu0gB5kxOqN~E!@#Gzr8V@0*`lFo7L{&BMB+ib=<7Mqe=rC`7~ zA@2{QAPO!SIy^rPQ+Mdl5r$eumQKu-Y%>9c8jv}VT&TH{uFJ-gZ-~4+*SnyD6l+Vm z+{`(#Mplg9$hqlpg0C1l$ZnA#KBd(DEk=P?I@@z+hTr6bH>xIxEeY>l6FUUFZmeB-9>wyq#JWd!%%t)Nz7E`O1d8k^Xq4jnaEZ=le)7CH2~`aGgiEMES-I zw>fUwj!=gHl!G~m#;yqsL{nrO4L7a}=}r0CS5zx9OJM>|H2wV3E!gSRnZ+xyx_?{+ z|6QB?*Zf}{3B)1j*GBRO1PEw}Dw*L=Dp>?K#TinMu}0%a_*_)s31jiU7TlyL&&0tn zoMUb5wtt$FYBUGJnv#Q%Kt(mOG(56TR|fzn@e8Fjb0njt=GYwss;5eqMUmWZ(KFL# zIiis9Ps|HQ%eRcIpLrmpTWOXz!bre^0P2NHZ?7pnA|lIv?xEEDctz>Y$(?-3VYv_^ z^4qrUXRF*2xqPglC%h&?at;zPAIU1>$}jRld<(@9(!cmb7*P9 zJYTS@EnyN3@`PJRItQqZa^{uwY^@ekq3+m)mDx7*N;yqZ$~DJ97^#v{w!?|$uk}`1 zBC2w&!-7Yvjj7;caKS>2$bgV%(5<}2Z6ZMfciXnipa_6i7JMVG6H{1o-Ndq%!MO&Vk+wF3FHL#bIomLK+LH>M?9)Ah0 z$h;pG<{A3QJ}g5mSR)!kYeu+gM2-`0H77D=o*XJ$w+FppjN^U^V$t*2lBhr6Ig0Jn z3UNEse}>Z$d6qlDPr^HNZZ4|K*L@RSBEX)k=Q39D(dmA)9{V0Ot@(9S*n_a$FRN@a zz#$8$s5fJ_o(}JB8_G~W7lvGXW{mFe`ftJiEfU>pbR^`xbrG{j=0FM2h@i?cXJ`#q zM%>s^a!I7mSaeozrOM{;pgD&!F@ees3$0{m5`CWJ6+tbJj|v@DjXAs%!+WZB=0zMe z$dv(PpccZzXjkEZY-YW{Na?F`R2Gxo9IdA*@0YUC_*)!8-bxEC>&BYu592+YFZSr0+G~DT71s+ebH~Qcm#PLvKl3iZjo}1m z%S?Nc4vvoErmWau4d#`dWwxK~-V6iPkTd22cgzk>){3}M9$Y$uuDj^!M@|cPCB+(b zmRZnILOD7Omu*H-dhhMMcORb*GKAp$4gaN<|7VZETBV` z?u&g|J{BMt_?+I_gYM6{BKIvi1Y3Q^n)0RjHC z9z_;!(-KB;3qkS!)CT?*i6O)-l>Y6yHOSN0Pt37I%=OLoeKe7C4H5%4bV6M_B8eOv zqv(+WKp@w^iLV}xlYrS}$$+QQ;n>ZBP$QB=_Ze-$tAw9@btIo=5*uF5b7MI95dr*cs(wO`d;=o0ViBcobJ+N93(hq94myx)WVohx} zcP_cm(noe+dM@&(@1N7&HnxQ0<;7ygeI}2^vSOem! zRKv{CQhXtN_gT{e*pUi<_92jM<`rvHvL{zMS}p#~j_z2YMfc;8owNtJtK+s9vRvv_ zRM^PMbuWMRxcg|%LzxE$nB6{RK`A;GKH@JUmTMa^6 zR6M+P4I=El9kFsGdY|%{V%-LrUL!$Hg8o~TG&|oAMQu>h4nWrqnss6xIWLkz?wwF+ zvD`50!!spC7e18Wr7dMKc26qo+is5~lGVE=?%Oc447ZwnpI3I2;bX(PoSm|=&i7%j zxO?9mRM)wo?0Xes4ssSXC5;6P-3E8R=1>>t#jT=$~eaI+N7YKGDJijw@f zsi|uyZ9b;@pr8?2r&n0>Gv=0%meSBBg)2Mrdpc7+MBCRvvLdWs_Y!Srr>aLcb~xKz zorW}rOfKN!kCQ?i-e?MFUsyb_nack52g~D1j*803=wiVFPFAXTx3@~L}Db!($AP+^8v$DDFpo8kf5 zW-GKjHfxg{(kPkL^w06&q^LSH?=cj5G+x>)@?nQ^*}HD&Mot-5R$}&(IPaJ?XtJ7N zrY4VO0f~CdA|S1fyL9{@Z?{jcTKlBG>u#+M_#&UlrP|7q7(%>~clC-X?z>_Z&B?z^ z`)}GNB5ppkui5P2Y>posg}67FWJd-6CVu8UPfnts`sQw?0gxq*VZI!EwGlSohLY2b*Vc z(Tx#0%S*}W%uC2msy_5ZM>eZM_q{XzjPM!bD9hjcnDBKiJ8Pll<6V?p)+vnceFuM-Il#LddfY zfy}8dxaioMbvM%Dc%A$o*5{1jT_^UHlVXF@hW+u!PSUpYUu+~w#u)~2>84}amD$3G z%r^_raw#g|`lb`uh7m?iDAl~)n}vIO*D28WW>C2Btoiz`?Q-H164F}dY_#2DG%b4a zqw492abZ9#+tJR{$5M;6xx?7*ix!QI|JL&TL(G4R#OxH~L5>~(fFT{ujA;{}6=A9k zgSB8_UZfib(lKoy*(D7OQi&oYUUe)du;&`^pVtY0Byc@=z&*~%4KYu*a9B6pqBK#v zs#mW@B(c0^eq?+M97vr6D%^V_7KiimGN{kGx97+#?VJJmGnY08F*BcIo+vQ_Si zXw^@DmZ8$x3pGaZA63$X3U1%yxs=q>=4tEWZ!;CIkX-d}og2X&@Z|@^l3m*N~CV6 z!YXl9;VIVV9P#FH zn03Q=u7`4VhfBG+E&O-zzoTv86LO#M(Exx9Zf;VZ6(c|du5$2Y45Yj*Oe7ICreF-# z_Y;9_8b7dPG*Qk47Krbwn|i2JQ}R3zzla~Ch_Ehb04nTO2vaACTdWn=q1Sb5J?BYY z(B{mj&-4TRy(g@bZvWAIL5AJGp{@LSs`_-=YwFI_38(pDfS1kv{{4`M>((F1mm!|} zpEi*dOQYW|UirPVnq{g=v`lgr!|R)VVvX;<$_#qBU-Toh<>nkO?t2KIdgC8T zj8tZ7c8wz*0R>4$rltYHl=DtbdQiz7Q}5g93XLyl)-ZJ0rS5HvwKrMcG(WvG5^aP& zbfLVY4E}IKueSgc`C4{?D1yhRBf010^k#iKQ@rIhi&`zQMg8VPqb|Lr4f6>k<0k*n@^kQOmU$~_zIlc!B(zeDB6050t14}YvN=FCH zI3sb^c201{m};0);_aOJH3qHxS{j<==Q)TL&N4e6em?LN*z?bS{?q-=l4iwCssAeQ z-?Yv5Lqh*Xo2&)GiCoG9NvMGV?QW*H1VJI^=#G+fQzwm^1XKW3B0%D@#kf}N=^9r_ zjDpdzXcWlIwKr9-i4DbbYUvuMiYTEi{q6u}+U{!<+_{@ylLJ%eeaonSp9- zkzjb*z}s3+>6)cFFhrJVlL4zN2a7E2=^;P;);XqUU#W>PFY466Z1EEJ+!ZXwy|j;f zF(VSZIJ(pk#b~(#``JtR-D|+9#=@rOE#k6W=-v)xBb9q#V9DgPRgpl)3tcNdR{R7X z`(dY0w%Phr2wMQ+{bSq%-OsIAUw?jq!YdzD5C1&cMn2fuy84GFF@I}Y`x=AoTMq?L zj~#r{1Cbp*Q^CXt18JoT9tbm=McG@sWxzaz4LaP77SlL24HrdKeVWTphm|d9s=n72 zK3dnw?tDTLdt(nv#&Y>Tno;4ZBoA%wRigru!Aj*XDZ6)mCD8VaoXz`$Jv$j?Q?yiaD zAHrEvTFz5heH)8S86s3mx|Y0~?_OGFHR)Px)Ur|_-$3d<-Vat{Q1x-c?^p~63WE<{ z+MPC7iOqdRN-gK-k4dVDSWlRJ&C)|`I>;HlvJ_c*XF9uvQ`1L?%zoosh!5SLb!q7A zTevX`q^{De=CgIW!PT~fyBL4`fvHb97JrWTf7z=4*G2Mow2dkp{OEu6f2{d5urC~d zZ@Dv(C1W^X89ocfg(>A;U_qv*mEM^kNg0S5)%)ZqIT}gMGd35P^{%Ap$vJB#s~xZD z;L1CzZ zc=F@#llg+6uD1FbH)7vLU%WGqcJ?tSVIaaT=?RdWrj}?q-ge|mh?x(gpQ%eGV3`mOpsNxVEBfV$1X6NN|`F)`uxGfTT{V}oV|={^>^K0OdHzz-B7|PaA zfTrnZT0{e{qjFMKc!@E~I2UmxQKgX(rdFYn91~Gx*0f#KwqK1cza_tpe(Xg@u_zNX z^Yzv})SY!th>6HE$?1ThmVLltTowd#0h*fK+w#8_H z`9Gxize4`|_%GVmZhxb##8jyQv`HdjwVNuVEru{i-WQX+mU2n7fA`G+nhYt<{aTl^ zMV;y?kWp@U@uoIW04l6vxkMv@vmXBAN#lUcl&@u!fG#EVPvTNBixU0vLR;`k_C2N% zyViPrD;c3ubQurCJxI&N+@+nf5GR=WY3T)n}TX57gn z-XK(@j8WxE>sVYo+lVyUt9|wIq_n%=RZI{3gjX27(>iF}d?zH7>0VvbWcLp-U%e*+ zi>#?eYjtBtL5Qn{oyDn`TQp)%bQ~Qb0v6?l+bg@83+F9WeTz@mKh$4rE|O8dZ7!u{ z`W)k+&ty6!29=U6+d(^soL@HLhef>}^y9C3y% zybEfQ$JAX?Fq3HU-Q|ax4a(E1=Nt!wp(5V90_j_DYyvK_c)Vw5URO<;oa93C-qK^; z%C$|ZuHmPm_1Tr{18Yv>4qiqrHzwF{J}nf34K&R z#!E{~>7v52$~44PhFbkqEqLz9GL305~8G6+xeEE zc<)oNy7f=?q-{F4(6v&rz3m5>V7{1WR+K|c{)mPIbOKi(iHbMPKlMr#ADFaQTv;@D@^x~hQ? z#K}9S-NVoLeJWvni`55UmoWL92fSp#MiCb*7 z88!Equ=`4S^}LfC>w;PhGhanA_rHSu&1)JqHj<5M4K*uqA;E(W9Ua|F`3#nTVcoCo zd#Wf7Tt>$rJTjfATb$gJx0mn}cO%D*Rb!kSlekJV5-~#<-T)t)btFix%`j<|A z)7Dc$V{b05+cO7P@41jpm(dl5&z+mLM-Buhj2Jdlt@1M2`H6hX7Sn}RtXQE1c@h@f z#ils|j%y2#2(on_cLz82h>H44cPhPqmTRA$l*mgM1Lhw2Zc;IKQ8O%`s~fB6r77fA zK)ijP^;)Y9$>kD}XM_}@kC){M?*(CQD3*VM|Jh(HU(ImOxQuDl;P&`b^SIHtQ8yKC zq>R(@`iq9{ADXz18x^zI{Q+zXGWV)Y7Gi#x6nF81Ic2z(sn$JU%6}AH?>$xeW~iaN zoK`o_qahnRNEyA=VT%7LIu*;iJT(%2(V8sJGS9n9VUd$^CY@ZarIAH84Ss1c%A~Hk z|D(PA!l?ir?^jVe$a+q%D_+d2VaH#q?8`yR zOY2~Q(j39tiqd;3jA@@-F1d5c7-Q|c?WzUt%Q%_yyVf zeCw6h)wkU>^xFb8+{#V9({HsU>SkU|31^9CkR2b}+%U7Jia}OubU@YbpQ!73u01s_ zNGr6^=IZEg5!UmpDAf^6uhEt85?hg=X*zbXacpJv1#u@d#)YQ@JAawxjgR225H*bu zk%4}$AJ=76%AmGB%IuWi9&ypah$jXc4&k<4W?mnb-=y5zdUHj@8}&Av=gQIbmaB=! zak_Ce(vD$Vk(q=#mzY~&;|BKdws&NqaqHugF_HtDin(Qme|$FT@3?6q~GNo%>xQjlEX+1$*+z-(dr-8yQNz7PQmsik@uGVl)UDaz{ zni(CSx+b9uw&ip#LpjQ{1;Iv66i3D_wW*ZU%aJ~f!x6VdNq_YVjX;`kS6TpKO^`SQ z(#}GPmrspWZ4X0I+`wk8WFQ|xHmXiHv@=OZ&WCN40qL4Z?0wAX>X0!CO?jE8ujlrr zf8L1joNw)cM4dO$fzBW!L)jlBib7LG$r`x{6}|Ecm_(nDp?r;HD8X#4eRYmxtRBPH zhh}P_j{`;1t)>HJh^7`U(X8;VOI^o5b)Sr6<9wvVrDP(Wp@SVL^fV8^M#UeMtTHee4_4uNv;mX!t~}BT-6;k-#Z((U2?Z<8ia4_J z_=%=DPOYU35;sCKqf@FHbZ*)d`qa@~eQk59HlyiP2RUqQU7pUXEhV=@Q{uk1F=`_VPK^R}(E z+7!d0J@u!%69ErUPwOmD(LCg+Z1DO+JuwDP*@IXv+Km#^0?&QZMMVXF1-#IrQIKEfhk7C1SlN{2dSANpeerwSt1VN_O!ecosw5Kw zwiZcJ2S>0*=P3G?lS)5%CIPZUZE=r9f{o&dhu^mNnR7e)n5vXyI?tDR-uQr0zmJrL zRmEv>^*JuceT7~oL-odn{6{B@v-yT0N5p1ynbAvLQi65&+@vk0>1bbd5wAdRIlR#G zp%gjUw^>;xF#mzVyGEBH^$6~prF-*cSvZ)DCCzp09u9Q-f5>t-WH#Q5=6a>@b@uB; z^3K&vu>=);FZKO?^~{g#asf{0(6>5nlCAqdkCGdp()rSU`#4pfM3#5lK8LNSy9J=N zqx^o`-Q2;i#I>elkB~1&7y0N-miQ%GLu#FeA!uRS-1G)~085$um5_aw>!-8S%lQ80 zWh38zrS-qg|FGyJzE*SEaAOp?Q&=9P_o4L zVNaZSa;Yll(WKzzM=ZM@uQpzxkcBl+hK#=9%ngc_eB6BBCZs! z7`X)BsinRFZ%ScW6%!c1*(P4Y$IRLez}dM#2Fy!m%-H7HFQrnB0c@)2w;z~)+(-{7 ze~4$OxLV#=S>qC1-(=iTb!^{Su)P1Ivr8}Za;ne;-y9G+$uz@YRQG22QOCUXCn;yH ze!dF)kN6yg2fEDxHqVgYFQUi6Ec{QDUklCOPLVdP)O7{TE=?x7PWBl;H5V3VxFJN} zjEP?K>gX-W1!R^6vwLOA+O>QZ~~2?&5Cx+|W1=!w_SBy$bnCeP&7Cn5A4 z8W`Nk;0xl|c99qwAZAKEFBy)hT82;0yl;_xmgVJmlE%x;5M{&z%x}7y*J3oxb`Wie z#UT&#S{lqxI1hZ@`;tEN?dxge+polL8V7TH*M4MUpQWGDGk5ud8I0FD3K6Jfif%(_ z;%=`;BZVPFt!<1Mu!;ve3DCCyqkampusy)VCq*N1ak(23qo?uBp0n%wJV3Oc$6bwR zTi@oqEJ}>cAH|&UEr=1ori&pbJ(8S8f8Gw)1}vLS&W5uHvr}j|KT6fnsms7et68Jg zxMB~Mo`;|0Gj+7E0nYz*)XXa=@Ag5px+@kMBKlbB4eo z)dJ~=2~;(+6hPYPrHaIemXV2p7KvwKWC#!BSSf%;0we^+qk`jJ#qirF2zA;^M2>2z z2zO7=QC!&^zfNfq3WT2a8ZSUffeufa+aoj(JoK6XY>-MG&L(;=k4HYskJ&0w7JND?Q&M6mg*JtVaQ* zx|2h>Gkuz4hZQZAb*W#F7%#>qEHH&fK{m1qm%jhjur)cvUZaiZ4q__nT*u+@d{0Eun0SauCj5RcRYft*l!qC=YLxvg8=AfQb~;T-Lcse%BIy`a>$iN{}0 z3z^&_-tjC|-LT|+FmXEkGoZecVmM)ucVrLyP}l?Du#{oz8pvj5jR8Qw_OS@b|@qT+;@R^jhSzz9kk6FrCIh*#ZG`Lvu>ya<>hXtR` z@Wr}7>SW3Uw(kM`_f5lfbalB?eRH>Ee7`LPl5dxt;fHc`mJpgJ+#8|HJb)2 zK#`|GFey))e60g>1R_l{TkaveCutkxu?|5@f5?7^!r0ILsQ?l zf=4g)0-B95T9z+jvp({82l`ralHXZpq_#E;ffpX>JJU@p<=Z0Y|pSDAo<7)kQ?bn^qzfM>l7mOd0mJuU7RHc^J2B< zHUqalZoz)*;iHKxiy^OECf&d)rc964C)pz@>Murv#K>#j5;0PB`8PKx$Z*dtJI+{SbmE0w_-#?y`{H5&*hdjV6`wg_yD3e>P60w**^`Op$t1g_GGez9; zF%(zispMspN%89AjX?gd3--(CX|GkMynQ*EOr)=f;zy}$K^%R8Y2*7apONQcT_0K% z4T|oL=LDV*DW+^qjJWPSY}UH$ddhT-d^>w|^G_|;HtoS-ll=t)EsQq|O#Gg1nzT4F z-wUUKXei(~TF``rcG1*2LpN_~AVz?5b zvQR@C`^D$HI=)fqG`$0tMes_?9hq0t?SlH`U}Zx5c)$JD>@ZWjvY~g=4)S)=bKN2p zhWG`Gq^bxrW_`_hc6~t~v7+yuOXAm%D&BAAmsVv>-z`jBUW=ktk)Z!Y+gFCQwWr?( zw*bL|yIZg#1&T`u5Zo#5P`p43MS{BohvE*!3$(OIaCfJ8i&U^uO6j?ro;&kDGiPS* z+~>LX)Ba`W+uHA5`_=Vc0Y!}IhjN0<{T%cn^*xOwAI*or%lD_0l$9jqtnwT)Y5?AP zO?YGS>$|TiB@Oy&loL z4ED4ab^Q&K-ER*|o&JDwAUn%hrZ3(>DuK=iuCS564IFE8%*o z46PNezeG2`&^ENQj6pN$K~pZ?k@G5P6lxT8!|mia!eix4kP~&AK`KsT2v~h?A*sjg zCr^tZH3BD!aDB{sp*KQ2B|#e5un%=HK+3sEyc8_G#egjCQb%*u=;^&l5!u<(eYLPJ zR(=*cENlLoqIQB7Xj|q*9I5p_j|U-jPW_TyXZeBFbVpc`oQMJ-EOU5%;EkJ+rDP@j zwEu^!Rxj&%h#SaV$tcawsnvu^+cJLf!obgA^RBnhe)i_+}Tlo zYQ~5o-}aypD09>Fq%NlPBQbvk@M5g+tM8^xFY(PQZ0%Q&`Qmp{`BQ< zye?XEjgw?(8l)3Fh5+xq6Zt_KQtY3E!P{RqLpJzh{fV!BL$QI+EcAZcQk|{U?lky& zHt-MHhS_AJE%%_og~}M>C2Fd>8CC3RTx;OZVYgkS-#6o%RJ7@RnWNFIe~a(-z8V~_ zvApa~AE%))b8n)_Xod+o8VKh?2=F|LP6!by8tYgfC^Ic3%1@%VD$w&4St zT!!NE{`+5_h^q^<6}-2(_ksUb9GlEg?Y4Eqw{s&rH`j=}0^e;KM4wk}u%q)t%8f;s z%7TOaV{natQHlFg3Vc*?My#9GIJ;k^cc&{s{WF=fRpWk-e16G+EKZ&cyAPpZ$M$J* zL}6$cZ$=c*U!``1s<6QXzb&BIn7O!oV{`RS5PyuesdIJtAzmyC8~#yI%sT_ssr6m% z(?G}hTMcwAgUkl|_M^3E8#r6jk~92%_(xGkdtUP@vm-=};hRZau0|zRd4sav6-9<{ zt4rHJ(=r?x5tUC}Gg;MZ^&x@lAtfTqE-o&3CG|MloRMnkAMJ_`37yPLr>UrWG(bs=lT}Z45WMFB@?};NRCU@h%j%EDEF1Db((-vW zal7kD-lZlgKhxw6-uOj(MNA*x{90z&pib|dM(h{|ih@_jau0?C~3vhf8MJBTmZ9IGRXn zqJ|ovVAsq2z&CYbKeAM}Xo>66!l4VrRT;Afsa@ja2Ct-MVj>O+Rf@!We=d@d=B#@3 zgXmE6&TEx<5$3rcSxOIiPl);RD%uKbcF*sfSiY51cEmHX6NU5HZzSuDeI7VX97h$@ z?KE+d(^C{hRXaKIuP1sW8FiV#_2oA++p1~%nJeDhDi@2KW}kdKruHxq3@g#6>r8sw z0IdxPoI84$e@WLa=$)Gs)G+ry0sJ3CLg!J0mOqUKVS3GGOvp(Kr?K+WsY-QVqR8=N zarL6k>N)VD1p7X&P`N$QbbYdbrY|%jyixXK8y2dFs}@Ttzt8fpb#9Y9zg|N|0~!fhozH$ofA`f@h#*4m z@F13IY;@?PL4LBxkACuQy>eehgW|qm;=X1_+n8Aty^0Cikr3uv4{2``-g<34`px1O z4Xd9z>+QKB70KHii-#8|Uhjj)c+Um|yoN6-3^<>09r7t&J(|1XKdYcN-gq$Sf6|b4 z``UfrbmO;9O%d_2fJX$rdcUnvuO^R{iL{)JD8AIiPd9xYr?Jz%zu1_yowa-U;OCGt zzwX*^-zG5ehX35s{mZm9-AFrdR;SSfjPWrE0oKc4`SKCA@G#Lh9cQypeMq>WH?%-r zAGY#bxR~B9*<)nf7=3|C*j;dDnu89G8z-7U&ev$Qo8+sO;uZFRnC4|g3tBA7s?%09 z@pZt1#8H2M1IT^tkyw|w3&11!N$!W&&>|yn zu-~*MP@H>OiDZ@csj?KW%9~-2Rl7Q&FUB0$U)XhTK06w;H{YzE);JHfj#;mu$?(^- zp&2a00ce<4C3Nq*oMu}O6$U+V35qMLD4cgW|Go#UK{c=6m*<&69=fXJ{-~f2t$v9= znkh71wox3TaU`(WKk>u9OHnxc#=Wak+oX>sub?2_Y>>)@moLe*HmKcVzU5Lz{q%K(x?b|z zyFP3xUlHfa>P}V?A{wJ5KfibfHSajDyH&C!ZxP1zW{44cxsQB#MHiFzeYR)Y=AwNBOpsV~a#avnJ9JhfmKap3J54ma1700V zN6o2fM%e4Teof6?|B@qaGIrerIZP&7BLTF_$`q9)1b4b#L%w{5HBJ>wHw*@)r(os}Vp~u5&l;m=u#;Q> z7=TAe40+FR4O2QsLZTw;6w=_<7OcdK>!5K`HhUHjH6qjr$b+v%gFmD1V1N1wVYLPA z>HuK3eh>3rodYXh>q-;oi5p8SrzPTX2d8phDJHiuM~SiMQ;r(Gqzza>=NZC6>OI*; zXj&$rp}z#n@%S~|5XUXzN8p71V1?MGu!>rq4LF6lL8$dhoGTC%flh(FYNb}p%`!Ydm_tw!cXMV?X;E~@Z6F<*4pOlZ$Z@bIa?iX}bVztk zhO3ntk!GTrBEe-{ELX!T(4xuA5MDn)a}17~$;I>(SJ87uI{uSf!~fX!o&KNhk2|zC zsZBuE=@t+pQTdo0o@$X=5D8InDYsCsF;)hc+e}u7+jg8-Ff}}^IdhMSPB{}hGX~XI zTCtBt@CDvBg2=H7M4&}Z4a2fP39WMvV?!fJfJz1fAQD2Xery-MXm$DYSgzh24suyr zGK--8sGa^;wslgSk}g43xXM=7(wU6nao`70(yk}%?FKzKVrqO}S6q;-jSDld^HZJYmWgw$33GExoIFy25P^lt2nUAy$5ihqCck(1&^ z;7-BBlkQWa^b9z^i<7tM$><{y>NO#1;G;CIn{yKhYGGcSek|0tw2z~sdJSTZiAKdd zn)VZdU5Y#k59%dFpln4P#EH7Z?<-Yna`i9Rb}u8Vv`@22YaEF(7knSu<1ZPpN(Nh4 z!p1g_H8;-pbc`r(o)%xa57tn=WB5xHd58EPrp;zr1lY`>XApL-Ai+nUQ}Loy&y4H< z$jwuz^=9^L_o%O&Mq|mt45tMQb1()Dz~CPhsVP|Z+2IPqT21h<$7-qQ=&*1&s#hUK zbGw=40AO_|HQ2XGg@A!UkMtvW~Qaf~1PL z0|~DZjYVkhNkV7v;mClDpm!3%_)hB)7J+&97ES0EWj<9o3N$2Z3@sD{cCmYDt$cM_ zQ_cQ(l_#vOtU)pGWwp|c3x;g*jyPI(77nl{-t^MlP~>Yq8lLZ-S8TZo+Z)?39v_1L zV?XQP?D}tL>t9%=01mQ$Kt7mggb|&)$Hk(lKjnM8+6c9k(_x6G7Z~HI6PzsupmPx=fjeVlm|p|lxP;q zl*EMIxy<(s4UM6+iu%d9B|7-?oK%H@r%eEQ+rEXl9}z)Bi{9_yl=6gNSFOjdP#@%m|J9j9>M zq-ghY_feHq=V3j1UPVCmUA*!03T6RUnX_Ae8kKfrb|WaE^`4 zvBJg=jaQ0c1K}V5&@mD*NGX0#G@U?mc4pC&;$(7quEhihV!Q~$6ohZ(lJa<44!~`r zuNZ^latHD$V#vGk6Zjl}f8!4I>E>a#p)k6c14b6954dzDOV*=s3$>^Y~LytIw7FB|--y{jo|N!sZBJ>Q99kAbO$ zxGaHP3X0ZYHl(q$%J#l2La$!iM6C|OtWBGiqWnW*RJBD6NT?|3iu-wO&5<-E2el## zJp1yi?K6_MFV)puhBB{mgSERqc(y3fG}bJmer&j#^e;^Et#)H}ly@dR?YDHgWS2O# z8K|Yz4QZ~`DO(WYj$3{EJi_v&%x8mzH&uv#`JMd3|2wg~Q*AIVfTqEF@8&(3lA^FF ziKyS%d0VA$h1l$J#{(kdten={ic-MS*}^Ooz>=abUEwqEumtBvAcPp=5G`H@B~;3x zsim<@_g$l!B`p2~}OnxKu)y+zX- z8pb)q6uFEzt?|0}w&ib7sl#Epux#RVMY`e&>N+2I1V2K>xCtM%vcu~1NB3Xgv9p!W zFl9FGMGg^C5IExKNKfFY)$GjP z$6d9o*-c%;GMK8AHZ8_|QnFk+5`NBwzj!t4Di5s z12}FArw*0xQ4<=JQz6ICewy+u6fad?L5MpW+X@g?y3ery%1&XijpzXgjEytM3w_zT zE4JfW#*vy)p|E08Ud;Uc}}=y$$}G|N%jayl}D z8m3*}OX9;t!ONN;x#@HsIVGAwr(zU4N!PMw0AiM;>Wj(RLz>jZ1k_ub>x zZr*VX-oei!^_G(Y1v}QgY(7vAiuCd9gf}`}do&z;jQ0}dPtU#JMKtvFkTJArH2oZ;4){;m^1J~SCGr8PDo2BXiH8i&)aFn)!={FKaVXO&~eoXUU=bR8<_N2KXCx z?Ca(SY23{_9%+{Z)+x_~(!SH~GIC1pJxgJk35t&JF_rn=ShqGuatZftW_25Fp1(d{ zTz&J%_UY@>`kQNegWlSRvC_$J)%Ig-`Uuu)%CcO)r(!hP zj@p&YzN&!T`M%|hflSP=SRUW2TlMg4o$=gyPm-83JI-2+Yf=3fyzY@u7uxvKU09`n zBg@sn%P>~T0-5|Md18V(ijPawuM(GdFId{ddS`~4fYK{ubA!6(UzBV92Kg`Amc^u; zFdSPh1TedguompZJ(w@8NWBlqO!?kJJxd^l$up~!O2#ivFSIs9+Sa&bA5$P{P~OqR zz|+bnLNHo=;;%8NC9L&awcAo<(5RB`OuxBPq^VIRg7Cb(UvDT`o0!2pC}(whFF-BU z*Y1n4P%7XyYKIIF8H4#UVb#+IHmYDdRNfX95d#7dHtSi(WX z4hG56iTMr7N6}+rg!L#?sNri+1$0|YM( z<6YSG0`YQOtJUSM+kIi{OBNMv)#{!w5GA?!&KNUS>p+PgEXl^%Z&E3J7sP_2su#gN zb#G{;WsVBk$D1AXgv3A|>5kO(QN}E#Vh}bwGcs&`$&kJBTQM@P=$1p&RL{)5Ev&q@ zq3ONgaYD`P?v;&fOR9iS{bsGJg<{iO4rbq$eTJ z2cy!>Ge6}RZ|9gIc1qUO(1#mi>D!y`_u4Wi|5W$=+cW!vNPJxa$Tz|3fE+YDlVbMV zd@rkSc3aa`#9utoncM`eJW6_2Dxo<=062IQJ31X9$AQT}iA4ZFLmQ5zE#a#bHjRiH zqgKc)_fEs%LL_wCFx%i_XXfsYiUSCQPP&xKafq;)x*C)~TjfPn%7xnGYCxBJ6>AxY zj=%v|H(?8jpMwqR)g|-usnM$*$b|s=>9Yj6#F2=RJT~MyK`P7MCutTDNtjF|XP?b; zS;XEgl;pc&n^4L_=IRG(o_dcc*i93*0=4wbRZZJ2RXLcqVJUF^aOIfcLSGf4i$HSX z0bZ)axE;thqa39XX#e$!-=h-qviYqhh1vPC{!(B2@(GF=86T=Cea$)EN&!i0>v%7S zCVTp1b);@=IxoGVTljrtozruh8sTG3MEO2er&6ry0w=k+tn_>TQAxc146b}d3DT*g z5zIG3*Z<)0{SD_ou7CJ{36@VO%zDtUs!4Uo08EktvoU%!K+$iZfuUf?cy3R>;y@Hz z36Z$v0Sk-=oWI|1JUymn;QNq?P;+lykJDnxGcP=prSGxmLbRKPT=xh$8g9CQg+3Vn z=i|JV(G~+*~s@++w$Q8UO!wOjRU*v_NZ3o-5uvu_t1 zSyRni3DMOY?R6!P7}ps!>@;OrE)F3-garGbKi|yq+4#Pge6&sgigu{i;68pCqGna; zQhwO^w0UEsnwNjAn^;$ZQc#KU+75#(bQAoV8u76zqUjk;x36>M{#RDLPMM|sR&u&p z?Ah7brOER5Hkzhp+MNlXVWx40af1iewX@uu4j*=ft}$!kWIw4_*z2WhpGg1c|Fm|P zFF+W!BREfhm*<+Y*2Z1SmF1}EqTV^8RIxyB`L5&z?)+P-iiK3m zS)hgc-9m+`Ab!>aizbJ;;oE*#32{!;R{L{JPEVGkTN#E5HlL*(uN?XtvXp%~NdSuF zTyk8;xU$n*=xhC2e`d&Ao`==6asA#EKWRNTDE-&^%9G0CGIy^`!8!F0_;U9T*}9k- zCq+FRgcSKQW^Ek_+PV2up8X7RN!#hW&-j~V(#D7Pe{J&lg|=KiC5mx10D#5qf2;CP ze+H*HT_S_4ACezPnvIfUkbO&6UdN+wzcCPzsLiOKa+v2Dn*rMntVyTx zy^8CUqAr&(rrqQzV4hlX$Z)9qY_GrbSjVY#baQlo7dX-CfcP#}?&%Od;oJWKl$W{l z#xJ(@QsMH4;aC%o#~SGuvQ_W0nak+LHOseNh4YW#pBjy}x@*6y#1+qfoZMV=T1H$K z%53-ABB7U3UkzOO47(qkDTQXb)v=4mKMwSo9}}B2cG}q`rA?q*I)Qh${5MYApKSI2 z_V^2J{dLp3KyrBlbV_a|r(}=D2NR0~kO>>~llM1rxj6=e8}j6en$c;wfGruatHg3H zXtMn=;)*#0@Eq{bIq)N5d?ER)qGzn!sqJ1Gp*HAVr`r}tBW@RS^!*0a09@2jCD zwo~xvQDW!gBP-Y`-!IkfKEOBp`Y|C2!DYc~u!o+aVN)QDWB>!NOKoC6NnO3F4-}$v)pFz}B3rEUC0?|JLS!r-?AZ=Pa2X zb^CASn)Nx#`^q;Tn0h&@VpfD#HktV1ZfEj%>oF!1FG-7{5aqk}ymNiW?fnrX-|9^L zg7!OZspxqJhW9I)PdYBN#TCD^?N&Qn&0f4<$iX+r#9?LT4uJmSU*Y_ztrof<~NY#ePd7zEfv>?a*p;4W4^Ur5> zZ6YFcpVOOmdn29CrA7RGLmYw%m873hJjCkk?G3Zds)oZ}U?nA3u=ReGd} z&nuCkqxrS`sTPvH1`h$^%)Nxm#nW?ty7&Hp=pqwus-XXM(Eh)(tuQ{z49eXVF|<4{ zWRhxVg)Dz6Ps$NV01InTXU1ZGzYhz#*6l(@?qNB5J*FI49EM$%M z>ae6nevD;z-um(zB29&#@puL~JYcej8ZcR@3>~8OEpl%z7*Xr+d@Zr?w5sUFpoNK* zck0^{=r=x49@8a8smpj0RUvauqqMTmITq(|a&*8^Q5(klWJ(rAHg1UlB9z{PC4w1F z(m4jHhT0tgmO`&(cR$=hMcByow)6yN(D#mabbUI4b?}GWf=wpTO5Up?(L@a)WNEAR zBzp?91Wd~p*OdaVZ=b?DR#sq7WM3tnk1<%&Ly<{u4NbGOLOywn%lujY;=f|>Uqqsv zVVHt>CrNA&H^|x}ToNF(2m*+_0t|$4qZOp=%Xw=)|2oTeNv)iXlt|=vTC)+s4wvg` zf=h-1u<7`+fAEDv@Z>^e?a;z9Q?L~XNFx#y2z5k#a7yNenP`<`@EJZ+dE%A}IgCRT zCec$xqDW#MGEsO&lHzW1u~5r8rWCI4dq=b9K)xaT80ZIt|=Ud@iJ z-l)V4Z%UYb+EFNyh!zyUBSZ4BAU~v}sF@d7KQa)NU|4_S5W-s3l>EYcWOkkeRWhn@ zlxA(ivhK=ioUo z&ASZYUA(v*^SU42heGyFtsjv;hS(Fsf_5vI6J28_QCL_@i{wR3C+a6wH?BLu7YE>c z?bi<>Mn7rY;3@-?|GF*yA0EOlB7x7F=3^e@P#7lg+_g6_n*)e3&>UDTvr~xj2jFS; zL=l=*2RKA(QN?8`pdM02Q8lIjE=ues^h+>^OM;jb8w=omH(T;Rbek`x%*KZ#BMj8I zRgMv(h0(}r%-;Eep%L4ko2=+g9!Z@+kE>DUoilGkWEU7hsAcL9A>3B9%Rh)g2v zI;thDeS5_iEFtaXCQ47tte-NT^Mv7SXvrYMp2g)J*^0>VNgGe}9_n-Oz-aV3eVq@F9j;>pB?E* zL{@FosYc!u;$aTVw5WkbU)(L)qr*?2eJBvbbF<-})fCW_CxW*h`Y#6&{*L$`XiHm` zVQyysph3izM$wpqcj|gv$)}8Z;rgtQNDS#zE^ypvM^tvgc> z8i|VvE)fr&D3IbjVO|ciVkRHgxr5G5MNUpC^y}&L;E|kld7%WpVWkUQnr08sKnWpF zf+uYC71{;}r*`%sktfW`)70krUKf%(Kz zuYMrUXd_y#k^b=}ZI;xO$dJt4*lXU&oZ}M8FP~F!?+{_rY`VP>l)gA!5OA3u%U&RC z1aW^bvv(DFXudsi)c3A4i6oOp$>a2pF)D4IEsEJI^v91HLKrTNOZsRus%dkt`L(0L z1Kkd_{m+7%#%2SYpA<%im(r#L?2tb}vTuV1^&aX&O#@Kb(5^$>dPL=sL1P~x$1qRX z_{BvuqgGcUUsBh?^uH>M{T=GN!!NY8Q4V+2_PZrnJS3qxJlQiW&uE}n&9_l#@;kKv zu_7l>qFS#!Rz!l6mIMfh4{|vM^@gtPf%#p(h5BOaVaa2lQ|74xlCndos~Tw(CDPQJ zi>Sj$NOXqMi@xY*;6jCQt(Bth0X|TUF8TKK)?i)|iPhD7RmiTo6Z{_pVrpCiFwj&Z zW2(RIHX4Yh#uE_n*69PWYO{oE^jg61y*}qBXht~9bxGU;Bx7GFCqEc} zGI7v$+emi1Fc}pRItTFtvOe_pZ6g_JIxIe_<#rgtkw%v7f7h1lj!J4u^uu5Jt*rfo z{Go|zR&=TL6K;~XK-VSRM%}L#5(j=p$}*K>?6%$_HU zH4bMbvKu1B0fU}HQGOVNzF3%*qqYEb?lhKo8tbj1NGqLj1Z!a>6f&+ac4J-Tv{ylv zyM6z2_)$#RJ*WkfA9(CT-0<0vz&BHl=H*<=S48nx5gX1vMVBkBP4*BCcQ#>j^yEy& zOm!X>x`^FU_V=*%!&uRJr!3`9{Q1M;hY2#gWDrM9HS77Q8ujEOI3lcCRwjZq#b;gNG`sLMmK=_X{Jb!!Sog~2 zd-j}RP3G*aVf{yW-Zq=jq02f?mw&@2zf4;d#*$CDX#5&bkS3VQn zi-R6t)UL{&!C6X%Ib1$qQ}~7p%nb1voqs39CFb9pHOjX4R=ljGf?UXgTWBE{#JpkjmhQH?)?Bw+wX!|sHgwqrPY z!`a~J2i8t(0IV=H7b;RrtR@H-qeA%N{T(^9Q0%DMUSJN5KvvwDF*=AM8G_ZTro=Qs zZR;S~PbU+Sa9^&(M!Y^|{G%{$VzG$yYdBt_ZZ@DKG6w(v3Y#3buuKBoyBv7U>9DswdB-v7l?9pshDS)PwY*P73o>tSV=DEf+k%KJU=;4W{Q=e;~>|;(Z zN*cN@4Y`6d1f9)b33Wu-WaZq>m+y1pAIN`|LiBAYYBW$A+Pir%X9Ocg%RoOYRuF{l zq&>=*jm3adx;o!aI4N0jNaoP-H-u%mDY?P4QTSYSUV?bo?hMj~O{q6kD3Kj`@<3}O zg|NIOJ2fbtrb+Vn7A3CkVyPBd9-KLHy$?nGX82I)P=t~VZWEGy4LGY#w)dC?u?AhI19tM^iWrMkn7)@Bt|AO0pG~s{u=P%P%;S>HH>;gb1 zTS65TW^{t#yfA=CUl*f83QZnRG_VT^ua1!8%Xam(NcUBub#3WmIHkkB5z0WHPw;dS{bvQk6d9S`x%C@in?*)-uN4K zop`%#Ss5TCy(G=f2$xz%fiGW;VxR6+A;Pbg{cPn!qT;qpINm1x_ub0vFx>-sUb&2R zqofqdlmwXz%z@v|7bl|OXOy@{TI*qZ>m7CP*k#OyB7OMT3d$rQPjtu ztOelo*2Z$RA4^mto(>F|3XpGe) zf?2}K(k)CltW|`F*HRZG9IhkPlPOVvOmOO3bM%2OVV+EmdPu&Bzr zYF?{j)>yfv70{vM!V~JzZFOtP1`NvWl=a%q zR#SGSEr*<^o(k0I%SUU>TcX-oi3gWNG_p1W!_>kOTF=PxZ!TP_{?E?H|Ddfm{(D9$ z`v)^Vj2iikJ|+YgSAQ3CtPD%q3M~QP5d~C(M}UA#RQO5GJR9i6I;{%0J&BkR z@?f47otaE2uh~ov9BbZtl-PG#pRtd7Li28=h|Y!t*Zh^?RriQY2E;UGQ55?j66U2w z5)oTgIKCfKbdb-MdP$6?qy2;sYS}ZN>pBa`K>k&Sh1=6MlriQYp#ShjWb}vFQNa z$IRB#*^|?STV zt^7eGt@nNpBsXZrO2Uib{mCH$av*?&(`=0KcTR8~vk!?rIK^&m2ik|GsOl}mROM^O zh6=5;8sNghF`6$ygYZ&1Fk@vM<7yQ3ebNnl5N9G)0aHc_q`ilu@MMGB(D_%C1%6!1*QquKofscYvEC9CNe6I3{oi9>z>A0tV*;Y8% zf>M*RqU+WmQ)~2A$1h{Am@7>JgULhxK2J}8iQf#+OU zqRy!8W&EV6kbeJ!M36)@Hg>q$&y`;O($aK}gd)REB{8_2UX-}@yXMl2@otre#xvF( znG}l@u}-Tz{O0}G@7qd`wblLKYk$Uf*bH{*h(=Bo2(UlzRqUN^LnozvGCifsOk6v? z$jE58RQH5GzU(#$`5(%Ve?t5h+B#27fA9ah+y6lhLKi9;AIK5G0KgQ~_`p3o#kdr@ zNb0D&uOtpk#Z*|k3d*NMPeTY!b*Wn2VgsO)4ur7~h+2woGmn!%`qcasoWQUxW3FN! za^@jDIVU7;bi7^MCxRdSun(%{q@acE2e!ar42gVH3j=9ZpJL*2xinH9Fo;$WZ>-~J zk=l@AW!Iqq_hhz8sq!+2>%Es^i}loKRH^jXFT`TL^Q}dVBw-S|-}=&Km8d?@#e9p! zMoV6pO*TZg*cs%_6hXnNF503$>{xzT+3anzR*tea(lDaY{&b?o<>hswQxESG6{nJG z9aspTp9I%x=pWr8YbU9!tv-xjt2^76mn2C^s4U4A`*NIibw)%@y>OVTNMyyaJY&1J zdrwdx(htd7`~67jwZHj&Lm5VkbNdmNi1*y~&Bul=;7_O}WPLpy<$s9Xe-X)jeai90 z{^doi(DgKRtSm4Vj+Fj}Qgw&~r2>^z(t9uGE=oBjy$hn=gx;sxe5HY%b8J^pIVN8X zcXHQNW2XX?<_lRgQ}7#1wSeBKW}tOb@n`8g~X2f z>DP8G#EQ*}rlFiyEYX{T3-#a}( zweq=(Budr2RtKY6t2#at7YQk=Y7bXy4B(dRIT?n9CqR;X-5L*5#~*1-^79}U2Bf?y zl;_2DDdSXA?uFFccHC6WTR!09YsRRSvC~mGc4t_v`qL21pRDiy>+zRq>+ApC+G;{C z)F?&$(I~ZOABl#pGcj40gtZJ}tKQ9!mOZNBZi($d1COPQ4mASEL0FLC zX;LhmzO^s}kB1os7AEO*j5ml9i(H|HjTu@l!2@6+Z>e75z>&s>(S2cpRIwH7RrY48 zG40a<3f(g7qp0qZR1f-ohMD7qu3+|(^Q=mQDVbL37ddg+RGjz8F-NnpOHk`$)isk+ zqXQR|+Yb8EH{P0!FI32}x0)ZhZFLd8W;h%w#Cg{B?08OV%v{Z5Hw!rSywlA()n5|3 z$;@D5dGPu0{0W+-Pb$}jOY#n)|6NxNK_W~C&#}`~ei0(|0I@Rpt>FaM~g%(yLHW?!QYel?4ChifF6}nuMa+kZl zSuc4YK|9Kt;;Ff&gK^) z3TTO*ne!)OksU9Za%x#vyr2+$Icxq#tHe4YlmM3i;7%cNDP0>@)p{_vGf`QpucoTS zlRgS)R9i1fkgV$PIARqE*Q=CUq)I~8LlO~R7My3ZhIUodUsS>$;cZ`UkJR*{E-un+ zp4#8(oGm1sc6IC6eTgFEQiu$=K&HvX`M&mdRegU;=UNf1`Z?SBSk(7Nn38bwA;W;u zo_Mm5Yol&{^&F0E*C2}zJNJ*i=ke3!yn3Wf{i$$F;sgJf+gC4q5sg8lbcXt(5MxWV zkXhewFOy6gx`iZ-HHPzwkazcD?_ah4%g)vR^K0=7ZJ0D^5#<_V6CmFsTn==hNCXrF zpwo#_Cjh}(nTo<0Fd1Kq>yQcL^sulf?6q zbtV%#Z!>>(yb#(TqwVEn(XJGf!L@aAEtY*8t{mo)3L;X`K*zGB3eOel=v)T+o-u;# z0y?~SirvqWAfEQYsmFzWIx)^U*S*Y9`Y~;|kp8w8o0_<>Y#PyUgJ@?k{L|LasP15r zqw0X&#G5(Sq=)*m$8CVPC^|+OA~jC5>oYSJp3Gc0l%KYc%eX4wl{@!9BOb=cF-HWc zRYsrPURrUNqgIJGO~+@Z(JSp@)EAG;)pG1#((7cCJ?|2*1q5k^&Jxr|X{x>juRFq;EU$qtDK2?XT?qPmB zS`sdN929W*8jCueJI&>VeA(FdAH~d-Y|JFk6HGI~$FrIzHfqlJPJ&N5#>}fWL}Lq; zZE}VASm6$uXQOo4D4U|^G{AZh1zw4ud=07l9|1OC8ELSQ^D+c4Aos6Oq$de z{_Qo%H(D-i*F-3Pe67-YWrcOzg5ZHV5lqr+B0ZUe8eGmKNg@Nd+i|VskMgOin!9N0 zagHD6a(p=|aLO4!Jhu0uxQ~>2%(-(hi?{&&b#QR8$bgRM>sv!+#$Yccq4iI~vme&a z)6*4&bu`nD#QEn>p79j&_&Hd&nNDRu3fom;A4|R@ENt%J1~WcDOxD1KFd)PHk-}k| zQevC?t84c<c<< z;Tnc#g#p-^NS$BsKSBn1mEDwCG={nqNy~_u$W;mNhh{~FgRNs7`p4%ZtfqIOc&z~F z2IO@4AV`c4tDe4-oE#YUgG#eBkt8FexIiVH;2|DO7LWO~nF@T7l1M{s+|=x@)ly;} znD|MAy$rrD?vG<_wP)nKl*N!=sp%M_MNY&hSVxM-)=pkm@@**2LT6`J8RtE@h^emr ztk0{u!5Vjui^|5nfFS)E`kYsp7Y--DLS@>c98!={YA-AMi1XKYFY+&!_~7yUC%3>| zfpXVJ>Ft*IGhXx*7> z$w?CZ?f`wNTOYcgC;hM7z+Xh7pZ_atUx&ot;u0hhc_c{Tz)U=eiKSpSya`rH<9-A% z5}w2?&O}1Ggiz`69xj+E0gQ)yTnc9fR}Qa=M~7b}0Gr1eBeQJ^3qz5_mW7J@JOfF>n#`G+`OF%P>d)zhC3I# zNHHv%)?0fa=*K9*`uZx(L!RbCzZT?*k1P z1}QjGQVjzM!bSss7?X|6w+%05&@Kxe{{gFiNsIh=0r8%|zP!1m81^%>P%6CihLc48 z@*pqx2G#T8v2-iegfopz^slipQ}S96pD^5t9Z(TRp}+NZ3P@qgUHVw1IotL z*tD^!aIjs_o;YO7;i)G{q-KRPiC{X|#TF(vXi5jo@!ATnU`kw@#3;L{x{cWmGtExa<-Y2KqiPv%HIS?)!PR?fZVsIRn4exwdueb*vp~^X3Pq{T>6WZ;6`cc(#xiWko2-dx5t9ae461h-Aqsn(V-o zoDt1V5RO|N@G1|ej>r5s@`|5J7-BJt3)%WqXEO=`;gJ%6d#n<%w`hxct8$nQ{5RO| z8by(*DMJ?&i3SNZ*;N?)Nx+#9oQ|FAHU?)Z;SpM z1JzBM6^%7dZn9^5JsIFMx?1rUcl+5 zkDoD75l5K*gdaGs`k?(H>)XO-pR;w%^MDbj4NiFnf6j6+2u`R=lYFM0ff$7)O}*!c ztKQG{dYq8EN7?rTolTofK4T`yoKel1Njj!Za*{i!JWRT1$3EOFAO0-~u}7%;nB2K$ zDzS-ma|vc;EqvC0c<}_+nQv<^nHOp6C!yaQ{6mBnn8G@FrSd~i<_a}qJM#DO^uL$y z-)N(w?fkJml;nf3r@>g{I6XQNAhLVxNr@D*^o(RBeACQ0N!kR{kI0gYILRJ?$;Js( zll)w68l)$(>7fK^WDpJ8#e{A7Vwo&{!usIn+Km+vL!x$TNFjY!t91-=-Mt1zPOTbKqgf+mrYg!H zC~otpez14NVgJ>EXNd;>dnc~@)C^NAK`)mBJ$xHZA#G-&UN3hf1xr-QJ$;W&;;x6` zWcq-S^9bRCQV(NDotk6{mr=)JhD0}io?$6_Q{6K6MSuh#n$KaL!pVaC3TpepdW#v8 zjd%aSQ1Qoe=Icl?x7hhlbyH(k8ZbJKk%^R#Z`!z*U$T?_T^07XY-uAq3;G)_QJi!fOU zu^FFXZ6zX4_;Te_DS+Iyu4}ziIr$T*xHt{fi|UWh)$MAH5S_LByG3KRo5T8>;Q%UX zTw8oCQeACh5J?q?TM1%Rv2JtH6^oMgxX1{}8yWq2Qs6&S<7PpXnwcknPp*gE_GOe0 zNyExo8%R{yoz{#wI4xv@m!@MvI$>pu~(R^gl3Dl|@s# zv?btUvnLYTalUbE5zTux1B07-+LU5;*kkaO_Xu#90p5owbIkXPB}(?MiiNkuKtI}O zSTB5B*31~MH~Gt^%IsCd^KO!ED3C zPGdrudE~L2+r_NrzGFoLvlhq|wRARdzHA;@HJVz|p=4B_xUnR`(Utf`V|LILmZj@r z7muuUip;cBlC@?%Y1W1#;?*;R;@UyGmqhbJ(IVYhyk@(;u7qH4 zIKV>SNp35dMVhb~Z3E8nBi46BBv_Am23xeZ{?IIau`?Tz5c3jx5P86J1rZ(^??rT` z3%dAW_kYWKqa}13ZglBZGdwU1xsqK0x~#0?Pj(!8?ghCMAp(?(CuV5T8QNXCj-$@9 zY1;G14)=l#YR-wIMMs@|b8)fwR&{ejeGcJ3)=F8k#I-tf#?{OiW^)P{8r`v1MGt8>er!9+q#((7aW1%Pir@rNG2o9;T8b z8KK4GOL@Dk{oWV)3WiQjjW4=CM1owcmj2ht`)?t+ZQD3ty|J>u=F2BJd$&{UMpg8h z_>VYIDt`8^+8A=SZ)sq;+^h~oO%f&s@pzwbqtY}RoLtz_{x4O)wwCNqOq^)4iJGpg zO1QFYudc6FfoYg&f*)oSNiw+;!a)c-*R6Rq(~3|5XK6Y{qy;`sIL`)Hn#zQF=|QIJ zHAeNzQ;c~Mx9{0WZSHa})g+1rGm0`iw!EW%WqicPPiNBf$-!xM3wczpHx^Y3yae0j_+s{b%c2F zLmFedZyE(Pp5B<2RE{*6E^h@s+u+)+V@-1P=kj;9upn<* zrsv9!yZU%3GA|VyC8(zo8v)LV`4`XiT<@vUpx0-kgnx4)?pHJKJf4j2x#RV$gOgTCWw(8AW*pblBX zg)WHD?iUW(@$~$DL4j$3bhR|W()|_eRxg3qa6Xgi{fj{aMya{VlP%~@>PkhZ9a>-l zeoe!(g0U!h739y6=HjZ|L~8)tm8^G$5P9HS_Z@!XO89((Afaxb@^*0%Om@4}|5}Fx z){Wx5qR*OJt1yBjz3%YsG8Pe{BrQmsMVf$TB(FH_I-Cd|Lq2i})q129GBFyv?mdiJ z;hsFK@1{$}V>^K$n0FKmKR88l1{+k&IJOG=CV$n8?&(&H%Z(07qfQhXkwzHuym8^4 zcQ)rr9Vg1WmlA`BF*7k**4tGNKRL_cTs2eU%X*l)bnib@aQ{TR&&r?d&Fvh0681yk zQu{p$3TDX%G>HnrD-|#r>D(5Hfz-;JS|V+BkZ{_knA%Dt7^cNZ`#uTTf#>y+@Ae{k zYAlmCe%kbly;-SEwk=}1;g`S?LQyiXrZnY!-Zk36sV0XI*K{MmweS~{EEebsLF&mR z1yZ!y-S3g{*a0kt`NJHu?AHqZlL385d9Sd5I$F!tzWekgxMR4XI@mmT`%b3DneBxm zOEbrzP=n*RXUM1WQf!DJ(TEW@bVkQ!0>}dR;T3mElcPQpT;)c(!Jtv=nZ)D=c19dA zhx;-Ym)+jg_8!hB07Ey`avuZ4*JEO~Q3Yftx@=Jpv~O@39SJyi;*}C7+EnM(_iwcIfM!_)w{068X%JBqb}XGF&JY0;V=A34#UoL+_5tN{eKO^( z{#wNW+p|(wIF1?DNf+pR@ba0H(RR!Dd0LBBwm(ONFgH}4d`(cAh)8;Ycz|6aDIyny zmqa2qFv|wvA#+W5>QUB_DW0C72M(W5*!Wp=( zf}EVVoE`P@D(jP{UR6TXzOT<#e?5_G5dZP6pXPrOo&1(<%_Q1d!8duuHs(25xGhvm zJIPex6$}o9aT$>eKt*r&H|_Be#Zdl$ZBIc%sBNb?)bLkn{&T)w-mKAr@3_d^GPhFy zK7V&bd-qc`r%hToH7tj0T2|Yp3*Ckjg$Hwox4pC+8NcXsVV1T#jejuPMG51M=bM^d zs`V6p@8)#L)n?8d6)`pzN$dc}WQC9v+`2Z{kde@&?jE7PX-+MVR9!JO7Z-P$gvG?< zdgPe!3yRmzsSl&R4>U-zK+ zwF`K=k;By*zg*1%Yq!s{vsjL5-Zp+>(dGJEo8kXv?tgsxO>LBeSvbzY!VM7{*hXBqS3|n zn9o$48Px?N$Z&Doz(APg3I|0OKWH!r*ux=E6KX4Y=;_LpZ$n~ol9q9lz2ajO!#*}{ z-l~O_09WITo6I7o7T4k^oxnL@dO!o=l;TKx{LSXU9%W5$NR8({gs$?So69KGv8l`~2VWSE;IfI|U1dOw7w!A#3Y9ey@4T5=gFAKQN18fyGUV#b#t z33gY*LxZ!WXFZ)OTC0q4YL2~X__ zwAqz>Y8IX#Uc_q5@FDM$#56WpeM+;L_c>yv0jqz0wkpEBU1a~6vHI`x!T-qNfAtT) zg#>kCs5q| zo5KX45d$@5JTJ7-HiQ@IFf_o=6Eg{SiGtW?RMe}O;7U8G*Vk`GIH9nRH0#*0c9jm1 zKw)gJTDThR;GFU&V3b6l?kpY`&+J=-d{S}#-ic2ZndWJ|In5`tds;m0E|M^-+Br9T z+2#<{2=Z2|N(&8{+4fgKD5!ZQpY>`~b?<##!uw*(L=hF- zen}r0>VMsLB2T`6bf8;ONQWxm@7;@I54iT;(&eGD9Yrx8%gbcoz^C$Br~ymlVC43{dj8vob86Pe1UQ78uD^vX`BtW-tqD9sq=>^=`@pm+m9AxpU z(9#yNo1)uo00KEnZEWn5R{FZcaM!aTC&ULr83e@jaKbp4f1G&6fy2Xptk)r5J8~z z?#LhykmulyHsvkKARSXtlCF-HG2B^L&1IsSidn{8>v-@zQi}r>`;;kpZy8?8NHqmd zO>rb@=b+?x3Rbe|x3J3(rSNx8Vkn97!HP7;YSRhD|}LnWhQsily~tL6A`f+{$WE1eW@6zcURkAaKO+E)=q4 zNk2wXJHa+Gyva4xaTHXEr$8=}o-ooi4X@#xf=Vw827MoJ(ARzOL%Tx3nknv>?TsMJ zFXdlm^S{wX58L@;o6limr7<3@zluu~Nd;i(<4&dxJC=$lHBdx?VK%jp1ZpsmW^@uU zWvvJxUKnX1;*X_9x>gq6pV9V_J~_>Pm?-Lbth8)IlSH2~4x`NuBptnGa^gsmv(cpr zu{p%CRO+X<8Rw$Jdodf(kW+uO(HrP?`cUBXo4A;cK<-A4<5$IJ4F(2p_u;;q)9M{@ z*Bnd@zU?zE&o!MPYd=9BC!40qpB>ho+WPKw25xpjKxI$GoK*Ny`$TFpe+lI*jMiCy za|{l_7XPU8I+)=VJd(TW46|=)K{KIn*wiCkI2($RUsSQ(_^n?zD}#deyLaL(Ia%dw{EiTR?jQ5B>yAEByCfP1YgNGnMq?;N%GHvt8W^5Sun(oiIFW4c$Lb2A-|DWVA<0f`8)4f^ z774JFdFy<$yuR79Oq46UHH7Uu-96DwCvAWV7IB|RvP{uRH&v9omd^`wby%{iO9ohZ z<3}Smf4>N^<9qK5rTE66&|jx={Drv-DD_?~rNBUzs69}{OT6ZkFMp)NEBC@4gGW*B z{^>`PtuhV?rvgFKoq=v8(_+PwozQ^tQ(vZpr(K)P7s^gNPKn?oH=aP9yQrlZgt_l= z*Q*AWst&XLV9d>num|=5_ANjCJF7XV3Wa~?kH@{dO{or1jBKzZ) zypW~YKa-4qq1%6^?MuGx%(rM`v9SScu+ZX*IEoN1CJ$L^AhoD34cM5Sfm)iEft&|p zG;IQ(DW1tI8q~)+o4}c|%7m*iEYG10JQ`tF?yF!d>8O-;sp}O`)d5?1SS~#wWqrGBQcMjBME>oMwO7wuOTVEc-ejkrR@$%~_ zKZgMq3pN%3-dm*<)OVa1l;dvflBJqHbC3jAHc7fwsO9Bb`8C@tDi~k;&E&o(XTK#m z_QzyZ=*bR`2(T)_@X@ivv!9eLKUF(o>Kr+~&{WPU;Hyvqt))m}moBxkt6G?vPwI!S zWNt_Q_@B&by`NrOyqcA2vhUW;q0f5#-4ArU?an7(7yIpA(Arzq^Pw+qSN;gCEZWz5 z+PiwXKe=W*>zsOTmWQr}!c&V{9dQPGUjrXl8VQ-PK3ppM=MelOH+G-#S@ zl=kjJiZ(n^=l{;0>;@9C){XMSZ_xxKfunZH#gS-Ac7L{8&)i+Eoc3CU9j{rPS5(h? zGrD!I&A!U`9urZgSTmKr2JTC_-g~EHr3o995~|EXZ6<8=!e+U%>jSN|Jg$W&2vg`K+WYXQd80b5oQ$^m#(c3!Qx@Z}RX&-#TZbvNG!`C8vGX zK;jAd4@yUDvlB6)$X%-Xpc($F!{&FIN}v-BIbl^42e_3ncgA`N(Q#B~=uVxW;dgZQ zp=E!@_jRA!dEb<5_kRvt{yZc@>`HNNM_Z*^HX3n+xUkSJ>o3*frU=|xkYt~hro~I& z%1vh_vy!&9jQ(X;W~Zh#b~;oV*MQv9}fHqPLY$??@^A$P}|Zp(M_PFAn*$T}PW*IZyhQ zKY`sp0EtYU0Bi(_9s_}Y0H)YG&s$cnVgai^FhhLxp4z2OFP>U-JG?s5A%7iYK@igO z82HVR546opM>A!li)T+dw78%@f1&jM?%5r+q;YPM92oe#dr;fi_y;i1oVdO*sfqyu_!rsxZy{0H zWN4>dT=&5}>8$Pzx0&eUfaoxA;jsBhQ519H@5T;er$yM5c?RF4X}y6}h_xpD;A9HC zxG#O9Gy2#urToAS+*17+_(==69?IPY>LDu{OQ(=d?(UvcHnC}|x1h`tD1OU*E}1+2 z1i)8dBy-c=f2nQB^p;n|iF>UhXKvx=k{5^MnFPLc5F+2+N9bK4@MyndXpp6X?ZYg- z)>Mu7A2@BY#{>jM%#+u<_@oq6k3|IAy<0=FzHXhJA`_11DTs5+U@^ufT|w!K&M7Z< z1UsJ(Wtj8LELf_ljR{&f%F(s?C7Akgj}fUwiC6rf7Fy=heXW3Y>QFpLa*1Roxg2{R z_&m|8%65jo^0iVQN7{=Z8Z<@FNLW%!3KmVq-KABz8t!t|Xl`ok**67vrr=Sr7 zJ$mi=n50R(Eo=>XijTDi$fV$t?VRaakAZQ*m@Myl2GgtoQrw=Z86jSyftTVyBo3+)aEC;M1gm$No>Lo(2~6!0=XC22sw~k}!4H8D38!&Y7E}$W z&JoO@T{$Y5h|^r`CauR#Z3^5WN-G(;RjpzA`#^J-jAxQ_i_dv-M%1&;fywn{3TBjvaEbM2Jb6w?jc6%e%xCSt)?wh3P`9`^9o@B8V-;<}gW%iRmfo;SpgeYIGXF=(uGF*O~B#lf^7GJ5oEJv%8 z98oeILxtj!Y>TL5Fwo2q;q^b;^P$V-61@M~+p`{3Kc4u(|8BN~XKH{gq3nF^17Be1 z!{z)=#zfO_2g&mJk2EK{io{A?@dP##o~j?@E(We`Aq0^odn~c)=O?k0U22D-yQ7xqP%dbiHhK@K#qa;BPf|%LeUtSlxq2Ovd9nN-WI(4;}v1`iB3cUtw|CO z!qD{dAgkHO(&-P8j%F`qRsxESvuTUKHe)f?pdY<_+d+Hbq;B8Qti;D>JRs9 z%|%ui^cuIk4*Zb3s2FrQMDj&)qN1hm>6n;6(Fr$^3hvB5FQoiN+mPQWO?c|l4V&UP zwg$Mh#gReQOdIu?sTvj>?a`%7;#BLxvr3*J+qC=>Gq!qTy4EtgXT6aXCu*(nZObRG z=4d=D6$Q3V7?D*C%eB1+NSnYl;-!vl6K(IRr1a~`%%47V2-Y$5SUdA-q|f7AW+gHT zfnHsWO9C&!7;}{&AzUf*54gD$6C6Qfri*F2yiR?&UJW465u$nw`8@!hrNfeD2Y-~3 zqF&$$cz9pyz-{X(-1anm(y7kgTQpYdEnE$F9uQj6V}cq`I^91a>(I%@p%CikB#D)M zg2riQK6E?}-G28v+tB!=L?7?vq$v~UCudT2?5cQG$ckip;d9Qo9NSpUhQ6Fvq`t+Y z&wETm6SF$lj_+91oV)?L@LB~ja|hWs+V%*B|}v$;i{Z<%Xabk zn}#ndpm5j` zW;#yA1vA6(`4zpp26b_KestGU+T96ihZkvsfXcHKh73gUU4#1JFNyNTt&c1GLbj(o z175k4=ua2`A2Ye9_w^VS@q*Z=9b{5O0$E4CG5MxtR;HC9cJ?0>L$ev~B;`&@J9~hL zul-w@CikbQBre=QmR{P|BI8Fq`tdczVz zRaIKF3m^-!=vTx6YdPH7&fV1zBcae}=^JjFUs!8P4(TMOc$tMATR%Z#5|Mw>Bl@dr zVJuAeXSV=(?o4TX161yKS3tbq^#}?SHEv|b7YV-VwfjugMR&O{5W({+z^{V|CMc+r zcxZt)=1n13wgdbSvD-S(qFW?1>+!2H8ZI;=kLbZR z<8{WjtLCXy)bt@z-FLJ|_2eYVz~p34UPUWN_ZrKF1+o|O+^(=Cr6+nA0u_EImFP0d zf_u|j3tqsO)<*K`b&yQz2w>T8pBCWBlT86Ue_{{~K+sC95R)A(kdrpF1}^=aAGNO3rLM5+&h; zl2&!rOL(1+GI?QxWiWcsTz`KgnpJBzEn%$$iKodmfh))q-v;omj*0OSF=MJ##ylqQ ze)5M%_Ng<^&T|&SZO^cJOWJpi<2oruu;WYi?47FqUxqCQ6cxiRdel`LHB{?qRnxd> ztw7tUeCJkFo%CbRNZw7AmcGU%Te{XGv_Pe<28~Z%XGS%b(WC^V&R9MCI?8b$HFAla zEJw(%Azs7dgKT)KrQ7!P2q{@vTVW`#4r#*p*clwTIy#Zc2B%+E1$M?|7Sw?Fr>bN> zEOv0%waBRGmeh|*WM?nZhouZ!8`hTJI0C45th8EO$rr+?a$GQJ=6=qp^CUegR)tXJf-m0Aqm#SFQ zyt?l?Dye+X()SojcxkYxyK#{0%SGa^^@ZSFi_zOLH18|QIBw?5k!<&oht#d8O&| zE`wLeb+Oez9({VrN>B6$PQUwUVGU;Yj7Q#W{Iv}K4V3@+%WrC2wm6qR11rn@1nVq--(;NDxW0`HqOxhP|3W4GXtAQWM6n z3VR2kX~Cq}L}Uo&u;T^Id;6YQYF{Xg9vy{8q zWqI6iSG|%$=VIpsS=R|}?XAD6`>t{IOy$Az2?esw>FMFeS*?lUGX;Axl+7_EU*Sxh zZjzISnHlMv(`uuaoHn17Ju%3v1-95dFI_g}m`49$vv~fboKWQp7yWj25 zwhVH+__TQ!+^R-?Y+76t{H0vzME!Dn2^Xi|@JKAY?DRd$%2Z%gHb2TLWP4_M?2Fzb zxr}`O7hct8`x3p@zczc7&aHpJ;@@`T|II-1Z?p|I?J99!&0*2UBw{Jz!NYeu(75yk zK43+jMC^tYFT>l#(mJ^EykY_NN}Qr^y~}vwaIvvR(+1dL$tVVL3t@&;--sF9rvNcx zr79K)weq*Siu>80T4gnU^}!lAsY(#;It%1*^_OO1!W+c$WT{%JGyR-O6shRq4G)I_ zQE{YhWLT?-2Zq$;u)~?PLRp`jr#{Aw(GEB^QfOQb*=(+cn-K<3F18TEzU*m&xJL1; zcRs^m!a$n#_rBfRHr;x(runAytKPf8uX0DWC*d*Bo1VT{K0NLFyztFoBU7>82sL8VvAhhC^f%aa)<}u-Up4#jR)Niyk5G%8Vt+}Z+L`EI%cP@GCB~59HG~_ z^NyOaCiers7i$s!Lu&LJZGAkm+q9itpGa{dFV8~RT_{cK7{5v>HH#g!BD@zpX6eMG zi_Ig+a{k3mr8Ps5UfL%8fg`ROCVbN$r;DxZ%V9f5rS^0dL}emT6)R5qGd=+|iMYW$ z)_hb<9BC7tJBmF*`9#aGjsIOA^<1E8WC6~EFrI2Se_Z=df%I~ca&&jPq#j;)tTiW6 z$)sJnN?6&B_pr}XC(D#`xoSzfd{u->1-fyE4oXd!u04-pG;ePpR=f~i4e0J`Hg~+A z*YV7-TRzG4CmX&r7lmUw-rjI%c&Ioh1PA)Gjc;Zf%VPW#)!gH?t&K?E&Wg#Nrmu}q zI1cgT(Ih2?Rv0Idp3mJ4=xx7rs1$lHTpvFj01XJ3=0S(LY@IH3YWTaZbzW}s_zXSC zGX~Tj@9Yh)i-fhjWNAGqDfyAv(zevT$8RyQW|06&eh4ea`sb(P{}q|vvaJJTs3mw~ z)gdTt_D)feNqitb9iUcV!)6&=$~GQpT+g2xQ?cH|8EZ+~sLazG?N|k0_q9mrb|)IA5hW=I8L=CZ4H{K~%ZQuH|m zZ9m^d|3y9d*zpBy!EWLKQ#8{gt#_Y_H3dF|U7i{*7H0#tlhBu{32iTv0Am&zc}m|C zer{s$txv~K-HZ29)ouAg<}zaZ@D5Xj+7d{YLs;-|B`=lA^Ad1*5I4^R)F$~>)G|Gu ziaB$`*tcD0s^pz905e+^RAz|LI%(BbhAqlMXnoe1nPvpsy;_~1O73fyrHE@pjN@~* zmcdpMnk$K+l`8g?6oX*ia72{Z_kL>cZo{UTTxJ#M6deREXj!mAbB^6eufd;O}v>ER*J8 zVVQUz;6=9!zJP{@(*=P3e5TYdw!rQyn1V~>i z!vF-EYR(hJE%=C2Sp^Zj!AGNY>o2{B&Fo(K6LK!qjFMa0ao{Hl@W$70qMj5lZorez z#+$>Sd@Y~lRgF(8rkUO*+a-j7tGYin6&K3gZ;<_82PeOUM9;yj67Lo3oZCorr8?jm zkT%jE?nF#A0 zW%yigKr@UNgy@G=3yRc!m`kGqg2~rJDKNCz#M#9$Ahaf14v?# z>f^r{Rj$iz)lee>&88j!U*?%E4o^@pHjqgl?~Vgf zDIg1HpRc@v;MTo-e5#OMRW1DwG4jf3HOV?Mu7$jl@~W!QQ+HP`8~b0pOU^&bas406 zUjC*wa?>jB_Ws8Y5C(^0Jp#e?l?4nWvBk4pA*?1LA;!jw!|4|Trp>4_;zW~4dxE7S z6G!p{uG8^wkhhzB`@^q!VMkFgw*g)nTH)o`tQaM*w~ERJvGZ`6gfJY>#$5^NK?IXN zs+3S!FRQgvUkcWLbUVzpM!*TSoN;im4{1}v+V*IzHOS1${+u3po0oVzV7+>||AaOd^ORl7 z&0za8$GfcO#3`)m>3AbZz1x0biNZeFduk`Q_cl2!WDilCE;(6eX89ei2&BbCcqckm<& z1KyG43d)M26W`sokuM9sxlDq(9;#~oLlp8C5&5srKZRt|4ny|Aq>GfF7%QQ)J67v&ra}DnTN% z27aQeF4V<%sOslu^B>SqchKNvA-A<@W}?=E9pY;=B>W*uJp^QFYxPkhF@w}!+lW+c z1*`5wgk`&FC*)bFpS02xx0XtXsO%}i7;}v9rpumi3n=TFneR}Y4T^qcRyOL$C=8I* z7Ukx{)l20RN4T~3s^SvduiG-fwOThC)8eqE=B5#9)UC|dk&m*?MTtIN|C(cXF+ z5jM3ok zT@qC0uC4#!Ta-vR_~|eh&h^}HlwI1U#b`C5F3WFnDplZx!D^XsdT`|6;s_@{A8eOb zSAifwZ%s@(v(2bhPJlYo;D_{#&3`!i{sQKI{QNU*kG88NSS0MymAsM=qqVr?VLt!? z@WcWB!B4S;V`jhlX=|f>Nf>&{5t+**ipq=4!ImMwukcD?Wylm;_H>)^!`V6%iOJ6v zRduz1lJqjgsskij_fwucT5Q572Cxs8ix@m?3O2!r6IT_Ylhoi~2W&Mf{8V-C^H}WB zHZq@Pa%zi+xOYHlmmrcp�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�#Mis^5m>`#b_-0shy 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 GEZ(4gCx@($fE}yJwQ66CR3tqP0Nv4#*F9MMw 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�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

    ;0?g)mx{dTjO+MPMP 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

    !@blU;dw<{zL6sv^BJC!XOJPmpt{A45Dz|>m5}# zE?hJaQm#{tJfy{~${~+*#8%`Nd&2Iiso*E7Y!Ln=NJP-E(bJV}RnER}){zFm>BviY zP=0L!I963se$C0L$QV5$O`oaBo%P!ismDPnc_9@fX?3GGb((MW13H*rtBFCo>^pX? z{p#Iqp2aFbWQDzAUb6_f3I+|DkG)k{5S_BBfak+_G}gzAK!4_bM=F zhf@s&I2;rNr`#4AWHK`va*}ECKdwV%f^n;o*bT}DYR!f(gpLlCK9{xu3no*IG8iEv zK>J8G4JiZ@nHn)Tw=9#eiTJTEUUj#w|JWRl14eiFEBG{Ldca7pDzO8!XKa zF7eQ3kXsKypeN6oEJP91deD~Jj_ z+seLx7WCPHlAS;5D${mOegG?^B~{IYeKcfFp5#~S*BM{j8nECVkf@`VB2G&S6d@`SvW~_ z-_X>Y1QTp>d*dJ}icut_UK#mH+_ByGCol1nZNOd^L$>cqxd0=OG-HXXj4bJH&N5`| z0}&SGd#l2-y6baBIa%H!PPtbKker4gf8(&J=dY!7T7*KeCS6iTbZyR`i<&$6GfmOF z3N18}2Xl?reWPb&W!6oMEaB&u2!s`9PiZ(UQY+>X;$;sztZs$PE)x)rrdXi1knGK? zPoz8iSaV-E>!uzofIm7u<+o*UaIDOQ$t{c=yIQYeRnO;(j zatiXf$W+q#<3N2`vGz?>xc6hpz5fi$|G>}xkDvacw)X8Jp$!`=M1PxUKAe9!murpD2jc4A0F(N+2=z@quz`hu0#0*RIz6gbC7LqOW%ygkLMAlO$q{ za}6JY@( zwASvK7M$lFeNFh{Bt!u}h=Elb)M?d@HNbfZ7ZG1M_}tLje!5eYCe83F_;Qy$$H~*O zr_7pc5OHK&5PpNi{@Oc9>CYP&{fV z-=tZ^OP|LC^{Kyk;`w9p2C|=5Y|hA{mj2+*%*rkCwi=Y>Xs|R`VJ( zZ1C;)-^Sc&QJ2+H8s{AbL1XtzzMAVWIxjUAI~~46v*{b~HEec@al1W2=6&;#n;rR5 zanpYyHOQ&!AxcSkd68KKW}Ly*_!O`@wVs%%kh3V1{c>zuK9}>5>*x}@5u^w?OBG#H zEHLI(6eUKfXw|!>b_rIFr_9~qbjvd6vhag?;G#!+pee(0#{5sFM+eU4i?mC8(_6Wx z0;bJ+TrI7tCqoGNw0LqEE0U2Li|LiI4xO?Kk-LM4BB1Xh;A1Nv4b|zgOgeIUyoEXI5@V@I`ore z_tjeK@=1G{0+6Kf7kYYbPx?XPG* zd*7i%Q>dx26yOZ<_i`D(%BPB)j5UpT5{k&(=@) z-x7;eV!G6OiPcm~=Lh)Tp$t@0CmV+{jZ-NXI(tAkA}n?Nu=_hmVBQ0d21P|F^5v`@ zrZ)@&W6N?-nrSlKIJOVY0a!mi#AK$Q3FEAKeWuO)^np;rwcI>>_mVu!of)^){@z7K zL3!CWZ(d%#AiWSam~~+9onXG0p3T`|i@Jp^$|}B(+3F{^xrNWJAXVb9${0*~W{Q?F zRSUCIf#I1w2#lp2@@WWjKd-3&Y^58e@g~@WfdZ>BbI{|-3kiO^-`ZHXb!1zlaogtk zWljN@by<(+tG|jHrcif?|9||)-!cA=_djSGX4%{d36nJrRz#Fi36s2<6AIx68G^L| zaMx<(BZc(N_laiH@Y2+j$+}4hbz1vhDDsbuw}iixvwQNx4MQCU!1#t(AI;v_(Im0eev=QfvoHdvS;M#P@H5!H&{B>h$^4e&^al#v9WGkOs7RE z>uW-N44)uHR7@|gwbUCA?TIHDFn*4XkaR&aMGrO2(y{&3N*=(D+^4{pdtKm@)<-sU z#2;75B|{`t5qi{w#Bb7uK7$m&6~H%AZkh%m`b*}kE#>}$F6>#?3Si2FL%sHbz91Ws z_&Px*28wLR8z@#m}S12$4=Bbx1HsyPjeU2~z;36VMg4-0hus4<4 z%AGN#b41-iF<)|Lww6i2n8-q4y=MudVOF49|9DqQQr=KSPg%;a-ZjzpTvH7t{wn|H z@ZeWZ?Mbgh{KKwqLC>1`hrDQLQikV#aD!~2_3ohXyfWF{E!~k>^Nt&p4G-j5B!vo8 z&ez71GfUR3Wz1C&f5lmuXj%57G3MBFFblKg&@ZQ45P4E9{6W1<0aA0Dzf72K3*j{uMR{~GJn{|{w*6Y0ve$T? zWD^+zpHFSySR}Xv`pZe?Uj`Ox#acpKv1y%!c!`!AqL{{z*5%*@sTh+0wk5-E`gk_F zXVG`2DiJ-ksm{`h$%#l(Dkup$hXylWg`G}am8}`nFKt1Zya8nkJe@Xup!+81tL55q-ovm7j##nKV!}0xOv=36BkYkit^Nro1S{Wg<<%tv98TxRo zGkPiwyxp^rUlfmcNoxr;sduv!x64$|!<~MlD}MeeNm*4Ol}H6!kDA!VSivCGhQq*b zDw0mmGDGgOw#A=&vFRLLKS@x!k{jt|vaDk+pM5fib?=U%9xp;((zXvBE2mn1xmjw} z(pG$QUdvRdms@^){Z_e!lnZ+dUH*89RPQPzBXIB1h4R!s7CW2kj%u3R!?LWN@)C6eW?(1mQsMgR^Xk78+M@|@1{?7#eOGw%sZiQsk+}wq{ z%i!r9FeMfnF5odIEh_CyJ)T^hT^7vvRFz5ro_R__jvF`28b6?=ek6c?DIXGKvFEVZ z@zohp0a6T6$r&JNVBKAR5+yB0_1XQEaTC#(z|E#c+G-p+pS1b-^MJk&l1#Y)>bv6F zZE2bOVlPC=uguG+M7G~E>hRcu!s8U}tr!I7JYAvVS)DTG`bJ$qFXa!BMK=zP2FA$?_}FzQFb2u zyh~q$#hT!IhdT?MAq~q5*CH6=Wfs)Mj;IB;nrLdmYQsl}W^^qAujC64ooz@*c${u_ z!HB86E+LUHD^u+|7%=JUfq*yfk$A+creqj}C6-bzce!v)lsTx3vRv{Nxn7wDad5`) zGFiUyzjPu0aYEic{Sgw)23@q=!m2gc$CTbFKFJ{{8=ue>U)~~3E6_ac)$|5=6>&Gy zE0J6xrxD`VIuD;7C-88EDThzSg6pEfS8j}@ zom3f*j!lWt-~u`ep2@Z>BPINZc0mA@{X-D|(&uIbl3{YS|N`4l74e^h|`_ zIq_8=j#%y}Dg>Swg+|yu954$ElI>O!V#0M)fVEB4iTD=sim9@5>IR3INjL}(=DwEn zF1CO4KxVqY3oP|tk_7*R>VNa$54CTbt^aM2q_yWS%op2e`{eeh0nl4zt*CLFI9xmJ z{ye0MOFwmCF+zs0xLFmF`jNG{w@`)eL5Vtd!Rq~ug3xJrwHTG2U()c0w>^cfY~+=7 zbc9T=>Y>TYKCI(BRmuv{ zghuX^S5WXu^_`NsRO5iME8Jfa#)Op;S4H3$`cIq1d>j?uCWhX2P&bthNb;eJ61Kl& zOHl-|wF2 z5};!=eRK^N;*=}UgJYTc(+>U=_YBH$;sAkJWVASLYAod!>t}cX zhI?Ik%OSDYYMj=7vkR$Q1!v69EIO7M5wZEtasTfg@h>4+cku;p*g!1994cJ|N8XMJL82}y55oF_lp>s(xt7-<&mGlT%a^nC4X2DOOh;6U8oc!ipJee=eT~`E zzG5dt)f;kCsmv86f(bC>nb`?$F4WVm@YW4) zl;f|X0Uq6VO^oq2!RQqpYtO7ejshaj%gD4uhm~N>9YQLO90i8+tV^Mon8UX#Z|5KJ zED^^VTTsyDd^kI3-E@B;qIbpHwimV`u-5^7#JQN5%egO`>X>!q)MbOh5c{X31cpml zS~;`DF(-d!6q4k4LZ5w-y3@d|t-^QzjH-zzet5$%U-j3&oJ#VS|C71BB)JXSkza%Z z0HTE#-b^q6*Mx||0s%3bq;H`rt_(Sm{0RUf($B^Re4EaSdmY-x+dg|-;{YP|W1wqs zhW-S^X12S17QXxeUTK_yyu_TkLsHxrqW!cV@>XD{sZik)s^`P^hIvjg$VZQz9pF=Y z!d{N$nHh|ACMufOD%jk_0bcr0FmHB!+vb*t9Ze4Iws?SoH0Y!zk5N3^^I!yr9e1LP zmol|FZ5$=mT$8;ZU`YpMH{!|cQOZ;|jPwa@9#(_*Y|?W|iI#3;Z-=vnrl+9dY7Hn> zA;7N?M6Y+_u$WX@d2pFNm#*Q*tgtervs9q)v$GVO|7JS7_0b+KkX>1$DAl>utF`c>}DBqG#Bpy&7B@Jsr=Y0{Ntz7 zwk9TH5|Yx8jnTsJBiV5W(+u&FCwvCMA$7Eu8B^(BgW%QOKG5XBw38slrh_5YE6my0 zt_yuoYg~o@f#cJS+b#!B4QfrX{|Gj7B|80Nt0@v^nc9a$)u^{mz0Kw?isT{x~3=K zwTF4b-;J~WZn`)BLfa`Qg1Dd$pq>U&yAW_&WfXQzxq}^{)HjaK+pOVJjwGHSw9z$= zzu|uCM2I&okV&fcO+t}MIi{&lqi`dxblj**Fvl`{Jl$B3IOr?zvq{qJ?^^87={diJ>Tk*%M_@fP~VGI*xRT8`ayYb zvW64*Wo4=iWrN6`n%tQ3J5JPcvr?$$ix=wBW2`?_>Jz?R4au_BF1aV_B~aHVuoCk8 z;iQoZN+y_pCu>jc&3b+PJ?Nt?vpZJ& zj{(jfAu;lD@giQk?T}PZsw!>{y4)JCzvgPfeh4*E-Hh0b6o|va16bPM9!gfV=-kcz z*&0pN>hI_XmLqX_&-ABtnSQ$NB7lW=&l`K5MP)up4~0fj8c<(!9Oj%o>ioF79wme~ z0MExgHLrm(h z-k7he9}p@|6kfwD!99P!An>}*!4h2eQE#Hq%>z5m&Mnicy9Z0PIoWyuEApj}DD?x! zSt{XAP@gwN`v+TkT4jj~CQYMuW>6h6Y0{q+@aB&_%_k~jmC4;{J4w+NVP1+`F+r`8u#}L!%^I|Lvh^SYyaDBm&<%#{3llPQM`{nJiNU(sQAvwpf zu9C+oLwuW_M${Vic9y(~JZNWA(08p;y(LTV4&mU#lp&4`t4kT(d$%KMznHs9C#CfW zGq|xwZ6a1iFTgESp~VbOVU-Mcs;p)D`Vz$~(axJ42_9*=?#hZvWrugka=t^*Mqo6y zAr8yC>;x^+R5C3WeAY2DaZe|XXO(2DVHC~1^f+2=X!78^ ze1sIu4)}2k!qs>f=e|YK1{b7*qcbkL{-ZfN*-n@C%j{+S=B{t$(xF^DwbrRm82*Jg z|7$n$Z{PkwTkEz)N@Q)-ir&^34}VsXfP_FqM&%gM++k#)ZuV7N^tpLdt8r9#Zg;N= z^%LwCOnZ?x%MQ$|aXj6~DN}c64K(?FF-LK~eZ_uhnmCm_>xhv>pW&rrefDSpKS*7u zRZ~5~Lv+#Ees|rEmyTgi3MMA>?x?H7;*dzMGiPan0WDayK$Lp~5&3Axl<60gySjh5 zA3BqyCd5t5&azwr_l1ypJmM7*kJmb%E6N7{SsM9L^K z8;Mo(xgvCs0ldt6cjz(>myK3`?eC8*pZqkHvUi;CZ?Cfz^?eGS+YOZ^)CZ$R@rNS0 zuARI*WRu8Q4H^v)R?Ay9Zx3$=9c*`#dj0c<&|5f?ltZdf)DejkTB*Y&k!A zwtXObL0#1P&%FKbG5(KV{-CX|?cobtV-AJ^vc~mND+>`;!wR52=lewXVhxL3)7%eB zRoC27br{)bO4%3*C>chT45*Y1H-I|JxbHRTSFI$v=^OA0`hZILIL$Y*V?Rwgh!(mp zk*4rg&BkFyQ8Y9MmCh^@Fdo;sP1yG_BPm(eV!l#E<)vM`oLSRuE7p*M^rgZbzI-Nb z{v<6oLK4D#bypX+6$FBrc=v03XE47}giB$$8aJ61_6weP$DeArh#5FzG`W+2=Ep5t+TOr76-O$*QRt>GG!(>CU0 z10#h31Xc!2aRp=1^~I{^A|)7|d|Vihg3o;h@@QJxC~Cumva}Mp$x=*FEX%`bRI-%b znV-}Sl3hdnB3ThM6a}^@PUULTrp4C>K-dvKrJ^Jh74Rij%l~s?>_4#nTiCAGep^Yh zYy;uxCMOTzv$~)D3&^9SiW|d*N^|65SrQEN)N)2gP+)A4mAb|>6i`4fbvUJnL`%ts z@An1S-Gyk7K{n&aG#^63rb0#KX%G@ddHMbNffQ1Q;HblV%$8s>e`F;g@rLWE7T59` z_z9=SRe$#t$VpT4u_04W1BaT1=oNs@k0HYvml$PFEgv?Pt|3aHmMvH!VZ7MSQ}#+dMFY9wyCA zX&umXn*}Lcfao(o%v-yyu zn>)`;jrCvXGWi~%JA_-96PHD$S;9_}7lSIwoVJwiwkw6IZ#`0D-v*qFTShl^&|weN zO62CfRt0EO4((u7mBaI9VZwBoqs@7U+Zk6{@2k;6LK@m<(JlS@cEL)1TAY=8N7+mn zPxxLsn0N8jXbBW&CXU8o?J&U^2smN}8aNYJ9}yN zPv3v3m%`4xKQz%uNST#v8}Ce=MK}llePmfWift94(OvA->HLREeh(Uj4*J zqkYH622XkLL5~>nS+j=1C=5Kts3P`=|Y9DC-mh z{|C2q&soTe2Occ*6E&!>O zNYwMGaS?sd%!K7Lh3 ztz>p8EgOHKDoCJ_J7DFlp)K3BgtSg??nNsY$t;%UMjg;oUGr?zkPsu^YQz@}HI z=d<67l$1-6y000nWq;})>(;QgbW+hI{rtv8(`fe~tfQg%W5IJtt4GEEeQfpLDE-&N zPipIn*=O9J;UFgBZ3yVlYnuR3TKcBS16??c%!F>Uh*hWTOQlu826Bv;46CjZA7&bl z*+t&7x@%q*yJy0A{Q66F)GKSD^i#)Zywyv*dfW;b=y9Y?kocCz*#@(#_~EW zn&aZR=#H`}=V3?0!F&BMBY}M1h={S4JN!7KUm^PY086Rtt3Rd zF1(BzXNDJ+czH$7_{-u+dHwGu+Vn;huOe!l;+2~17DOEr7TBUU5t?rg^TO2*cHkQqxPo>BVAvhZvSgO{{{8+ z`4eq}bf;MOG6y+WFucJ}j}wi-34x#MH)d>ZRZr%?8d*lRY!O369|RMRvFeoL@3d&m zhU#O(8eV@fV0{^<;GE6rakT@lN)x~D{xB3dnkhwqZ$kmu4TE%GM| zB{jENjz}*FpTW71$^aqrc9E($u*a{#Nu@jI9KJ(FPs$92wq|QgIJ1`>9()3dc~6jc zpNn`(ffsmoGY-GmyY`x|KDFjwY(<-if|;tH6m(mu+%j!%C?CDaZ(ZKB@ujJT<@KU! zt*nh;lb8N{L)iV+V@!4)h~K|PG};{O?rH`DcHLH?ebQ;V0^Z#HI2p6i8P_>!}k%v#%g2(O?A77Gg z?v{2lGjW>*YlX&-w z*LLWfhA#RRuZZ83cjh4tdS)VNzN(ht9*>|O#ss8qVtbx@=7U)9SZX)jN`vQO9Q@Ix zAMKParfcJ2rFy(IIe@9~w#KDQT{q$vvKx3OSL*`u(7Kf9#w4IhTj?RcpCa{5p@k32 zOuLiq%}x(iECk3aG0t?=>~dLlt=-#q@kwL^!m%1cU%x-Q3i)74KbN%E#7ukcs&jM5 z$k6W~%VMg+rdY6eCa7|3k59G#Moj6Xh?kcqggC@sUZ%_V-@EI7q5fz5Z{xb!@*PJE zAYH1sJ@~C@kuTz4JmU>4J2;(Npg0FpTMbnKsipj0j{!Q7b=`|K<-G*-St=yj2Cy4C z=<@RvpP$Fz%WcFRd3;<)U}Zu_V<;#G3p=*;E4(y~74E$n|5(wWUMZ)xWi9}_@0H1L zWRfiahwFO8uH&r~@Z)^$Yj+Y;q4%4nEtTA5+AGr1J)ZefEBS0oUYDl9q>x_6r2KqI{D-xn;vl296rMcQ zQgz1s8e^B^kY5_DY5^fS4MuYQP$4~s5?q7U6qe~}gJtTjQpV8B5}GvksTC8}T@3AQ zOEIC%2Pr9gTdNM9O<#J$>TZ?(P_gI{#|n&k$HQAZI44^7G-4PqC1iTIpseb6eU(gP zDY{ctK1ozBjC=szhSN;X`|#}{+uvf{e+o&b^>rcfn(?E<3i^{zgx?ctnA)tUT)|vo z;aEj6E1bqG=~BF7J;bIj6+XB&QP`b|KYHE8YFy~rc^9^*V?mWJ(%ES zG`g!xw*7#-*2G;6z8W;`@zO$2L^Eb4H6JEze?w5~P^0~lwNmV^s+%-T+C&z*h&P1< zCGTo`>|n4`NS_6I0Oz}?7i2c+L!8>77zQ`}{4O1xOu(bHOmzq~L2j(;j-YqGsBMIi zoj|jis4}%kZ}7K$e|wo1cFhX^$KA_6(Y6fxS#22u%8*%QIE*Eh1WU3ZwwOb{nrBNt z-9i$~8KrtE~uBT$Rh)_eF?V|5p z%~n|N7b6$>w1vKV=8Nw8Q76|-x`J-93!n8Wg|ZJp?`vD+42eDCD-<*Yh$wQlnij0( z?^hN5&@{r-IFg0~pGAW$RjuDS&}dzLS`i61WO(2zq>|RDkc*T?iZI^N`#jcKe50e` zMj=^?LB%aYy*GfawhiXtp?$8S&kxFER2}AFhK#<0`JiZ9$4UP@-i==^8aaibK(F(t zuLC;~-Ga%{s@u$rh;RZ|B7HVRz((O zZq#~W82^*m@>56*#BL*&YKQR-_@sCX*LuyGs>Y6iz|NAtMi7 zLa!RoTM=^;&)eG>oeo6w8WcUm%tu&-wW;yx^+0ImiZpd^m{NJD)uQ+q82Yu_D>*4= z03K(u$xNCeSe^Z3((pqQdjn{ngR}s@vv!sFjxK{Bj_TatdLFf2Oi-A88VNC@Jw&53i}ioC`m2eI5=Cr*53|NN=u;jpzybdjH1YL zy2l{Y_aZNpJwqY`D}$+TY4U7rgn95eXD zK||+RC51yyY&^%`4!IllUEv52ic?hP<$wI#Dd%$x>SUGZ|7d&sbu0eI^C#M9Bc~wf zJC2+71-Ycu=DG7u#6rZFshGaVl)Nys8>@IVM3+oELorq98KlgyD}KOvGYsA6n*Z|R zwISEC=F{BNrWz*O6Osm^q1alxFdoYv_Q21yH0U+!^8Bp>&Gs{y zGF;m?Jvd+a}dw-2+_Fkrc8?0M<Q$I~11-@TfjXqzrxm+dU9sj#lmdzx+Q(yg-gpoPd9a1`@>I$G*%(P7)- z=svDC#j z{NA(&Hc$Q&J#>^6ri>%Pq1H~fC0ituNBG|$?-p+agUkcy=Y z=|l{DgeEUfDk+Vpc{9D?JTaG;Z=+&FYDas5-6<5JQc=ktw^jS) zw3f>HbduqNI#~6|trSm`>`p?c*cWGuc0Q%_sssEjHbU?XF$zGBgR{wfy)m3#<)pye zeUnOvb`?h5rOKqs(!D;v61+YK?2-|U8u<}{FWOZ$+V!6!9}Q9)kja+=!Oj@4MZuLE}~!Sn%uz5Ub${0Bj2&~V}g(yhsX zx*6(kpHCAJC(8z0I?ZSDd4j3eqSSTO%2AY0_~gQ{FWjqfV$(<5K40nLgdZe8zN|B4R zu{QdHNrQuyP>mwIyWGo?hmj)jO4GsC!4i;|`XPhXQK$@w{@pXkS~Q)EL=_YwpMSWx z6D`2H-jl#sW{daGWWk*ZWiNh7#PXeGSJ!ftq~N2opUOWslUVZZcyYri&*x$uA!OFl zpm}(Ht4!d=X?Wwx5;ZkIU@zIoAUg8nyqDKx$Ma_3e?IUU-ORQoA)54TVP%;!Gi3Eo@0%mj#J{4PkS)lih7pDpoC9e@Qsg_leqdJbZ^HHQ{Z0;)y+jPUIoa_ioIi+^_-R>DaT>cTuk_E4@!6 z!J28Z>JF(V2Q&K!A2(YQ-7tRYQy^E?3(QvV@F0mNyE!N9- z!19rE|Ked0X?t3`AyVe3Q1m+ODg*j_psy+>uvo+jawrO9XU(3~MM?{ERNI+;DYO4% zTUe|QU%01O^n87@OaZNRDG^&Nk{p4=M#7 z{|YjSoj+*of$cJBx(bVzokr*8xC&?xJ@tZ8+j)xY6VxG1eIk9HjF}ooWpwiyIEs|p z?9B&+)6(d)U>Bq~u~8NBjibeZf7~l=5^W7mv-eU$jN(V1y*m$2k7M+P-e@ah6UTXi z(cdqUlJK*G(`V1D=(QiK85>W5H>OxUY{#codoquk^f*%E_ila;e7O6TTB1opRCh46 zj(lB$&4kTt9W|SCcBh_~#m|OJF2p&5kgApcV9Z{nhsS6s>i)v~GxD!I2QQ0~d5bTC zKq0Ha+}G**bKibWl(FlFjbvlR1OMly64lZTb{0N6!pQE<77uy)detMHMH`;ln@T6 z@=$gPylAXr$Od)n!DCe62yYa>wUG<4R2df28?2#|)N@T4FWxGH6rPLD9|SW=pE(CL zq2AcdH<|D+W2UY9$`Ld>`8*e6ax2AC*1;~CYYT^6hJ%q)YTyit!zeYzHvtSZYgk_U zgHW+2++9f+W^?Er-i=LO%Dl9cDV=2;j+H7`tgin^kGEW6MtAt>REj$^qm5VnSgyr#a6>n`M%W3?y8G;WnY*aCyno>i(UhNAd+ChlN-Kr0eMzTrREZ~oON*OVarQFP0% zUfC^b&d`>Tk7xAvXXkVV{Mq7GXV?i-F)}H7_`q5io^$V9=K6oHm%mFJc z2?vWzi}96lW;89I=Eg6m^0swgY>Whk4hcrEq|Ag&Bh3J0FHL1)q8O%X72K%5R;_bWm`A>Dt-itjdW*cLPNjF} zJhESHVU#z(GWFhzu`R`{l3V?J74da$?)uf+ibgB!Cb>4fOTF5=25Yt_|H*ayhgkoA zpP$?|$N!^|%*hc1V#UufO&LaxWNVOAAgaj$2nH?}r1EKBf*><%W^HsVGc=KuD*+q| zu=o*&BNEG352r_u5TkO%wW-4{_@8x=KRIf!Xy9Jb!#QSth)$phEzN zRxjt?{q#oTjzyFF@jLwyiCZ9V>L*lK&0lDYE<=KEpq5$<@NnoMKc?~Kt(sy1$2`$0 z2OV%adoYz^pobDpl$y3A%{{@LI5U~s&y$2@K5Gz|cx2hZqIC%yD^+CM_12bY2pD)8 zDw{XX8!qp()7Bs93^5q_vZuo2JH`7#t6r9cS)elgb%BL+u!qHW?vxh=-MGT+erVBd;Tw+>KhviAR zIwPM_Dbl!aVY^d$!%TDQ9`nEtl@>G#R(tL-dHhuu^^?;72KP_d)-Sb=bzE3|OT~cu z15Gcqbtvz2p^?K=l;LZhMHk2YwdX)4NwY3Ab1@thpbgj9v;pG2M&}F?6o>hB@&zg5 zjxo&%$$FuC+fL&;i>fp?XJ(QmSS`GE*a%uWopQFu7IjVjkf;a`n7^zJsB7#(@)HG* zD`GEcE28dp=B5v;o}Hd2tHBB_#_TNG27j>sB{w_ z&?;Cvql12j=-0bZIXS`SGK9trvSzhveqFpUfG@+dC`Lp9qg{MDR`;Sc4)Wucb4(s2 zUHA5CeLrZP(*Byrs6Aj!J%LH>Rw^kfd;rf*!{cYUXcgL7D$O=GFCWW2eJoZ{5EHY; z$USfhZqSMi2%@3(g*mXk6{@Lob$sQrdQI?9E$mA`$uL!?C-U$>2DL@&8hecAwI;s`31!eT@_!2hvXk#$Z|Gzp{w1!lihgeV z4qdefs?mdQazWg!ZrzaaCdk(TOe1r1nCTunLkA>WtTZw43(9y1@qA{cTYtIMUmzLf z4g}yxR`X?9@~*r6o1paBi^8Ewi9eLMdz*9dr%{?oGS@v}N`wuo7nrpe5=ivTHTPdb?Fpaj_I0I^TDo% z!VTC0uj?w(_Vq^aV#fWL5WiH-zlBnMqHPxD^;5RVd%Sp(4&;LtNGtf`Wq{rimpA|& zEi?P5j+`=FS~Z^t$}-Q`CL}k@tO9CCOo_9rMYgf;Bf1J|0%gR}cY>{Wj%K-TJM`3k z0Dh9sdXtR(keWjt3V3IfCwu{coV#(uo5QL!%Zk&)#&_mm8jM12_e2bH&1iG^c4dVI zI^P(|%GAvbu2E}d63&tgprIYi80l|3w@PCl932>tmyReE;{pI*`VaLXQ&HSL!=0D4 zrY8QQFRaED!FnM=AyvyxttK88*s)8kkpfX;-muEp6Edu;=0@q##BkkiMnpI_b-@Cz zB2TpP5j&P|^LyE}F|n8Q17RT%ZTt2zHQof+OQjcB#rm-@OGQIQLG~*YFtk8 zp0x;TrRA}9-&?!huh-<^2PT=ydCQkgjK==YrNzeqTy2Zz8U4=0Wch*l|3bL`wEq@= zrfni=@p2luL%WDJUP?MCGF}^6l2i~QNnSt7cRf#>ub+B5+$9jiB}tzBt>`s5kCLKF z%18mW9N~f0*p0p3`tbs+S{N_;^bJ1aF7su8o*(`b8PvCE8hqh(DG36pdJ!K&k(YvqU$Z~iomB6MiZ(qu(qC^*C!H}l%!6D~x9 z9i9xy2iPfCri3ch&{{uJgVI@}M^GoYD;z+96>zC3Ah7-qk10x@T^i5Gr?Y8C!CZ1aQ zAsz~B(3OW(`H|nnV)nQ-o1eDkHiLBB?%z83ep1^s@wy}7&6+LjrQ3dLBg4B`L3Ljw znYt{6ib<&fsaA)pgkvK}k_RkG&qc$q${i6GE4=8?W!r38DxT)D$|rHwEwUjv5CsB;#4S9QU!!Vy?>!O(UK1}H(Eq_|Kt!f?JI0(%!#iLMf>TKw27|8R!l5cxzw zvCJUD(zNHzYY`bI^!;cIvz)-!ytph%T6hftgEBMrZPKM?S1CyiR%h{6F`x{}ToO ziMC;$ee8{8C-Ue(`3=oAC$98Lq0C`*q4Bo@WPkcU)L})LLPU?FaqXHr={zw*|*+_-gnp!lYAL;eWV!e}ED`C8X2 zFT&PHd??1BFXqRqs^&CIlDvR*xkm=R5d||Be*-xjYP(@{9CHD>7I|M=CPvJG+zg6wfbF@;<&jE&O~tbX_eb~`ipb;-z7FpGwlUt5DuB8GyA ziM{sTb3PgV-^gir3}+Y(Y4sE;_etnqd|mDMlK9F*rf=59FQP=J!ljSN#ZFAlT{~O7 z*OR8IFFDmk_BvxcN9(5kNYeYNXiX7%c&2}G4nnv3d-`^!EZZ`L3>~FrgXGUG5P2wI;#F9-zUBVyld-_znIcGXHZg&$*5~n^$LQ3O7 zG{KT7Ky^IXH=4+6#RtnQKG-=yY-1Ct{l1o+W zobvtVHg!(y`2ZyYm*L{2isK>XuGwh$c4vLP1eJ1(qX~{se6;bR&l8u_POAZ`LNP}$ z@{ZH=hMo%x?u$hk)H$_sxTr&jHV=jXlORS#uI!y9usErt1qWVqwUFmVOVbGlA9BaA zhy|`y$-pijhf1bpDYq>KbHxm2-S|$K1`;Npe4>Q35ozrFW*fy;=Ud8Oq72;HnFG-z zR#~94;6JROfN5W^ zVSdUZ2XTpQ1CPsZ#7$5_t9JLo(R={VE0KE5&?-X32|a>fHijmu-}I);W^CRkdQAn^ zP>}vjAL{%{E6?BVU{efYEmg=^DrX&kRQQrighHB#D(AZ2T$O)w^*JeN=v*u(nXY z&YqJtTugI3^7)GydCzfQibU4t_A5lfU3<5vUQ>&UIwoe>M>JJfS{Yl+OP&0(gH%-r z$y>pKnhH%a!VxnT(lvazFAMif{5mo5o1Pl(jtggRQSAM zEE-j2De(;%gHf3yimCmv2t6r2A_OQE7)#b473b=kxG7`KL`_dIm%hmr0#C8VN*L$D zZ!%6A3#cRNT^_rflU5|r6g3L00eVVqXT;^R414kO+%4*>RS79zBw3XrN_zuDRLnmw z)<+wt6iEZrxjDE5QiV$%qd9Pm_LDgpU%h7tzLNn6e`hDULmdS&ZHQ<$|1Xm53|Iw}C=-&oxCWdzdTRjD6BaCrE=oORar-s)|R% zC)m^FtkgPTxRX_j*4e1WM1)CoPRI6w!KA*>>7mx;uAj9UmUm9Gtl?^jCW`Dz_XaHb8k=%VhAm%Z7Hs z{CO_J1G@UF4M-S%>!6$c9rI;4O&`cAB5CLVFS^mC`PR|4 z;RIZuzW$h0RS@Dl-!Wh&tZ_oZfBR)H>&b_KC)9*Yk#=pmlRJkw0;P_pPp0fL26gnA zb@ez@Y?J)3Azqm~ciuf01sJHVsPs)2{=(j?DCP1Nuro?u9MWz%DnLRFcxZq0x^;Ry zrRvbb2pclp7Yz^C5PKwpD|IBsr!^G&!085j2^xE9XB$bdvt8!6_!rKF~gqa?Q< z?5B2gp#(r7tP*J1~Ao9ZA>#M(1br(*^w&jX*Nd85UM4LePCIbx2ELH7C7DHC!-tB+?T(_Zg0-8-r*3pC?rX+{kcQmbRPFHT zCc`JU3y1vim3)e9;TugMVWKlY#OUeUG2F4w9&}uc&9;t`07n(!i1~;BdN1-tOrdae zhRMSucy0X*i7jaO2H-^8+~5D9eHHP}DZN%+XZ-l$(?Y?(cY;>U~EX??F8ZH+2dt-{Ss$PzscIWnlNTA1_Ai(!(} zNHEI|%v)L*eOsCZo$l!$pE4c}HtMYR{VcM~D0<(}uhAySG3`axZ?fBLNtoQXmM7@@ z{5;hq2Mw|9N)6N2!>r$VjGFb~!Fl=vmdnGP{L@SgF&oMF!#50zKT`T_CTlMl(+vyQ z@J?G;WU-0h@e;hsK0v`1=Ez+6Rvx8k#1AewQgF@zU}4dd2$_shtpO( zi*#Uqo3E8eY~XO%D6p6;#p{nU@0=;SI6%dsXzW zIr|ry|K0ghw$Y1j6-3u-n-D=;R2tDVh-3LME-g(a3M-~Y@7PTg5`Z+TrYDu*4UM^! z*{>F%1DC>-iCB(`h)7ttiCqJ5_{uhVg)m0FvHq~J4Dk=?<2h^K)V$?9U^E-Y?c#vz zNyYfl((lbnQNZ+efO;}Jkt+`uFs^|D_}U@$M$MI5eb2nedserPT`Jj9S>mgw`BGL= zHh_2bR!cN5wFjK1XTR9R@uwul3Q^D(PTE)h{(Y$D zXq6+`KUbq^8*kvJ3edExG@|WRpL|RkjI=JV{j%POStu&`QtJ@X zI#5g4ub(^l?OnaDNs2no7qqmxs-zUN$1gj!RkOElBE26imwPFxpnuC$G+zGU9oiYX z3Xd|F1yuL7>+2^=2h#T<95|C&pH3;*SuDZM|K_Uy`xo$&+LmN)dDl6zIc?|(1SVsd zkjsJ4Sb)J0k5S58)WmVRpdYcLC=iqgO1SgdYcrKcTB?SDn3#!8fP{mb!cstfky$gx zr(rX8fA#V7VzzvM7&XF712s560s}^N?FlC-Zc7*h3FQd4X(l7zz+Z%ln+!Ft~y zA98O?nrIi$#uB^A80B157~|>d{SI!0hrI!qoD5qUWbJtsXdC+V){5CQ%P!<}^D(_y zPXkwYo7ujp5-vACc6~L0i>GtIwVRI+-mt!eEdsrbZ`-{yy4$!0Z5|&P!WQ_5H?mBT zHGaA)n#=BV!nAiqI)&`&DpYb3;ntAjcfUV#om>G)3%K#8IJn`wz(Ne_*R%1c24-$& zYEJ!9IAWu4TsSQqSl1uM5jY%V%aF{2mm!-ahJga9UF}9kY5{O>%xcRUFPs|!#!9O0@L6p|^ z)Fnb!!bqT~g8wl^X}yQmP3%T?6Oj?VORPDV%w$pk#vpFv>vu__qgh#1pst8biKS|i zp{~p&B5PnKOEr1Lf21AW(e3y3IYWkPfm$0X_vW6H-)bi2rBS{XJ#^PPI~1~8sUh8{ z^>-KN&-h=AS1Hk;l%*$?eI(X^goO;|2m#}t2w{cn{GRG0v*?ed-!ad*1D$)cT2i=0 zr@1}fTwk5MPoH;;eF&jWOFeL%Ofjwz`*lTMI|Wc{#re!yb56S)P8VyY#Q>o z>lfOwzzG4^k&ddW?;lZaN7H#yvU5f?XKm>xZSvB*hAh#4s7J>36XC3r-jW@-(8wir zpTs=W*_>x05o* z0j7EyxaFCyiOSASOR?W2A!V{eWJf|=Tt~rawwfU)l`8B5pP4UdZ%^8zAi8zRWWJCh zN0N=VwvYWzrLFbm*`K)KRx^-7_mlj_5Ga-@?KG?`RO|V@e=7{Z4Nr&Ul95Pl zP92k$BF9Oj+=e`;XtKf-!e>~}6{JuXP=1k`!R4kWtti+qIZlxJVrDA^wcNYn*ifo0 zHf;=>aIM*l1*={ws-j!9jLGp0e!6>S>j~NBpN98lvMUjE<=SwcIRu`9UJ@_L6gg}C z?HTxm;mx;2g{H1$4OUO~VEJQq)Q}O<#6c5f@+3RMmIDAe`OxhKZ@aYgAIq;~h)tDD zep^at=@mAwX%!b6@-o`JnfpYy_#oU-C?Rhwk5#fH4>L}UrOXiyt!y$*6Z6uHwdCt= ze^Q_}LG~5pwgnq1((~}v2ude-i|y9vxPcVgD?W;c6?YxldD!ElCOl8)T!pl(&p>Oxnl z?D?*aoRUP#jG~%%YCM=YGQ>rhEk9<}PZh$YhVFV@mEWFU z5Yn_y82N4aZTap?!O#Eyd>gYfry`QQq90VVfCm78KB}UuH)D8{dy^07x+Qg#-9KTe z$b=tgU`WiuBp(9bNO#0iZ?@_Y>qt`kvaZkc=QVy+U|7GIlPy0{St>}6s z#fHd`OM!`7TRjmW+&>7I=i1kwLOqg5PqpgK73b=bNb5m@tVkJ9$A}?{_(+JsBu7>H zST4R|x*{c#^r9-4=`YUgEGoWs3>mrP(_jGy1M9U}$0*U9(b>rN+Fa4SMAb%2ynaCt z7&V%lFzj0L;iX4>p`1BirO&i_w%Lk??LeR5M#6k;dP8MM_vR;!v)A8*oy{U&y8{Cz z9-$s3|M6WIb-iN)&UN(MFLkqff0I^+)pxEbh*z7-*n7_3b7Do&g8IR~Xz4 zkM39AYrad?y;g42b5D2V8d;-Uv*0~pFZuZjp`5}x);Yzh-Vbhsa13RHGv$UnraEW( zvAcIabNwu1ZSUTH3G<&;;GeP$a*DlP+xeC#2}nEw<6%`^^}c!8LA2MQR$Oo5(=+#I zIe|xpm~NUP644;XXb`(izm=e+9;+v05Z^M5FsiUxf2JO*fl6o5*!n0dL>2^>|3s<@ zBqQe4laJ(KA|j%qZ%Z`Hs9bPbH3=d^S{-cH#damJNJU#8#ELw?QADk6AZxSKH&0lG z&>CXKA*3ly<0B3sN-J)Ue~oEX5V140EdG%q_jS^$+JL_e6$Q8>P~$y#e42edIQ025 zs?rb=Y9y5IQTFI#p1JCRdw0iTDmB*JEtS$Q@cLxSDjZ_UI+Z-jxmj3rVJn!nUs`d{ zW01VWyf*i9fx^zl_3o3cH|_(A;mR7e+rRR0vFKm2qr5$1RWSSM?2eVTO$EB+bZKMPRP%D6gmryJT+bH!IHlsBhPZ#C zZBFKuM{-@ZLlYt4(dRY5;toxH=dQk|Wb6M~M-h4 zbE@^NLZ8he7^u^wrenUrnt9O3DBYY&XRvv}lJk%mIk6n_?xB963yx&=kjk}9N-Lm3 zvKc%7HImv6QMBoiKZ8GxCypIcpkH*SHcTmgAUqJ^*$OJiRsX}HX~B=-+!9T$AFb6$ zNo=hG)|B8Mx62gR=4hm!B_q5TWqiy%=Jc*HZJ;=lj45}DVAZUmHtYGrRrcNd56@|g z@6MjAlrd%Rr-~1nC9L|#KP3D-^iK^BM}`6$v*-5$@Kp9J4+WFITlAhB3{)cL*Eul$ zD^IZ!h&n2$Vw<``QW#T_d-$gsiwb|WNE}gQD3D>cB$D6xH zrqpijt$>xiZo&O0H|bAmo64GJ3%ql>*DpM5Mid*DPN8o?a`ajoG_JKhNy9(pJ^L#w z4WH%xSR&CA1j7VTa23tD=+VpdyJ@r&+rPG0`~1)-aMl`eY-c6YnDxb3KOreh*Q$`S zh@|gKwyy{uP83fl<}sYxO9DUf=-gy?^AqMJTu)0I_yPV*rxV#s>tzv^5d;w`0)LGv zY6Z$%tY#Y1Fh(=QJgfr*>kQxK)Ry(KsMQUkrw)i6&ii!7&{-o7h`c^bhiLE!^Hm^#s10epJ?k&F_k*KS-T}nB%&l=}?O-$!X0J_h@Lz*7X8J6tV_-|Nm*I3O8IC8gKS6*7PS{^c+LiofP zol;_>08e4OF!e7r9d|!!s1Lb41P@a9H||4y`7qscGzMo|iWdb%e6k`97xNjthR0KZsC*D84pm1@ZYGlF}lAZC*NxE%Eq|t zOga5w@hY$7i5j2;|NZhrE=MmVsQ;kgxvn{`BY3-xweUek)EBchf6tjUFReqy)vwla z^q2p28vdtj>yyF$OiAYG7w}*xq}Q*;Kqgw%wngarL$6SM+ICVV-K4jg#Hn$QR*8hF zKHOttQKArAHQ*LdJ%kfUQ^YT$pTdiMfexZC#~vDJ#r(nqvb4}*Brp@99)qMUrEyH! zpRjZ7KBaG{?{nu%VY|)yB-#;B(te_Re7#8k2S?lh|I85S3L#X2eE3NzEluE&${W*C zmYlO%hL`$Px!z@g=9S#++>hwXCE*>;p8AKQt!>ZlslbQGF$-!>;S@xC>ptuf9zr9JJgTc@z?qk#U*m#PE~#{cpH{2%c9 zPih}I<&o{#UXZ2VfKVsICRotwCM50A%d?}$e1n72h$s{W%GKlD)mhYqqKp#M)w$8K zuE&+0Mzj)AvG^32CL9s8;R94BLuhDy3c?=8#?mBEqRGple0@@iRLP#lk?K3z@v&CK zBp4LPe?(7l5QZL=C7K73nRsRhnX6Yj4E$Ebh1RH=<#3570xK+Xvrh8d99U!Owmea= zm72G*KFO}JaJJry&hC1@O2YJgL#x(tr8+cdh*aFy9WY5=c}&h=dSE0-OX2ZlD8-*e zGMRD&AqTY47xXFDOnA@)wGHtXP4&zdCac|Qw+lI_Y=o_c&sJcs^vEVv<&}JPJpzOQ(VA z3(|X;L<=nDDv0B%P0pfuLY_I7-{seHOpR}^kyDzeE1paXA@>SkV*SPN`wszo0acF# zr{M`bB41K?Jh-YEHtX3`lQ%}N$uhT3mmMNc3CcR}7A&-WFh!%3ILFJdFc(FbqBzM* zLWpLJCJd0kGZh#J;-Ipwm@g5tw+lOo_HDAc0wL`#cffhYnLG^{Fn5zjy1R*aEQrad z?`3749Gd}f{^^LRrXUp8Cug9<7teF^ws`J3`?cHc$LVH8{unpJY=9l|&03z=6vD3I z&WTT=MAr7!|7rhC z`K7BboH(+u!oDDF$kIugSdrxJi*QYkQAs5NL$ek%h|j}^Gy@iLAjC=<|ID%InM7Rm z$HOSp`<37ygj;u|4w*7of8p@!%Enr16M2;HZYl9tWMgv6PAZ|fnR957`TbG~=;>R= zw$()fi#d&qkI`TmQTHaA?MN4if5@emT~L|m&Z?6O^?5vMN}c!r(Ds&5ZLZzgXc7Vh z2oQn=Ey3NPKq(FGG5l z^Y0mVo?lnybIohcd&*UF^qH04s=pBLPG?MovP(pzecU&49|+ZsxBQJinuFtV%{Bd+ zqa5aY3B}JcDpnj(%9T6oYK=*0}8)PR^hvDuiK3hpQ)z zgVPwAq6`D*k}(Cjy*`p(Y>t+bJJjf$H7~2|qrc&!m7;H0fzIk|)$n|gE%0d4CX42W zR8^GQEgR`&53y`XKG`DLHGPIxV_xn6jw5SZtQgumQ@h{ zjas5_GV@G}Zn<6XJtnH?>>Z>wRqq#-v-#{q))}wwa9|}Lp%%IPFq`JND=t)R%ITOy zbXYJ^<0Nmq*X6oXQV+W~=S{6&nB2_O@Vqs*baAuTj>hYR${!tQE>1ta<6kIR{HYtX zrrb3#X{dP~p?udimV7_K;E`LAvTv>Vg^8mKCMQXyAb7i7q!4@TB=@ahL?E4{W)(*L zi|%mFIQ@m;x#v5bzSIfNrn!8Td|kzFKC_)}d~`o$MUT|->U{|0-5MyQvuXNcg(d3q z-n+x2NRBsOdWNzR=rhQ_R#R;q8G@R4C3M}Um)xoL!{u`&aw+9P4Qj-D#y`&}FB02d z6|xF5s+W*lxFb#FiX=5+mvltw?^q<6@W`G&FmSWwUn_d1Y&3hrE`<8;$2J&bm?!*4 z*e=$oNBvw8TQABR@NRXFth^5%}mE#&{R@kHV5CBnEFE;?n32=%6sU-vBeews< zb}=**Y^wv`smcIEj93&K$V_JNO@x3m3JDrOa8z#IpibGL26D3-aoL0BW$&*<@MU%o zqhF*5+|URx!XyYq*WWPBFi@rn7w_ssaMOW1N<-{Kp$vVn^{VHt?n4qrlT-t|iBR&@I1d zTSJg8hi(s32wH1|0u>b%Nj-NWe6Fe+dZ!VH*DC2OARVxoXj3l{RGLEcvyZ4`0j^Ki zUb~>PCj^A-?#_&gJLEc3xC8rP+)cb| zwG(OXd$j51o8(SmqlW_tvWBPGdJ&l*Bc6Kqyq*9PQrGS<&6BVoEtagQk*{1a-MSi4 za`i?5%kLchhct5pjPRR=fji>vsxBOH(Z%XRHg)mpT!zy$nqj-?${w_u6^`Pg18*PJ zB;^YGZFAl7pCS1LZi!mjd63=tG8MV4YDe1ia`f}^GhzcX`)`qN1qN?hX#vL}eiil$ zwoxDpex&(BauTiR)YMtGGLfQs9gLU9+dXx!203f|>rub9YyYe@{s-dk>XqN7ttd~I zp|F6lLU}C<#AiI;<|a~tr|{}|Nk+snqWt-T)ER_Hb$Dl4otisYUSL_ZGHpnVewaN- z17sf+4KLO~(eO8+05DXtwe8ETWcznsk@zsKNjlz#?B|ZE^*rdEtcU8ynA&Zg>MqNJ zRHFy1WLyTC?}7x|q6r^2A#d_PhJ*mpv(*-BM%>O z;C)(3m?)F2sL;K?q-7K_+U*+dXbexrSx(>g(N_S!Vo_<$?56c#|3m%Rf-p{`=dh!LC+vL6Hn z=#Ugv8N!T&TQ9oJzoo+N?ifyvU2P9PZWuW(Qv=I=X9PR+Qn7Fwg;r$QPThFwpVNVwMmNS&i$T2AU-SI7dubU!KHOkEjZhn%Wz~e&~;{2}7k~B%LpW+@3wm z8pJt2`mh!*u=p%;fQ(r=v43W!b#Pu%gPD|UxKz2+SIFnsw#3sp5mrOe?~_x%D~4^y zPk++`bmH#HkS5Y+Cnrv`(9!-Qd4hALpdf%%KbF@Ed(O#mp+!q*RUn>y_AF;r~zl=Zpm`uoj5w&SSq6 zO57(bWtbgAhWLVc0D}qD$j$e=sa5xpnnCOpDP($jfz+NF>y+Zo313B2@x#ccN^O7{ zF(Dn;a0*8W+;szfG@_kVo}#&Lc_W| zGWW>ArCy1F-II+Axd$NOilhc7Pmg00y(V>ZpPBxxhvb4ag_s^kegmTX0S^PmebKLW z=QqL{nZdGm?y!k>JE$_h`^eacVd*djMC^cd|ESC<1^fgIdmkUem4vGQRck8qrWQj~d-OL;UU zKbMaAoQvX(kEGx@(O^P1{M>Zas}zD)1i~MKo-*P8@SbdNNpw>_IU`BUEUV0ihc3uj zi;YB51uOPq(c&L+Aeu&yE_gq)8*{~4c5$W58avI1^5+nNLB5Z&$y5HRB~I6DEsYx_ zMkC6&?2+VEv9LI!>#~d@_Pq4`9f^tO`bMetBXRyIY+arP$g0|n1JSjV?EzoHRe}s6 zFCnQ{WfYirlDkMx*FjfO?kM=qn_5%Zx_G7qA~;l5y-dU+NpZhYk0+@oz}cINkFVth z9Ly2U_BmOo7{0lWqEVFRZj^e3I>kJy<)9Vfnm*y*;RrJ@PHdE<9^4sloYN^_0^wXU zybb+-a1d;|4%h3dJSqt^Nh`LYHr#io<+Cw~txyefldQHuWThqZzxd}&;Gc>_(jWnF zjQJs2P5=Swa1$mvl0k(S5<?{a+`|y1{X&(yQOs37zzhOfeES@yr7!^ju_3JO{qr>wlteVwL$mn zqHv>kC7Wki9zP?Wf#%%CjCMTbDUv>G9R>kC;93|)s(V%}54R>B(W=w(wk?miyWcEQ zCwUmaQ#G6eatgwi857zYX!V6x^v+c6hJW!wT75dyjzF;mzkA?qV*O5IE79Px#?YUS zqZ_!_3zwN;LH~qQ9!o}&d*@7==(1n%z$SAahj8#^vGzTK7d=Z~`SSHcth00bqo{}E zYJHDcuBm5=hCD>S_LFK!xcN_b|3+KeQVmD6hgjFF=DcxV3GDoyGaDi(Bz4TWsDcIn z`kl@N2(nl<__0*A)i@sw#(LEPZo;1JDB>WnGZ9dGr*SpW?T_khtv6~r8=^z&Ca;d; zW{lv~w53upZeR5|JGXc6`+7CF_oGHZV61_%1v%s zo=p8@f5)tyoN}Ly&*Um`c;|R@oc9jh{CfDuEFn8{C(WE*EI-gvFiFM!4-r8>MJ~tz zcwbSR%Ze0UNS=h7Xm6EUe&VR|m%!z(Ed7_0-?VLTVIA`yx9!MKrJf$QC^KjGGKA$D zFZ0-MWp9C$v5LB0eB^?NPDUs}6qI#tMI1;2MKO{hzCTAihJX;Bo(Lw9l5i9jWl_+j z!|S%tH_reVrb88Pg~A+riD{rT(kg_|un6N|8UAbmsv-nNICM}Nn4=d$nM>0bHWuTd z4Ag}5)#H3<>D*4U_Q^?!{7xasxojdxF9@o4yrNsOGOuz>KUqZS50M?QfRsYu&9o}7 z=av%s{AVtgdP{^M_gBH=&zs*(t+7b1t(qE-B@VKhsok!TWzC@z(!^HTX^BaAeUJVDYfRfplvwSB_?rd(BOb1u&K5&8+>x#y@4gd@ zo?gShk4O6r{Ga+S0gh9coms~LN4%c+1H`Ofr=4^X7+)=+xltNUmfJT30Qy5v;`lYU zRH9T^oSY9M_U$7-f!AO@XOd2z+C>UpC7}waN$t9e#*X~GRV6iIcI;CyWJplMKUD}5 z*!9O#8U1YDj~uGoht)tQ(KU;;aPsx5S=HqlLqk0OJElv-Fxhn^Hguk?kG;D`-QvgF!B!{mA96OxikGnEoO z;IGT0-%6x`d(NG!0cY}hOlRZH{g+09znJL%_TV?#SA`^3f#lLvk-QdzD1XFs_{Jtx zJSlO4OwJUeopNgD(qMvVPQlil`D!C{^cKKTauAEc*{U!SK&YVMbFrbQ5rbk56%Mv> zBRnY2?~53at;YuigRHUj=FyZS;~Tc&F4@R{t=8DUaYToW3sf$aBW4qRVY&#zP3N2?x>aV0)%#$@$~wB8M1 zpyqOfK`D+J2Rq1Dl6z<<_>cV8D{qjkbLy?-sX4cZjaM6K8DBbQiL?nMLa_ynNn%Gq zoe}Ja)I@ls7v3oLI)XdWB}cNfE~o5vo2i0)s z=U0}|A)YODnMdyq_SZBpGNr?0#P6k(w}!IN6Bdad)Iw5<4@Hj7$ZXEKo>5b&HRtQD z{c{KKpZYJuI_0X6WSxX4Zu|ltk4`8_0--Q=e-MEb4F#_nxD~{5aIcj(9^}PKlhen6 z=8b45h)LtuP{`1X9_&}rQo#PFW>p>8(i0h^al(iWUKaqGKZsRwh$>}+EayqX061+9 z;V+v(e#LoiQTH`sbI3>Eu9|F=!8lk?p%`c|i%=)0nMj@_j3)Fw1Se1-R6+^A z^#ti+dYS297JAI7HO>g;gJ1+q0jz)+x1?_^d}pi9NQsh_dAA zm?(&(#D7Rh8Z5b#9dYt|pzp(P-MKx)f4k794z!pgtjAY&(_Q>SmW`W5mJKzrqw-Hy z$uI(fs&TEsXrJy`Viy-g=fr%aAk9y%cZ-5v)ush~mYGo>cmihDmba7)&R(+6r6jRx zs($U8%_M)|TRarSl}CR+uc2;1o6@S#t039Np!T)CJINTwUu%kgn>O0WIs&?fS!Yq9 zBk0*MNc3DCDR+SVSwthT9W7VguH%+ zf=o&xO*EV}TIpzmcaa1XT%WZKY^hW!dYm#I@KOg#Q-TWud)UxN2eDWckUYcGqB8@e z&%($frvzm{%qtdG0vQ3w#5A+_OIH4rD;ADa{~7^4|0^w~sJepxKYze*J!`T>7K}OnnQTIgo?zU;edTXt) zWp66qp*>F#KLcGhqQ=tNih&^toX#ocM4Zrl83UPQ=Z+DiDi)#O#K%X3BN&qf$2?44 z+!d_!}qKU05~WmLPy*ot>)Y+=MW_(oT)B0Q) zgI`yBq67(vb9mLjQdIPYYWglJeL~r67C#7YztYHCUJJU<8EEZN6LGWVF0cfu<7_H z!%L01=w3q+(Q7F_KHLTD(w}^359=l7-nwH%5~=9P!b>n8r*c;3^SuK`i-QLTN7w50 z2Thm{E^ibZ3&kn<_~&yTkr~S0D|a+*t6`!6b;{5|%!U<-am?6iAK8KDvql1Dn_b1R z3m@Ory|(ouR?=69l<7=sZP>1mZ)Qrrlh43>mr9@TwO8{->6U_O6{5JciG@JF?!EJ*V1i+}xb;pWK}RIQ1eSM)H9La)<$Ua+2a#REqXtSWUBmJ3 zz8a1-n56Yi2eV!)Pw67hg6}``dGN61Rcv|xYPWayN*&Z@L=4b?V6wzesS`FEe}2T( z`bgR2QUtR$tGvDt1o|Fii63>;Z3>~j-d4a$ui+N2a9VS6Qp!}^orYv?yo?Gx+d_TT z0FmcEr@e3CoBha?sp6TyZFTtjsL^e&3kfDi($H@%#ex&IW#?e@3}l+0AVAne5EQgI8EuN;}dCB)_wSL5&^A z{c22s>N)9xcC!kv!=_@$3#m-b*8fPl^;UjQ`KRU7Ky4H#l!w#qCBPs=`e5gSua zrO{XJ$L`}u4wOr~9*S@2pJ_muoXK#RJBZSb7sKP>Nq^&P|DD$Ql7>1&G*pOg z>``(_lnZi1m#eZ!!#mDtCmz>o?cGL#G>zV5)ZF6@)k}*53x3*fm#k`2h?T^A|Z*);tQ?trq!u(x3_e6LV@ccq;((Q^wNSl{kq>1edY|NM zUSqbbA6M~J>zabw3GrzG)zEXkp;qeL5aWqJ|Cf}{FJu`tt|qlmdFJQEG8kB7Pca94 zaz6g`Zx;%`iNx5``3h|bmdCj`HyFaUq*sIvIxwR@;8#L^Ke>U%TUYM8T5H8_+6{4 zr}VL(Gqm`%X$EV}tEYT4C}SvMP%)CtX$<2jwF!_hEFhYRRY(HmlXdTmo5Z_=eRp7G z2Ua-=59=VZGMl@ps5odq{C4}*vilnKl*RrJm$hh);15Mduma!MFZc(<63=3T?Hi^vB zl?oA~Nz$oKvb`ZGNr^q5nRc!w&V23q^|GV2?w8s7?+iq@8XY{n))!vEv-IV@_|Z0A zvv|$_J|^A~us@u#u4}~0h(Z||Dwo*iIj{v^$O6#zo(bGf5{7#D3@91y3I=`?bkSPp z#2#E5a51kw!;`fY>%7=CkMrx*UU}1=Hd;4d{>=WMyvkEGM99%82$_2?tfOg8`g=e6 z>^OAEgVcGP5CbeXJ7wbwPb!^c@X%3K!aoLKb0-*@@$>I`0SPhqxLctXW9G~$0mYf6 za)h08eeiXIFlG%SX#%jIsHFWEZ+DLy$LJ|BA+CdnIZ3mKls|wG^CDaDtRm3H^g4um z{BcQ60`olUUCsI@I}5L?8X0S z=&kbl=(8e?C);8#Js49}0&zPUB*m>9q_y@ntT4n%o>aAdq6=QA0;7_h0K^2tnZ z)#-N${;=m6v`}JtMbu<|;!kF^1w_kU-fK{)%e!W;>K-{l;;)JHnsm94+|~+yRc)Dm zP-D+gjGWjzb>CCSE32}g64@*s{=ulex!WG)5-mQ{)s<@n{bAJW5IhjXGi8Iv%h&U{ zxcEMtd&l`h^C+p3?grVv>yiINTc5@}2e60v&JUzRMuIAxtzv*%YyhyU)K6lv7@%#Y zZ&E}Q6$MbGGPIqs^JOg&4I5(Wf)kE9#f5|e@xAPSATXTuBKpa>t5mMBU?DOhL)&IG z>E1$QNd6KO#Rnh&5!@gaj*$uoQpsG1-Pkdzh)N-PURqI(&<047|j&^9jgac<>pheLm_QQ&${R4TSUA&@|}b8L#z)tmxQ%&c0>9)p#_(K6Nfz zeKfSWFEkd;h1Ma4WXnx^DP=md)KI0pjzw;P0D(X^2UCq@10ZKLp_rV1>2v<=1`<}| zo7S%9LeJjw8_3At44EJHc)coj_Y5;ju>Sqy%W8G?Naf-EXSd*4xh)^=RWCHXpyBn_ zUr3NmisWSe^3@IXaK&oaq*#}tFz#t3b7o5Iq4=x(uy%WTj(a!$8qoZg*8YFdX12dV z+fYWeGeA_(ZjkyX7>p1cb)eozk=Ky1D-~M3uT4+_u+ zLIbYDnvg(VF1J2**|0F(X~HPQFx1wbfLSz=XG+heKS7C}1_7Idxm2!bkMDqp9Bndg zsj?|GM6C1|>` zR`MYg`T?2aX&rRu4SzF;`2WEDo3{1l3^Hi;FfV|WEmIs*KD>(!=_Fxsgd0)I1;9;^ z(V!%5M@>|$dTF9jxhFj)Wq;UqI%Qe&l0@P=w;qG@L1}aR_*WheUJNIcEXF>AR8=5a zUp60s-x*LK7u3jbsrfuI2WKII%P{tcuo)FOvg&h z+SHGx##C2hM@pnLs-$lFw1l^j$JN0E5s zOGiHiTSX;hDwC{&`|1wjX|ojXkD{2)HU;MT-kHsqr+Oh!)+^JUx?2;o_2~Jd@=Q`7Un{rCwVXC9DRbw-Zr%VN>M4_0 zb6soG;CgeB(ftfbU23TBAe|Jr#QeRBZ^K>IVUBvff72fS2jG8w`c2ygM&?(;c5;4@ zplMR0FxLu8WZcCewzvT`iDl;aeS4&D30mz-aIPc2ow$B(Z&|N0By=U%GR6)ihQ$)} zby)Rz^p&D~a1j6+Y*QGl2iv2shUH)oKcm0{YW>;eS4gh4xtAgYfkAtYu{pd>uu8r>~M6;X&(F^`7QQEQigO{S>!DG}sX zYZrCTBv%_{xjm!0Isq|tvk$)z6xgut*pF#uvAm<_>k8s7WXOJAUOGp3~e zk6+5rv;+uD9GkNPV8`iGt6~9;1T4JJI7&jm9kzW$?~Wu%eJD0um6(vIm6{j;WCyCG z1osSvg#$LKQb_sjL5e8WkZ8b!1-r9%7FcmEO88%;?{idTgjMaU~UMP?{-Av=d_X+;WhnlW{> zvCj++=Ck1IA?XC~zf`m?cD^c*zvF$dO47i{l+Zw3B*QPd$V!vh*R|MIA6?JT8f0hK9-27yGO#B;o0&Sq@UtIyfB1KNf5;hqm>wkhbQcy zVVuZpolS}`exOvSGPrBg*7Gt%s_!i@T$Dizn0fAQGliQHr&qMO)lAp6ecSL=eMQ)F z!zYKcM?7w3gO2r#szlQYQMdEq;FPg=ANKgL89`-w~7ZBzOrlBSs} zL4vysakB-k_ z%yF}ZgI-hivF<3L2k2D;4QFnIAd*qLnnbxFEnEz~Y{eiP|txx~>!OUXzllV}k}iXFdublf#Tm$w`h0N9;f8rAwhR<8&dN=# z9#1&7U{_A2V2j7WM8&$~#(Q2KgID{0Fu&n8(T^aPdjl2qE+Q5^^5%&{zhwly42hva zN>G>%o-o=vEAA6V&TuAkSNVPppsu`RKjuFS%-)gbp~6=qAMfRLeQl??9&*pV^pen* zu;Y(Uvv3_siV??4?S$9sa!Oqcdh0}yuINRU!B_K-|NW;E3n*I^qI3{86$S5Yj>KwjaSOBAa2M4WkK6MuufAz&;eS_@ zO|s`UX(ScdWf?91@Gkq$sLuAaHLhB94j(q{NR2mouR|N-Pwdyyg`f z+A&>RoTZBBTtLq$LZ*bEPfU~ z2kSrl_M5hi1?>|6t75ufY!1dAqWgAVmpIyRJTheu6&(lotdfWtdlrdEZNSiuVXIpFky7m zq6H=$$Vt{p^U`%D9Gvp)n@HbR>g&N%>O8#~ZXXtEWStK$8iwj5zw&E1=P_44y=)CG z2g>rsC?2ciKCJA%Cq*-40ikqqOX^*3BP_w7RX-c6^u&$jZTmZas4K#qIKa{gl@i^n z&GB~$U~TbO(v*Q0x}~*jWf_z3Q#m#SW6*U?!Kj@}4l0Hlu-sfX@0(!#{zqw4ZMDDf z*P_p|((n!2kuqr=H36!8Y|;~w$F=udDXv8wjaSL#cT;J6tGCA2m-)Tn*7&t<>sj>B ztz*=U=+)Grd@svWq9gI4X?%^QnDbaPsUIh88P(@>>cICRZHCywVYrRuzs@E8ZQ90y z?lF+nlb>ubiffW5{%lpsh9F`BFkM72Lk6!q#Gp9}(lhJxl5ofcO87{ozUv~olmcN{ ztL5htZjhG*)w+;8keSwUf_-CAoMa?I?30kH0q=_zRf&Iots%6)KDs$HXjb|>RUjMc zDb%IUUqCg}KVkev(EL`2lLxg{$iyLe=PP~6`TKF6Pn0!C0UbipwPp(}?__oP6WfVu zf1nJ>=ODB_^gc{Rlsje%K~7woR(!Ri=I^OG@fH|2H^~DHEZ@wi5gq?}{Gk&&t;|@3 zaVCwOZVe9qK_tUU&TiO}%%3}xJNuz#4XxSJ{qIwT{jIl2u`NsA>W@%jxjKbE?{8)c zvn2Nmxj)QQ9((WY0k>MXXwqi5iz9iHD5uYDxzlODT1(BZ7dW^Z1V z>5XxDdU7tXlgZ(kX9=B>-pKCliIdR=men>F~e z-T=KYU-mv|xAem&Et0>_yD8Hk1NYUXMQxerYjtYXSyma$yGiz)>znl(^T*0%Ddln- zm(E6)tNR9aG_$JeigX?nYFtl06Xt85n@pvK<1j>$-RVwbf-~%$`V5je;%_S>#xp5I z`5Zq_(O@DY6gQqyGD>QZF)?ye`7A|H(~^KWBN7?amQ)587Wg;XVP6*dr&pdt`pM4G9c%Vg8=fisD%lY+JF zJDG{#gC;ACuYK=wh*k+(rA0u1@-6FvANCA4LwZMkvOM2;(&13p(LObw#w$-z?AWWK z=O-vkB3a&+aL`SNp z=>)g=QnHFRCiXqwxU@eo?{`OtG(|nCp$T~Y{0EpsS7zl(nyAov(#A9!Q<8*HHR|1Pe7%iF(+M9)&Z8a%t)OE#RE-P50X>k}j% zK!DJmu$H%<%PAWfZyUvuy90m(`b#r6*i{m-FsP*p>NS*>N~Incs;D}Uox@3#0ZH`_ z{yaTE)-0htIf4u6TY9Q=+%jUuYlPRr4|&IcZM_ZV{Y*j4ulB*-BF}5(kHut4^Sh5k z+uh$RfpCUmS@@FN1A;qzeq^!fr4aB*uOl$sgzh=|rRau+#3bVJ4+WiT`)1_KrKEdm z#*8oD$!o>v(#=Ijv}{P~+1uzEM<;Z$vQgN{0{OfG;1gweF+Vj(wnP#MGvBIa9;%g$ zHN6#4YSp_5A1-b1`(z#Tz&0jFn`I=5J1Dz`+*Xx=Eti|K+cN3lbzgSSr}ScUx4N2V zu*I`*8(y?AWK=t}YeYWVU}LA9%K0rFQtm}Ki-_-=A&tf#q~m5lv4j7iqy3GxW`a@^ z#VqwOshg7BWDin9sP+KNeZ7AU8-o^wOc5DTaT!CE!XYXwfMJv*4^SsIIfck(6AK26 zX>H_exSlwI0a>M3nUZ92FY=;LB4OVO1BdV`+pE?Q-H{_~Nvu44p_sI_&UijqlpEY- zTSdxHnfbak>cIz*5l>AMb90f|F1<}n#y}ymw9nGSUVhiryE4?T4L-4Ur?u9<<#vjY z|Oe^8XJX!Edzn1N3r0Zy2Ot zC#{Ee7kiuli*q++=`g8d7kf`#k|>Qv3NTR?Bj1-a;#_WQoIJwMncuP8R^OjaMoe7H z0gEy)CPe9i1I7r|;u0k@y27u@W_q0Q1hL%BoD_!QDJgf!^dxAgg)Y9OYo)}ZIkuKG z!nSzjNUPX5IeSn9H|%2ingj$%!P$y3r2Qo*^AH8S@=DClvNT2|7>%V=fidE$4kD6m zrrbcU)EFC0-B*vS4xR`H=k&i8Mbj4~HxpZAd;3s_bR-&AP z^LRXG-xnt(zr3;X;OsrkiOEd7mBGE|JNO?@Q}{pun$#`Nw^!{?n-6*XVq9Wb1l>En zAAJ+qp0DP+tzU({gr1u`W_KrOz7!ZH;%bkcn>P{N%Mx*xHj5%)VsBl4|K)Y&>8?$Z zVC^S{h9E}&buvv?{eLR8yyBMMw5=w{*lRtuEDr_5rr#-@-8w|2i!#QhUfr;G;1IWF8bqZP3=aXSsq%cEZTp6yv(J%FhMnH5oM03VNnD19oe327Mm2-3uw(J-lQ7 zud?EA3Hg6^_}jE~RZI%NZ*tb@##F2bge_@_XhCvk*(|BK8>Br5#xr6F0a3;Jmu`H>K9TKc`ic7St7#x~0u7MyJFB`U@D_(uhBQu{T=Bs{-l~yg)w_rs`bds2T z{1PFm`j$>u5R50K6Rp^tP%D?=SKVgtx7v?i=X>CkvRX*xw|P7KfX-==N)Fk zOAYmC%#0ah+zlo!d_#IZA7i)Q-RKG%X}LHahv8d))Eu489ncr?$k+fw*R+=uG&%>u z-`-AJ&u5&Uop0ul^Je0?X*pleUnuuMIf#zw6GzDxlOzf>b4G3T4igJf*gWN4tA~ww zmV&NvN?*4Bxn;qlANL%|N&k8|^UuitM%z%(`YPKx^8*R6WJ7yUb&`bH%^$RF8#qu@ zqvvb|T{sa~X4{?98r4A!#=;qX@mo|dT{=NgoTadrp#%hkid3eHj?dx;sRR4OLd!UW zC7Q#@z#!J}wDIzup)f^FWHO4UOy5stxxbMCln*Rl@B5KzcgdoT-lOn1>E$X>O`^{d?^apzi73;KrsM+QIqTDDj18x3G|c#0 z-Xk5$$W{b&jbn2iBa3b(vU-(1v@*u=IdE$wmU7S2JRw3DM{(7c-|kB5s)1fhu>FWD z{kzZMH<1|1I|p2~?LFsYL5K>wqm;TuKj60}(&@r=GvooJ2|9S`nv_xOc~~1z?OY)f zI*yYJzG)s!6HdVJz?lIf!MhX=78B49yx=xTVl&b_CXJAkALF6wlN?OB3<^`s(->?h ziHC&fGWtfFG%r?r=upy&sZ7zyFaV;EGGN8~WQh#QX%Bg4LT|L>!gmdLPg17j=sEo* z%e>6$zOFIOn&w6A=pzkabGL|lrt)}V1Y%2ZZHxuUj)sc+TEZ1@_7+md$uDVDxOUf! z_I;uH#ez6^>p*L1epGx)Vk~KDPeMbKyUBr8J(n=2dUW#h)GZ@QRKUUJsgSP8xkpUw za_!!0!+chJK+6fE+RNcNJ3Loev|}gQS^P#u(x@SRW z=@c}}j!otY)~S7$@pUwG^RXIk%K;wBl46!!7qf^<*6zRQk^0j|M%eoR-sE(WF+vD{ ztpFhc?50Aj1BIfb(Mhy2JytxuiI=L7D_2Igl%BbqAv7Fuptw)u@`kZ1N?t$4mK+Z9 zF`|RfV5pK2y|FO}7!fZpnXWmln%0&DoeJrM+w(qvrrg5RFDcndT$kw$GnA50jmj{0 z^6+%UX1U*5NeaJX?e)u)@`rN_8FdoGp?b;vS~B=#mr5q2rW6KyAR(!h7O$Ua(h!w( zi=RF}{gu~+(_J(z8;ducdDr$4U5hrs*9_H5QI_XXn*8(zk^wfhb^iW9+=2PNj6>#zSskfRyl^pAmEnX(Ew0Gti z{@2Sc_xP;U|AtxqBoa$&PtdV-dyJ)=iZWtzmVTg>nNYcj$d+o@mf_6yGn|NUyo)^w zs|@HZqf+(}l`(=6#clZT-%W!;^CY-XDmkY9&*2; zS{OZ5NLTADd8U?-jG=OUXfIB`6d&Om95kAFOKh>Y`GpO-e@^W!IKm}QyU;WClcdTK z|42&bDaXjO;D&mQ9s8?EFQ+`lmP}px%|EGQC9k$()o7HYK21#2)p=GnG(K=TQb>0- zjwdOb3Nz<=UywL?PDlN#^s?5$*UT?(B`gdAHs#Cxtf~sG9lS`RCZO6+l*`GrW_1sY zD2>%}LmuE)HgogDgyJPG$OPkp)k)mjN^GPM_Ocb3V|p7mo$d5g?#ut30{_#t+pMwV zmOa3mTDF^5UNt9vy9_1UjFR4cXJXb|T{&C3&4^*=8y<=51Il|0w1To>J=5(cbi~{+ z2zSfW0E4-}Q+bempE6XuMAumRn%xt4cBFmuo?$i;q7HtUY3wbTwO9FGS7G`T%LNUr zt|>QLHGlVqh!300`bf@>Hj}}9c;Wbzp|ZhewbtkwVO1}K@%|?K4f>+0K0mQX-$`^e zt-)W-tX6b5B+Lend&POChqIQWw_8Xr#38M`nS&v9QoK(7;!Es#Yd~1ytNEHe8xpV8 z^jo)SyAtfh5?UElUTQ!3UJ0y7RX9J9w|?j za3#B6u1c60i-uI!ifq;bQj zz>G!1AN{Q3YloN5`Ra9V8$bQWUYq~ae@5~_Ib?Y~0Eh-Tb6JTdTfz%PhtMI_>U=hJ z!V}C$J+~yrT*;M-^o5tPdt&4Dk>GZhc~g{rrRQ=Qs{oC^GrP~(27sKAk@1OGDB-r( z0k3`%YhrV>FyOvpV|=j-?`6m{2}voz>9e@+K@y4u>-PgCzJ9S7+&y@g|MqNX=JEQQ z2TyeE!_uLxFTd*#vJvais*S$6`w`$X|L%3-%Kh~{>}cPqLgCG+Q*HQZtCnNz2&l&6 zt``rPim|Nt0(paQ^m41r2j$XT$#+`XG%e3}+YWD{%#l9Jx{UU>(qWbpac&Qpo4*Yx zWaXzpsRGEnzuiib*n0o;u2cT&j}6xaUypHJoF}h;p7`u;nECDUZsv;V3w)4;%SSlQ zx7wWm%ixbnpT#u3Rap+tCXkODS46;+t^?z2+8bk&+)sV$dSC&R$x?~ZuYS&(r*I^b z|N3T`VHP8*R{C$${oAxnEZtLp%RK;RH@ZhNb^5~_Rz7@nm6_~)w?-yt>R&K!x2tUM zyM|n*%gp2(vugaParVQ^)8GlI1MCLh5PDVUYmtz15^D=*Y2VrAPu?{d;9_}i(fYzA z>HMe7+vDSJ-(Qn24*odYZom98yqk6?(G`>}(A;_RwCo`VdEd?S#v^VjAl{oyG7{+f zWZ!RK)C3MYC)ImT&_JP6af2+SHVk(sLK~u?VQ%JWwewE>siAcqqsBX;X@k~4G}=^^ zpDbn}jfI}xF*j;xG4PW>x|$fY8y7F0qS&5^jK6s4dL;D) z1G!gD57t726K7m+-0jp_ROPcjM)CL1^JU7DOpeEU7TDv2-1~XE6_E~v?rgO(v6C<) zy1|7xk4-37OCjT<$0u5o&QzYoHsf~3lbQ0Mm3ab8)b5=syUV4;H!4|%ZA_**H_7MH zpT(090!Ts2T z#Z+cSYMxwb7Zh;N{UTRuy!%1J9T8Mi^*0q*Ox_r~5U*89o$bPz{-7YQ>E&Y$>g@?P ziwzf3zw#TX#{%g?(j+u*(|}5fqorC0jpm*w~s7Ze96Z*)M*Y-{LT}zhZxuLpKood14$cEY5z^oT~ z=W-Z~O6thtnzy+U?sEoil_H;%w8D8)V16GlM*8`NMo%3Nvw$$7H)=U`-pRaQ7gF-( zR?9wC8kk7rete^Z3bFOq6;vpPF{a38>r;mK@?0L2S z*HSbUHCZZAlmJvbC#D&%zRu1w-qZuj+dqk~7AKO7R`nq_yWSgw&`8nNFuB+F%@88T|?I~J@(g54rK$kSSFqL5k7e&8FlPphXSM=JBA+r(< zw{!3P>zPnImJuLLFFF^2R*tyP>k$mPn|Q&trx$(^vA^S_OYQuPW8QVyx^6PJ{6XRE zD^82p$_=p0$xllNFs;j*gL4_zpA|*lgLP&T6Qau$y&4LQ+{CU1f&D+cy=Pcc?V9(U zgb-S2Ayg>=LNA6YO-vy4Vt@bv5eZGYfPi2n5FnvRZvxVLZ-Q9p9i%tWn=aKG5qoM^Bi*=&!@GLkH2-U|2nU;mb0Zsn4r|mPrleWTUPU)t^-AJmIWQuTbHSq z9E{pZULpL#)zk{&Mhtx$3R|mPX0y+Xe8jKp>SZyK-@~cv%O2%vvh216vO`;fMs5G3 z)&Ifz--X2LwwDLs)U*{XBK3sMzeW2WpXY-q1OY_`__ej<6J1Cyfc`&mC#-UYcv=5!_ogsf=tW)eVI~@qGppjUh@NJTDnspw^CI69 zRp`EabGg;>uER!f%xz{CKdD^ZGEw7fAyA%V)|*1$e3ze}y%JKh(xgO(wqIdl9u$G` zFzPv5Fr)9+?s9_m$^#yM>-vy$Fe6(S=*pHwd?=&Im!UyS)Xzg-8|^+D>gq$D)1?=E z;DbEz+O zC8vP)$QjU}RTdAdGh=@GDROPu;A;p~uO{0&>y6@Yd!lt*kxIuUcd&x0Kd%cVB6Aa& zlc{tE@p({eP;jTK>g)^FJ}E}LXv&01)6PVPhLvkSU%9SG-e{CJX~;*4m($QvD^fHI zK2#<%7#dT_M7gV>Wlg(cBebiuL{h#aBMTco5L48&X>T_XaKkC7FFY z63^26zF}zfj{VRslo+tu$CJg+TOv`dF8B_PMkj^2Y27>@g$_Y(6g8_c+&|O$wlXeJ z_GZU_6ZiYOdH1_hdr*%Fk$u2xA~X;($LG-=+^I@P+h~whx;T;cN7I3(#p^%Ouk*8Qli0id*_4->gW}xN^ z+E^Q>ATG&)g^X}$zE;zD;0zacy1tI0MPImZDhse<#kFKJYJ^%1yTA6GW@Jr_)uzx- zcCds?`BkQrDErqH+fm~a-k+Nntxe-vw+xSU0vNz~{zj$C3A0s_M+$!+3nlQ>69ovx zvI-Y9?MV`h*C>`wtAr|!y?Y;dCXY{bOIgq7_^$#ZeJ>xAV5g&569(B<5P7N96*~= zIU??zwO7?g_o0|%x)} zDi>o$%`+ReosZ=u!|_3ZA>BVjtF z9MYY>(Q7$;%TmT;53Q^A$c3XZ#`yOsWel5cs#TXNf+gn$&8_n~x&sq>f_p~j#*Y3< zI{pFm-)ZBt9K+%Bgjawp8op9dvwKS7B}-FE6%!JXTOOOLD0!AX5s_%gqdy;5j&T+MQGTXvHeT$!B!uA1TZ5?r|j(vGt=b@m8WQbifAeIVO#zc6)0X=44P2q`d zJcS{zC7syVgZS11QASHTJ@Wli)-yIA>JF4130@O#_^wP*A0@`?*qUjqbq1C${^$+K zqN%*X(EfUk1zHgwXt@jKSC&YRD``skP@Zfywh_X^p{j%APDOa$?mD`Mi#CBo4xclL zE`MW9xMeWhpMG2AEApzO2q51^O;bZOmmwhMS)u8*nq5NlQ=;jdRA7uNP4`(o*_6Qu zBUzl4M7`np%rirqEyV` zhLx&71aheA84biVg^}w4h4%e=cmDQYDD{8B{aZ-14qz>gGmE*m0FWPbellqwE$`_I zAP8WN6rIAPfY6B0qYEbXL%Gxx6{H9o^63Y){(M=tl;$i2+(feZ=Rkxev$jWRUYr|~ zM8NH#MM4ag_NG_uRINY;QlV?5&G2>|bO**-lPcZ1RvVzz9^c~B{=?b+d1j*cE_BYP zB1HUB)2COCFURwWP=q;0eM9N|jKnNlQ>CN3@?t{Z;k~BsA)`6vjV~PY<92e8i86!$ zRVm4!bqEXpRhAbX9V|n$@B4ueaoN<8jNhw#etI+5(oRFg=_j~^YW_Hblew?? zDGsKFYc_3)2>IZw)8^vSIa>b`0S^2h-u?ds>wo*>w~&~w=%lH>9Lz)0oiW8j+as2u z1J#@c-(2&*DZX829yGG*3FmG>f6)-GwT~Da| z20GL>f*DV9nk61)$Y~oFE~G$G$7(AV#PRqWqZMq;_3`|if^^D%6?gjA&*V34Yq+C7 z&7~nAf*ou8Od7(t7Bk6pVZ8E;+epX+$!;ZrCOuEgv&!nAWm zBIJzs*}&--C&{~f#ep2!+E*;s<&V2eDjg6la(N9O5*^^&ndv$=2}zPRfHyPEbOBe| z)Z~S->*d0VU)4HV##|;-m8{!&kj~;mxqU(2Omm+`QCbA1j?w{EU6< zhGWi_;Ko#TXZ;63mN|pv7ERWn{GGsCTQ`IVKNjW3?K-RpE9RWA)Q`4u)P=i$3_aO6 zRN{&1YWRugI=np4d8o(oN28_*%fPi)C5;&M^C6oD&iSCoP1I&4?hvWT7OVErjetca z$$d_nC|}2&WaynG{V|+v;%oj*ufT3OsrGir%@gCA{*KgtY{33a8&3|&qCJgBA<)p2 zUcnYn1I84rHFQ=_K3puR%}C>Wz|2rvGgDa5BFJKQg@>D~~;~ zjJLg%|5ne5meD{gCwJ(3b!PS6tA(4QW6He{vpxB#T;1FLWZ}?R-;9>g8wJKGj|+Os z-k%R5fI~z9`l}8u?;bQs;U7OW&idskN0d$*+1)Np{p4&Tx#uV2opCG1=klxD)i&!{ z#!H)gSuFd1GMnU6~svNgV?35o439YvYuW!bI)&fYvsXU;j4=( z*MfLWNX(6pAJv^EeiI5iEg35Imsno^(4A3av|W$B!u_RPP*`n2Ks7(-Pa0EO_D_d@ z%&+e?=1aibDn=<}&k?%@bhk7pnVqaFFO4o&e5CUU-4(G)c~{X__ z{VzS=pIVI*Zufsp8ZMP2(x%<}HG_Tl<&xk(#kqgWwzY%vZJOmFAjTWi$12<`;tyW! zKd0msU)9h7Fbr0Qh=~zdc!WnF!l*sYWa|o4i`&q_(B&2>XS3iml}|>$+zvR$?j|3W z6^cQD1)!8$!W)Rb5pRlkpsA=CKDLsCV5?d0^jSwp^4(Te^HZHDWLAiN)*yXYl6`A~ z{b~{JX)#;p`)kTpZC75VweG$?_sNpNx2>SIdGbuk(LH13yj*tnT^r+uM+UpEugdKQ zyR*d2ubUuv-9x^)+jLesNd?X7dqsKl!e=I3&l}yTw;bGJ=LxJn*cq?YvZ8Jx zb7WmOh_z|a%7WRlFejbemgUv$05a|NRi*o99Q@n0_!$+tncQ&>16*aPvu67gmX7$s3H&;L_&9Z^_RJ8xZwF;r(-B>Ss4dI(m>2n+R1G;-J5}r67srP zkp9y>AkpT)0%b)u#!7R2$k#H2!(I;6&3UM!w-o>((CU$YA}> zU(BfcP1|f%rv~zJDZyM#R7i$**hD_NR^NeNiQ&B1$9ef`xyFHB6i7nqy>^x8kBVm~1&-O76ET)#8*(8< zC-)~oC*Haz>DN67O)Kq8NuKGv<4k-F<+iCX!)L?3TPa+wnpj6_FXoP_MP*T=fVpyu zc=UkzN?^%JOeH7%o;~L`H|Jfi__L1f_rgyY3EwO1!tV*1h*}!tOL3WlBR|rqqzf2r z8@!V&Idn3Ei6!tA5~>^Axqd1&)8<+w=sX&RmMy3H2r9NeHat7K@?^@FLDuEVyqsm$ zW`4LU>FtNdbFFtTf9d*Hy*2;!WBFT1&<I9e6REQ)4?XuY^1=3|*`_wt)3dw_&rxQ!##n2^ zFSx4$5NQ=aH^YLQt|BpF)0u2uf`z|+xcpXLhF3zvJFn?$Zml|`=%N6xbVuy^B0H;( zIsT^e(6I|%t(c8E*Hrqc**HH6l@=6j#Aqv^k@fYKc|yFAjs?ESj(G0zotn*ajxG~L zm(G~f-A&u6*uraDUGTk`rfQmH9-WcOXjw~;I6qwKx9OErKA$0RomXV!6HHo(&!#*hRo7Xf&Esd7MSvo3OGb z2C;3U~&!3pO zQrK)CkTa}%KUgsqj9Z{B)GAZ1$}pCGXc%dVuBoP4wwf`d_rHIl-OQIA_B9~n!$%j< zz0k7N_IyLH_i5**a{th$$|24>>t=9{b;edU3lnuG$$Y%b!=%K{suhU?(|F$`#p=*& zrE{@LNe#jtVKt!--=ui%@y3jN6tK~HVHIMj)~4ugt-S>2b&X>|#>+FMej#dys5SD@ z3Fo-*MLn5NCya)->q(7sz1udPDS48@-@Ass1ZV77?6k@}UaYq&gw92D+)00Fb>{2k zj8MxzEfA)kSEqu+UUe9ZXaNJtl@U7iGLc0Va138(zuyh-gn@e8Lu@2xdB)L=Wy~v~=hr zG3c2Z!ckbT$lQYwsYf4PWQU3c+;BW6l^a>Ynf<-?mO-XBJfztFPoq-HqsrovPKMo= zXH^S+?8`A)$IPm0HJ4AKv@>tY%Hz;hhVdhY-gL#OX|))}f#aIP(*;%R!%BZz4{)`u#>`gnv+oro=2g5zLsFD~In5IihQYx-S4Xl3qMe`o zlQZ)B#rRFza@IWvv@O_BpnR8zX{>r219Z=dxABIA>a2vLePemiYIr=9u5^_?%MGm% zi_sT=^Q@khP>AL^_z(!f0jd%LYyw!A)Tn@IGJ``pf{05=Jdjtrkx<6Q&(Eps7Qvrta{w&CH}#PupMxAP~j1Qct7i?J%8!2!P7W=EFy?@XDTDZEWotC6M0mrwL zs>jcV@0Z5Ikwc3YRpYT~u7zlxq&XK?s|ydWr!opIDJh~9k{D3>wBS{wJAAm9g$rJ3 zhylj)Oc!jfMv!`;Z0<1oPi7BLfF3}h{}2zsLAVO<0)S>~z!Q$vCxP_58xdpBWhD_# z`0U*MW@QH&DE6paOQD_E^F6zP2Dk% z5dTD49(@deUL(>U45YpoUFVgh4L_F5h)>Erv^S;#CRx~C{Ae3~r!~f?a-38Ao^0;p z?L;6S?EQ#RQ22VX9$hUrubE-o|88>0YB)e7a{SJT%HYF?yozI%GF&XeVx7QVma|tT z?_xNeVnsS4jW&$$w*2}?(H(izviiNGvL(hlB}-IjA-BqOS#)I7wdG@gMw{%jk1xtv zW^O#qc8C12`LCzt{x)rkG5eC!{U1L#d+4VEVaWwFM+NB3sRD4Y0I0eFVLII4PhKMf z%7hImk#2x)HnvBG@shMerm^nABOF-`M4*>)uFm9Dw>aW2K${J93z$T#F#||bExD$u zYF<@9luhJuZ;P=uD%ER! zE_va~dwIABa6EeS<${gP=otg4t>`~xL%ytChimhC`#q@mqA5+}wwknZaH>kq)txqM znUa7+G*=n%Va4?wWTovdtkf(%El8x50X2pG^m|ekZ7Egf80ZspNoY|?G#QvpaVuAPeD~|%?1s~v5dvhQPO8% z2&1c53}NtM?K-kUGk8Jt&aQeYNhkTU<0d7I9@@*r&j3tB^|5OPUJ^K1&YhBPANn|&ylo~V4QY0XPugTIB zVQREjXQ#aG2!_m!rx~mEjR?**4q2IbOB3rtbv1N{*c7lg4TA@?b%R4I@)6p@?PIT$ zXY*6wp7uw?(y2#AhlVd3WulD(kn#!4cWeYSt4K&)d+)$$l&qv{PcG{^^O* zOa6HdLJ+Os94{$gU$Jd^Li4B zFI@Myt>9nHqBu!h1+wH^eQO>EUlDRF6O5gxWT~#fgzEKkdUi0Evm`W6YA=+vHe~@f@AD;`nAQaoHHr<=>>O*|hIXOkXO^vd3o`M@^x-6wQ8G7so zhqneZ9vmI@((Gj}_0{n!nu!aJTLdXD(eN`UiK5NCW|4HP}U5w?5V-d7JDA7O_7BG3M} z=klBOMYv53_~pznJ0(1$i;Yi58sM>29d@o8C$(t9(lH1O4|lQY!P|oUny)b+M@9yApk7b7%vbT9UTRuNC67-cZxC|yu+oyN|8hH8X8kk|D*#K`m4LZn{d=PgXG)^*pAo z<(h{P1^t}n6h;dNY2%N&C-aFqc1*=-G$HNyn)73gqRI@3Ff&VvPph|*1Qbie z09n$};c3|#_%=n6e4q>+shU-YT>zdZ%OpK zEc^PoR4nUl>NDSSDt{>)|7`oeX`2UewLoT;f*IOVadzp7Gq%GqQXEbQQ8mg-Dz`!N z0DtQ?;hnu|QmTx&bf1^Bp@U$TP+nuk9I-;sAJL4URcD3LYJ;_XUNrO~FIP4yNpkLo zh3mnZ1niPFxZL-l!&j1sf}$sIBV7tyw#yRf#wIe{p?01L_;WG$p4CUCn=t3{`=!9! zw!*7*8nk5Yk)CBYdAf>+rLlO~pBFfi(+-CFQnDj7z2j&&dh@h%3`*8{E!G6jPHwq2 zoDoz%RNMZdWi*yftk6hU?@2XB-;+|ec_ix8EGy%5Aw}tfaR5(>A+iPrOevl;I$haN zuIKiFQ|w-6?7Whq96e-SB(+8)g-jVUxYM4FS@~RqRQ3xWqp3uOU9qm7u!U7c2U4Z% z!eR?op0v*<-L-}B2o7$1#58(9cL~&MQjL*N2IBug?)Trw|CVhFsO7)4B>Vuzoq!oo zZ>A)UDu`{`5u^oTCzE)4D?Q^*AJt48*V{8@jvCQRg+c-8WBk26kr8n?=c1u#LnsU1 zlLt8sooIAGl2LzXhiNi9BGym{s{l-OqJenD0fl)3v1Mj)#ev}S!byBSv5}3*8WvHi zzWH=g23Lk}&U=lll==YpfY-G9GvZsULsv#q*2HB@%|B(QBN)!5R=y!jW%b5pHMaCS zus*f@VmOj!#1ZGvohRX2)66Mf4|7wXFn`X(n3Sy^3#M9~!RCn7&|05m?N^B+E*XEE zFqqlumg)xcR3US6YaNUeX*S9n@F(($*JH$0J}y}uHQv%p=*!uw8@O{up)&Dia9!us zoRCo_eeCAopnPH{5*mvT>S{n( zC~vz}=k_uMm)=*oPJWSFht0`ER%o1)u9wagkbvRo4R&j!#9@hOqn%AtZFnM;vPUyh zIN!g8D|NWpvdQ%9#5J53E+t9JP&Mo%U}te#z<_}PY+%G>lIdSAJhrR?`$40I5#Dt*xjl9 z@*0cG=OC0#g>#UFGlU0E~O}4 zv-r5)M(VF;@&|!Rjw(dPWZ+XlT#p=?OssGCPWs+(Q6Iq1@TMD0&JVOjHoJu`JmV_N z*93@6*5(QhZ9_=8-D&B{ zOw96E^YuXJ_7`*cX*0S_-c;=?>O~)>6~!;gwI@wzs6HKMmv%dM`OE&(tY$8K{}!4& zc5k2P!53+conm7@=jd{?Cdn8h?h8YSmXDf)|HQxp76b1Fwmj2*@d#GQm8f4PXExKf z_A%v)%w=2Zy*is-#Fe2{6%ve085Q^hp}AUPlMkD>^@dRz#NHmrrR82!R%LjcF7Y@m z&!&T*Ln^0NFlA$dz#8=ab!osj3AgSp zzhVH%&K}3Wr{9rtoD6XTc=%j`@Azk=8fR9YfU?k%;0?&IpIB%^Tv-v>%rr@|& zfH!GZ7XK*dcNlzN^MN*G)*35cnftxfY031b|5j+{9D7*m>SJHIGil>>=SDzXLX@_d ze@u}5R_&%ffVIOZ>|Q0DpErW@WWW(a(&w>%@EoeInqO5=Z=vuyUh_^&M(g0Q-9@k2 z;=qL>ZeGu7W+BT=KecojYIIZi(rv78!H+<|IwJGMQUqjWqTGk=&o^e@siaP=eJ@F@zLEwo=q-dA;V-93i|c>Q0<=yl zh#2=6#wBb)8pP=T7>v6s|;@CJVi2_EZ} z#ny8jCnW?1zJuoM`g|gnP{X>sQ_)K^3 zs+pv~4HKbq4Jk3^I37rzUTvE)2|nkN-w#hj@Ysh-Tnr+c3pH~V2|Y@z1$ zTcarD0xEr3q5wE`;DP(>N*jNu-<7y=eNiP}x0puHJIddM_c9dqzSi?ya`Zl4u!+v# z(J5Q1>5A=2mj~W@uocM7E--srn%-faE6;Q)|4~H0as7Oxg2MXSAi`-l+~Ts|+#mJ-=NRDMXoJ1d=w}q-ksYRq3LANZ zRe9BMD8SNnVh2ZkUuvMReB7oWg!IG)+QUu(c-89ZZV^hJw~t`56t!=HhP zjQ;kYz5XuX)JG8d56vA`70*UkhtoCB z>6ALeAez0)KANvZ4qnw8$&w6xRjhEV^k`96`$Kxv;(gLAZM@^QZk&#>h@!G?)xI*> zC-8DW&GQNTc^fa^n$<%)ztKauwY2uMQt5H**>~5&2hec4X_rZ?a<8XA=~!jn)vxmJ z45i#pe#t5`tBBmI9d-BXvOd}A#c3Zu^^0bSwhgj}#Ftn1U0L<7SZnKgUZff5n$Gt= zz(!XcW^58yFf}iuO)55e9KNLUh?{y@cVho|DB144ckQsZtg_wGtt+0Lwj$;=o%gi< zRN3jQ=DBK8dBb!HHJ`HCJM-$FVgJqlv*bUWYkung(W%JkiXzU1HnZ?D0kea7A0&ee zpilXgmB*~0V>RyyFFqfQjVA1MO@`}Hpva&n{fhun)(~!TkFkY@(b^OgNt$4n9mo_x zs)1dlBDAg=WEYpYe#xhJ4@8uK06f6(^%u&8l9mVrNS)iv1EhyUI04!@rTD;wBE$Wd zOcG}t&}5Q95Q0>McEm?{R5g435{+~wxtNcpZ1fIgomP4H3A$6+AJJ_vReRbO(6zH>9;v9cKQB))E4xBSiiT6jaCckjD0oTz1hzSvHPv=@#lgMRO;;Gc!Cc0=wxQ@W78jYW)^!}oC8(-JJ)DUdJaSOC={t!Fd@5KzdOT1y0l$d>IQzHjlmzRk%>(jx8M zNQ^szql_NK5b8r>-RG6$PusP!L`^G{oOo~;3ZoUT@JyV8A0jHBjh3LTXqZZV zaWXCxnhI={65?y4#8=hi$vosoDY&)9g;HJnnR@00i|Nmr<=p=8b!ArhnfWZhE-STDE>_>IHOhrnPY2H26^`adr_|^Ldo)#5T&!lx zaJtL{u90PeMqjKLsYiX0#-h&TL^w1HIX#%O1_DK#8@#y_1)S}ch9r(|dg`SNvDW!0 z`}p+bC?|vJNyJWxJ6w9wwjDm!mKh!ilcp<}f9Y}mrfp?v|F=bw1Y9V;^ZM{qtWM8$ zdXWT=dx~iOEH(>ioaCcuzz&ImW(ZWnPA0dt$3EMw+a7m=XN zRt71ylX_n80XI-NhoFId+s*P#9mj3S=xuIwu%)secvbomg%iffY09*Uy@+Pe$)O_L z#mX2Hv;9BU#BZ&Z+!Sct!RC9-d#1js+UvS=&7o4ty;i!G2)kU~()lVibyO{w&-UW| z7oM+gPVagK%#e2$JvHmU-}{js!f+?D^o4J36UWC3ZiCHvUVLL+f9Qh0v6?Q2j7@(1 zu<)STB)_xfug*BX{XZ*H$J>CnS+CBb2`~j8NwtPb)DAO>(_T6B4-~x&s*46yBSQyt zXJ>Fi7zoA3C%J90gI+`Dh-YS**A;j`r5Ms zi{{LYI3#ml=4hY*5|K7su2?OA+2aE0qF3opa26;+-qI*p(ycF?4Ze`^pkQp$LqIQ6 zs;NRcX#8Gfp0TuKpIh#jkqZhxzGM)BYk~m&ct1ok-$nvkB@BkX_$) zoQ&0~n@k&DZ(QH8&<>{GS-$$RS>mo`6mzP0hJGdJ((^)LxtL&M8~wkCFaAwPl$}q9 zEoQBVnVO#g$BrRZ)rm>Hq_tju_k$tw1`V^R#tmgcd`}MzoQv6`O3*&5y};R-o+pHg z!6lOch6IQ3_8>axsuy9hDCdfjYffS~Iajn6G*@8EYd90_dya1v!XpCVX%y$-U`9Ei zyEskz`M3~;!|NIHqRS9Sv6KxQDJxvetu{<=0!9beejmxKrwG~!#%SAYbscGMzn#>} zjY3(`?lMMm>ki9%*WE^aH=t8oLZt%cp|6xB+P+zcQ)iKRpgH3Wt=C8fx@5bs^H_K9 zsrNd%`+d5XcvBWTy6rrt)9KdKo@AMb;v2|udA>bwruk*Mf!SZI;9{Ce*UVow8dX1h zF6m|!L~E+kaP;>6n!4Ob?aEKlQbwk7(e+cmL-yz-+@3_A=Ch|!Ms?a8?%pF$w9IkA zm#im6LQ?gAZG@;*Y}gWa8vj+uYJJ7zExgBFs6 zWhvrUGeps|Upc+j-Z7zD4e*S+Dip0 zVbs=b+UuhBgR)JNGOF%HF=3SW>>EY#MIeD1AZ_V(T`WmjTEB$P$6CaoQ|E{}Rl_40B7adh^N*jb|M&O5X{!fuJ<%S8{bZ9e zLZ&IAYuxjVcY}reQEiM_H9uRX0#2J;uAM)pz--lbRmE#ef$QtGoAuyT1yy&grVBYF zx1`sjW5#p~cbV`cmt^51pL2JJlM~w|v`_hj(4%e9$8Gk~!ubux8aHPyVYZwtMk100 zDjl{JlYT5$>T+Oa!PP~4*fb8=@NXiMViBOjI&sbRilU2~C8M4?eSJe*5!Y2>hjLYO z;MN|Q@kP^IdMkUdTGtVNgfPB`V_YPsT)co&K^lf~_vPbdmyRAk&ya#KRK4FFjE$f zfQf%e3ns9{(_-LVx!O>945|Pa4+lzi)o^#C4V_qM2WXuScy?46(oYrS1WUhmEWm*fq$x6+9>e{|K=fD|-=$RxcZV_`^lG#LNXHk( z01aC`BVAN64#44HRNTZ+2Nf_R};@l<(GzTq572f6l2^X^)9{n$dh%w z^t#H1rA|FuQikJv5eCCM^MX~7BclkTjvHDFCxUv2vX;H#3{A^MJmQTtNS#!XLS>bL zP|67H6s8mR_z_}qTAZEDG`G@@kMqM8r%w&b48xOMgeh()3buLQEdaw8u9OWgV`ffa zAa4tB8Jbkcc(kt`eJKD^Vg<0VXDy*a#XD`Ltoo41)gWsLmG zB=B$3HbFX);oCfUfGTHPLsIyuYr7{q#zTYZ`+R&=iG>0M2`Dy1*-gui72+irNn=gM z17OG^K{lLEXJ4gn)AG#{iW7E^2U4K-r*bJk%HA=U5WmMWPaj_fZD?R~#-?Tat*T2N zz}clSmvw}ZiLv|`9<)`f*+WA1y(QycvI>fqc)qG?N~W?oVyT?md0~Vw3?rT8*Im08 zCf7=XuS>yMd*7Ey(D?~GPFGob9Fx?{q}DobBE4b%G=)CNjoo5_y8FSo__Kfo<95Nt za9{UyfgKN1b<4TS=fxk?6%QZS7Jm1uxgcAkdfshh8 zx(8gk+{4|Vop|mK@dpKc?U)M^iKWh7-vlas+DCh{>&x}fl8R+7IWEHzr=G-^T~ zV5f@H$Gae$B=4Y*00AJB7Yqf0OzCOIbjFY8?8wkuq&GiXDCBc6=8z#m65H;bh1C&E zp<^xfcODAO0$9+*a<#}iodDc=!xhIBwrM5BB#HRwjx`L)j0%zDRYD`?3X-m?ks;#C zg?B}-Pd;e;Hvh+B*oTs^oCF!r)x_5q|4`xH?_a)UIlwNCMd)W|iMmCOJ~6p4)jm{< zmr7|jHH$SjGUY{ghk#FO0_4j=8#slv1eKJLTSi9qULv*X{hnt5!PMOONH5OQkvnH& zV=roLxclHbvHN9+UYtI_D_ zcNN6`zct zQGF0NGOEG0{%ESfK@7nIEy|RZ_;uZKc{b$Xq95`3)yA(3L6);+-vh6xUuWzI>UdY; z#lj^aM^81QuoS9htugaCYR=^1wKuisSG4s(WTR}l~7<42YY>E_T2b2Z?KE<<+u$G8r}W;{ku4f81)xu@rrwitkQ7im*5)BOUaf&tzkt@oACvf|Xr4_rr#Q!;N5xo&jE)A@{!{kL+%$}LnQkq+_c=!X~dcAwE&+gamQ3HZf* z;25j6wOV~;%WLsu?>`myc7#94j){%vM_29JpZvAV{7pzq?N0~Eb0pBvKHw!YiC+Yg zfNuae9v(2aP__?XD4wfE$q84W>h+}~JGwAHk};_lR0yG8mfD*f4hLGy(kIZ^uZ3fT zyO-F*BN|4#v{a%YGz?KmPJ{wL3mB2{y=SV7KLHDIyCA1 ze(BE4)Tn}^1NyUuq&4t2guWvr?!FWzi3`XCSJvVlWhO6cQN&%X7K=-|ti8f*8(Rf# zCaxF3WAB&hZk{zs+vquzu^Wd0^Q+ys4?LHbm92*--=FSynl#O=*O(u>(x~>{T2_uO z25A{4d7=G8bl@^l!|^nn8e`%YsAOt{5k_R-^R?~mDAL1w*yO2ha8^U0SjK3*AWz$6 z?F}SOvdDJjnmYS^SBPWe2^nTYaBL6gFV=eXK-a*FKKC^N8-_49} zpVv6{k&GLf=(}&kC|cYy>$J3BB5urN3>_T5icf#~-^s#%F#JEi`7PTPaL3b@gj4~P zph9o8ah{4s}e+$AJkK$Jer!_GZqJh3H@GQ8v_F}eI!E^WrQv|8Mjox2G*yFgmj=_05xYKTvI?Ui+I%8|0O zW{&Yhp>TM@@JCMV<^>PyoKil3eR~f`KL>M;5^e}A7fW(h>@W;~%F$66E38g>&UZs; zRD05+`OSu4&1Yjg45OaoUYd78l|0@H-`j-#x`7whX)7EV>y@tldKoz1bkZZEZmBu> z>cZoXz>pM#;_yRZ9Xa1pqVcfHSgPc)p{j{Um4b=_91c%~F_kngvx;#EtC&4WT5gOq z9BFlfJxC8vPqBt_MA2i7i)n7hn~E{zaTM@KHzS9blZ3=%^^mO21ev`@ii-{Vqib*9XyMn>iZ-%{HVa2BY-BJUp^C0OBZRyeb|DL;Om61NRRWk7fV@2G7fFLe0 zfhcgRyylD$H=t zUiL>0uvuEI-+S#Y^zv3)b)(JY5L&tai#E&Ov@K7)?SC_E#t1<8duLHIaRkZB`?$C`c5HIfm}T%D+enEr61XfqP15oZX1#Kxbxe*{am3jYk&v&EW>kr+eq z$4p<;p^>w0+akm%tyFWO9UT0;ikGSx$m)oU^g; zv$pO|>a>)hxN&)r_FlX)|N5! zVLI34*w!p``u4pZe{>%ivwYkmbiJqICWmB(nR8Vz!OxI2WanF(uk%rMIxf4PIS9lt zzPvM!yqqFhVV;sG9M)*GJ741)WEPuYH)0-C^9D9jYjZL$C6-XVxS*q}iwkJ;T zOz9SZz|lbVM8$&0$SN0lr*1Y56qk-7|8A*rE%W7ZP2{=pRe4w+-P%Ue+OW0r)+VfqJ<`J@vBS_pT+7u7zJIZcyx{aP>Yay_rG%r-zwx`y#U9$YgRrZ$Osmy9F}J?Np0lVo2D>LS_q*+wvNn5H4k z1;&f(`VsbSF0S~aoP)=c=e+deorFe^(j0S5TB(ABhA_F5g~bwvzj(X} zAQckViZ>Ng_wnh*6CCrLvvs#4LRI)xJv=M|c_xx*d%vs!!x)I`?r^S0q;6#V9Ztsj z+GqxXU&SaZSN`DDNyL9ikNp<#-?XisxRcplJKkoXgG2*NjeV|#^RorH75)*Oi~w9! zz-_2pS3%GKx*j8>&}h;3A>MK)mx&owQi|th8Y?YFgM>ntd+MfN$m6+`?kgm#&s<5c zSjj05`NIa6{fXdoG{Q^+iXz5)WTm2Kcq_bu(Ro%it);|lb{^}xnUM}N<-OV%g&bj3 zr4E^8_91wx3^FDXsdYzw1N-`r*$Cv`@w&ch{oLR+O)jD5SA9Ir9^Ie0-xd9R|9bMf z+ju|0S!$mPIG9*wKBV>`E}KcP!HVn~`1uAo-gL4}h4-^(r#cIHy^+3#c2pxld->AT zfuGl4EW}Vfn5j|0Mo4GDNcWv8h8YyfO(K}kW4eq-&jdcD_F&g0FR{}2JD&k{U7B5e z!wlS!FA@}8t%fYJjqc(Qvu+l+!TFP)ht#BaDvkk&95D~C^_^SY6irq&syqtG{(?*-+(tDoN% zzasVjwfB}$ZLZteaBv9j?gRrdQrhBfK@+Sv1S?*orMN?JZ;Kab zp`}oP%6i#d-`V5rwbzkxet&95?n>3uy; z>3g$UC_Sw~n1#c0awCd;cj}DVwt%O;y$vQ|6%S&im~ju)1H5JhRL`HmYl~s(CY`KL z`ppV&ted;4>2_v~Re4{w(RrKDvak%8RiAlH<^cdr3q@Z~tg{ASzuMXlXI|a?fSmC5eHMrvj!7N_g~143Gc+PfBO3N<^m0BcVoew75LbI{;$;Ks zXmZKCrOH7WrmW6s?D@DT=Dus;UrhYB|97ozokF?+O=0Ch3`>&o9GEkTO0!C#IAr%V zbzoANE*TM007y*)D=j67<{nYdza*fhQ?tZC-lmL4<$4VeS5Fb zmU6G0-+IKWZ<}m3KF?Z8%;U8D$S0;iITZZ~P1a!=U0uG9J$Qp+Ci8gN4N06V= z^pli6ICIkfQRUpxsdQySH>tBYZ34u@3$ZsfS+u%qV?RkTnU6S4m_#+yov`J=_t1IE z)?T{Ieoi+Qx=R|gbA%9%Nrty=oQz*2 z!;pyvN@>Q?M+%O5WEoAg!MgZ-)NblCa=sL}^l=OM7PU>rLNiW?6Q&^sp!7*KVgVS2 z5$>}>2U0IrO@b(SK>$IA7V5D&X!KD6ex9#6j|vHSg~JH&3dX%(nRTA&>5sxR7`+yp zr`tqjs%KtuM(a?Mv~Hj5NS0 znimr3&h(|CD3A`u3aDB{nx)RfRLvYs`kepA0YWFLQ+*gap!(u`yCrP(pEb@QgQ zxvX}`oPOLH_U~jECUagd6mgBFTl{FjpA)O;W31vMOb!sDmk>%YiOO zcmQrhF(BwP8Pi8JRxtSmMm6Qg%f~)GvTDVs0 zmCxa?^vG(bbROH93_hYtQ?!Xqv6Tk;j%| zfag!zw>D>*J+}vI>K|-TofBj4QZ5v>cjHNjMPH1-5>oWb_=EC2>qX3?L0+}A`g_F1 zNcDWW89KwJlmWq{GAj8TzMUu(LhP|)qy4d*{E{255bI7Hx|Vy>rc8#3ch zg=weI5~tvEr_r-du}~ZOvQK$1sSlI23FBotK_e>?al_WBeIjvy(8JK^KAvU?=A;+F z_z_CM1{T6L5}~990Z_b+A*0)aB~$tfhJ`vbUc769P9&TbafAx7tGD^{BTBe*W$+3q zNCOBYd0@{82#K`Hc?3F5ztt>o$hYa!)s|~yJ%CtAS9ZxBg?+g7;PKlxnH~=%C#v?J za;ZG0mfbweKY%}PZR&pbfs|)4r$}C*V9sKPoqJvL5A3U52AYMT_uWW zFnCp$f1dTW=CdS;Wy>jeNxW^zV~`eihlxH9hhk=2;k@yX9G*k%EOl2BEwoHs|8*#- z*0G{|G5)NGTRyU5!$UWlhi;>fR_@Sju>YQz7pf&XpV7C)}%Kc8YYA>o>kCYTh%D4uMbOh@(N0I^e2lyuDGb@nJ? zZ-XTF^gqLtdc(b%s0bf;A~4#-e=}mLJ*<1*hJf^e2k})lCo5C#B%Qd zknh2^@3<|PBZB4t8*-$PYRe7+v^hyp#~EEgrkjIAj^yM_PH97KVfF#`6edsUdSvS&YrnBF>(JrDA=ZhlQ8Q@fY;hExhGP)m)Z* z18Bu0?$`VQgP+A%vJB1gg}v5enu3SgrCZ3 z+)79O>6-jT8)5j5LIUOogoj;>P>^2WKr)_K?uO7FKVVynf(@(4#Ak*+CW{6%0X&#^ z_0==?(;`H|1<0BaG^Ec?tuk0J9?z%%c_mhGD(Ku>d^|xd7NMq*llu~eGt`Qt6lgdDSoe$&2)Yqd#SsXAZXShQIe zR56Red;jZ<3gr7>hgDE7WY&f1^k&uDM%#jf1-mD<7C1zAnB9S0a}H<|wP>5MRb>>w zoX0NgopN))HSs>A3MD$tm|lAs>9KbSIMQmuPVh$@_Nu&Uzfc#0>LFQ+>eO&p=x4pm zbHkS2uOf}&imvubgX@S}R(=m(O%Q>S6US+munkIx&z2=nR!37)q|)O;3+E_4U3kO* zboC9r{G|}dhQ-VKF9n{n#T=%fUms{|SL2uFHdhQTfcE(vWN*=10P@`A7F!Tc#XI6%~nC4TtWuCQv$KFCA$E?n3>E69U zGO^HJIc)b=7JasMeM(kE2YaxPMqb8o-ntr~*sae3>N~!-}96kFdynlJ| zo3^zom@1g&tuu)BJ8Ik12jt)x+L~MrI$(sUy!wcOWW>~0&7h%GMwP?KD5oT2W$l9E z2uE8OZB5FfLFGl~$Lz1!ZS7Xddv=*SuH?d-> zO?Q8(xb{NNtq|PG@KJRq1bCnC#!y2o{usAMVjhct-#E)hQ)U0Yu}eP)OfxZRYE6y< z8)!~Ypu=bSv4CtaTO;-`2l_*nU9Hbtq*P}1%Ra13oQex5u zE$zPy3W87UP{=y2g$)XR%s%TEW$v(rN+70E$H#I0n+G^_Va{nYth-2)-arGF|Jij# zWzS77kFma9FYIPFmTm=6X_p?ht|#60U!^<#0^|Q~`6rP~IfnxetQmk507054!;u{# z`WU9cp`w%!c1hb{NisvNkaE!Dmp!(UG%Wp3vtnZLB3eb8iQ*5)Kv*#bM~Fg1KW~3O z9>vtoFcI`DXuSWNq=E|G1nuM)(4y~I07WApq|;)rwKb!LCESfhGM}Ng&7Is~jD#E^ z87 z^_~vy$40SnNa0T=YW?8S+`bmtvQ|HAn`|t~FT1flulY2X0U|t>F)=rLG$G^(UH#T2 zK0a0SBnl5Cu0Kh$>i2W_G?#zjJCm3Zi`rw!6Wav8zL!nbSZ+w*cwQ;d>*I%~&9tmHP9yS};7n zzP$aQp^imKKSb#zSmt;Xk7g;3Lq(i^yfI(c-)WxzLdMOg@NAvKZRA5?B59+Q0@#wp z*L;)&&Cf(dI83=(2-67-3o`&Er1^)Qo6yr{DgdOSYFFVwd%>~C9KE+RII^ilhbkoF zwIV#WZBpoG)@;%V_g-oRzvQaj$f4f02{~Q}+y}LIT^Ew8%CLDHh0Lt~YV*H|#QehH zdL*$!J7ms7hYm8Y?n&Vq9vMkO>>vf@+3`o4`w5i3l5*5q8E@KLjA$zi%XU?DQQXE0IyR-a?W>x*xXyNuDk zvP<*caSq<{&(ily7v~*!ldIR&~LUhv>Ui+m2Q(K$?0zX zl_=<`iM^AZH>pQjUH4b(9D0pgj1^>QIXj z-frp*_Zt&;kO}bJ`GWR?x@TrMyIk~8?sC@H=b{ObU~VYl5qLCRttNh!#^OKMM~~K{Vt-K{p7%w>R%ue#Ock3cM<`6Q!Y0juEPHp zapiBckpdwZc!jF~UVhAGp(Eg%;%#R~_7-rwlmThK6F)KGRK6YrCI+0ATpOF+meS5L zZc|nC6ecvx+u9-!VTWIgN}8%iv=ZWhqY^NwzKlkI=xAO5nxC7Em>HuEbL+hganwko zW+3EIKDwm**rqq6NFhr!9xl)SYR#eHbKPlr zi|?0P8$Bz_3;mS+ehFS)`R_LeUr6LmbUCMYX9o-5q&%Trn#8u^UQKx zEn90_5ZlPhS9#X$F}=mTA)oSlY_pfVW(|%&cU9jTj|3vHhI^wT9_~l2m7A>xV%9HW zds^0w_54RfjiB1G;sPPBuns{_+ui>75pTR#14tr1cNjP$Ax-FWtv&P`d&)|m60b&NV*q)jLn zRhc+qJfZ3$~`|^nRI^I>*Cy(23X&O_ZC-iZk(*0LoGsh za_=?1#|%EXpchM>c`=WbrC#jdO4%&P7(~t~!Y|rZH>*p_@-$oja5i%;$Q2Q(=tS0~ zTKkIkym}=zqf&u0n3R=y7EsW7Q$D7}L`nM*#pm(h`#FEKVD{JH*1_M=`Dm}sz$5T( zo%QXumD%%-?T~gh?1|y2!%WtJ$I;&OL}u~%9Rot`qR~%64pWOiJ!?IKn0ZxB> z&yb~G-~hr}EWsSELi4MNoPO3KcHlMH# zA>YZe1dwan_h@%2S)%F9atf3@4w7{bO6;}{x1B^}C(AeT6s*1sR*#Zz+P!fRT@M-j zYtP;_?7vOhIK?J{;##(eS`Qt^#^d=?D8$Pqi505uUb0mGQ(3UVmf+ zeJKE+R+vo$-1(7lLX1dgRaz#y2y8t`dmm)jK4K+wlG2!mr09;uJDX!WxQ9<@4c)|SA3YJ2Zg#~aFeu94Zd9eROF>u z)D~8A$B2l4S`AV`IX25`ibr?NDbaXRg#s^>-ogsxyHdr(D z3ODq{#sX9<$}zhTTd5T*)e|;9F&i(sh9Dn5&jr)G)H^v@G-nzm+~s>dJwV5~nCBi^ z9T!UU%GQKQ*+K<9Yrzf2mwmebUed_0J=P^B(0^8b}IDU$JX)&iUMLnPM$} z^;c))PvCzO2_nWT9I(LcLrBOd>9ft|gUJ6c7F(keVv^UgSlX`M{(mOHW`^@)hn;w3rcKSFD+)O@>i62d59vn z2v^knF@MNHeRp2%`H?f~Kp{@THi?<3%(LZch-q&hg$aFzSxiSYv+#;Lgt{FEp9+NH zqQ+ULTN1*Ahw_Pbg&E!xP-Iw-3u!4B&9+7H5*C}45~dPcnY7BU0$a<-gdtfw4{c+A z=rDAhra#o6ujIFN)>0z|myu#yN>hL^QZ+gkmRC1RV`%ndKyt(y_ox6wBrGosvv*#z z#nL2k@GlB%&oJWo1+FghCbxbY!}p7!4)*gJXO#msMPuNzUW9)2cn#Z+B(!|kow6mI zwAy?#GdIQ#kwYbAW$(B-w5;fCVU0t|_{MsA}@FmN=5~#l^`!5tcB7 z-MmI&13SS5oQM+`s9ij3#>;%|vZ?8ilHaW)L-M5M#IpTM<@d+SWI0dzVs?6Ov|7sC z&KJx?ERCSB>cREmFzeQ@R65Psnpuq(P(YqoYgNlM z0fnDaH((D0<1W$XrXaRuNTf=C_fumXDah&WJssXwt$p1jvU+#<2=X|hiy%olc!l<+ zuV*PEX&%I$7Qh_6f+s};^%$?uNSu>G3vQ7>Ud$@8hzXCG!mRZCB8e%rl-;C)40BtuhYKGe+BMh+hCZ|||I%Bqtw6=L z4^w!euXQN5yNE)ZE7o==spLM@$^3=7f1_=FEhI!b?{5k_1V+hw>ZS6Dq;tLD4-fSq zaExOd4+?6S&sop9Q30$!8GoGw-$jhMX{%2^_6RsN)!OXtPE{GZlz#b2)i5JIf>s_o z>*`T^)LZ;4mRZZx_=sW6GNY+T-+G3j?A)T&)k#y^&Z{h|AHuCYev^m<5IhI&5gjWF z_R?%NkZpPo#a}CHhH}i5zocrCCERYgXECxZ99D8fKY+Py&P0dr)xx((C$16S9aiI? zefeN4*8wpn>FiU7h#E)Ya8Jeq-p0-t3o5QAiX?Mc-J?K|-^a4C=P}INHZtH$dp-z| zCQs=ozS(Lsi{xd%yMe@0UO+km1&BE+Ey$3G!r8U@_V~?rc^9l3fcREA0l8EA3%Xs4 zY@*~g+RXc#d_2y1(zqPqIs#pJ&PSsajT0&A$v>smC*`eV2c9!)!BJ`T(ve3Yw+^1Y z-~u}Q9h3h?+XCqv1DHJH)WooSG>V+6#N>&v6s4+!D|!XhF{;9?X7bD7kE{^Qvbk<= zn@31GK6eJk@#dDO&LDYo%UCDyLyR*j1EX2JT-zGm-OBINgLC%eIzQ$#($@bv+cm3` zow-xz`_#uacaC3Ovs98fB=v<^KT^+`!Mj5+5N!@T&e`uB@y}b7P5kWi=)LvBdI`An zxlNo@w4FAs3OOpq*B(>ZVY*Oq*U$9*HnS-NMo6CzL;J0HN1g%jD6{Rb;AST)m^=xm zMmhCWj-`K1{%sRvgZVtuiD;JmqqbML1#jGa54Xc8Zf;uybOw|Vlo3Y={mB(&xqA4+>XWmF8je&j; zPhJ)?zQBom1KFy76^GykcZg2T>as+=73Fh}2OazFF*Re}@qqjy@){vw4>91>>R;`SAc$eJl$v>fO} zruxHpMx{2&{Veyso6mnmkpLE4)6dl?G_|=uSpeYe%cYJcKcqQw3&&9{PX%SaJWnaw zeaN=qR}Tb#bMpf7QOMEVFMAJF$vTBnY3hfLu}z^~-$!(1Eqjj#4UC8M=5p`~r^H|X z+{9@{f{s_*6>)ms#9f{+;rHZ|TW3^dQ`73TSrF3*LC7_UzDRavhhyazxv&O63L!d4Cw;on^Ob!RNt zL)*Lmu#B?`yZ5|)d@IU(lJt__u|&C0PHq%-+|bjbs!%fF4B=c|!#u>9yEi@fI>8%)G^WV^T7+hvDY9N3#)rNtCc00s6HY#ab3n zOLqfA@s!G~`=dwB0q$uc3L;Mm7n&xq=cv$~JCiLZGHZcJ)p~*WAhqc1)tfFEKuL;9 zXW(O09cC&_-5ueCXTqsx`^+B?PsQNw(G7BELb;( z#cF5%t*Wr| zDe+Gd!`H5kR=6<8f0*r9L?jmB5tSBc72ith3=FWVWtolH z)0!;bM=UW_5Bf}6gnMzn-Az(qYrN$nJU%{;>V$~IWYlPJ*uq@C!V z>E{r5l55QeG139#-85zvBARsQ(l|pPssBfBNN4^C&&bUt=H;dD#-X`q;CNkq7*xBj zh|4nwh!)~>CVPOgSGTVtziO6v9bY=>Z*s7YpwIj<5~Ssb-3g)a82?LE=T9ODa`Pj- z)_>!T?61ND782^Xm`ZX|cnH#vOmWZ}&9C646Q;}pg78{{E#a{o`cR~TIzABtD$j&f`p-YopUo>(`i_p zrKA+!S|)r6oXZwx+f_6%23bY6@|P=X_t`_ZM9Eg_(X5sn*yPBIsdV!?i$F>BvhkUt zPcya~8Q&mj*V*x#Acip;n)vp%ymP}H9$;));lYG}RR4^iqe&*7A6Fy~FQYv(o*&1x zGO)mo8+?i}Ad^i$rAMga){6UrRQdbBB9DtQY^+{!)DuMpV2t(76CqNKy-TLgq)GFE z+^OgpPVh|74st!aMDYe=i&j1B>QoM1xSgrvh+exwzuD0VAjT<+_dOh}b!osFHGTg(K}Yke0th#&o~E#bDnvw zM+V%QamzaL^%#aNc~-gUR+~rmZLV;`S4pK_O_SZZkqY;&W7#y^KL*pBU4$?T&{;jN zb9lY=YcTDHlatfFI$-{a+~GLm%O zV2p)mGE|~ZgGIN}G>-XbzJ7RfFv8_&>5MMkOyNVUxd?myd_t|Tmfew~Ay-lrb955j zfMfP8swqRjl97(C>!*7Yyo;ec&iv&$QHmAvz%%9g2cRr1yYIM6x~BG}_n6*Gd)m&XtL0?ZADHq?oj*I9)Cd zD44}W41zVlZTZ!mZM}?z*f>qQAzekzYMkSRFBEbhFN5|Fzq-*r>(X8kex9&}%C3Ni z9fGMN(r9^Cd$GskD^i`GZp1ZERUsZJ5QOyZRxxF@-v+bIFPFJ#T8N>JaKN}8Rqo7+ za*vBO8w(CypjfX!7704s;pUok5FcBll+~n9+Qy>m^G_NjoPTpm{>=X=JA2T*c3{Ql zbAl7I1w3l$f0LI1F9{+cKvhvn1A%oVEb~^+BeJ8({0-^*OQKA8>8mwR0(xn$6TpfTjUq6|%R|pz~T7wwq&B2C}8;^tVZKQ3U2VgKTMX zf=uBfd2%u=Y8|x85HK=zw;HMI&9~R@Z3yP=;__NXDu31NNRuueRLh#ohU(Rahe=B} z*R_;8IjU{gGTLfXPoBpxcq4$G7C=3}T_L_wwChca)Epzu)PUsMO0;g3Z@3dL@@b;; z36d8Vg6GK&G=Z+zB>VV#zDyTcUJRbh`{cp-ujLz=(poV;%*yzRfM2v*ruEXBC*d_L zv}A8Vu|bRhT0bpX2f6-v2F>+fO#V+I8A60JY^)iH9=9Fbif0fYB7)FJvGEfTR+!2Q z$b+~z4(pjIx@T>)`rtoN674l(n0f^|^JS;6`wjhbI+G@RSdrl%|2mh=?HS81+7l%W}+XbC}9jk5;u*;?xUxil_fBishQM%<=I-ysm zi!xu3s!Qar#UHpQj{$>u1=XN+52M0SK(s(MCMs5A>o82-s^;6JS(jZk2iTH+v{WEl zAS<#2<6K%Xq7{3fOItuq!!)sUgFEqH*uU{$Klm+C)?##EDUZKk#wy&cq(XyhyvBb( zg^_$(TGOY&&J%IoI#|i%&^~0aOtPcHNELld6w^E$^$u_KR}e3dnK2UUD|w*KV1V*$ z$=cc3-Y2I)D<%G673r<@_V2T){{rpbEPkVH>f`3uwy0RaoVI^+l{_L2y;O%p3F#YvJ~54^y)PEt}*?}e>_ywnP;CcB-Ev6aXtCiNUR zthE2*{ZY>tXoF#?Zn1sI#G3Lu}wvRNRqqwWbmN`?8y>2VPDJRBn6o z^PQu}BErQNg(+iZb7dY4`fXj}FX}4F2e0FmpUr?8`*vT;dJi@3YL>5-{69%;?W^Bf z3s%_j=9%<+g;p;?FCTb7R%J`>RSZ#;%;8;#b@AL6+WC5Mv zEF{vDM8)GZu6;2qEG5)(63qJg#z{l;tplP0?P9WBWFXT_>HcF6GwWE>Pya*3{Wscr z70xjZldE?41(|vq0Y)ER+Aw_5i|rQ=h;2KQbfCZKWH;f=?Eg-P5|DXAs|BhoX$BB=75}{3=Bel)m*)edA?0%|QfLE$vWCA19E|f#9n!HCdv2j>DW}%^Y=^9#Th{ zI~`-^r!5-8N3MxSq=B(YX`J)Nsz^|2BezwI33)%?>&p+hZA8SBqo1~1IUt-wmZ1?5 z701IcGa|(2cZ|s-%VJ=OkBTYNIFAWopw!$?HBBSpH+vW{F^Q-=+Z&L2u1aOKNM)is z)>zT=$xb=tTX#%Rer|>pQ_rrL93iJV7#Jz;!_Z0HNqPTCQW8P2gNk>3(_j0K~>CSt%7oCxy_F z-;QgPVl_e8kY*Gd`hO!_Q-LD&tc5(`RD^J}RdSdST0go3Nk?arIQ&>Jheo^FX+B%3 ze8-S_He9?WV$7QcctEn{8Ma*-`bm`)Fh9SD_btXy%guS+zaldvCdS!;D_}S9^B6UA z+Bl!SUvEb;W#(WR+ngrhfG2Ke$yiX$wD5IvqHDG;q2`6mq<-98Ll&TZBd;vIm6{_= z&8Nl#9h%?td0T%R83rn%@!?}+=gPG@BfXkq&YJAE|Dn8W-O~O%=oqv53XjY zkDbKmaf%r|Cy045>v5?KgI{rRE+Yk{rI?E0Q+}JY2EkWGB0T@MVI;qA!JkA@;ox^o z+ty?_dO~tZlJmi203(_)QI06mFhjit%<)iwqN?R!j0oWTk*?05@M4RRR2?zyyX-=L zcd}wVw$C<%c={Eoh``3kX=!xHXL?4ff(rkOyGaAF8ie!Vj#A*|Jg=a6|B(14d$%k) zDTQajLn!rpVQXIT?V7;m`?Nh;oD;mpdWL z$z7@f4U*GOK=@s^-XIY+V+YYCcEPGbbYz2F3}B^)1bBV#poR08Tc&F7M{Ar1s(Uz~j&(X3IC^P}hRLW)2%hVf;W5L4EKYNE)-1J~X8 zEEC0W0gSqZW~9fzr~LlK(EmhR%hHG8wF4&uhMrMIwb;em1BzCxfr8|=N&Rg77-wum zL7kcV+v2!K3uYt(Lv%<7Y2xa`EHAAV>hk*eVtksF3ITLne4N!Dv7@Z|T^lOe1Wo}n zu$0loCjXhB{n9=;-E-L1$P+c^a?E^66(5TOLP(UZn10`XYW?GTXFZEYz|eZJq_2kL z?Fy@LxT%oyLtCr(?Jr$U@f0tZb`WZVuCipfa_r%IIziW{+8MYVCRts0fVqRAQ~6F&(tC@sTId~0v~dcEJR17jm{Y1^^fR`bbWyT)7JT$NX#}Je1NaH?3vXw z4y0!u4!ISIIqwNdcA_G$wIybUe!&T!%ILxIhs6qwa`-=18jZ<|d}5^0#PNH9W{s+{}VkZxpLy zHflAE6D`J;>04w4U16a~F_cfRuco4nW(?@l4=jOH1+b@y$v>*{4FS~FW@3`PbL9YsCrCo(20F$>!((gumWH_K48EDR`;hR? z1g3}h9h-8Z`Z90^kr6TcNOx5F7Z>pcPTKElse?be9>Yz7&39`WjF~44tHY0OWmU=q z50TexGEM-vICc~ zOiUtZ;dDF*$Stk+M<<>~w!dele}K%jV04E*(q-LH&1OnNOKx+gB>fj>TYsZ%f^_p^ zSmu(>$w$;g!`eo!*y>rvwrq6zT8Jug^}!6}3gqnv2ws0dJF3$9zGfI9X^Fa}5<5MA znbjU?h*0YCyrJSo^2Y*t^#K&!fX-swjp&T#QaZ+%QjdKn$P%fuhRRhg4wo{ri-~?k6=i-x(RIFX2r=5>^Y< zCm3dn2aM|yA2xHm2FyeQ!I42K+F6;(XGrjC&f({yLP=cioGyCzr{ejX%IM#Xu%70I z2j!krWLoL?RQjd4;$~w%eaF*;&Xo9>v!@9n!~^ksNr==yQDJ=*kDmG()70eN zu5@U7u4+1>|Chr0ztHu6EPkVnTy*Wt4pjqVB zFiI|elX>rm5K`stuaNA;^By+$Hd||Bxco9^&&{%qS~~Gy-D-k97+GvDl(8W%gnl>3 zGOxI3GPAFVA9JX|DLa9-dhDCDX)^O|-5JU6$Z;n#zWXFGwu^2c23PR15=K+sd|%OG z_FwP8Z`y`a*hHubo~=bZe(U1OG}`POZ^#>Tu0@Y zB?6eYZK}C-q8Q3x4CECclvQDO@J&W~N;6jl27fWG4=flaEZ6F_glCIwonbHm(bA|F z+a2LOq0yf#({lQ&`_EN}68tO`R73Xm9*4%?R`mVE)nLqTCNSL}(G2Mn;+vYf!!~}< zd`5HZa6I}PE!dFDiqH` z*^!}kyXeHe#@Lyt_v8tCmep0PTigepw4l1U3dXl}lP74-Gd$b3M*O$gCwmM|8V8yG z?%2YAnD2l0{M)q6_x@qpTz0@rEKygv1Itc-3>ilHES5PoVag6eoS30OYC{SqjxOV& zVbc*Kcna2XfvG}wd|7G9udvc}uF4r0{drzW71rZ{pqA2VwqrL&uhIq2 zdoa`JL}YAzN!ETM_#&%c12;Rc^8{?0Qt9;T5qG1Ho(04Ghi65`Z~r|G`g4=K&Pd_e zhT=hB(eMFf-BukrsADugBTZ&c?SK|U8u+evhlkLZ5WhUqk5C=ZKgTm-lXQSDK?S0t zFm&uu9%XsT7ZIdR&1XdvJ$8dUREi{&e?W`4DVbXre6|R+oNTVO&#K&ZT~T`l0WUQi z<*P$$;&9*2)Y4)DE1au{3%>@ehSXK3b6)k_*-W!IqKVTXsQgawmhcmn32oY{f>2h> zgLg2Y6eG!^S+VD?EJvh=8!a_yZPv>tiY1yfhjDBVm@2gST&|N{OV@D^%W9>8rakyN zyGM3Y*+d&5E>tkuV4UC-(}_^ks6p$6CrT-_D?awIt4jfqkGXz6I^F4eZ0>1OeLv*u zL=CXgEO3E;5Dsp~vJ-LB#=>VKy;B}la52;GU0LuXlZ)g~^!d8F+vl65e)b%~nMklQ zp57rN2xll8p&$Y`1Po>PG5r@AsXqtFTcm^pkrng-02pE@hMnV?ne2G42__>Vz)bjF z35IBtAf6(WGAEL73?HxG!>wM2gzffWBnz#KAV(@TkteNerC#r z+tH%;7;~OH(LTu6`;z*S?~exySVSVqv$ZiT#-fZtozMIznC#qpoh97 zo^VBM;RycF`$Ki{3^Uy=*WbMNYjnelX`VbBXQMeuIcfiN-Rerwn9J<#7s=1hgQRId z(nKPg?M+Y9H;JhG->1dVt5B=GTt;SHYu2lkogpOgFMbv4 zg7OTi9{qYoe&dCB!av=UKaaK|8Qg>k*82dYM6^%C?^u$7A=*=Ov{5?0&Q4Z+lOxU8 zEk~xId4v}DuIT)Os<{Nxj|mDHe9jRquvaV)bw|C5AAJTC*Lnmo-Bo!s1E~=@Poauq} zWU>hm22|r%Ss-+_IrK8GxCV z`_IRtezW;+A^`vh^!~B>pW>k3-}wI@{_hANHFW>`FM~7!f;z)x{{G!-@mk5h Jf9Ic9{~s}$SVjN< literal 0 HcmV?d00001 diff --git a/_sources/_static/audio/Example04_Tour01_Line03.wav b/_sources/_static/audio/Example04_Tour01_Line03.wav new file mode 100644 index 0000000000000000000000000000000000000000..a760e8b8325f4dc553c67b27b00a53d7fed0bc03 GIT binary patch literal 978092 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 z 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ℑ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 z�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 z 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

    xsE*GMCN6wdbWs2#|tTkKCUSuwT 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�Vk|nkw-b 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

    {$h`Y+;6j-5(qA+T42{fUOooiO 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 ^eBi+co$q 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%0D;TX7|6*?$+6>W-E8~9aHzQ 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%0Dop^_QoZ6lVWxth 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 literal 0 HcmV?d00001 diff --git a/_sources/_static/clock.png b/_sources/_static/clock.png new file mode 100644 index 0000000000000000000000000000000000000000..9f7e4ade1a8109350cd1a98114e6337665b60290 GIT binary patch literal 23942 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∓@Mrmx*Pv7Gs4UgV_^`cQ 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�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 D#Oc`o literal 0 HcmV?d00001 diff --git a/_sources/_static/close.png b/_sources/_static/close.png new file mode 100755 index 0000000000000000000000000000000000000000..3ee38ebc751d58f26d7ebfd9e2601c9b920f8507 GIT binary patch literal 4497 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 literal 0 HcmV?d00001 diff --git a/_sources/_static/next.png b/_sources/_static/next.png new file mode 100644 index 0000000000000000000000000000000000000000..e07355a22aae087a393f7c6ada800f7b470dd531 GIT binary patch literal 15743 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 literal 0 HcmV?d00001 diff --git a/_sources/_static/pause.png b/_sources/_static/pause.png new file mode 100644 index 0000000000000000000000000000000000000000..7543f2601999e99ba23dfb2b7fa9d36fc2c7cea4 GIT binary patch literal 15344 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 RpP^9z83_gPN>PKr{{f0AevkkF literal 0 HcmV?d00001 diff --git a/conf.py b/conf.py index fd96cdc..48fd4b7 100644 --- a/conf.py +++ b/conf.py @@ -164,8 +164,7 @@ module_paths = [x.replace('.','/') for x in extensions] module_static_js = ['../../modules/%s/js' % x for x in module_paths if os.path.exists('../../modules/%s/js' % x)] module_static_css = ['../../modules/%s/css' % x for x in module_paths if os.path.exists('../../modules/%s/css' % x)] -html_static_path = ['./_static', '../../common/js', '../../common/css', - '../../common/bootstrap', '../../common/images'] + module_static_css + module_static_js +html_static_path = ['./_sources/_static'] + runestone_static_dirs() # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. From ccb7f9ee104086b7e10fabb9374e630eebfde710 Mon Sep 17 00:00:00 2001 From: Brad Miller Date: Thu, 10 Aug 2017 10:34:50 -0500 Subject: [PATCH 007/448] more updates for runestone3 --- _sources/_templates/#runestone.html# | 15 -------- .../sphinx_bootstrap/layout.html | 35 +++++++++++-------- .../bootstrap-3.0.0/css/bootstrap.min.css | 2 +- 3 files changed, 22 insertions(+), 30 deletions(-) delete mode 100644 _sources/_templates/#runestone.html# diff --git a/_sources/_templates/#runestone.html# b/_sources/_templates/#runestone.html# deleted file mode 100644 index f051ed8..0000000 --- a/_sources/_templates/#runestone.html# +++ /dev/null @@ -1,15 +0,0 @@ -

    diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/layout.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/layout.html index be46dfe..615e61c 100644 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/layout.html +++ b/_sources/_templates/plugin_layouts/sphinx_bootstrap/layout.html @@ -1,6 +1,6 @@ {% extends "basic/layout.html" %} -{% set script_files = script_files + [ +{% set script_files = ['_static/runestonebase.js'] + script_files + [ '_static'+'/jquery-ui-1.10.3.custom.min.js', '_static'+'/jquery-fix.js', '_static'+'/bootstrap-3.0.0/js/bootstrap.min.js', @@ -83,12 +83,6 @@
    Help support us:
    -
    - -
    @@ -112,14 +106,14 @@ @@ -209,6 +206,8 @@ + +
    @@ -260,7 +263,10 @@

    - readers online now | | Back to top + {% if use_services == 'true' %} + readers online now | + {% endif %} + | Back to top {% if theme_source_link_position == "footer" %}
    {% include "sourcelink.html" %} @@ -278,12 +284,13 @@ {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
    {%- endif %} {%- if show_sphinx %} - {% trans sphinx_version=sphinx_version|e %}Created using Sphinx {{ sphinx_version }}.{% endtrans %} + {% trans sphinx_version=sphinx_version|e %}Created using Runestone {{ runestone_version }}.{% endtrans %} {%- endif %}

    + {% if appname == "runestone" %} -
    - - -
  1. -
  2. -
    - Help support us: -
    -
    - - - - - - - -
    -
  3. - - - - -
  4. - - - - - -
  5. - - {% if use_services == 'true' %} - - - - {% endif %} -
  6. - - - - - -
  7. - - - - - -
    - - -{% endmacro %} - -{%- block extrahead %} - - - - - - - -
    - - - -{% endblock %} - -{# Silence the sidebar's, relbar's #} -{% block header %}{% endblock %} -{% block sidebar1 %}{% endblock %} -{% block sidebar2 %}{% endblock %} -{% block relbar1 %}{% endblock %} -{% block relbar2 %}{% endblock %} -{% block sidebarsourcelink %}{% endblock %} - -{%- block content %} -{{ navBar() }} - -
    - -
    - {% block body %}{% endblock %} - {% block nextprevious %} - {% include "subchapter.html" %} - {% endblock %} -
    -{%- endblock %} - -{%- block footer %} -
    -
    -

    - {% if use_services == 'true' %} - readers online now | - {% endif %} - | Back to top - {% if theme_source_link_position == "footer" %} -
    - {% include "sourcelink.html" %} - {% endif %} -

    -

    - {%- if show_copyright %} - {%- if hasdoc('copyright') %} - {% trans path=pathto('copyright'), copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} - {%- else %} - {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} - {%- endif %} - {%- endif %} - {%- if last_updated %} - {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
    - {%- endif %} - {%- if show_sphinx %} - {% trans sphinx_version=sphinx_version|e %}Created using Runestone {{ runestone_version }}.{% endtrans %} - {%- endif %} -

    -
    -
    - - -{% if appname == "runestone" %} - -{% endif %} - -{% endblock %} diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html deleted file mode 100644 index 2041c5c..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/localtoc.html +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/relations.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/relations.html deleted file mode 100644 index 43cc37f..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/relations.html +++ /dev/null @@ -1,30 +0,0 @@ -{%- if prev %} -
  8. - - - -
  9. - {% if not next %} -
  10. - {% endif %} - -{%- endif %} - -{%- if next %} -
  11. - - - -
  12. -
  13. -{%- endif %} - - diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html deleted file mode 100644 index 154f7c7..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/sourcelink.html +++ /dev/null @@ -1,4 +0,0 @@ -{%- if show_source and has_source and sourcename %} - {{ _('Source') }} -{%- endif %} diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css deleted file mode 100644 index b0aa9ad..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/css/bootstrap.min.css +++ /dev/null @@ -1,9 +0,0 @@ -/*! - * Bootstrap v3.0.0 - * - * Copyright 2013 Twitter, Inc - * Licensed under the Apache License v2.0 - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Designed and built with all the love in the world by @mdo and @fat. - *//*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{margin:.67em 0;font-size:2em}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{height:0;-moz-box-sizing:content-box;box-sizing:content-box}mark{color:#000;background:#ff0}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid #c0c0c0}legend{padding:0;border:0}button,input,select,textarea{margin:0;font-family:inherit;font-size:100%}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{padding:0;box-sizing:border-box}input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}@media print{*{color:#000!important;text-shadow:none!important;background:transparent!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}@page{margin:2cm .5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.table td,.table th{background-color:#fff!important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}*,*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.428571429;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}button,input,select[multiple],textarea{background-image:none}a{color:#428bca;text-decoration:none}a:hover,a:focus{color:#2a6496;text-decoration:underline}a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}img{vertical-align:middle}.img-responsive{display:block;height:auto;max-width:100%}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);border:0}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16.099999999999998px;font-weight:200;line-height:1.4}@media(min-width:768px){.lead{font-size:21px}}small{font-size:85%}cite{font-style:normal}.text-muted{color:#999}.text-primary{color:#428bca}.text-warning{color:#c09853}.text-danger{color:#b94a48}.text-success{color:#468847}.text-info{color:#3a87ad}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999}h1,h2,h3{margin-top:20px;margin-bottom:10px}h4,h5,h6{margin-top:10px;margin-bottom:10px}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}h1 small,.h1 small{font-size:24px}h2 small,.h2 small{font-size:18px}h3 small,.h3 small,h4 small,.h4 small{font-size:14px}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-bottom:20px}dt,dd{line-height:1.428571429}dt{font-weight:bold}dd{margin-left:0}@media(min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}.dl-horizontal dd:before,.dl-horizontal dd:after{display:table;content:" "}.dl-horizontal dd:after{clear:both}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999}abbr.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;border-left:5px solid #eee}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.428571429;color:#999}blockquote small:before{content:'\2014 \00A0'}blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0}blockquote.pull-right p,blockquote.pull-right small{text-align:right}blockquote.pull-right small:before{content:''}blockquote.pull-right small:after{content:'\00A0 \2014'}q:before,q:after,blockquote:before,blockquote:after{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.428571429}code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;white-space:nowrap;background-color:#f9f2f4;border-radius:4px}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.428571429;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre.prettyprint{margin-bottom:20px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.container:before,.container:after{display:table;content:" "}.container:after{clear:both}.row{margin-right:-15px;margin-left:-15px}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.row:before,.row:after{display:table;content:" "}.row:after{clear:both}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left}.col-xs-1{width:8.333333333333332%}.col-xs-2{width:16.666666666666664%}.col-xs-3{width:25%}.col-xs-4{width:33.33333333333333%}.col-xs-5{width:41.66666666666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333333333336%}.col-xs-8{width:66.66666666666666%}.col-xs-9{width:75%}.col-xs-10{width:83.33333333333334%}.col-xs-11{width:91.66666666666666%}.col-xs-12{width:100%}@media(min-width:768px){.container{max-width:750px}.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left}.col-sm-1{width:8.333333333333332%}.col-sm-2{width:16.666666666666664%}.col-sm-3{width:25%}.col-sm-4{width:33.33333333333333%}.col-sm-5{width:41.66666666666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333333333336%}.col-sm-8{width:66.66666666666666%}.col-sm-9{width:75%}.col-sm-10{width:83.33333333333334%}.col-sm-11{width:91.66666666666666%}.col-sm-12{width:100%}.col-sm-push-1{left:8.333333333333332%}.col-sm-push-2{left:16.666666666666664%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.33333333333333%}.col-sm-push-5{left:41.66666666666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333333333336%}.col-sm-push-8{left:66.66666666666666%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.33333333333334%}.col-sm-push-11{left:91.66666666666666%}.col-sm-pull-1{right:8.333333333333332%}.col-sm-pull-2{right:16.666666666666664%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.33333333333333%}.col-sm-pull-5{right:41.66666666666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333333333336%}.col-sm-pull-8{right:66.66666666666666%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.33333333333334%}.col-sm-pull-11{right:91.66666666666666%}.col-sm-offset-1{margin-left:8.333333333333332%}.col-sm-offset-2{margin-left:16.666666666666664%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.33333333333333%}.col-sm-offset-5{margin-left:41.66666666666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333333333336%}.col-sm-offset-8{margin-left:66.66666666666666%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.33333333333334%}.col-sm-offset-11{margin-left:91.66666666666666%}}@media(min-width:992px){.container{max-width:970px}.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left}.col-md-1{width:8.333333333333332%}.col-md-2{width:16.666666666666664%}.col-md-3{width:25%}.col-md-4{width:33.33333333333333%}.col-md-5{width:41.66666666666667%}.col-md-6{width:50%}.col-md-7{width:58.333333333333336%}.col-md-8{width:66.66666666666666%}.col-md-9{width:75%}.col-md-10{width:83.33333333333334%}.col-md-11{width:91.66666666666666%}.col-md-12{width:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333333333332%}.col-md-push-2{left:16.666666666666664%}.col-md-push-3{left:25%}.col-md-push-4{left:33.33333333333333%}.col-md-push-5{left:41.66666666666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333333333336%}.col-md-push-8{left:66.66666666666666%}.col-md-push-9{left:75%}.col-md-push-10{left:83.33333333333334%}.col-md-push-11{left:91.66666666666666%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333333333332%}.col-md-pull-2{right:16.666666666666664%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.33333333333333%}.col-md-pull-5{right:41.66666666666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333333333336%}.col-md-pull-8{right:66.66666666666666%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.33333333333334%}.col-md-pull-11{right:91.66666666666666%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333333333332%}.col-md-offset-2{margin-left:16.666666666666664%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.33333333333333%}.col-md-offset-5{margin-left:41.66666666666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333333333336%}.col-md-offset-8{margin-left:66.66666666666666%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.33333333333334%}.col-md-offset-11{margin-left:91.66666666666666%}}@media(min-width:1200px){.container{max-width:1170px}.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left}.col-lg-1{width:8.333333333333332%}.col-lg-2{width:16.666666666666664%}.col-lg-3{width:25%}.col-lg-4{width:33.33333333333333%}.col-lg-5{width:41.66666666666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333333333336%}.col-lg-8{width:66.66666666666666%}.col-lg-9{width:75%}.col-lg-10{width:83.33333333333334%}.col-lg-11{width:91.66666666666666%}.col-lg-12{width:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333333333332%}.col-lg-push-2{left:16.666666666666664%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.33333333333333%}.col-lg-push-5{left:41.66666666666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333333333336%}.col-lg-push-8{left:66.66666666666666%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.33333333333334%}.col-lg-push-11{left:91.66666666666666%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333333333332%}.col-lg-pull-2{right:16.666666666666664%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.33333333333333%}.col-lg-pull-5{right:41.66666666666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333333333336%}.col-lg-pull-8{right:66.66666666666666%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.33333333333334%}.col-lg-pull-11{right:91.66666666666666%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333333333332%}.col-lg-offset-2{margin-left:16.666666666666664%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.33333333333333%}.col-lg-offset-5{margin-left:41.66666666666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333333333336%}.col-lg-offset-8{margin-left:66.66666666666666%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.33333333333334%}.col-lg-offset-11{margin-left:91.66666666666666%}}table{max-width:100%;background-color:transparent}th{text-align:left}.table{width:100%;margin-bottom:20px}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:1.428571429;vertical-align:top;border-top:1px solid #ddd}.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0}.table tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9}.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5}table col[class*="col-"]{display:table-column;float:none}table td[class*="col-"],table th[class*="col-"]{display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be}@media(max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-x:scroll;overflow-y:hidden;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0;background-color:#fff}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}select[multiple],select[size]{height:auto}select optgroup{font-family:inherit;font-size:inherit;font-style:inherit}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto}.form-control:-moz-placeholder{color:#999}.form-control::-moz-placeholder{color:#999}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.428571429;color:#555;vertical-align:middle;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee}textarea.form-control{height:auto}.form-group{margin-bottom:15px}.radio,.checkbox{display:block;min-height:20px;padding-left:20px;margin-top:10px;margin-bottom:10px;vertical-align:middle}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:normal;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm{height:auto}.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg{height:45px;line-height:45px}textarea.input-lg{height:auto}.has-warning .help-block,.has-warning .control-label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;background-color:#fcf8e3;border-color:#c09853}.has-error .help-block,.has-error .control-label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;background-color:#f2dede;border-color:#b94a48}.has-success .help-block,.has-success .control-label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;background-color:#dff0d8;border-color:#468847}.form-control-static{padding-top:7px;margin-bottom:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media(min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block}.form-inline .radio,.form-inline .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0}}.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}.form-horizontal .form-group:before,.form-horizontal .form-group:after{display:table;content:" "}.form-horizontal .form-group:after{clear:both}@media(min-width:768px){.form-horizontal .control-label{text-align:right}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:1.428571429;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333;background-color:#ebebeb;border-color:#adadad}.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#fff;background-color:#3276b1;border-color:#285e8e}.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#fff;background-color:#ed9c28;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#fff;background-color:#d2322d;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#fff;background-color:#47a447;border-color:#398439}.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#fff;background-color:#39b3d7;border-color:#269abc}.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-link{font-weight:normal;color:#428bca;cursor:pointer;border-radius:0}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999;text-decoration:none}.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%;padding-right:0;padding-left:0}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height .35s ease;transition:height .35s ease}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';-webkit-font-smoothing:antialiased;font-style:normal;font-weight:normal;line-height:1}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-print:before{content:"\e045"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-briefcase:before{content:"\1f4bc"}.glyphicon-calendar:before{content:"\1f4c5"}.glyphicon-pushpin:before{content:"\1f4cc"}.glyphicon-paperclip:before{content:"\1f4ce"}.glyphicon-camera:before{content:"\1f4f7"}.glyphicon-lock:before{content:"\1f512"}.glyphicon-bell:before{content:"\1f514"}.glyphicon-bookmark:before{content:"\1f516"}.glyphicon-fire:before{content:"\1f525"}.glyphicon-wrench:before{content:"\1f527"}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000;border-right:4px solid transparent;border-bottom:0 dotted;border-left:4px solid transparent;content:""}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;list-style:none;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.428571429;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#fff;text-decoration:none;background-color:#428bca}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#428bca;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.428571429;color:#999}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media(min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}}.btn-default .caret{border-top-color:#333}.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff}.dropup .btn-default .caret{border-bottom-color:#333}.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:0}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar:before,.btn-toolbar:after{display:table;content:" "}.btn-toolbar:after{clear:both}.btn-toolbar .btn-group{float:left}.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group-xs>.btn{padding:5px 10px;padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{display:table;content:" "}.btn-group-vertical>.btn-group:after{clear:both}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-bottom-left-radius:4px;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;border-collapse:separate;table-layout:fixed}.btn-group-justified .btn{display:table-cell;float:none;width:1%}[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group.col{float:none;padding-right:0;padding-left:0}.input-group .form-control{width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-4px}.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav:before,.nav:after{display:table;content:" "}.nav:after{clear:both}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.428571429;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}}.nav-tabs.nav-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs.nav-justified>.active>a{border-bottom-color:#fff}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:5px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#428bca}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center}@media(min-width:768px){.nav-justified>li{display:table-cell;width:1%}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-bottom:1px solid #ddd}.nav-tabs-justified>.active>a{border-bottom-color:#fff}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tabbable:before,.tabbable:after{display:table;content:" "}.tabbable:after{clear:both}.tab-content>.tab-pane,.pill-content>.pill-pane{display:none}.tab-content>.active,.pill-content>.active{display:block}.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca}.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}.navbar:before,.navbar:after{display:table;content:" "}.navbar:after{clear:both}@media(min-width:768px){.navbar{border-radius:4px}}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}.navbar-header:before,.navbar-header:after{display:table;content:" "}.navbar-header:after{clear:both}@media(min-width:768px){.navbar-header{float:left}}.navbar-collapse{max-height:340px;padding-right:15px;padding-left:15px;overflow-x:visible;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse:before,.navbar-collapse:after{display:table;content:" "}.navbar-collapse:after{clear:both}.navbar-collapse.in{overflow-y:auto}@media(min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-15px}.navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-15px}.navbar-collapse .navbar-text:last-child{margin-right:0}}.container>.navbar-header,.container>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media(min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{border-width:0 0 1px}@media(min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px}@media(min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;z-index:1030}.navbar-fixed-bottom{bottom:0;margin-bottom:0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}@media(min-width:768px){.navbar>.container .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media(min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media(max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media(min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}@media(min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}@media(min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;padding-left:0;margin-top:0;margin-bottom:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0}}@media(max-width:767px){.navbar-form .form-group{margin-bottom:5px}}@media(min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{right:0;left:auto}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-text{float:left;margin-top:15px;margin-bottom:15px}@media(min-width:768px){.navbar-text{margin-right:15px;margin-left:15px}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#ccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6}.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333;border-bottom-color:#333}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555;border-bottom-color:#555}.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777;border-bottom-color:#777}@media(max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-nav>li>a{color:#999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#fff;border-bottom-color:#fff}.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999;border-bottom-color:#999}.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#fff;border-bottom-color:#fff}@media(max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#999}.pagination{display:inline-block;padding-left:0;margin:0px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eee}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#428bca;border-color:#428bca}.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager:before,.pager:after{display:table;content:" "}.pager:after{clear:both}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}.label[href]:hover,.label[href]:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#428bca}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#999;border-radius:10px}.badge:empty{display:none}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.btn .badge{position:relative;top:-1px}a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#fff}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:2.1428571435;color:inherit;background-color:#eee}.jumbotron h1{line-height:1;color:inherit}.jumbotron p{line-height:1.4}.container .jumbotron{border-radius:6px}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1{font-size:63px}}.thumbnail{display:inline-block;display:block;height:auto;max-width:100%;padding:4px;line-height:1.428571429;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.thumbnail>img{display:block;height:auto;max-width:100%}a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca}.thumbnail>img{margin-right:auto;margin-left:auto}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable{padding-right:35px}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:0 0}to{background-position:40px 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-size:40px 40px}.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255,255,255,0.15)),color-stop(0.25,transparent),color-stop(0.5,transparent),color-stop(0.5,rgba(255,255,255,0.15)),color-stop(0.75,rgba(255,255,255,0.15)),color-stop(0.75,transparent),to(transparent));background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:-moz-linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,0.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,0.15) 50%,rgba(255,255,255,0.15) 75%,transparent 75%,transparent)}.media,.media-body{overflow:hidden;zoom:1}.media,.media .media{margin-top:15px}.media:first-child{margin-top:0}.media-object{display:block}.media-heading{margin:0 0 5px}.media>.pull-left{margin-right:10px}.media>.pull-right{margin-left:10px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#428bca;border-color:#428bca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel-body:before,.panel-body:after{display:table;content:" "}.panel-body:after{clear:both}.panel>.list-group{margin-bottom:0}.panel>.list-group .list-group-item{border-width:1px 0}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel>.list-group .list-group-item:last-child{border-bottom:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.table{margin-bottom:0}.panel>.panel-body+.table{border-top:1px solid #ddd}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-title{margin-top:0;margin-bottom:0;font-size:16px}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-group .panel{margin-bottom:0;overflow:hidden;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#ddd}.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#428bca}.panel-primary>.panel-heading{color:#fff;background-color:#428bca;border-color:#428bca}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca}.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6}.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5}.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7}.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1}.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:auto;overflow-y:scroll}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-moz-transition:-moz-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)}.modal-dialog{z-index:1050;width:auto;padding:10px;margin-right:auto;margin-left:auto}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);background-clip:padding-box}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{min-height:16.428571429px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.428571429}.modal-body{position:relative;padding:20px}.modal-footer{padding:19px 20px 20px;margin-top:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer:before,.modal-footer:after{display:table;content:" "}.modal-footer:after{clear:both}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}@media screen and (min-width:768px){.modal-dialog{right:auto;left:50%;width:600px;padding-top:30px;padding-bottom:30px}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}}.tooltip{position:absolute;z-index:1030;display:block;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);visibility:visible}.tooltip.in{opacity:.9;filter:alpha(opacity=90)}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-top-color:#000;border-width:5px 5px 0}.tooltip.top-right .tooltip-arrow{right:5px;bottom:0;border-top-color:#000;border-width:5px 5px 0}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-right-color:#000;border-width:5px 5px 5px 0}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-left-color:#000;border-width:5px 0 5px 5px}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-bottom-color:#000;border-width:0 5px 5px}.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-bottom-color:#000;border-width:0 5px 5px}.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;white-space:normal;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2);background-clip:padding-box}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover .arrow{border-width:11px}.popover .arrow:after{border-width:10px;content:""}.popover.top .arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,0.25);border-bottom-width:0}.popover.top .arrow:after{bottom:1px;margin-left:-10px;border-top-color:#fff;border-bottom-width:0;content:" "}.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,0.25);border-left-width:0}.popover.right .arrow:after{bottom:-10px;left:1px;border-right-color:#fff;border-left-width:0;content:" "}.popover.bottom .arrow{top:-11px;left:50%;margin-left:-11px;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);border-top-width:0}.popover.bottom .arrow:after{top:1px;margin-left:-10px;border-bottom-color:#fff;border-top-width:0;content:" "}.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-left-color:#999;border-left-color:rgba(0,0,0,0.25);border-right-width:0}.popover.left .arrow:after{right:1px;bottom:-10px;border-left-color:#fff;border-right-width:0;content:" "}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;height:auto;max-width:100%;line-height:1}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6);opacity:.5;filter:alpha(opacity=50)}.carousel-control.left{background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.5)),to(rgba(0,0,0,0.0001)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.5) 0),color-stop(rgba(0,0,0,0.0001) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.5) 0,rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000',endColorstr='#00000000',GradientType=1)}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,0 top,100% top,from(rgba(0,0,0,0.0001)),to(rgba(0,0,0,0.5)));background-image:-webkit-linear-gradient(left,color-stop(rgba(0,0,0,0.0001) 0),color-stop(rgba(0,0,0,0.5) 100%));background-image:-moz-linear-gradient(left,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,0.0001) 0,rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000',endColorstr='#80000000',GradientType=1)}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;opacity:.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after{display:table;content:" "}.clearfix:after{clear:both}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.affix{position:fixed}@-ms-viewport{width:device-width}@media screen and (max-width:400px){@-ms-viewport{width:320px}}.hidden{display:none!important;visibility:hidden!important}.visible-xs{display:none!important}tr.visible-xs{display:none!important}th.visible-xs,td.visible-xs{display:none!important}@media(max-width:767px){.visible-xs{display:block!important}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block!important}tr.visible-xs.visible-sm{display:table-row!important}th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block!important}tr.visible-xs.visible-md{display:table-row!important}th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-xs.visible-lg{display:block!important}tr.visible-xs.visible-lg{display:table-row!important}th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell!important}}.visible-sm{display:none!important}tr.visible-sm{display:none!important}th.visible-sm,td.visible-sm{display:none!important}@media(max-width:767px){.visible-sm.visible-xs{display:block!important}tr.visible-sm.visible-xs{display:table-row!important}th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-sm{display:block!important}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block!important}tr.visible-sm.visible-md{display:table-row!important}th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-sm.visible-lg{display:block!important}tr.visible-sm.visible-lg{display:table-row!important}th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell!important}}.visible-md{display:none!important}tr.visible-md{display:none!important}th.visible-md,td.visible-md{display:none!important}@media(max-width:767px){.visible-md.visible-xs{display:block!important}tr.visible-md.visible-xs{display:table-row!important}th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block!important}tr.visible-md.visible-sm{display:table-row!important}th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-md{display:block!important}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-md.visible-lg{display:block!important}tr.visible-md.visible-lg{display:table-row!important}th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell!important}}.visible-lg{display:none!important}tr.visible-lg{display:none!important}th.visible-lg,td.visible-lg{display:none!important}@media(max-width:767px){.visible-lg.visible-xs{display:block!important}tr.visible-lg.visible-xs{display:table-row!important}th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell!important}}@media(min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block!important}tr.visible-lg.visible-sm{display:table-row!important}th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell!important}}@media(min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block!important}tr.visible-lg.visible-md{display:table-row!important}th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell!important}}@media(min-width:1200px){.visible-lg{display:block!important}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}.hidden-xs{display:block!important}tr.hidden-xs{display:table-row!important}th.hidden-xs,td.hidden-xs{display:table-cell!important}@media(max-width:767px){.hidden-xs{display:none!important}tr.hidden-xs{display:none!important}th.hidden-xs,td.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none!important}tr.hidden-xs.hidden-sm{display:none!important}th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none!important}tr.hidden-xs.hidden-md{display:none!important}th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-xs.hidden-lg{display:none!important}tr.hidden-xs.hidden-lg{display:none!important}th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none!important}}.hidden-sm{display:block!important}tr.hidden-sm{display:table-row!important}th.hidden-sm,td.hidden-sm{display:table-cell!important}@media(max-width:767px){.hidden-sm.hidden-xs{display:none!important}tr.hidden-sm.hidden-xs{display:none!important}th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}tr.hidden-sm{display:none!important}th.hidden-sm,td.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none!important}tr.hidden-sm.hidden-md{display:none!important}th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-sm.hidden-lg{display:none!important}tr.hidden-sm.hidden-lg{display:none!important}th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none!important}}.hidden-md{display:block!important}tr.hidden-md{display:table-row!important}th.hidden-md,td.hidden-md{display:table-cell!important}@media(max-width:767px){.hidden-md.hidden-xs{display:none!important}tr.hidden-md.hidden-xs{display:none!important}th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none!important}tr.hidden-md.hidden-sm{display:none!important}th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}tr.hidden-md{display:none!important}th.hidden-md,td.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-md.hidden-lg{display:none!important}tr.hidden-md.hidden-lg{display:none!important}th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none!important}}.hidden-lg{display:block!important}tr.hidden-lg{display:table-row!important}th.hidden-lg,td.hidden-lg{display:table-cell!important}@media(max-width:767px){.hidden-lg.hidden-xs{display:none!important}tr.hidden-lg.hidden-xs{display:none!important}th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none!important}}@media(min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none!important}tr.hidden-lg.hidden-sm{display:none!important}th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none!important}}@media(min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none!important}tr.hidden-lg.hidden-md{display:none!important}th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none!important}}@media(min-width:1200px){.hidden-lg{display:none!important}tr.hidden-lg{display:none!important}th.hidden-lg,td.hidden-lg{display:none!important}}.visible-print{display:none!important}tr.visible-print{display:none!important}th.visible-print,td.visible-print{display:none!important}@media print{.visible-print{display:block!important}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}.hidden-print{display:none!important}tr.hidden-print{display:none!important}th.hidden-print,td.hidden-print{display:none!important}} \ No newline at end of file diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.eot deleted file mode 100644 index 87eaa434234e2a984c261e0450a2f4ad837aa7b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14079 zcma)jRa_K6^zJUrQcHI&-Agwt-Q6i&BGL^KOLw;{-AD_FG)Q-gGzdrvN-EcX-iP~g z&*b^eH{Y4xyv%PN=0ykqC=mnzkp2}Ez<(I(fA#{~JL1@9|&czbr17 z?0>QUi2(qt040DrzyzQTPzI;~05<^oukZrI|7re*(tmmX7j^o_^aj}eC*Svf zS8xM_|1re@Z~iI2{-^mL9EX2e|B>GY!1r$^_@7M#!2iz^{g+$h|9j_j|IfYw09iey z|2e7uJq%=kUm`%z3m_N(;2I^EK8c@Rz+WzA_5K>K_A~&N-y3An#=6kB0L1`ghg@hn zZl7)JRrzdfN4}^l((rOb8!6cPsFL3<+h>Ko$*N(B`~JnKcb$DjB~XQQFl-maOT7?| z=??-O{TBG@KcAzmSNxsJz-Lt-`@AJr0kN!Di;SF6C_P<|x%6Q{;498Vwc}wHl?UCr z{Q~3fpz|ayjwAvkULRl`8oaqCD1Wz4@8$~fj$UC?mYD}9H~K)mrxoe9!WwG7+6D1~ zu)}%fLgSy{-z-;>e_xUdTzZz=OI{SZWnRf9!Z!c1f25WUO+5X9vri&A$czeCIfk$M z9$(eLNbUdRcqZ=w)1@@tN<^z0pQP-fOfjvjK3hvorqiV%Rl2xSOKU%hzr6ahgV9*$ zJlgSvPU509MBT=C+`yifpkEyy8#9c4UL5|r5gWS_tr}Av>(G)ZhAtjcTRS3?SSA9N z_Kegnh`V2N6RU=69p<{&He6g~O%EZ5+2OH{@ca1ru$Z)c3E&|1G!5~|4CfxK{)bF7rn^i` zwcKpWlzAHWR{;3USb36)e|%;$T55rp9tZ<6==s|-B*BebGk#$IYB|(ZrzrewrIl2Q zcVZsN=FLe{6k5m7YDaR%(#gdFf#BlrKVjI$R-nNKpd*2(T6`_?7Tr%rq~E9(yIypk z15x#%OfK;;uk|PQR~)DEppbSH6DmW;v@k*#ZhaG5{w7e$S`ot*K<^C*oB^co5cNr- z84k3(uHIXMy>++r-IRV%?Vpo$*r`8)jmh{vx(My9BI&4V4t z@q&H_L`zH3p725(a{oTG;rYk3%_{r*|8>5_6G?cTr)|U^XlDg8z zm^W6r3{qR3liJadUw%-DfiMsiV2YTxYOPA_X1lBkNTo&NjbQ(_zP!Rimikpp%G~h_ ztU^LLtxb8e!>D>CG^8eZ_@-EFi+JA&%Ym}4^tY?&sz92_hbFAune34RX{tbjogYXK zb;~ja9%4IE{_iiY6WdJ>_PH&3&@yDo2T(p1E`%?ub^PQ3)diW6ii}#+*!=`BpbGP_1R+t&;29S$UAcpH3h}2^>rGvH){c0jJtjcaSiIpFl?|Ykw|FXrNy% zn~l3m7e4&RgrOCH+jCRW=Ls5PATEyA`J8Ad?TVOG`l@pE({KV)pF3Z7;oa4-Hx3nk z^j1RZ{N?bQZy$cYv6=A&0^)qVweZ{+Bno|~E=9j=k-GDXeQ3qsW?N%I&@}1?wxuHf zA|Ro-_+d*C6M-#@VpM30RTEPdo!APpRrFObUDP^Ic|AJ;)&LVdnWX#RxiFb+zGKCQ zI_Kger%ADWvepR*8TGZ{JN(1K9%&P;^!XU4tSvkgGe_{JR~^f9$<0Tklc96r9x1B=VltaV_PCB77l_0tL3{`BdedCe5j3CF zO*e3HwE9GE<^LnU6k=*E%b)otxd+9+t<9)#+ze$kGPmX41&oF?8tHV!$ntX{*8aX^eeP@F2xMvpFGcra42@FI zDr{tW)yt3)P*7pvoD&$N2UDat?KH#6Zr3Wj1ocGNeW7Gj^2e)tH;o4O)FyAx_b=b8 zd=9(x+S@-Ai=UJC?i@DuZ0CtTtAU!S<4~e$K4CsxC85Tve7fHoj%T!vPv{JHch5_Y zM%K`rC>1Uk_m|u`%z4L~W*R<1JgN zI(cyXr))hytWI9~bat*Gf;?_avFr#*aq=$;3DEl;rBBbSfL&s-CmEN9Z=FWBPq|*w zV=1XfmME`nZtgN@DBWrbTSnz2oWcA9yL*=L#%fP3TXt!c0F%_>FvWM9H}5Urg0WkI zNt&dRN)2J@03gGYXLU}Ws1SoLa(2xNG04O@u`3C?42=UF%K^ZmD2OcrLpkyPD{zkZ zqZSrZ%U#vZMaTD{N9>OdGG?lPL;z?aQq&oxZHacwkYDWEjRc9X)Mg4w1*sqqdytQc z;>DOou1OedrNNb->@o%dNQsBess9-iEOg6MCTz%8RuuTHw%yfj66ap};<tL)BjF!!xYDU^iC@^Rt2BMhA>^Oluv#5vBd^doV(|U*_eW!Fpo^kadb~1qfM1 z-4xV$$`eWJMc%3OjU5A{fCA-11x&T35;A``cBD@_K+AfYp`ItY-nO9GFXyk(6H&gC zgVP-%-^o=btFjCC^slGFm}WC)1Fkw6WT{3uKjkNm`0Q%U67%Y#OLYbxB}u8qEXyBf z+jt?k7GWf9V1;7X7NJF^$kk!j@XFwhY;np}TTfKNM)sdEtVZLgSNz~z0}w_y_MM$P z{7ZPot7f{~deqdkb!?PO@3M6uVpZ)~0PM!uFW*8tGxGouYU+idM&+mch>1YWrfYbw zNHh7S!OA3^0A)hxl7xkSusWMIn}pAG7sVY<1G(8sqQS{%57LmXJp-HiSyD=l$*Riw zY+20T)}-|#pikZ7^U!gc1p%vkX1Q*!C%Ns1AbUha>5MtQHVJ(Q7;^mZrN_`4&gR#d z*GMiPozmbFnk7GQMUfb1z-LiF4xQ67RJ<1As!AEvs7ht4PG7P&xpL)JUK!S%jeUiX ziGEQ1j5YCz%;X#HVS2_}6~%)EQ*SZCzV-TqZo{O6%{r8|Py{vm3>zZHrnDT-D+S?Jo!n<`QZ%7N z6#HY((OAs1v%<)LZ%T1o@hclr9U{s$FY2`$#A222+iwA0^_ZWa}Sp$~Z`tSRz?fYd)Prtgp>DC@x&win* zYx)}AGLxzuz+^6ox_-KQe7OJaF4>UhEn2<^kp=1~zSKf2O8lsvgwt(+%dH&YE^$~{ zmIZuN4KWfnT+eLo`$Ntu+@_4dx-xCn%;H+*qI*rz{Pj+IMWV4q&4&v_vDJ?KnuhT? zp`HFH-{i7G z&cb3tRVzJC2)Aj&v-_2I=-cTnDad;U%gi?|r{%q8M3=JWIA4A_$1xksNX8fGQ0MXv z7jsG@yqP^YVXh~FGG7ztRofbb%v-Y2Oa0c4{DoEW2+ghB#=X?sC)zOnd<$FcA;P}k z!&0wB1tjlcu)sC=F=AuzvQsD3oXvch4Ur;5+K@a2;bjf`X@%InJU~*7p!QXL|3UP=)q(sV!;RVRF4eC( z5w2y7m}t3+flB}{o?fK>I$D|ykMw@kZumiw3J18$_+UA|-{#xqT-R~i?db}=&OhR9(;d>s&5GJ-M zuHl@XB;EHQ^c`j#mM47s|SScy-SD&Q0s(780*ui5*B(NU{ z1JAM6oymA%{(T`Qwoer|4`e4fbXpw=Ujf|X8hmq7E&vxv*}=+Rye%5X2xD0*^}YEf zEGd7~le2mpyS%mw8xl44hIvof|Pxp1T*z47AL}K^XlL>J6(gyYOmc|;VYs(tHAWpG7 znr9Tel(H$KV%()2(VBNVoP!o~|Gd)(^S&Q{PCqTk&dV;xZm_-lB_hr!QE$$#GqKT6 zV~RS4<7x-=tx0m&jE1BDqd(cc2iA@B7Ib0!{b&v`-5`t7XEV6UG7WdVy)z(@VR3p< zDC1lTpXHX3oE}5E3V7yx^8>jVnwr!w1_he&_17RJW+}R?{niZFG|4RyT7ZmC!Y^% zbR{57inS^QNGx!}+P3f7%?Sionp@*#h+8;FTaj1>q z1~X!#NO{YL-6+QR)z_o*SW%A+v-XebXs8&@TRzyDRieHy_t(B}bl)uwdFg%YXZ-^# zMWTYOwIkzv%>xr%$CBM=*m$T9k}!UxqnsS6rl-gw-*rU&V2or^ZkP6vPI|0njAB4O zn5CyBPHvXL)29>zpPkhW{`Qw3B?(G-TWfAV0^+}Ji$*Wob6n`WzRTBhd{);=mfm^% z{;`v`S>9Z(j2Nv-VLKD3~iA$Oj{Dq0(I z8U*-!Po9%GdOD|LVS~3(q-_)biNZxTiT)GN)YVr!4f4IRLNhAD48qw@0S#E{-e>UP z!dWH9**gQ$DqT?TkKNJl#J(f~7r6JAfSveml{UZ6jueeC&zR#Vi@e*Z==rWJgp@xj zDdR~Hd=3W?q0l(VMfRu(XreTXK*$pogtsuagZUmp^U^=wp0PM}Wf8W^Fm9n^8S4AS z7GJfQqzDgu-5C9o_f0zKKx$9L$|nGrE2rf%PLxV|c5LZ}PzELiSVok_zxZdiw78@4 zczsV08yXH>t5P&u(+XYPsiu48SXe7a3yEBGFiS7KFN#T`R)LMID_lZrUwvIx-Jfbw zW&lwFFkZK~+S9BQcb`8iqN%$0O{ zd_R#~i~MUF@fY!H4LxF+H=SJ{%h^?na-7Yogv2T6317oP^NJ}Jbg&)D&P;P^w8oe# zDNHRAqcPe>x zP|B*V4YPfm)deuX7-N@-7Mz4N1KmAfyYI78#jS0>Bkd}i9TWLsIZgXQY}1jqm+pG` zy{JiBImlPiF($3(sE&p7ntgNWLh&&5y{|mea7L8%c);7R2$T z_HrZz(`Nx;xE)NtPgF(IH0m#(y)Npg}NBkIWpJb(OJq&ymq^iBIHfZB+V!qd}3EnxDKf_XvD zT3tuka_2>|KJ_Qr(qpGJAf}w3%5Qo=u)K?~`O2CzZnMD_J96QGYE`74E@)I~ODsKK zH%}vL(dJC~ZUF3t99-z<+)r4yfgnU{Y-RryR^-SYY95;xsg#!aUC-Afy-0t%`Ccv_)YQ)A}F@oIMmu2ZX7PQ72ukwf(Cvsr!%uk z?~fxQtYEo0ehCIE`*_+|rxqV~hPV#FQyC(#HP&p@G#fKOUMp?w>)uN0&^pgnu4xwA z{+=Wo;`6mUi`y&O^6j1|StaDJHzuv-uBNf~cik{Jl#-tM_hJ^k+>c0kMduSMRtVAB zXTfh&yMOb>MNO5I1PZ0o!i;G4!y_^YHKHq6oX4a^KR@ocvM24QDH>)gQ-zdAXg{pR zt7?3h$uSFFv$4~lRcBSlUCKIO9p9VFeN}^EPQrbB!iSk~Ba2aSpMlf7sUnT!2PnKp z*Z0Gpr%sIM*x*BP?6E2Zk^y$a@Bl!Rt4YArYn_Po5M;&@gJz097wEglfz`ESLsIET zBs|I>ZJ0yIG}&DmAFB*@>{;;yJ_vO?f1N3M;xsLT(}SOFekLA$9KWf&-oNL?8X4J4oyU8tKa|1>*wEyh6Ebf)U!Z zYdS#`zoaL-RrPmx!}8501YZ{qj!4m&Y7SrdF&73udbUZylkG?gV+qAaszsvHEe+{D z<45m&hYodO2}g4E7>W2VeQ&n7!#30RJ8KbdK;T;5$lg`8J^y4jw3DP%j^Drg_woO{_t+eT$A)(~X?aCV(oI(=tpI1st*S@&~g6?&k z>s|?NRJcDff1`1?-Jc?K@U3-!Ys+&;g!A9IYGA|)zLH&vmifA**}mdVQFo{e8U~b2 zO2E010oyxaVfzV>!DiaH1em79k8chs%8c=txP&UaPiGwS0WcWl(|%w+^T*t*H|mk8 zz)Ak3o-PR;*!0I#w>D*9!+3J9$A|8=Ap!W>(U}g$h&Z!YOggAp^3=wF!Yaz_P($@? z(n!BM5i+f_^FX8~nrY$)=ZBTKHqm zVdAIS4fs!QL{-!F1~xy(})Hxa6p?Rjwv#-#Pvf zm8TQQeBr%Pn(2S+vFpu&c%{Rrk4#{RycSckZsn7q)i-C?s^e~PurOnw~O zv`sbAk*TMuA3Lo&9S}C+NVe+lL`zRzEuw^L!#*K_R{1j-SsyFUDFnW}3R%$ zis0vASSvzW7Jd2#61)h4#M6URkA_A3SsK4n#`cE2$ zLWp@8V}aGF=zO!}e(^Si*LlMGu3Si8)@_u+nrICpR-ng^i~GNd$UP_6*gd;57I81d zqLuuFat(5+->FEsY>{47M=^M$XX_r^DhHhyoVF&%)642YK9oHn`28XL@oD6zTRCr_ zQj#&uvxDDr@MK}Rs%^cX(zMsDRa3RzUQqW?O#N@x@1442leTwu=(D`c&~bPJX1eJx zR}5A8N$9Bq;W2HP`r4=%i4+)}>MCN-g9+FaIfz4#pX3o%gk8jR#?u%4F3+u2WCA{+7b24rYuJ1 zwW3Y9w-Bt2a(91Hcuj#xdB*q8Hy&$|)<1KPvN*|iiK~tq?ka$u;jeH>1QR}^dUxIFtyRN6z{I4L_o?enJ zFR95EMp$tQTUr!1vOm|XcjELh%@1qHj^++_t7XehC^Kxgs_HUQqFOBndGbf*;KnrP z>1BrQ)f5<&={TbN%QdERb6ljEbbCGjdd@5M#n06;VPP)$ z>chCAA@WK55n7o^L|)RL4<9m6lWth#q>&#GG5)ftZ#UzvbU+$2(jP)!o(zaw#;sdv z^%g(${-K@o670tu4>IZELt3#`+>9j?qf(`5Ch+>S&;~QQKzkSNY)16RqV;^f>T9$m zdqgaB84{#YEI4zWG)0m2{JP4snKf5{q~3>X2#QxOjG=sO9EHimSic@4V^<|@R-5Hy zEp^BF6R52jd09ovYpsaxywq*xnqd^%9fxrz=LFuUgxW6tSBC@dGWefD{H&>5oMjlj z6Ud@Q2;X<$!M}!W1R~uQvtTfS6QH%6nlH&~+q&RAWmVP$rbyZI&7MJD!MWh1sb*t; z&V+sSq(hi;g5~PTh!VqP_4Zlgx`%k?t19FqAJy6{$9?t}qv_oZP(+mjL!&s9hsSi0 z`1hZBgO1QyH=#|A^)bdk-w<5x6J#hivLy8_sDXLZ9cyp#>1cVkuO~R8$$=T!YcnR* z2IK3z=tD9$YM0E;xMYvjGX;DYEKeMPAY0k(Lwzo{Vh7}c15$J|s~_D_e%+RH^Zh!m zk4lp6r#OascmM8jGUcEAXfHU(neLo*wABl3)3I;N>=s`|zJAWwZHZtQNH-HR7WUvwmZrG!N z6@C{M0eWXL%2LZxW5tb=HS-8XP81s4JBB@;v&wkf0l#Qa_S5T7lahYrpP#_4z4ku! z%79{Wf8-DjEOK`d7PC)LJqBs(n-#-j1cvFr54a3Sabtu+VZ|9mz#=H?Or~eqxl$PQ@(j-#K-^vA1?!cVSYHiqjG%wgoo{ z;V>B_%aMBK*fx*zO(E~G2V^Rge0k6DE6)El91p>sh#YPjHEIdf%#qo8d;2q;-PEL# zM$qSYuUAeQ2&IGK;PK6zotMsO$LC!pl>@QKlp--=jQIkEwD||8ke1rQc)#gAZCdSP zbp|sBqb`OyD=c13US7+@&9PO~KE57bfoh^{0jOecez`2lpKQh@(KW*IF9t5p(vD6; zqC<&N{Yb0E4bC_{JpkUsO@rlnQkGCgPZc&=!#+=sq3)AE1cd=a-Lo&kH67=u3f~^x z$gvF;{hY5N=zW-MGNTT=kuvj=Eeje|_OvDefcre>sl=DrFKM*}wkk;l`}4haQL%D& zozLBx7UB^7A2;9x3fXkFDG|nU!vVTV#n;l`sA<8?C44E$S_CvCJyIKcbBTSJm2-dp z+A@d77melYFx?WF=8D}pZGaBq7o{5e+?i$`$d&UL1MLb{9o$$YA(U~As5FJ(o8zOW zjycOOtBY}?CJP+$sVEXp?BZ2aL1i4K0obmwIcc&4(62jbW8swa9f?DjTSetJS_F2B z5Z$cKkvqo(>(e|^<$|2NpV%tz7CM|Ai^m?Kd>Yu-{R!v%f8RBr7rWNtfZ^9vKm!u^dP~TR}A-E{C@XK9TX7!)BcW+IpovW>PA7tEh)jxk?zJUM*2{Y zN?T}i@F{LR5-+vp%IKQlcB3Ym)7}cJ12(U+D}MPeLlGDyvcfbe8%LPEy)G!?=e1L= zDJJoWSy{8;p|+#$)~16&EB2)`e$!tX1y-N{WXm?gwG*OnD!ci3u-9+(iLd7=7;7jR zmcY=*?xB}|#asYF%EX6t2{+RK&4M4{66KihGOAs;ij@mK&3Uu)3^b|?B;3B+z!38I z93x_C6}@3&mJvH)!lIq0oQQL86oWy_A|U@GvyD(NwO$c!`%U{`)TMN_Jau#t*Y0lu z0c4~`*Vxk$tP&+W8%8kVnREOkJevuHD;AI8ltWOEzPR%_#f5(Y$jArOxfd2TY42x( zvdviv@hBSfQLqM3;mpaTz|811VlQ7jQEm?Is1NzX>fhX*)3?iglf#v5#%li7DBSDs z9yr*Son&|AfaSp^FHcK!iyS|rW|~Ho3BGnwfGSacSD-Pd3HZx4^Tn{rw@X)t0G#!L z)6pFajr<=k25R8M>3^D^?Vl5V6+B+5p3Y=}-8meaQr23s5Ci^QiE_I#JND7F{`x)Z z${rPtj&q-)Eg1mQ&R^d8PLmmpTs0_NfM;Ld9p`~M`3B|`d)KSkHhIgWGh4h9V(M!E zprOL?IrlHS-Zj#5YaezY^EfJop++5!6~dG@VczVZsShn@a!H)^)mLap zN-5d|ZA^-9-}C0NQY-(>WWq2>z$nZ#9f)04o}#fdrZX(@%ws*mvWvY{x|!V;M+h(u zc(X?j+n3l}NT?SeX>yk#wP026HlrMO$^jJSY9}JbsQW`La`|uCRVgB?-NUkr!Q62rlZJ0 z4(P@;r`r%R2v%XcY4gwA4RY5cS9^>;1!-;WRHH6?A9H4nS~L6+Erf{kNRARp0%v#mG!BN`{Z0DT(;hL>q2tUur3n4FyKJATTZeC)I7~MlF{vYq zP#u$a?65CY1gX<_^dpm$T93g7cEiaEzJi=f(PP7*$Cf< z3e!q;mMXoy);Hc=X!%VmT-e!^igX6GoDK`Lrz#=>sc zkvcN?I-(oNR%$y<5v;+H$CX{e0F$s;-Dc+ckzFlEF7xK<7+Ij5F~FWrmDWsXraDch zDC0G}@xv|q?bH-m|Mjy0Ms)dZNpHw-DvLp2+c4S+O0)kVJ7zx(o)JrS?zKB>t||@D zeBgbVopB;#ax&umSZS)xCuXSI)HhTG6R!eRH?)QacpQ5#6L!rNa(`x=`VUEj)U|nB z1MMG_Tv{ZK#mpijK)fq&ckNP|V4+@K=S)c}ve;M#Pdu?5l^rr)DvUwV0PT?vKYzR% zGPWilY;hyPpFoR|5JP6?I@iC3Vq6S&sN@s)yy2Kk_{_=#E{tj(A~6Gn2o~=^zMyvs zejH=*na5H)n8DO#XSngd{F-OXphTbN9bu!~RA1@WgFi`~<6C$z-&Eg~>%F!po2S1_ ze(jCXcwQ%!S`|5^h}24Cf%DGYlJ8~b8L?zf;0`mM@)Jd|9&jr#{?*Qg1XJuUM}jTV zML9{SGQW{o>!LsKk$gTo3em@>#xK?}8b9NgS$?dN7ub9st#1lf=`*RfERqiz( z%zTB8hI6(Wpm4#3HbZ{z&OHArOIRM>JR?w6>jxW$d~1R( z8=RTg(0-+#XZ>UEu5%s=xiU`S%_}9ZcU{{C`IHp8yqFeq7L^5hHPf(B>{qz0U zx75z&dEB?!YvH!0%yFPn0dnvtlCDFL)%Bh>h0|%OxMnXF0(`E_T1cWldfPUNA#532 zF_UFlhm*4BwrzGZgWp~l89&g1;$Os_(e;Y|xl=2m@`F6(@A7#Zg$6~4{MITfoS(mY z#oK2mo@6)ugHMq+fCN82iP%cl>0rRR$+U-6UX}VIBZ_N3v^l9y2J@~+nXeeKV5tl_ z58#~`c(ljwfpHzaef#fbnkmRlut=er45g1&uFAxlaV4_Qd(S_*vcPY6fo5V{29CqR zh0CQnCWemD$tb;75jw?v?k%iaE$Zb*lYKU|?cRSJjsw=kp)Q^XpVWYrI2cu!TG~H7n=oNXG9I#<8 z2XoyS^Mf6^!*Rvnvc8xyFfpcXmSrE)F%hEOCa_GWBD#KOV3`AJX5v%eZiII@eMG4w zP{6>u6syX2q59xdCM#LN@M@N#|``%$kWIB0~(ROY~Ve=g* zNO-8sq+gRLR{DVwQ!Jfm!U>SpZI$h+6PlG3&djhh9*Vu$hD=4jV#(`EepWBB)od_U z1z*Wewx!;!ADjqaCwDW1G6@8ht6c*A{M}l8%l0jf?jh`J4b);-n=1;fmgB)4p1;ZG zDDk{q6&;eqX;tp_US%-mWh|)q)i{eHZbo|{^0}=bKxC@sGOV$YXz)91vn7~h<-uH& zQb0dByDZJPD`EGPd`kqAvI?*g=B3fqa9H9Rd{L`va?B=t~Y&l0h{I!^E9pG>!S z#>{UpLngb5T`Uqt6sO=~BOjkJh)+u0qiSo-es@5}f!h*a9Gx*&<5{Eoxc-WF!jSyn zM@qOve{Y;Ok^%FZK{2K;y}YNN_;1tethBv;U%(w z%RNe4t*ldJayql#MMurNnNoO;%!n-U0V4mzVpPdGu`LKf+RWv>l>VJ zh|rXJv9Mk&iDk|e!hBRh$KiV}utL&NkptF@GM$|`tR)5FxIigOLHS7vqDnsGiFl7bTk4baLCJDyHe`hWp4JT~ zxRJRy9oc;pw2eW?wv3s^8AsUEk+&zZY`Ez-Lo@iJt=-gFZhS`U&Ct+KB$VGUar1N* z@v1?8ygBYN+o*ZMCgDHM7MC=Korw86(SB>G1fFAvHmj{-oZNU|ZY7bG?7% za!4;s_~l~@pOTy7Zo^+6AY`23W==`h_ME&XEh#dIqn)Ei1rAP5;j0oaGirRuwQysr zBa#0yNX`7Po5nBsn|`gMKsYvFEKdsi0e?F_b6jl8h=+@ms+m|v$is-!NWtw6(@?$V zl_q&yu*vK7NYkl6M5O+M8>hB}h=2U?wrE48%##YSN^?I=0+$V|M7{IRFWf36;()R* zxJPdQDzTQ8c-0|B0$0G*)swoM=@rL%&=A*ZOgwL>7z1a%8 zFKtztnNhe(UFtdIA>1N=eN!pq;(cN?j@4UgtmpU_OVf+Lt5A!~Q-4!7z4rNbGV*<4 z`3S~~rTA$L`Bs@(J%h0xlX-Cme-na$&VA?CWqV?s!6CpeZMEoe$7DyV^%f(Y$CD^& zqb+UVeb3zQ$3puFCqi%M<_{j4`f>6W>Qts%OZ(sH37e1+(`!sDT=vci2*%*lcnLfGx#FXv!uiQm` zC&DPMh8FaCMRu3k7P2;P<>)CU&Sw8mr%`j%w6%l28(zv})E#p^r{~M)l3_X_Eef#9 z!fgwyX5@Oqx9=Waz>)cTxBx#FRZ7Q4&|@q3fbSjP*Pt|Bw)q1)JAG_&4Bc0~QYI5; z9l5@3gJ7IgX2*bCLz?mlb1Z8!pV-p58bZOp4MrH)-?C4BM%`bn_bw_v8c^mNSm=5N}{I(?E;74 zX%b#E#TsuQAAXq1n>W8vD~|I|L(Aqg?g=aXtg!r5BXJq%+P*yi5*0j^`Ml4I6;HT7 z5db0$wG~_=*tJmS#%smF=#xa&&Jz8fS=qB8x{B|9vz!fwmKbQU8&%pTg}ZM=3#kzV z_ZQ6}eE9}~T4%V0Xs%r}Jw9AwZlZ~)%XtE(9Q39 z5S-nO>sGi>EdT88T`M*cJ-QO2)(J{jpdX2j!noU=B@Ze69N9Z*ygRJ((WnKT=0Xa4 z5>HTd{3T)O`V-xs9(FA8^R$B+<_d`Zg!1rg#WK2+HXS(SR!(O)SwKq@O>%tXdp}KT zpzS>sB$N=B!h1`B*_hr3l_}mcGqYM@5PwPL1j^?PC&BQ_KvG0v0}CmL3|yC_fNyLi zaib~0C!;PY#bDnTXvPWs+Y5`ZCeOAdxX zCQNr*a)lN~1JDbninPT|6#xvPr!u6P!D6j#QGyAlSi+iMZzAA8s4!|Oo;I<&P#87f z1}&8+%t~ev%@`NRwfE8lg1+grWmTX#j0Luf0bat{$*Vv6?Oll&1AW4N=p!AztoBEDh8Zbul!(v09dV^(vw_m;E~n7Ix72vc`pWtfDyKs=Ist`7lb zYP5YlV6WodgY`h z&;}e>0a?Pt@c>>_fJG=UQ(rXrUsV^iQy0~j7nOpEOwo~<;9xV3M&qR&z^trFp|Dga z%#afXVTGYE$^|P&Bhs+bBC)Q+6RvGR*Dzw6Fg8?xZ5*HlD1 zp==t)lZj-JiTHwSbr}Zi=tnw-A&Z3toC4Q#(PpeD$iv(YfbFqpp>$-%VOD!U+gMaL z0Fg03#R`b$j_fdp`mKrB7p7qXn6*PHa>q32r&t2sKcoxsl=5LGrqWU=$$(DfX?Z*- zZDL9~XrfbHDB*7s)JG)=$rjZu)RQU*#d&mL*HpM3ux+Bz<4Qp}-b(Vs)G51Y8=Uo+ z7zZlqTu0xvo&(e>I!;k&;b#AbQzV}1(2(z1y>Fk6KE@waF^Kq{d@b-3Ge{J{jt>gwJni6ufU{X-fc+B2-`YjYGsmBSgS6oO)Aq; zI7J~w=8hx-a2*4z3=5D&uDPO|4O?(UBedeq1L}`~nEDmC0d1YYpF1Hr$ZOS9QLtrp z6nW>C@!SbU@@ZZaznY-{-@R|GhS4I()!-?p@Vi*TJjF`oVea-G1XNzd! y-^Vp%pcMc>T*9)K0*lM!C8AZPg+G7PFFQ7O_Sp6RwD_p|> diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg deleted file mode 100644 index 5fee068..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.svg +++ /dev/null @@ -1,228 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.ttf deleted file mode 100644 index be784dc1d5bcb92ab155f578f3723524a3dd9688..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29512 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 DlhOCh diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-3.0.0/fonts/glyphicons-halflings-regular.woff deleted file mode 100644 index 2cc3e4852a5a42e6aadd6284e067b66e14a57bc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16448 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.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return this.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(''}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery); \ No newline at end of file diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t deleted file mode 100644 index d8d8e94..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.css_t +++ /dev/null @@ -1,57 +0,0 @@ -/* -* bootstrap-sphinx.css -* ~~~~~~~~~~~~~~~~~~~~ -* -* Sphinx stylesheet -- Twitter Bootstrap theme. -*/ - -.navbar-inverse .brand { - color: #FFF; -} - -.page-top { - top: 0px; -} - -{% if theme_navbar_fixed_top == 'true' %} -body { -{% if theme_bootswatch_theme %} - padding-top: 50px; -{% else %} - padding-top: 40px; -{% endif %} -} -.page-top { -{% if theme_bootswatch_theme %} - top: 50px; -{% else %} - top: 40px; -{% endif %} -} - -.navbar-inner { - padding-left: 12px !important; - padding-right: 12px !important; -} -{% endif %} - -{%- block sidebarlogo %} - {%- if logo %} -@media (min-width: 980px) { - .navbar h3 a, .navbar .brand { - background: transparent url("{{ logo }}") no-repeat 22px 3px; - padding-left: 62px; - } -} - {%- endif %} -{%- endblock %} - -table { - border: 0; -} - -.footer { - width: 100%; - border-top: 1px solid #ccc; - padding-top: 10px; -} diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js deleted file mode 100644 index 41afcaa..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/bootstrap-sphinx.js +++ /dev/null @@ -1,132 +0,0 @@ -(function ($) { - /** - * Patch TOC list. - * - * Will mutate the underlying span to have a correct ul for nav. - * - * @param $span: Span containing nested UL's to mutate. - * @param minLevel: Starting level for nested lists. (1: global, 2: local). - */ - var patchToc = function ($ul, minLevel) { - var findA, - patchTables, - $localLi; - - // Find all a "internal" tags, traversing recursively. - findA = function ($elem, level) { - level = level || 0; - var $items = $elem.find("> li > a.internal, > ul, > li > ul"); - - // Iterate everything in order. - $items.each(function (index, item) { - var $item = $(item), - tag = item.tagName.toLowerCase(), - $childrenLi = $item.children('li'), - $parentLi = $($item.parent('li'), $item.parent().parent('li')); - - // Add dropdowns if more children and above minimum level. - if (tag === 'ul' && level >= minLevel && $childrenLi.length > 0) { - $parentLi - .addClass('dropdown-submenu') - .children('a').first().attr('tabindex', -1); - - $item.addClass('dropdown-menu'); - } - - findA($item, level + 1); - }); - }; - - findA($ul); - }; - - /** - * Patch all tables to remove ``docutils`` class and add Bootstrap base - * ``table`` class. - */ - patchTables = function () { - $("table.docutils") - .removeClass("docutils") - .addClass("table") - .attr("border", 0); - }; - - $(document).ready(function () { - - /* - * Scroll the window to avoid the topnav bar - * https://github.com/twitter/bootstrap/issues/1768 - */ - if ($("#navbar.navbar-fixed-top").length > 0) { - var navHeight = $("#navbar").height(), - shiftWindow = function() { scrollBy(0, -navHeight - 10); }; - - if (location.hash) { - shiftWindow(); - } - - window.addEventListener("hashchange", shiftWindow); - } - - // Add styling, structure to TOC's. - $(".dropdown-menu").each(function () { - $(this).find("ul").each(function (index, item){ - var $item = $(item); - $item.addClass('unstyled'); - }); - }); - - // Global TOC. - if ($("ul.globaltoc li").length) { - patchToc($("ul.globaltoc"), 1); - } else { - // Remove Global TOC. - $(".globaltoc-container").remove(); - } - - // Local TOC. - patchToc($("ul.localtoc"), 2); - - // Mutate sub-lists (for bs-2.3.0). - $(".dropdown-menu ul").not(".dropdown-menu").each(function () { - var $ul = $(this), - $parent = $ul.parent(), - tag = $parent[0].tagName.toLowerCase(), - $kids = $ul.children().detach(); - - // Replace list with items if submenu header. - if (tag === "ul") { - $ul.replaceWith($kids); - } else if (tag === "li") { - // Insert into previous list. - $parent.after($kids); - $ul.remove(); - } - }); - - // Add divider in page TOC. - $localLi = $("ul.localtoc li"); - if ($localLi.length > 2) { - $localLi.first().after('
  14. '); - } - - // Enable dropdown. - $('.dropdown-toggle').dropdown(); - - // Patch tables. - patchTables(); - - // Add Note, Warning styles. - $('div.note').addClass('alert').addClass('alert-info'); - $('div.warning').addClass('alert').addClass('alert-warning'); - - // Inline code styles to Bootstrap style. - $('tt.docutils.literal').not(".xref").each(function (i, e) { - // ignore references - if (!$(e).parent().hasClass("reference")) { - $(e).replaceWith(function () { - return $("").text($(this).text()); - }); - }}); - }); -}($jqTheme || window.jQuery)); diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png b/_sources/_templates/plugin_layouts/sphinx_bootstrap/static/img/Facebook.png deleted file mode 100644 index ddf68e9bb0053630a9df80385a3cbeee8d60eb86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3152 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

    _ilM|(L2 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 LNkvXXu0mjfU^8&% diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html b/_sources/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html deleted file mode 100644 index 990da6d..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/subchapter.html +++ /dev/null @@ -1,24 +0,0 @@ -{%- if prev %} -

    - - {% endif %} - -{%- if next %} - - Next Section - {{ next.title }} -{%- endif %} - - diff --git a/_sources/_templates/plugin_layouts/sphinx_bootstrap/theme.conf b/_sources/_templates/plugin_layouts/sphinx_bootstrap/theme.conf deleted file mode 100644 index dfb1ca2..0000000 --- a/_sources/_templates/plugin_layouts/sphinx_bootstrap/theme.conf +++ /dev/null @@ -1,46 +0,0 @@ -# Twitter Bootstrap Theme -[theme] -inherit = basic -stylesheet = basic.css -pygments_style = tango - -# Configurable options. -[options] -# Navigation bar title. (Default: ``project`` value) -navbar_title = - -# Tab name for entire site. (Default: "Site") -navbar_site_name = Site - -# Global TOC depth for "site" navbar tab. (Default: 1) -# Switching to -1 shows all levels. -globaltoc_depth = 1 - -# Include hidden TOCs in Site navbar? -# -# Note: If this is "false", you cannot have mixed ``:hidden:`` and -# non-hidden ``toctree`` directives in the same page, or else the build -# will break. -# -# Values: "true" (default) or "false" -globaltoc_includehidden = true - -# HTML navbar class (Default: "navbar") to attach to
    element. -# For black navbar, do "navbar navbar-inverse" -navbar_class = navbar - -# Fix navigation bar to top of page? -# Values: "true" (default) or "false" -navbar_fixed_top = true - -# Location of link to source. -# Options are "nav" (default), "footer" or anything else to exclude. -source_link_position = nav - -# Bootswatch (http://bootswatch.com/) theme. -# -# Options are nothing with "" (default) or the name of a valid theme such as -# "amelia" or "cosmo". -# -# Note that this is served off CDN, so won't be available offline. -bootswatch_theme = "" diff --git a/conf.py b/conf.py index 48fd4b7..9350d82 100644 --- a/conf.py +++ b/conf.py @@ -10,6 +10,7 @@ import sys, os from runestone import runestone_static_dirs, runestone_extensions +import pkg_resources # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the @@ -26,7 +27,7 @@ extensions = ['sphinx.ext.mathjax'] + runestone_extensions() -templates_path = ['./_sources/_templates'] +templates_path = [pkg_resources.resource_filename('runestone', 'common/project_template/_templates')] # The suffix of source filenames. source_suffix = '.rst' @@ -101,7 +102,7 @@ # Tab name for entire site. (Default: "Site") 'navbar_site_name': "Chapters", - + # Global TOC depth for "site" navbar tab. (Default: 1) # Switching to -1 shows all levels. 'globaltoc_depth': 1, @@ -126,7 +127,7 @@ # Location of link to source. # Options are "nav" (default), "footer" or anything else to exclude. 'source_link_position': "nav", - + # Bootswatch (http://bootswatch.com/) theme. # # Options are nothing with "" (default) or the name of a valid theme @@ -139,7 +140,7 @@ #html_style = "style.css" # Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ["./_sources/_templates/plugin_layouts"] +html_theme_path = [pkg_resources.resource_filename('runestone', 'common/project_template/_templates/plugin_layouts')] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". diff --git a/pavement.py b/pavement.py index ba173d4..cae890c 100644 --- a/pavement.py +++ b/pavement.py @@ -7,6 +7,7 @@ import sys from socket import gethostname import pkg_resources +from runestone import get_master_url sys.path.append(getcwd()) sys.path.append('../modules') @@ -22,22 +23,18 @@ project_name = "java4python" ############################### +dynamic_pages = True master_url = None doctrees = None if master_url is None: - if gethostname() in ['runestone.academy', 'runestone-deploy', 'rsbuilder']: - master_url = 'https://runestone.academy' - if os.path.exists('../../custom_courses/{}'.format(project_name)): - doctrees = '../../custom_courses/{}/doctrees'.format(project_name) - else: - doctrees = './build/{}/doctrees'.format(project_name) - else: - master_url = 'http://127.0.0.1:8000' - doctrees = './build/{}/doctrees'.format(project_name) + master_url = get_master_url() master_app = 'runestone' serving_dir = "./build/java4python" -dest = "../../static" +if dynamic_pages: + dest = './published' +else: + dest = "../../static" options( sphinx = Bunch(docroot=".",), @@ -55,10 +52,18 @@ 'appname':master_app, 'loglevel':10, 'course_url':master_url, + 'dynamic_pages': dynamic_pages, 'use_services': 'true', 'python3': 'true', 'dburl': 'postgresql://bmiller@localhost/runestone', 'basecourse': 'java4python', + 'jobe_server': 'http://jobe2.cosc.canterbury.ac.nz', + 'proxy_uri_runs': '/jobe/index.php/restapi/runs/', + 'proxy_uri_files': '/jobe/index.php/restapi/files/', + 'downloads_enabled': 'false', + 'enable_chatcodes': 'false', + 'allow_pairs': 'false' + } ) diff --git a/requirements.txt b/requirements.txt index 7dbd163..a2d98d4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ -runestone>=3.0.0b5 +runestone>=4.0.0 SQLAlchemy>=1.0.8 +psycopg2-binary \ No newline at end of file From 3a796d007c96ffb2bc26b34555faf75702e86296 Mon Sep 17 00:00:00 2001 From: Brad Miller Date: Thu, 26 Sep 2019 15:11:58 +0000 Subject: [PATCH 016/448] use defaults for jobe --- pavement.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/pavement.py b/pavement.py index cae890c..120e38f 100644 --- a/pavement.py +++ b/pavement.py @@ -57,9 +57,6 @@ 'python3': 'true', 'dburl': 'postgresql://bmiller@localhost/runestone', 'basecourse': 'java4python', - 'jobe_server': 'http://jobe2.cosc.canterbury.ac.nz', - 'proxy_uri_runs': '/jobe/index.php/restapi/runs/', - 'proxy_uri_files': '/jobe/index.php/restapi/files/', 'downloads_enabled': 'false', 'enable_chatcodes': 'false', 'allow_pairs': 'false' From 5268ac43cd523493aa9674f5c0cfc7b65981c609 Mon Sep 17 00:00:00 2001 From: Peter Story Date: Wed, 18 Aug 2021 14:15:00 -0400 Subject: [PATCH 017/448] Fix broken references --- _sources/Java4Python/firstjavaprogram.rst | 4 ++-- _sources/Java4Python/javadatatypes.rst | 2 +- _sources/Java4Python/namingconventions.rst | 2 -- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/_sources/Java4Python/firstjavaprogram.rst b/_sources/Java4Python/firstjavaprogram.rst index 899010e..62877a9 100644 --- a/_sources/Java4Python/firstjavaprogram.rst +++ b/_sources/Java4Python/firstjavaprogram.rst @@ -45,7 +45,7 @@ not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them. One thing that will help you is to learn a -little bit about Java [sec:naming\_conventions] {Naming Conventions}. +little bit about Java `Naming Conventions `_. The first question you probably have about this little program is “How do I run it?” Running a Java program is not as simple as running a @@ -70,7 +70,7 @@ The command ``javac`` compiles our java source code into compiled byte code and saves it in a file called ``Hello.class``. ``Hello.class`` is a binary file so you won’t learn much if you try to examine the class file with an editor. Hopefully you didn’t make any mistakes, but if you did -you may want to consult the [sec:common\_mistakes] {Common Mistakes} +you may want to consult the `Common Mistakes `_ section for helpful hints on compiler errors. Now that we have compiled our java source code we can run the compiled diff --git a/_sources/Java4Python/javadatatypes.rst b/_sources/Java4Python/javadatatypes.rst index ed309cb..e6ab41c 100644 --- a/_sources/Java4Python/javadatatypes.rst +++ b/_sources/Java4Python/javadatatypes.rst @@ -176,7 +176,7 @@ variable. If you have ever tried to use a Python variable that you have not initialized the second error message will be familiar to you. The difference here is that we see the message before we ever try to test our program. More common error messages are discussed in the section -[sec:common\_mistakes] {Common Mistakes}. +`Common Mistakes `_. The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that diff --git a/_sources/Java4Python/namingconventions.rst b/_sources/Java4Python/namingconventions.rst index 8710617..3e47025 100644 --- a/_sources/Java4Python/namingconventions.rst +++ b/_sources/Java4Python/namingconventions.rst @@ -2,8 +2,6 @@ Naming Conventions ================== -{sec:naming\_conventions} - Java has some very handy naming conventions. - Class names always start with an upper case letter. For example, From b6144f18ad86320d7e651a30e0c5ce3633c4eca7 Mon Sep 17 00:00:00 2001 From: Peter Story Date: Wed, 18 Aug 2021 14:25:15 -0400 Subject: [PATCH 018/448] Switch to Sphinx-style links --- _sources/Java4Python/commonmistakes.rst | 80 ++++++++++++---------- _sources/Java4Python/firstjavaprogram.rst | 4 +- _sources/Java4Python/javadatatypes.rst | 2 +- _sources/Java4Python/namingconventions.rst | 1 + 4 files changed, 47 insertions(+), 40 deletions(-) diff --git a/_sources/Java4Python/commonmistakes.rst b/_sources/Java4Python/commonmistakes.rst index d72bfea..3c9ae3b 100644 --- a/_sources/Java4Python/commonmistakes.rst +++ b/_sources/Java4Python/commonmistakes.rst @@ -1,54 +1,60 @@ +.. _Common Mistakes: + Common Mistakes =============== +Forgetting to declare your variables +------------------------------------ - - **Forgetting to declare your variables.** - - :: +:: - Histo.java:21: cannot find symbol - symbol : variable count - location: class Histo - count = new ArrayList(10); - ^ + Histo.java:21: cannot find symbol + symbol : variable count + location: class Histo + count = new ArrayList(10); + ^ - - **Not importing a class**: +Not importing a class +--------------------- - :: +:: - Histo.java:9: cannot find symbol - symbol : class Scanner - location: class Histo - Scanner data = null; - ^ + Histo.java:9: cannot find symbol + symbol : class Scanner + location: class Histo + Scanner data = null; + ^ - - **Forgetting to use the new keyword to create an object.** Here’s - an example of the error message that occurs when you forget to - use the new keyword. Notice that the message is pretty unhelpful. - Java *thinks* you are trying to call the Method Scanner, but - there are two problems. First Scanner is not really a method it - is a constructor.: +Forgetting to use the new keyword to create an object +----------------------------------------------------- +Here’s an example of the error message that occurs when you forget to +use the new keyword. Notice that the message is pretty unhelpful. +Java *thinks* you are trying to call the Method Scanner, but +there are two problems. First Scanner is not really a method it +is a constructor.: - :: +:: - Histo.java:14: cannot find symbol - symbol : method Scanner(java.io.File) - location: class Histo - data = Scanner(new File("test.dat")); - ^ + Histo.java:14: cannot find symbol + symbol : method Scanner(java.io.File) + location: class Histo + data = Scanner(new File("test.dat")); + ^ - - **Forgetting a Semicolon**: +Forgetting a Semicolon +---------------------- - :: +:: - Histo.java:19: - ';' expected - System.exit(0); - ^ + Histo.java:19: + ';' expected + System.exit(0); + ^ - - Forgetting to declare the kind of object in a container.: +Forgetting to declare the kind of object in a container +------------------------------------------------------- - :: +:: - Note: Histo.java uses unchecked or unsafe operations. Note: - Recompile with -Xlint:unchecked for details. + Note: Histo.java uses unchecked or unsafe operations. Note: + Recompile with -Xlint:unchecked for details. diff --git a/_sources/Java4Python/firstjavaprogram.rst b/_sources/Java4Python/firstjavaprogram.rst index 62877a9..8559fa9 100644 --- a/_sources/Java4Python/firstjavaprogram.rst +++ b/_sources/Java4Python/firstjavaprogram.rst @@ -45,7 +45,7 @@ not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them. One thing that will help you is to learn a -little bit about Java `Naming Conventions `_. +little bit about Java :ref:`Naming Conventions`. The first question you probably have about this little program is “How do I run it?” Running a Java program is not as simple as running a @@ -70,7 +70,7 @@ The command ``javac`` compiles our java source code into compiled byte code and saves it in a file called ``Hello.class``. ``Hello.class`` is a binary file so you won’t learn much if you try to examine the class file with an editor. Hopefully you didn’t make any mistakes, but if you did -you may want to consult the `Common Mistakes `_ +you may want to consult the :ref:`Common Mistakes` section for helpful hints on compiler errors. Now that we have compiled our java source code we can run the compiled diff --git a/_sources/Java4Python/javadatatypes.rst b/_sources/Java4Python/javadatatypes.rst index e6ab41c..52a6891 100644 --- a/_sources/Java4Python/javadatatypes.rst +++ b/_sources/Java4Python/javadatatypes.rst @@ -176,7 +176,7 @@ variable. If you have ever tried to use a Python variable that you have not initialized the second error message will be familiar to you. The difference here is that we see the message before we ever try to test our program. More common error messages are discussed in the section -`Common Mistakes `_. +:ref:`Common Mistakes`. The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that diff --git a/_sources/Java4Python/namingconventions.rst b/_sources/Java4Python/namingconventions.rst index 3e47025..5a45594 100644 --- a/_sources/Java4Python/namingconventions.rst +++ b/_sources/Java4Python/namingconventions.rst @@ -1,3 +1,4 @@ +.. _Naming Conventions: Naming Conventions ================== From f9a9d554fff7bd3fa712359524cf01bfd0658871 Mon Sep 17 00:00:00 2001 From: Peter Story Date: Thu, 19 Aug 2021 10:09:57 -0400 Subject: [PATCH 019/448] Remove unused and improperly defined subsection label --- _sources/Java4Python/conditionals.rst | 2 -- 1 file changed, 2 deletions(-) diff --git a/_sources/Java4Python/conditionals.rst b/_sources/Java4Python/conditionals.rst index 7ac59c6..daf9745 100644 --- a/_sources/Java4Python/conditionals.rst +++ b/_sources/Java4Python/conditionals.rst @@ -181,8 +181,6 @@ alternative then the program would print(out both A and B.) Boolean Operators ----------------- -{sub:boolean\_operators} - The conditionals used in the if statement can be boolean variables, simple comparisons, and compound boolean expressions. From 7fc069f353099dcc75a4823ad913838e29b4dac6 Mon Sep 17 00:00:00 2001 From: Peter Story Date: Fri, 20 Aug 2021 11:22:05 -0400 Subject: [PATCH 020/448] Update "Why Learn another programming Language?" section --- _sources/Java4Python/whylearnjava.rst | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/_sources/Java4Python/whylearnjava.rst b/_sources/Java4Python/whylearnjava.rst index 75739ab..662f0c7 100644 --- a/_sources/Java4Python/whylearnjava.rst +++ b/_sources/Java4Python/whylearnjava.rst @@ -9,9 +9,9 @@ is representative of one kind of language, called a dynamic language. You might think of Python as being fairly informal. There are other languages, like Java and C++ that are more formal. -These languages have some advantages of their own. First, is speed: For -very large programs Java and C++ are going to give you the best -performance. Second is their maintainability. A lot of what makes Python +These languages have some advantages of their own. First, is speed: Java +and C++ code will generally give better performance than Python code +[#pythonSpeed]_. Second is their maintainability. A lot of what makes Python easy to use is that you must remember certain things. For example if you set variable ``x`` to reference a turtle, and forget later that ``x`` is a turtle but try to invoke a string method on it, you will get an error. @@ -24,7 +24,7 @@ same category as Python are Ruby and Perl. Java is representative of what I will call industrial strength languages. Industrial strength languages are good for projects with several people working on the project where being formal and careful about what you do may impact lots -of other people. Languages in this category include C++, C, C# and Ada. +of other people. Languages in this category include Rust, C++, C#, and Ada. Programming languages will always change. As the field of computer science advances there will be new programming languages and you will @@ -37,17 +37,16 @@ you know what is common in languages that is a good place to start. Why Learn Java? Why not C or C++? --------------------------------- - - Java is the most widely taught programming language. +It is easier to learn to create interesting programs in Java than in C or C++, for several reasons: - - Java is more popular +- Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. Java has over 4,000 different classes included in the Java 14 Standard Edition. We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester. - - Java is industrial strength and used for large systems by large - groups of people +- Java incorporates automatic garbage collection of memory, whereas C and C++ programs typically include some degree of manual memory management. This makes programming in those languages more challenging. - - If you know Java, learning C++ is easy. +- C++'s syntax is more complicated than Java's, making it more difficult to learn. For example, C++ supports a feature called operator overloading, which makes it possible to change the behavior of operators like ``+``. This can make it more difficult to understand what a C++ program is doing. -Java is an enormous language. There are over 3,700 different classes -included in the Java 6 Standard Edition. We could not begin to scratch -the surface of these classes even if we devoted all 2,700 minutes of -class time that we have in a semester. However, Java is very powerful and -we will write some very powerful programs this semester. +Certainly, C and C++ are important languages, and are worth learning. But for these and other reasons, we've decided to use Java for this course. Learning Java will be a good preparation for learning these and other languages! + +.. rubric:: Footnotes + +.. [#pythonSpeed] Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. This can be done by compiling Python code to C code (see: `Cython `_) or by calling high-performance libraries from Python (e.g., `NumPy `_, `scikit-learn `_, etc.). So native language performance is just one criteria to consider when deciding which language to use for a program. From 71444f50a2322556c0b9d6c17d9615757a192def Mon Sep 17 00:00:00 2001 From: Peter Story Date: Fri, 20 Aug 2021 11:45:47 -0400 Subject: [PATCH 021/448] Light edits to "Lets look at a Java Program" --- _sources/Java4Python/firstjavaprogram.rst | 48 +++++++++++++++-------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/_sources/Java4Python/firstjavaprogram.rst b/_sources/Java4Python/firstjavaprogram.rst index 899010e..b5b4bd0 100644 --- a/_sources/Java4Python/firstjavaprogram.rst +++ b/_sources/Java4Python/firstjavaprogram.rst @@ -39,7 +39,7 @@ Now lets look at the same program written in Java: } What we see is that at the core there are a few similarities, such as a -main and the string “Hello World” However, there is a lot more stuff +main and the string “Hello World”. However, there is a lot more stuff around the edges that make it harder to see the core of the program. Do not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there @@ -88,7 +88,7 @@ from compiling: - Early detection of errors -- Faster Program Execution +- Faster program execution The job of the compiler is to turn your java code into language that the Java Virtual Machine (JVM) can understand. We call the code that the JVM @@ -106,7 +106,7 @@ Now that we have run our hello world program, lets go back and look at it carefully to see what we can learn about the Java language. This simple example illustrates a few very important rules: -1. Every Java program must define a class, all code is inside a class. +1. Every Java program must define a class, and all code is inside a class 2. Everything in Java must have a type @@ -115,7 +115,13 @@ simple example illustrates a few very important rules: Lets take the hello world example a line at a time to see how these rules are applied. On line 1 we see that we are declaring a class called -Hello. As rule 1 says all Java code resides inside a class. Unlike +Hello: + +:: + + public class Hello { + +As rule 1 says all Java code resides inside a class. Unlike Python where a program can simply be a bunch of statements in a file, Java programs must be inside a class. So, we define a class ``Hello``, which is not a very useful class because it has no instance variables, and only one @@ -130,19 +136,19 @@ is: :: - public static void main(String[] args)! + public static void main(String[] args) Everything on this line is significant, and helps in the identification of this method. For example the following lines look similar but are in fact treated by Java as completely different methods: - - ``public void main(String[] args)`` +- ``public void main(String[] args)`` - - ``public static void main(String args)`` +- ``public static void main(String args)`` - - ``public static void main()`` +- ``public static void main()`` - - ``void main(String args)`` +- ``void main(String args)`` Just digging in to this one line will take us deep into the world of Java, so we are going to start digging but we are not going to dig too @@ -166,7 +172,7 @@ instance, for example the math module contains many methods: sin, cos, etc. You probably evaluated these methods using the names ``math.cos(90)`` or ``math.sin(60)``. -The next word, ``void`` tells the Java compiler that the method ``main`` +The next word, **void** tells the Java compiler that the method ``main`` will not return a value. This is roughly analogous to omitting the return statement in a Python method. In other words, the method will run to completion and exit but will not return a value that you can use in @@ -176,7 +182,7 @@ will return. This is in keeping with the rule that says everything in Java must have a type. In this case we use the special type called ``void`` which means no type. -Next we have the proper name for the method: ``main``. The rules for +Next we have the proper name for the method: **main**. The rules for names in Java are similar to the rules in Python. Names can include letters, numbers, and the ``_``. Names in Java must start with a letter. @@ -191,9 +197,14 @@ that if you call ``main`` somewhere else in your code and and pass it an array of integers or even a single string, the compiler will flag it as an error. -That is a lot of new material to digest in only a single line of Java. +That is a lot of new material to digest in only a single line of Java! Lets press on and look at the next line: -``System.out.println("Hello World!");``. This line should look a bit + +:: + + System.out.println("Hello World!"); + +This line should look a bit more familiar to you. Python and Java both use the dot notation for finding names. In this example we start with ``System``. System is a class. Within the system class we find the object named ``out``. The @@ -206,10 +217,13 @@ method in Java. Now there is one more character on this line that is significant and that is the ``;`` at the end. In Java the ``;`` signifies the end of a -statement. Unlike Python where statements are almost always only one -line long, Java statements can spread across many lines. The compiler +statement. Java statements can spread across many lines, but the compiler knows it has reached the end of a statement when it encounters a ``;``. -This is a very important difference to remember. In Java the following +In Python, it is not required (or recommend) to use semicolons in this way, +but whitespace is meaningful. +In contrast, in Java semicolons are **required** to end statements, but +whitespace is not considered meaningful. +This is a very important difference to remember! In Java, the following statements are all legal and equivalent. I would not encourage you to write your code like this, but you should know that it is legal. @@ -228,7 +242,7 @@ write your code like this, but you should know that it is legal. ; The last two lines of the hello world program simply close the two -blocks. The first or outer block is the class definition. The second or +blocks using ``}``. The first or outer block is the class definition. The second or inner block is the function definition. If we wanted to translate the Java back to Python we would have From cd50bd24b56469345cb5f28bdef7fb0301bf69ea Mon Sep 17 00:00:00 2001 From: Peter Story Date: Fri, 20 Aug 2021 14:37:08 -0400 Subject: [PATCH 022/448] Fix programs in "Java Data Types" section --- _sources/Java4Python/javadatatypes.rst | 214 +++++++-------------- _sources/Java4Python/moredocumentation.rst | 6 +- 2 files changed, 76 insertions(+), 144 deletions(-) diff --git a/_sources/Java4Python/javadatatypes.rst b/_sources/Java4Python/javadatatypes.rst index ed309cb..d732369 100644 --- a/_sources/Java4Python/javadatatypes.rst +++ b/_sources/Java4Python/javadatatypes.rst @@ -32,9 +32,9 @@ compiler became smart enough to know when to convert back and forth and is called “autoboxing.” In this book, we will typically use the Object version of all the numeric data types and let the compiler do its thing. -Lets go back in time and look at another of our very early Python -programs. Here is a simple Python function to convert a Fahrenheit +Let's look at a simple Python function which converts a Fahrenheit temperature to Celsius. +If this program were run on the command-line, you would enter the temperature when prompted -- the Javascript pop-up for input is only an artifact of the digital textbook. .. activecode:: tcpython :language: python @@ -46,7 +46,7 @@ temperature to Celsius. main() -Next, lets look at the Java equivalent. +Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted -- the "Input for Program" text box is only an artifact of the digital textbook. .. activecode:: convert1 :language: java @@ -67,10 +67,7 @@ Next, lets look at the Java equivalent. cel = (fahr - 32) * 5.0/9.0; System.out.println("The temperature in C is: " + cel); - - System.exit(0); } - } There are several new concepts introduced in this example. We will look @@ -88,7 +85,7 @@ Import In Java, you can use any class that is available without having to import the class, subject to two very important conditions: -1. The javac and java must know that the class exists. +1. The ``javac`` and ``java`` commands must know that the class exists. 2. You must use the full name of the class @@ -104,9 +101,9 @@ know that certain classes exist. The answer is the following: ``CLASSPATH`` environment variable. Your ``CLASSPATH`` environment variable can name two kinds of structures. - 1. A jar file that contains Java classes + 1. A .jar file that contains Java classes - 2. Another unix directory that contains Java class files + 2. Another directory that contains Java class files You can think of the import statement in Java as working a little bit like the ``from module import xxx`` statement in Python. However, behind @@ -115,7 +112,7 @@ first important difference to understand is that the class naming system in Java is very hierarchical. The *full* name of the Scanner class is really ``java.util.Scanner``. You can think of this name as having two parts: The first part ``java.util`` is called the **package** and the -last part is the class. We’ll talk more about the class naming system a +last part is the **class**. We’ll talk more about the class naming system a bit later. The second important difference is that it is the Java class loader’s responsibility to load classes into memory, not the import statement’s. @@ -147,7 +144,7 @@ variable to refer to an object of any other type. In the example above, lines 5—7 contain variable declarations. Specifically we are saying that ``fahr`` and ``cel`` are going to reference objects that are of type ``Double``. The variable ``in`` will -reference a Scanner object. This means that if we were to try an +reference a ``Scanner`` object. This means that if we were to try an assignment like ``fahr = "xyz"`` the compiler would generate an error because ``"xyz"`` is a string and ``fahr`` is supposed to be a double. @@ -186,23 +183,23 @@ typing of Java, but for now this is enough. Input / Output / Scanner ~~~~~~~~~~~~~~~~~~~~~~~~ -In the previous section you saw that we created a ``Scanner`` object. In -Java, Scanner objects make getting input from the user, a file, or even +In the previous section we created a ``Scanner`` object. In +Java, ``Scanner`` objects make getting input from the user, a file, or even over the network relatively easy. In our case we simply want to ask the user to type in a number at the command line, so in line 9 we construct -a Scanner by calling the constructor and passing it the ``System.in`` -object. Notice that this Scanner object is assigned to the name ``in``, +a ``Scanner`` by calling the constructor and passing it the ``System.in`` +object. Notice that this ``Scanner`` object is assigned to the name ``in``, which we declared to be a ``Scanner`` on line 7. ``System.in`` is similar to ``System.out`` except, of course, it is used for input. If you -are wondering why we must create a Scanner to read data from +are wondering why we must create a ``Scanner`` to read data from ``System.in`` when we can write data directly to ``System.out`` using ``println``, you are not alone. We will talk about the reasons why this is so later when we talk in-depth about Java streams. You will also see -in other examples that we can create a Scanner by passing the Scanner a -File object. You can think of a scanner as a kind of “adapter” that +in other examples that we can create a ``Scanner`` by passing the ``Scanner`` a +``File`` object. You can think of a ``Scanner`` as a kind of “adapter” that makes low level objects easier to use. -On line 11 we use the Scanner object to read in a number. Here again we +On line 11 we use the ``Scanner`` object to read in a number. Here again we see the implications of Java being a strongly typed language. Notice that we must call the method ``nextDouble`` because the variable ``fahr`` was declared as a double. So, we must have a function that is @@ -212,9 +209,9 @@ compiler matches up these assignment statments and if you try to assign the results of a method call to the wrong kind of variable it will be flagged as an error. -Table 2 shows you some commonly used methods of the scanner class. There +The table below shows some commonly used methods of the ``Scanner`` class. There are many more methods supported by this class and we will talk about how -to find them in the next chapter. +to find them in our chapter about :ref:`Java Documentation`. ==================== ================ ====================================================== Return type Method name Description @@ -229,56 +226,6 @@ to find them in the next chapter. String next() returns the next thing to read as a String ==================== ================ ====================================================== -Of course, Java is more well-known for producing applications that have -more of a user interface to them than reading and writing from the -command line. Lets look at a version of our temperature conversion -application that uses dialog boxes for input and output. - -.. activecode:: swing - :language: java - :sourcefile: TempConvGUI.java - - import javax.swing.*; - - public class TempConvGUI { - - public static void main(String[] args) { - String fahrString; - Double fahr, cel; - - fahrString = JOptionPane.showInputDialog("Enter the temperature in F"); - fahr = new Double(fahrString); - cel = (fahr - 32) * 5.0/9.0; - - JOptionPane.showMessageDialog(null,"The temperature in C is, " + cel); - } - - } - -This example illustrates a couple of interesting points: - -First, the function call ``JOptionPane.showInputDialog`` pops up a -dialog box to allow you to enter a temperature. But, since you could -enter anything into the text input box it returns a ``String``. On the -next line the string is converted into a Double by the Double -constructor. This is similar to what happens in Python when you call -``float()`` with either a string or an integer as the argument. - -The next dialog box is ``JOptionPane.showMessageDialog``. Notice that -the first parameter is ``null`` In Java ``null`` serves the same purpose -as ``None`` in Python. The first parameter is null because we do not -have a ‘main window’ for this little application. When we look at -creating full-blown Java programs with user interfaces, we will learn -more about this parameter. - -The second parameter is ``"The temperature in C is, " + cel``. Now you -may be thinking to yourself that this must surely be a violation of the -strong typing I have been describing to you. After all, you should not be -able to add together a string and a Double right? You are correct, -however, all Java objects have a method called ``tostring``. The -``tostring`` method acts much like the Python method ``__str__()`` and -is called automatically by the compiler whenever it makes sense to -convert a Java object to a string. String ------ @@ -288,34 +235,32 @@ are immutable. However, manipulating strings in Java is not quite as obvious since Strings do not support an indexing or slicing operator. That is not to say that you can’t index into a Java string, you can. You can also pull out a substring just as you can with slicing. The -difference is that Java uses method calls where Python uses Operators. +difference is that Java uses method calls where Python uses operators. In fact, this is the first example of another big difference between Java and Python. Java does not support any operator overloading. Table 3 maps common Python string operations to their Java counterparts. For the examples shown in the table we will use a string variable called “str” -========================== ======================== ============================================================= +========================== ==================================== ============================================================= Python Java Description -========================== ======================== ============================================================= - ``str[3]`` ``str.charAt(3)`` Return character in 3rd position - ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd up to but not including 4th - ``len(str)`` ``str.length()`` Return the length of the string - ``str.find('x')`` ``str.indexOf('x')`` Find the first occurrence of x - ``str.split()`` ``str.split('\s')`` Split the string on whitespace into a list/array of strings - ``str.split(',')`` ``str.split(',')`` Split the string at ``','`` into a list/array of strings - ``str + str`` ``str.concat(str)`` Concatenate two strings together - ``str.strip()`` ``str.trim()`` Remove any whitespace at the beginning or end -========================== ======================== ============================================================= +========================== ==================================== ============================================================= + ``str[3]`` ``str.charAt(3)`` Return character in 3rd position + ``str[2:4]`` ``str.substring(2,4)`` Return substring from 2nd up to but not including 4th + ``len(str)`` ``str.length()`` Return the length of the string + ``str.find('x')`` ``str.indexOf('x')`` Find the first occurrence of x + ``str.split()`` ``str.split('\s')`` Split the string on whitespace into a list/array of strings + ``str.split(',')`` ``str.split(',')`` Split the string at ``','`` into a list/array of strings + ``str + str`` ``str + str`` or ``str.concat(str)`` Concatenate two strings together + ``str.strip()`` ``str.trim()`` Remove any whitespace at the beginning or end +========================== ==================================== ============================================================= List ---- -Lets look at another early Python program. We are going to read numbers -from a file and produce a histogram that shows the frequency of the -various numbers. The data file we will use has one number between 0 and -9 on each line of the file. Here is a simple Python program that creates -and prints a histogram. +Next, let's look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. +The data file we will use has one number between 0 and 9 on each line of the file. +Here is a simple Python program that creates and prints a histogram. .. activecode:: histopy :language: python @@ -331,28 +276,22 @@ and prints a histogram. for num in count: print(idx, " occured ", num, " times.") idx += 1 + + main() -Now if we run this program on a data file that looks like this: - 9 8 4 5 3 5 2 1 5 +Test running the program. It will read this data: -We will get output that looks like this: +.. datafile:: test.dat -:: + 1 + 2 + 3 + 9 + 1 - 0 occurred 0 times - 1 occurred 1 times - 2 occurred 1 times - 3 occurred 1 times - 4 occurred 1 times - 5 occurred 3 times - 6 occurred 0 times - 7 occurred 0 times - 8 occurred 1 times - 9 occurred 1 times - -Lets review what is happening in this little program. In the first line -we create a list and initialize the first 10 positions in the list to be +Lets review what is happening in this little program. First, we create a list +and initialize the first 10 positions in the list to be 0. Next we open the data file called ‘test.dat’. Third, we have a loop that reads each line of the file. As we read each line we convert it to an integer and increment the counter at the position in the list @@ -367,16 +306,17 @@ of loops used in Java. Two of the loops we will use are going to be very familiar, the third one is different from what you are used to in Python but is easy when you understand the syntax: -while - Used with boolean expression for loop exit condition. +- ``while (condition) { code }`` + + - The ``code`` will be repeatedly executed until the ``condition`` becomes false. + +- ``for (initialization statement; condition; loop statement) { code }`` -for - Used to iterate over a sequence. This is very similar to - ``for i in xxx`` where xxx is a list or string or file. + - The ``code`` will be repeatedly executed until the ``condition`` becomes false. As shown in the example below, the ``initialization statement`` and ``loop statement`` make this form useful for iterating over a range of numbers, similar to how you might use ``for i in range(10)`` in Python. -for - Used to iterate through a sequence of numbers. This is most similar - to for ``i in range()``, except the syntax is different. +- ``for (Type variable : collection) { code }`` + + - The ``code`` will be executed once for each element in the ``collection``. Each execution, ``variable`` will be assigned to the next element of ``collection``. Known as the "for-each" loop. This form is useful for iterating over members of a collection, similar to how you might use ``for a in array`` in Python. Here is the Java code needed to write the exact same program: @@ -401,7 +341,7 @@ Here is the Java code needed to write the exact same program: data = new Scanner(new File("test.dat")); } catch ( IOException e) { - System.out.println("Sorry but I was unable to open your data file"); + System.out.println("Unable to open data file"); e.printStackTrace(); System.exit(0); } @@ -425,15 +365,6 @@ Here is the Java code needed to write the exact same program: } -.. datafile:: test.dat - - 1 2 3 - 4 5 - 6 - 7 - 8 9 1 2 3 - 4 - 5 Before going any further, I suggest you try to compile the above program @@ -441,12 +372,12 @@ and run it on some test data that you create. Now, let's look at what is happening in the Java source. As usual, we declare the variables we are going to use at the beginning of the -method. In this example we are declaring a Scanner variable called data, -an integer called idx and an ``ArrayList`` called count. However, there +method. In this example we are declaring a ``Scanner`` variable called ``data``, +an integer called ``idx`` and an ``ArrayList`` called ``count``. However, there is a new twist to the ``ArrayList`` declaration. Unlike Python where lists can contain just about anything, in Java we let the compiler know what kind of objects our array list is going to contain. In this case -the ``ArrayList`` will contain Integers. The syntax we use to declare +the ``ArrayList`` will contain ``Integers``. The syntax we use to declare what kind of object the list will contain is the ```` syntax. @@ -460,7 +391,7 @@ on the list Java will give you a warning message like this: Note: Histo.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. -Without the part of the declaration Java simply assumes that +Without the ```` part of the declaration Java simply assumes that *any* object can be on the list. However, without resorting to an ugly notation called casting, you cannot do anything with the objects on a list like this! So, if you forget you will surely see more errors later @@ -478,7 +409,7 @@ block. :: try { - Put some risky code in here.... like opening a file + Put some risky code in here, like opening a file } catch (Exception e) { If an error happens in the try block an exception is thrown. @@ -489,6 +420,7 @@ Notice that in line 16 we are catching an ``IOException``. In fact, we will see later that we can have multiple catch blocks to catch different types of exceptions. If we want to be lazy and catch any old exception we can catch an ``Exception`` which is the parent of all exceptions. +However, catching ``Exception`` is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program. On line 22 we create our ``ArrayList`` and give it an initial size of 10. Strictly speaking, it is not necessary to give the ``ArrayList`` any @@ -502,7 +434,7 @@ The syntax of this for loop probably looks very strange to you, but in fact it is not too different from what happens in Python using range. In fact ``for (Integer i = 0; i < 10; i++)`` is exactly equivalent to the Python ``for i in range(10)`` The first statement inside the parenthesis -declares and initializes a loop variable i. The second statement is a +declares and initializes a loop variable ``i``. The second statement is a Boolean expression that is our exit condition. In other words we will keep looping as long as this expression evaluates to true. The third clause is used to increment the value of the loop variable at the end of @@ -512,14 +444,14 @@ value of i. Like Python, you can also write ``i += 2`` as shorthand for ``i = i + 2`` Try to rewrite the following Python for loops as Java for loops: - - ``for i in range(2,101,2)`` +- ``for i in range(2,101,2)`` - - ``for i in range(1,100)`` +- ``for i in range(1,100)`` - - ``for i in range(100,0,-1)`` +- ``for i in range(100,0,-1)`` - - ``for x,y in zip(range(10),range(0,20,2))`` [hint, you can - separate statements in the same clause with a ,] +- ``for x,y in zip(range(10),range(0,20,2))`` [hint, you can + separate statements in the same clause with a ,] The next loop (lines 27–30) shows a typical Java pattern for reading data from a file. Java while loops and Python while loops are identical @@ -543,7 +475,7 @@ for loop over all kinds of sequences, which are called Collection classes in Java. The for loop on line 33 ``for(Integer i : count)`` is equivalent to the Python loop ``for i in count:`` This loop iterates over all of the elements in the ArrayList called count. Each time -through the loop the Integer variable i is bound to the next element of +through the loop the Integer variable ``i`` is bound to the next element of the ``ArrayList``. If you tried the experiment of removing the ```` part of the ``ArrayList`` declaration you probably noticed that you had an error on this line. Why? @@ -574,13 +506,11 @@ program to use primitive arrays rather than array lists. Integer[] count = {0,0,0,0,0,0,0,0,0,0}; Integer idx; - - try { - data = new Scanner(new File("test.dat")); + data = new Scanner(new File("test.dat")); } catch ( IOException e) { - System.out.println("Sorry but I was unable to open your data file"); + System.out.println("Unable to open data file"); e.printStackTrace(); System.exit(0); } @@ -599,9 +529,9 @@ program to use primitive arrays rather than array lists. } The main difference between this example and the previous example is -that we declare count to be an Array of integers. We also can initialize +that we declare ``count`` to be an ``Array`` of integers. We also can initialize short arrays directly using the syntax shown on line 8. Then notice that -on line 24 we can use the square bracket notation to index into an +on line 22 we can use the square bracket notation to index into an array. Dictionary @@ -681,7 +611,7 @@ histogram program. data = new Scanner(new File("alice30.txt")); } catch ( IOException e) { - System.out.println("Sorry but I was unable to open your data file"); + System.out.println("Unable to open data file"); e.printStackTrace(); System.exit(0); } diff --git a/_sources/Java4Python/moredocumentation.rst b/_sources/Java4Python/moredocumentation.rst index f114436..b60a2eb 100644 --- a/_sources/Java4Python/moredocumentation.rst +++ b/_sources/Java4Python/moredocumentation.rst @@ -1,5 +1,7 @@ -Java Documentation Online -========================= +.. _Java Documentation: + +Java Documentation +================== All Java class libraries are documented and available online. Here are two good resources for you to use: From 7aa7b0a381a810ab7ce81a50259921cd487676d7 Mon Sep 17 00:00:00 2001 From: Peter Story Date: Fri, 20 Aug 2021 15:58:33 -0400 Subject: [PATCH 023/448] Beautify fraction.py with black code beautifier --- _sources/Java4Python/fraction.py | 98 +++++++++++++++----------------- 1 file changed, 46 insertions(+), 52 deletions(-) diff --git a/_sources/Java4Python/fraction.py b/_sources/Java4Python/fraction.py index 74d8872..8cceb47 100644 --- a/_sources/Java4Python/fraction.py +++ b/_sources/Java4Python/fraction.py @@ -1,80 +1,74 @@ class Fraction: - - def __init__(self,top,bottom): - - self.num = top #the numerator is on top - self.den = bottom #the denominator is on the bottom - + def __init__(self, num, den): + """ + :param num: The top of the fraction + :param den: The bottom of the fraction + """ + self.num = num + self.den = den def __repr__(self): if self.num > self.den: retWhole = self.num / self.den retNum = self.num - (retWhole * self.den) - return str(retWhole) + " " + str(retNum)+"/"+str(self.den) + return str(retWhole) + " " + str(retNum) + "/" + str(self.den) else: - return str(self.num)+"/"+str(self.den) + return str(self.num) + "/" + str(self.den) def show(self): - print(self.num,"/",self.den) + print(self.num, "/", self.den) - def __add__(self,otherfraction): + def __add__(self, other): # convert to a fraction - otherfraction = self.toFract(otherfraction) - - newnum = self.num*otherfraction.den + self.den*otherfraction.num - newden = self.den * otherfraction.den - - common = gcd(newnum,newden) - - return Fraction(newnum/common,newden/common) - - def __radd__(self,leftNum): - otherfraction = self.toFract(leftNum) - newnum = self.num*otherfraction.den + self.den*otherfraction.num - newden = self.den * otherfraction.den - - common = gcd(newnum,newden) - - return Fraction(newnum/common,newden/common) - - def __cmp__(self,otherfraction): - - num1 = self.num*otherfraction.den - num2 = self.den*otherfraction.num - + other = self.toFract(other) + newnum = self.num * other.den + self.den * other.num + newden = self.den * other.den + common = gcd(newnum, newden) + return Fraction(newnum / common, newden / common) + + def __radd__(self, leftNum): + other = self.toFract(leftNum) + newnum = self.num * other.den + self.den * other.num + newden = self.den * other.den + common = gcd(newnum, newden) + return Fraction(newnum / common, newden / common) + + def __cmp__(self, other): + num1 = self.num * other.den + num2 = self.den * other.num if num1 < num2: - return -1 + return -1 else: - if num1 == num2: - return 0 - else: - return 1 - - def toFract(self,n): - if isinstance(n,int): - otherfraction = Fraction(n,1) + if num1 == num2: + return 0 + else: + return 1 + + def toFract(self, n): + if isinstance(n, int): + other = Fraction(n, 1) elif isinstance(n, float): wholePart = int(n) fracPart = n - wholePart # convert to 100ths??? fracNum = int(fracPart * 100) newNum = wholePart * 100 + fracNum - otherfraction = Fraction(newNum,100) - elif isinstance(n,Fraction): - otherfraction = n + other = Fraction(newNum, 100) + elif isinstance(n, Fraction): + other = n else: print("Error: cannot add a fraction to a ", type(n)) return None - return otherfraction + return other -#gcd is a helper function for Fraction -def gcd(m,n): - while m%n != 0: +def gcd(m, n): + """ + A helper function for Fraction + """ + while m % n != 0: oldm = m oldn = n - m = oldn - n = oldm%oldn - + n = oldm % oldn return n From 4d1ad1531973a19103a005bfde9631c67b9869f3 Mon Sep 17 00:00:00 2001 From: Peter Story Date: Fri, 20 Aug 2021 16:44:43 -0400 Subject: [PATCH 024/448] Update fraction program to Python 3 --- _sources/Java4Python/definingclasses.rst | 78 +++++++++++++++++++++--- _sources/Java4Python/fraction.py | 74 ---------------------- 2 files changed, 70 insertions(+), 82 deletions(-) delete mode 100644 _sources/Java4Python/fraction.py diff --git a/_sources/Java4Python/definingclasses.rst b/_sources/Java4Python/definingclasses.rst index 81d4cc9..62cd24c 100644 --- a/_sources/Java4Python/definingclasses.rst +++ b/_sources/Java4Python/definingclasses.rst @@ -1,7 +1,7 @@ Defining Classes in Java ======================== -You have already seen how to define classes in Java. Its unavoidable for +You have already seen how to define classes in Java. It's unavoidable for even the simplest of programs. In this section we will look at how we define classes to create our own data types. Lets start by creating a fraction class to extend the set of numeric data types provided by our @@ -25,20 +25,84 @@ language. The requirements for this new data type are as follows: Here is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section: -.. literalinclude:: fraction.py +.. activecode:: fraction :language: python - :linenos: + class Fraction: + def __init__(self, num, den): + """ + :param num: The top of the fraction + :param den: The bottom of the fraction + """ + self.num = num + self.den = den + + def __repr__(self): + if self.num > self.den: + retWhole = int(self.num / self.den) + retNum = self.num - (retWhole * self.den) + return str(retWhole) + " " + str(retNum) + "/" + str(self.den) + else: + return str(self.num) + "/" + str(self.den) + + def show(self): + print(self.num, "/", self.den) + + def __add__(self, other): + # convert to a fraction + other = self.toFract(other) + newnum = self.num * other.den + self.den * other.num + newden = self.den * other.den + common = gcd(newnum, newden) + return Fraction(int(newnum / common), int(newden / common)) + + __radd__ = __add__ + + def __lt__(self, other): + num1 = self.num * other.den + num2 = self.den * other.num + return num1 < num2 + + def toFract(self, n): + if isinstance(n, int): + other = Fraction(n, 1) + elif isinstance(n, float): + wholePart = int(n) + fracPart = n - wholePart + # convert to 100ths??? + fracNum = int(fracPart * 100) + newNum = wholePart * 100 + fracNum + other = Fraction(newNum, 100) + elif isinstance(n, Fraction): + other = n + else: + print("Error: cannot add a fraction to a ", type(n)) + return None + return other + + + def gcd(m, n): + """ + A helper function for Fraction + """ + while m % n != 0: + oldm = m + oldn = n + m = oldn + n = oldm % oldn + return n + + print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) The instance variables (data members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to -``objectReferenc.variableName`` In Java all data members must be +``objectReference.variableName``, whereas in Java all data members must be declared up front. The declarations of instance variables can come at the beginning of the -class definition or the end. Cay Horstman, Author of the *Core Java* -books puts the declarations at the end of the class. I like them at the +class definition or the end. Cay Horstman, author of `the "Core Java" +books `_ puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind the first part of the Fraction class definition is as follows: @@ -52,8 +116,6 @@ part of the Fraction class definition is as follows: public class Fraction { private Integer numerator; private Integer denominator; - - } Notice that we have declared the numerator and denominator to be diff --git a/_sources/Java4Python/fraction.py b/_sources/Java4Python/fraction.py deleted file mode 100644 index 8cceb47..0000000 --- a/_sources/Java4Python/fraction.py +++ /dev/null @@ -1,74 +0,0 @@ -class Fraction: - def __init__(self, num, den): - """ - :param num: The top of the fraction - :param den: The bottom of the fraction - """ - self.num = num - self.den = den - - def __repr__(self): - if self.num > self.den: - retWhole = self.num / self.den - retNum = self.num - (retWhole * self.den) - return str(retWhole) + " " + str(retNum) + "/" + str(self.den) - else: - return str(self.num) + "/" + str(self.den) - - def show(self): - print(self.num, "/", self.den) - - def __add__(self, other): - # convert to a fraction - other = self.toFract(other) - newnum = self.num * other.den + self.den * other.num - newden = self.den * other.den - common = gcd(newnum, newden) - return Fraction(newnum / common, newden / common) - - def __radd__(self, leftNum): - other = self.toFract(leftNum) - newnum = self.num * other.den + self.den * other.num - newden = self.den * other.den - common = gcd(newnum, newden) - return Fraction(newnum / common, newden / common) - - def __cmp__(self, other): - num1 = self.num * other.den - num2 = self.den * other.num - if num1 < num2: - return -1 - else: - if num1 == num2: - return 0 - else: - return 1 - - def toFract(self, n): - if isinstance(n, int): - other = Fraction(n, 1) - elif isinstance(n, float): - wholePart = int(n) - fracPart = n - wholePart - # convert to 100ths??? - fracNum = int(fracPart * 100) - newNum = wholePart * 100 + fracNum - other = Fraction(newNum, 100) - elif isinstance(n, Fraction): - other = n - else: - print("Error: cannot add a fraction to a ", type(n)) - return None - return other - - -def gcd(m, n): - """ - A helper function for Fraction - """ - while m % n != 0: - oldm = m - oldn = n - m = oldn - n = oldm % oldn - return n From 64586ece2b29fc0231e6a4cc2aa6bbd8875e7b6c Mon Sep 17 00:00:00 2001 From: Peter Story Date: Mon, 30 Aug 2021 09:57:29 -0400 Subject: [PATCH 025/448] Add Core Java link to preface --- _sources/Java4Python/preface.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/_sources/Java4Python/preface.rst b/_sources/Java4Python/preface.rst index 1a3f4f2..272acda 100644 --- a/_sources/Java4Python/preface.rst +++ b/_sources/Java4Python/preface.rst @@ -13,7 +13,8 @@ languages. This book does not attempt to replace the many good Java reference books that are available, in fact I use this in my course along with -Horstman’s *Core Java* volumes. Please feel free to use this book for +`Cay Horstman’s "Core Java" volumes `_. +Please feel free to use this book for yourself, or if it fits a class you are teaching you are welcome to use this as a resource for your own class. From a8e4e6afbdef2229f0b82a86c4b6a551f6d9886a Mon Sep 17 00:00:00 2001 From: Peter Story Date: Mon, 30 Aug 2021 11:41:40 -0400 Subject: [PATCH 026/448] Finished editing "Defining Classes in Java" --- _sources/Java4Python/definingclasses.rst | 339 ++++++++++------------- 1 file changed, 150 insertions(+), 189 deletions(-) diff --git a/_sources/Java4Python/definingclasses.rst b/_sources/Java4Python/definingclasses.rst index 62cd24c..c35ae5b 100644 --- a/_sources/Java4Python/definingclasses.rst +++ b/_sources/Java4Python/definingclasses.rst @@ -129,9 +129,9 @@ method tries to write code like the following: Direct access to instance variables is not allowed. Therefore if we legitimately want to be able to access information such as the numerator -or denominator for a particular fraction we must have getter functions. +or denominator for a particular fraction we must have getter methods. It is very common programming practice to provide getter and setter -functions for instance variables in Java. +methods for instance variables in Java. :: @@ -154,12 +154,12 @@ functions for instance variables in Java. Writing a constructor --------------------- -Once you have identified the instance variables for you class the next +Once you have identified the instance variables for your class the next thing to consider is the constructor. In Java, constructors have the same name as the class and are declared public. They are declared -without a return type. So any function that is named the same as the +without a return type. So any method that is named the same as the class and has no return type is a constructor. Our constructor will take -two parameters the numerator and the denominator. +two parameters: the numerator and the denominator. :: @@ -169,12 +169,12 @@ two parameters the numerator and the denominator. } There are a couple of important things to notice here. First, you will -notice that the constructor does not have a self parameter. You will +notice that the constructor does not have a ``self`` parameter. You will also notice that we can simply refer to the instance variables by name -without the self prefix, because they have already been declared. This +without the ``self`` prefix, because they have already been declared. This allows the Java compiler to do the work of dereferencing the current Java object. Java does provide a special variable called ``this`` that -works like the self variable. In Java, ``this`` is typically only used +works like the ``self`` variable. In Java, ``this`` is typically only used when it is needed to differentiate between a parameter or local variable and an instance variable. For example this alternate definition of the the Fraction constructor uses ``this`` to differentiate between @@ -187,66 +187,53 @@ parameters and instance variables. this.den = den; } -Methods or Member Functions ---------------------------- +Methods +------- Now we come to one of the major differences between Java and Python. The -Python class definition used the special methods for addition, and +Python class definition used the special methods for addition and comparison that have the effect of redefining how the standard operators -behave. In Java there is **no operator overloading**. So we will have to -write member functions to do addition, subtraction, multiplication, and -division. Lets begin with addition. +behave: in Python, ``__add__`` and ``__lt__`` change the behavior of ``+`` and ``<``, respectively. In Java there is **no operator overloading**. So we will have to write the method for addition a little differently. + +A point of terminology: Python has both "functions" (``def`` outside a class) and "methods" (``def`` inside a class). Since Java requires all code to be inside classes, it only has "methods." Those from a C++ background might refer to methods as "member functions." + +Let's begin by implementing addition in Java: :: public Fraction add(Fraction otherFrac) { - Integer newNum, newDen, common; - - newNum = otherFrac.getDenominator()*this.numerator + - this.denominator*otherFrac.getNumerator(); - newDen = this.denominator * otherFrac.getDenominator(); - common = gcd(newNum,newDen); - return new Fraction(newNum/common, newDen/common ); + Integer newNum = otherFrac.getDenominator() * this.numerator + + this.denominator * otherFrac.getNumerator(); + Integer newDen = this.denominator * otherFrac.getDenominator(); + Integer common = gcd(newNum, newDen); + return new Fraction(newNum/common, newDen/common); } -First you will notice that the add member function is declared as +First you will notice that the ``add`` method is declared as ``public Fraction`` The ``public`` part means that any other method may -call the add method. The ``Fraction`` part means that ``add`` will +call the ``add`` method. The ``Fraction`` part means that ``add`` will return a fraction as its result. -Second, you will notice that on line two all of the local variables used -in the function are declared. In this case there are three local -variables: ``newNum``, ``newDen``, and ``common``. It is a good idea for -you to get in the habit of declaring your local variables at the -beginning of your function. This declaration section provides a simple -road map for the function in terms of the data that will be used. The -listing above also makes use of the ``this`` variable, you may find it -useful to use ``this`` until you are comfortable with abandoning your -Pythonic ideas about ``self``. - -Declaring your variables at the top is not a requirement, it is just a -recommended practice for you. Java only requires that you declare your -variables before they are used. The following version of Fraction is -also legal Java, but may be somewhat less readable. +Second, you will notice that the method makes use of the ``this`` variable. In this method, ``this`` is not necessary, because there is no ambiguity about the ``numerator`` and ``denominator`` variables. So this version of the code is equivalent: :: public Fraction add(Fraction otherFrac) { - Integer newNum = otherFrac.getDenominator()*numerator + - denominator*otherFrac.getNumerator(); + Integer newNum = otherFrac.getDenominator() * numerator + + denominator * otherFrac.getNumerator(); Integer newDen = denominator * otherFrac.getDenominator(); - Integer common = gcd(newNum,newDen); - return new Fraction(newNum/common, newDen/common ); + Integer common = gcd(newNum, newDen); + return new Fraction(newNum/common, newDen/common); } The addition takes place by multiplying each numerator by the opposite denominator before adding. This procedure ensures that we are adding two fractions with common denominators. Using this approach the denominator is computed by multiplying the two denominators. The greatest common -divisor function is used to find a common divisor to simplify the +divisor method, ``gcd``, is used to find a common divisor to simplify the numerator and denominator in the result. -Finally on line 8 a new fraction is returned as the result of the +Finally on line 6 a new ``Fraction`` is returned as the result of the computation. The value that is returned by the return statement must match the value that is specified as part of the declaration. So, in this case the return value on line 8 must match the declared value on @@ -259,18 +246,17 @@ Our specification for this project said that we need to be able to add a ``Fraction`` to an ``Integer``. In Python we can do this by checking the type of the parameter using the ``isinstance`` function at runtime. Recall that ``isinstance(1,int)`` returns ``True`` to indicate that 1 is -indeed an instance of the ``int`` class. See lines 22 and 53—68 of the -Python version of the Fraction class to see how our Python +indeed an instance of the ``int`` class. See the ``__add__`` and ``toFract`` methods in the Python version of the ``Fraction`` class to see how our Python implementation fulfills this requirement. In Java we can do runtime type checking, but the compiler will not allow -us to pass an Integer to the add function since the parameter has been +us to pass an Integer to the ``add`` method since the parameter has been declared to be a Fraction. The way that we solve this problem is by writing another ``add`` method with a different set of parameters. In Java this practice is legal and common we call this practice -**overloading**. +**method overloading**. -This idea of overloading raises a very important difference between +This idea of method overloading raises a very important difference between Python and Java. In Python a method is known by its name only. In Java a method is known by its signature. The signature of a method includes its name, and the types of all of its parameters. The name and the types of @@ -278,11 +264,11 @@ the parameters are enough information for the Java compiler to decide which method to call at runtime. To solve the problem of adding an ``Integer`` and a ``Fraction`` in Java -we will overload both the constructor and the add function. We will +we will overload both the constructor and the ``add`` method. We will overload the constructor so that if it only receives a single ``Integer`` it will convert the ``Integer`` into a ``Fraction``. We will -also overload the add method so that if it receives an ``Integer`` as a -parameter it first construct a ``Fraction`` from that integer and then +also overload the ``add`` method so that if it receives an ``Integer`` as a +parameter it will first construct a ``Fraction`` from that integer and then add the two ``Fractions`` together. The new methods that accomplish this task are as follows: @@ -299,14 +285,13 @@ task are as follows: Notice that the overloading approach can provide us with a certain elegance to our code. Rather than utilizing if statements to check the -types of parameters we just overload functions ahead of time which +types of parameters we just overload methods ahead of time which allows us to call the method we want and allow the compiler to make the decisions for us. This way of thinking about programming takes some practice. -Our full Fraction class to this point would look like the following. You -may want to try to compile and run the short test program provided just -to see what happens. +Our full ``Fraction`` class to this point would look like the following. You +should compile and run the program to see what happens. .. activecode:: fraction1 :language: java @@ -326,13 +311,19 @@ to see what happens. this.numerator = num; this.denominator = 1; } + + public Integer getNumerator() { + return numerator; + } + + public Integer getDenominator() { + return denominator; + } public Fraction add(Fraction other) { - Integer newNum, newDen, common; - - newNum = other.getDenominator()*this.numerator + this.denominator*other.getNumerator(); - newDen = this.denominator * other.getDenominator(); - common = gcd(newNum,newDen); + Integer newNum = other.getDenominator()*this.numerator + this.denominator*other.getNumerator(); + Integer newDen = this.denominator * other.getDenominator(); + Integer common = gcd(newNum,newDen); return new Fraction(newNum/common, newDen/common ); } @@ -352,9 +343,7 @@ to see what happens. public static void main(String[] args) { Fraction f1 = new Fraction(1,2); - Fraction f2 = new Fraction(2,3); - System.out.println(f1.mul(f2)); System.out.println(f1.add(1)); } @@ -368,46 +357,37 @@ very satisfying. Chances are your output looked something like this: :: - Fraction@7b11a3ac - Fraction@6c22c95b + Fraction@6ff3c5b5 The reason is that we have not yet provided a friendly string -representation for our Fraction objects. The truth is that, just like in +representation for our ``Fraction`` objects. Just like in Python, whenever an object is printed by the ``println`` method it must be converted to string format. In Python you can control how that looks by writing an ``__str__`` method for your class. If you do not then you -will get the default, which looked something like the above. +will get the default, which looks something like the above. The ``Object`` Class ~~~~~~~~~~~~~~~~~~~~ In Java, the equivalent of ``__str__`` is the ``toString`` method. Every object in Java already has a ``toString`` method defined for it because -every class in Java automatically inherits from the Object class. The -object class provides default implementations for the following -functions. - -- clone - -- equals - -- finalize - -- getClass - -- hashCode - -- notify - -- notifyAll - -- toString - -- wait - -We are not interested in most of the functions on that list, and many +every class in Java automatically inherits from the ``Object`` class. The +``Object`` class provides default implementations for the following +methods. + +- ``clone`` +- ``equals`` +- ``finalize`` +- ``getClass`` +- ``hashCode`` +- ``notify`` +- ``notifyAll`` +- ``toString`` +- ``wait`` + +We are not interested in most of the methods on that list, and many Java programmers live happy and productive lives without knowing much -about most of the functions on that list. However, to make our output +about most of the methods on that list. However, to make our output nicer we will implement the ``toString`` method for the ``Fraction`` class. A simple version of the method is provided below. @@ -418,15 +398,11 @@ class. A simple version of the method is provided below. } The other important class for us to implement from the list of methods -inherited from Object is the ``equals`` method. When two objects are -compared in Java using the == operator they are tested to see if they -are exactly the same object, that is do the two objects occupy the same -exact space in the computers memory. This is the default behavior of the -``equals`` method provided by Object. The ``equals`` method allows us to +inherited from ``Object`` is the ``equals`` method. In Java, when two objects are compared using the ``==`` operator they are tested to see if they are exactly the same object (that is, do the two objects occupy the same +exact space in the computer's memory?). This is also the default behavior of the ``equals`` method provided by ``Object``. The ``equals`` method allows us to decide if two objects are equal by looking at their instance variables. However it is important to remember that since Java does not have -operator overloading if you want to use your equals method you must call -it directly. Therefore once you write your own ``equals`` method: +operator overloading **if you want to use your** ``equals`` **method you must call it directly**. Therefore once you write your own ``equals`` method: :: @@ -438,7 +414,7 @@ is NOT the same as object1.equals(object2) -Here is an equals method for the Fraction class: +Here is an ``equals`` method for the ``Fraction`` class: :: @@ -452,25 +428,25 @@ Here is an equals method for the Fraction class: } One important thing to remember about ``equals`` is that it only checks -to see if two objects are equal it does not have any notion of less than +to see if two objects are equal -- it does not have any notion of less than or greater than. We’ll see more about that shortly. Abstract Classes and Methods ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -If we want to make our Fraction class behave like Integer, Double, and -the other numeric classes in Java We need to make a couple of additional +If we want to make our ``Fraction`` class behave like ``Integer``, ``Double``, and +the other numeric classes in Java then we need to make a couple of additional modifications to the class. The first thing we will do is plug -``Fraction`` into the Java class hierarchy at the same place as Integer -and its siblings. If you look at the documentation for Integer you will -see that Integer’s parent class is ``Number``. Number is an **abstract +``Fraction`` into the Java class hierarchy at the same place as ``Integer`` +and its siblings. If you look at the documentation for ``Integer`` you will +see that ``Integer``’s parent class is ``Number``. Number is an **abstract class** that specifies several methods that all of its children must implement. In Java an abstract class is more than just a placeholder for -common functions. In Java an abstract class has the power to specify -certain functions that all of its children **must** implement. You can +common methods. In Java an abstract class has the power to specify +certain methods that all of its children **must** implement. You can trace this power back to the strong typing nature of Java. -The that makes the Fraction class a child of Number is as follows: +Here is code that makes the ``Fraction`` class a child of ``Number``: :: @@ -478,24 +454,20 @@ The that makes the Fraction class a child of Number is as follows: ... } -The keyword extends tells the compiler that the class ``Fraction`` +The keyword ``extends`` tells the compiler that the class ``Fraction`` extends, or adds new functionality to the ``Number`` class. A child class always extends its parent. The methods we must implement if ``Fraction`` is going to be a child of ``Number`` are: -- longValue - -- intValue - -- floatValue - -- doubleValue +- ``longValue`` +- ``intValue`` +- ``floatValue`` +- ``doubleValue`` -This really isn’t much work for us to implement these functions as all -we have to do is some conversion of our own and some division. The -implementation of these methods is as follows: +This really isn’t much work for us to implement these methods, as all +we have to do is some type conversion and some division: :: @@ -519,25 +491,25 @@ implementation of these methods is as follows: } By having the ``Fraction`` class extend the ``Number`` class we can now -pass a ``Fraction`` to any Java function that specifies it can receive a +pass a ``Fraction`` to any Java method that specifies it can receive a ``Number`` as one of its parameters. For example many Java user interface methods accept any object that is a subclass of ``Number`` as -a parameter. In Java the class hierarchy and the IS-A relationships are +a parameter. In Java the class hierarchy and the "is-a" relationships are very important. Whereas in Python you can pass any kind of object as a -parameter to any function the strong typing of Java makes sure that you +parameter to any method or function, the strong typing of Java makes sure that you only pass an object as a parameter that is of the type specified in the -function call or one of its children. So, in this case when you see a -parameter of type ``Number`` its important to remember that an +method signature, or one of the children of the type specified. When you see a +parameter of type ``Number`` it's important to remember that an ``Integer`` *is-a* ``Number`` and a ``Double`` *is-a* ``Number`` and a -``Fraction`` *is-a* ``Number``. +``Fraction`` *is-a* ``Number``, because these classes are children of ``Number``. -However, and this is a big however, it is also important to remember -that if you specify ``Number`` as the type on a particular parameter -then the Java compiler will only let you use the methods of a -``Number``. In this case longValue, intValue, floatValue, and -doubleValue. +However, and this is a big however, it is important to remember +that if you specify ``Number`` as the type of a particular parameter +then the Java compiler will **only let you use the methods of a** +``Number``: ``longValue``, ``intValue``, ``floatValue``, and +``doubleValue``. -Lets suppose you define a method in some class as follows: +Suppose you try to define a method as follows: :: @@ -546,76 +518,65 @@ Lets suppose you define a method in some class as follows: } The Java compiler would give an error because ``add`` is not a defined -method of the ``Number`` class. Even if you called the add method and -passed two ``Fractions`` as parameters. +method of the ``Number`` class. You will **still get this error** even if all your code that calls this ``test`` method passes two ``Fractions`` as parameters (remember that ``Fraction`` does implement ``add``). Interfaces ---------- Lets turn our attention to making a list of fractions sortable by the -standard Java sorting method ``Collections.sort``. In Python all we -would need to do is implement the ``__cmp__`` method. But in Java we -cannot be that informal. In Java Things that are sortable must be +standard Java sorting method ``Collections.sort``. In Python, we would just need to implement the ``__cmp__`` method. But in Java we +cannot be that informal. In Java, things that are sortable must be ``Comparable``. Your first thought might be that ``Comparable`` is -Superclass of ``Number``. That would be a good thought but it would not -be correct. Java only supports single inheritance, that is, a class can +superclass of ``Number``, but that is actually not the case. Java only supports single inheritance, that is, a class can have only one parent. Although it would be possible to add an additional -Layer to the class hierarchy it would also complicate things -dramatically. Because Not only are Numbers comparable, but Strings are -also Comparable as would many other types. For example we might have a -``Student`` class and we want to be able to sort Students by their gpa. -But ``Student`` already extends the class ``Person`` for which we have -no natural comparison function. +layer to the class hierarchy it would also complicate things +dramatically, because not only are ``Numbers`` comparable, but ``Strings`` are +also ``Comparable`` as would many other types. For example, we might have a +``Student`` class and we want to be able to sort students by their GPA. +But ``Student`` might already extends the class ``Person`` for which there would be no natural comparison method. Java’s answer to this problem is the ``Interface`` mechanism. Interfaces -are like a combination of Inheritance and contracts all rolled into one. +are like a combination of "inheritance" and "contracts" all rolled into one. An interface is a *specification* that says any object that claims it implements this interface must provide the following methods. It sounds a little bit like an abstract class, however it is outside the inheritance mechanism. You can never create an instance of ``Comparable``. Many objects, however, do implement the ``Comparable`` -interface. What does the Comparable interface specify? +interface. What does the ``Comparable`` interface specify? The ``Comparable`` interface says that any object that claims to be -``Comparable`` must implement the ``compareTo`` method. The following is -the documentation for the ``compareTo`` method as specified by the -Comparable interface. +``Comparable`` must implement the ``compareTo`` method. Here is an excerpt from `the official documentation `_ for the ``compareTo`` method as specified by the ``Comparable`` interface. -:: - - int compareTo(T o) +.. highlight:: text + :linenothreshold: 50 - Compares this object with the specified object for order. Returns a negative integer, zero, or a - positive integer as this object is less than, equal to, or greater than the specified object. The - implementor must ensure sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) for all x and y. (This implies - that x.compareTo(y) must throw an exception iff y.compareTo(x) throws an exception.) +.. code-block:: text - The implementor must also ensure that the relation is transitive: (x.compareTo(y)>0 && - y.compareTo(z)>0) implies x.compareTo(z)>0. - - Finally, the implementor must ensure that x.compareTo(y)==0 implies that sgn(x.compareTo(z)) == - sgn(y.compareTo(z)), for all z. + int compareTo(T o) - It is strongly recommended, but not strictly required that (x.compareTo(y)==0) == (x.equals(y)). - Generally speaking, any class that implements the Comparable interface and violates this condition - should clearly indicate this fact. The recommended language is "Note: this class has a natural - ordering that is inconsistent with equals." + Compares this object with the specified object for order. Returns a + negative integer, zero, or a positive integer as this object is less + than, equal to, or greater than the specified object. The + implementor must ensure sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) for + all x and y. (This implies that x.compareTo(y) must throw an exception + iff y.compareTo(x) throws an exception.) - In the foregoing description, the notation sgn(expression) designates the mathematical signum - function, which is defined to return one of -1, 0, or 1 according to whether the value of - expression is negative, zero or positive. + ... To make our ``Fraction`` class ``Comparable`` we must modify the class declaration line as follows: +.. highlight:: java + :linenothreshold: 5 + :: public class Fraction extends Number implements Comparable { ... } -The specification ``Comparable`` makes it clear that Fraction -is only comparable with another Fraction. The ``compareTo`` method could +The specification ``Comparable`` makes it clear that ``Fraction`` +is only comparable with another ``Fraction``. The ``compareTo`` method could be implemented as follows: :: @@ -650,7 +611,7 @@ this as follows: def main(): for i in range(10): s = Student(i,"Student-"+str(i)) - print('The number of students is: ', Student.numStudents) + print('Number of students:', Student.numStudents) main() @@ -661,42 +622,42 @@ In Java we would write this same example using a static declaration. :sourcefile: Student.java public class Student { - public static Integer numStudents = 0; + public static Integer numStudents = 0; - private int id; - private String name; + private int id; + private String name; - public Student(Integer id, String name) { + public Student(Integer id, String name) { this.id = id; this.name = name; numStudents = numStudents + 1; - } + } - public static void main(String[] args) { + public static void main(String[] args) { for(Integer i = 0; i < 10; i++) { Student s = new Student(i,"Student"+i.toString()); } - System.out.println("The number of students: "+Student.numStudents.toString()); - } + System.out.println("Number of students: "+Student.numStudents.toString()); } + } In this example notice that we create a static member variable by using -the static modifier on the variable declaration. Once a variable has -been declared static in Java it can be access from inside the class +the ``static`` modifier on the variable declaration. Once a variable has +been declared ``static`` in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python. Static Methods -------------- We have already discussed the most common static method of all, -``main``. However in our Fraction class we also implemented a method to +``main``. However in our ``Fraction`` class we also implemented a method to calculate the greatest common divisor for two fractions (``gdc``). There is no reason for this method to be a member method since it takes two ``Integer`` values as its parameters. Therefore we declare the method to -be a static method of the class. Furthermore since we are only going to -use this ``gcd`` method for our own purposes we can make it private. +be a static method of the class. Furthermore, since we are only going to +use this ``gcd`` method for our own purposes we can make it ``private``. :: @@ -713,8 +674,7 @@ use this ``gcd`` method for our own purposes we can make it private. Full Implementation of the Fraction Class ----------------------------------------- -A final version of the Fraction class that exercises all of the features -we have discussed is as follows. +Here is a final version of the ``Fraction`` class in Java, which includes all the features we discussed: .. activecode:: fullfraction :language: java @@ -743,7 +703,7 @@ we have discussed is as follows. Integer newNum = other.getDenominator()*this.numerator + this.denominator*other.getNumerator(); Integer newDen = this.denominator * other.getDenominator(); Integer common = gcd(newNum,newDen); - return new Fraction(newNum/common, newDen/common ); + return new Fraction(newNum/common, newDen/common); } public Fraction add(Integer other) { @@ -816,9 +776,9 @@ we have discussed is as follows. Fraction f2 = new Fraction(2,3); Fraction f3 = new Fraction(1,4); - System.out.println(f1.add(1)); - System.out.println(f1.intValue()); - System.out.println(f1.doubleValue()); + System.out.println("Adding: " + f1.add(1)); + System.out.println("Calling intValue(): " + f1.intValue()); + System.out.println("Calling doubleValue(): " + f1.doubleValue()); ArrayList myFracs = new ArrayList(); myFracs.add(f1); @@ -826,6 +786,7 @@ we have discussed is as follows. myFracs.add(f3); Collections.sort(myFracs); + System.out.println("Sorted fractions:"); for(Fraction f : myFracs) { System.out.println(f); } From 767ea6526a6e87c6bd165f880ed9595bb23e69e5 Mon Sep 17 00:00:00 2001 From: Brad Miller Date: Mon, 27 Dec 2021 14:32:51 +0000 Subject: [PATCH 027/448] add setup --- conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf.py b/conf.py index 9350d82..bfab4ac 100644 --- a/conf.py +++ b/conf.py @@ -9,7 +9,7 @@ # serve to show the default. import sys, os -from runestone import runestone_static_dirs, runestone_extensions +from runestone import runestone_static_dirs, runestone_extensions, setup import pkg_resources # If extensions (or modules to document with autodoc) are in another directory, From 09e0cf759b945f3dbf12a4807c1fe8f1f216244f Mon Sep 17 00:00:00 2001 From: moisedk Date: Tue, 4 Mar 2025 15:18:35 -0500 Subject: [PATCH 028/448] Basic pretext version converted --- Makefile | 255 +++--- pavement.py | 15 + pretext/Figures/somerights20.png | Bin 0 -> 958 bytes pretext/GenFigs/.web_assets.pkl | Bin 0 -> 120 bytes pretext/Java4Python/backmatter.ptx | 36 + pretext/Java4Python/commonmistakes.ptx | 49 ++ pretext/Java4Python/conditionals.ptx | 190 +++++ pretext/Java4Python/definingclasses.ptx | 847 ++++++++++++++++++++ pretext/Java4Python/firstjavaprogram.ptx | 275 +++++++ pretext/Java4Python/introduction.ptx | 55 ++ pretext/Java4Python/javadatatypes.ptx | 895 ++++++++++++++++++++++ pretext/Java4Python/loopsanditeration.ptx | 93 +++ pretext/Java4Python/moredocumentation.ptx | 49 ++ pretext/Java4Python/namingconventions.ptx | 25 + pretext/Java4Python/preface.ptx | 31 + pretext/Java4Python/toctree.ptx | 17 + pretext/Java4Python/whylearnjava.ptx | 59 ++ pretext/bookinfo.ptx | 73 ++ pretext/index.ptx | 31 + pretext/java4py2.ptx | 14 + pretext/publication-rs-academy.xml | 34 + pretext/publication-rs-for-all.xml | 15 + pretext/rs-substitutes.xml | 1 + project.ptx | 64 ++ 24 files changed, 2968 insertions(+), 155 deletions(-) create mode 100644 pretext/Figures/somerights20.png create mode 100644 pretext/GenFigs/.web_assets.pkl create mode 100644 pretext/Java4Python/backmatter.ptx create mode 100644 pretext/Java4Python/commonmistakes.ptx create mode 100644 pretext/Java4Python/conditionals.ptx create mode 100644 pretext/Java4Python/definingclasses.ptx create mode 100644 pretext/Java4Python/firstjavaprogram.ptx create mode 100644 pretext/Java4Python/introduction.ptx create mode 100644 pretext/Java4Python/javadatatypes.ptx create mode 100644 pretext/Java4Python/loopsanditeration.ptx create mode 100644 pretext/Java4Python/moredocumentation.ptx create mode 100644 pretext/Java4Python/namingconventions.ptx create mode 100644 pretext/Java4Python/preface.ptx create mode 100644 pretext/Java4Python/toctree.ptx create mode 100644 pretext/Java4Python/whylearnjava.ptx create mode 100644 pretext/bookinfo.ptx create mode 100644 pretext/index.ptx create mode 100644 pretext/java4py2.ptx create mode 100644 pretext/publication-rs-academy.xml create mode 100644 pretext/publication-rs-for-all.xml create mode 100644 pretext/rs-substitutes.xml create mode 100644 project.ptx diff --git a/Makefile b/Makefile index 6e874c6..34a54a8 100644 --- a/Makefile +++ b/Makefile @@ -1,157 +1,102 @@ -# Makefile for Sphinx documentation +.PHONY: all fixed_source xml fixed_xml ptx post fix_ids post2 post3 build_web clean pristine restore onetime + +# +# .env sets some environment varibles that we don't want to commit # +ifeq ($(origin R2P), undefined) +include .env +endif + +DEBUG_PRETEXT := # -v DEBUG + +# The root of everything +sources := $(shell find _sources -type f) + +# After we fix them with the fix'em scripts +fixed_sources := $(patsubst _sources/%,_fixed_sources/%,$(sources)) + +# Then we generate XML for each rst file except for common.rst +xml := $(patsubst _fixed_sources/%.rst,build/xml/%.xml,$(filter-out _fixed_sources/common.rst,$(fixed_sources))) + +# And then each xml file is eventually turned into ptx +ptx := $(patsubst build/xml/%.xml,pretext/%.ptx,$(xml)) + +# This will run from a virtual env. +rs2ptx := python -m runestone rs2ptx --sourcedir _fixed_sources + +all: fixed_source fixed_xml + # $(MAKE) fixed_ptx build_$(TARGET) + +fixed_source: $(fixed_sources) + +_fixed_sources/%: _sources/% | _fixed_sources + mkdir -p $(dir $@) + ./fix-raw-html-links.pl --debug $< > $@ + ./fix-source.pl $@ + +_fixed_sources: + mkdir $@ + +xml: + $(rs2ptx) + # rm build/xml/common.xml + +fixed_xml: xml + find build/xml -name '*.xml' -exec ./fix-xml.pl {} \; + ./fixIds.py build/xml ".xml" + +fixed_ptx: post + find pretext -name '*.ptx' -exec ./fix-ptx.pl {} \; + find pretext -name '*.ptx' -exec ./fix-tests.pl {} \; + find pretext -name '*.ptx' -exec ./fix-data-stdin.pl {} \; + if [ -d hand-fixes ]; then rsync -r hand-fixes/ pretext/; fi + +# This works better than the script that does them all +pretext/%.ptx: XMLFILE = $(patsubst _fixed_sources/%.rst,build/xml/%.xml,$<) +pretext/%.ptx: _fixed_sources/%.rst | build/xml/%.xml pretext + mkdir -p $(dir $@) + xsltproc --novalid $(R2P)/docutils2ptx.xsl $(XMLFILE) > $(XMLFILE).pass1 + xsltproc --novalid post-1.xsl $(XMLFILE).pass1 > $(XMLFILE).pass2 + xsltproc --novalid post-2.xsl $(XMLFILE).pass2 > $(XMLFILE).pass3 + xsltproc --novalid post-3.xsl $(XMLFILE).pass3 > $@ + +pretext/rs-substitutes.xml: rs-substitutes.xml | pretext + cp $< $@ + +pretext: + mkdir $@ + +ptx: $(ptx) pretext/rs-substitutes.xml + +# need to do pretext init in here to generate project.ptx +# need to manually edit project.ptx and create publication-rs-for-all.xml +# as described in https://github.com/bnmnetp/Runestone2PreTeXt/blob/main/README.md +post: ptx + ./fixIds.py pretext .ptx + python $(R2P)/fix_xrefs.py + python $(R2P)/reformatPtx.py + python $(R2P)/index2main.py + python $(R2P)/toctree2xml.py . _fixed_sources + python $(R2P)/filltoc.py pretext _fixed_sources + python $(R2P)/copy_figs.py ./_fixed_sources ./pretext/assets + +restore: + git restore pretext + git restore _sources/ + git restore rs-substitutes.xml + git clean -fdx pretext + +onetime: + python $(R2P)/index2main.py + +build_web: + pretext $(DEBUG_PRETEXT) build web + +build_runestone: + pretext $(DEBUG_PRETEXT) build runestone + +clean: restore + rm -rf build/xml -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -all: html - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - - - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/JavaforPythonProgrammers.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/JavaforPythonProgrammers.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/JavaforPythonProgrammers" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/JavaforPythonProgrammers" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." +pristine: clean + rm -rf _fixed_sources \ No newline at end of file diff --git a/pavement.py b/pavement.py index 120e38f..07d8ff4 100644 --- a/pavement.py +++ b/pavement.py @@ -65,7 +65,22 @@ ) ) +template_args = { + 'course_id':project_name, + 'login_required':'false', + 'appname':master_app, + 'loglevel':10, + 'course_url':master_url, + 'dynamic_pages': dynamic_pages, + 'use_services': 'true', + 'python3': 'true', + 'dburl': 'postgresql://bmiller@localhost/runestone', + 'basecourse': 'java4python', + 'downloads_enabled': 'false', + 'enable_chatcodes': 'false', + 'allow_pairs': 'false' +} if project_name == "": print("Please edit pavement.py and give your project a name") exit() diff --git a/pretext/Figures/somerights20.png b/pretext/Figures/somerights20.png new file mode 100644 index 0000000000000000000000000000000000000000..a66f4d1a010e16aacf1a8538fd0e624a5c0d2586 GIT binary patch literal 958 zcmV;v13~g(}02g#pPE-H?|NsC0|NsC0|NsC0|NsC0|NsC00OmmE zUH||B+(|@1RCwC7mg|*X@f!!V?^D@c`2xR=E3 zGPlAObS8I&JR3Q2cXAEBzZGm;&_-`xNPf&{BX5#7@cljbk-0+>d@X{_2cUo@VF8yc<~PWWbx_*z?13} z*XA&&T>b*Qdc0X&6q{gPl`Y1@%-X(&l+Oqg(Hg$G33pAQaqn4KKFQ3YPNKP_Az^0(rv7>;@paPO}BAR zH|N!FU_39b6!jt9hF=xGue^z{VYxg+sdrUPZ%)kLm-J@x;(Da94=v*?lF8Ml&^MKL zKknY))O1YgW+20vc7JJWX{h(2hW-XyGA|nve8?g!2iH$9uA`UUX4h$?Ycq~&}>b-&O0!mDD zs55j}gL!H*4Gb;lRLja7xi-GZQCkTx?i}1^3EVQy+zl)VjI)?lu+2;u&fu~#N4Vh? zED5Y;K?Vo=S~Ed5EAXuV$C$wQN=jBV$%?YFe7(d+lcFn_go4XpcIhE2#$}Pfakqjb zGzNx2Nn2T&BO0AQD3-i61{Q<7SW$Uwzm*kbWsYc*iMwJL;CvGsAEjMnvm%2-tQ3cI zl@>5;v2nJ-z_;X8q%|vWm7!ccjsYg`37f_Cj|pN-OvH$JK^T8&rlw~y?`* gT;BX$f&3F-0A)C#*)>-;h5!Hn07*qoM6N<$f;NiBjQ{`u literal 0 HcmV?d00001 diff --git a/pretext/GenFigs/.web_assets.pkl b/pretext/GenFigs/.web_assets.pkl new file mode 100644 index 0000000000000000000000000000000000000000..d2f5448116ef330f29bba4eaf9f0f58e618cc96a GIT binary patch literal 120 zcmZo*nVQQ00ku8k3pdvPAy Vv>(U$MT7h{=j|#vGNrUw4**onFAM+x literal 0 HcmV?d00001 diff --git a/pretext/Java4Python/backmatter.ptx b/pretext/Java4Python/backmatter.ptx new file mode 100644 index 0000000..95e3d3b --- /dev/null +++ b/pretext/Java4Python/backmatter.ptx @@ -0,0 +1,36 @@ + + +
    + Colophon + +

    I started writing this article in 2006 using Python’s restructured text. + In 2007 I switched to markdown since everything else I was writing used + markdown. In particular I switched to the variant of markdown used by + the excellent pandoc program. + Pandoc does an excellent job of converting markdown to html, latex, pdf, + and other formats. The markdown source for this article is available + here. Finally + the document became so big that I used pandoc to convert it to latex + for preparing the final version. I used The htlatex program to + generate html for the online version of this document.

    +
    + + Shameless Plug +

    If you got this far, I would also like to use this space as a shameless + plug for two books. At Luther college we use Python for CS1 and CS2. + When we decided to make the switch to introducing CS with Python we + wanted to provide our students with two semesters of Python. The reason + is that after one semester students are just getting comfortable with + the language and it does not make sense to push them into a brand new + language just as they are getting some comfort. The second reason is + that Python really is a great language for teaching data structures. The + language makes the algorithms evident by clearing away all of the + syntactic clutter. So we (David Ranum and I) wrote a CS2 book called + Problem Solving with Algorithms and Data Structures using + Python. + After we finished the CS2 book we decided to write our own CS1 book as + well. This book will be available for Fall 2008 classes from Jones and + Bartlett publishers. The tentative title is Python in Context. Please + feel free to contact me for more information.

    +
    +
    diff --git a/pretext/Java4Python/commonmistakes.ptx b/pretext/Java4Python/commonmistakes.ptx new file mode 100644 index 0000000..cd39464 --- /dev/null +++ b/pretext/Java4Python/commonmistakes.ptx @@ -0,0 +1,49 @@ + + +
    + Common Mistakes + + + + + Forgetting to declare your variables +
    Histo.java:21: cannot find symbol
    +symbol  : variable count
    +location: class Histo
    +    count = new ArrayList<Integer>(10);
    +    ^
    +
    + + Not importing a class +
    Histo.java:9: cannot find symbol
    +symbol  : class Scanner
    +location: class Histo
    +    Scanner data = null;
    +    ^
    +
    + + Forgetting to use the new keyword to create an object +

    Here’s an example of the error message that occurs when you forget to + use the new keyword. Notice that the message is pretty unhelpful. + Java thinks you are trying to call the Method Scanner, but + there are two problems. First Scanner is not really a method it + is a constructor.:

    +
    Histo.java:14: cannot find symbol
    +symbol  : method Scanner(java.io.File)
    +location: class Histo
    +    data = Scanner(new File("test.dat"));
    +           ^
    +
    + + Forgetting a Semicolon +
    Histo.java:19:
    +';' expected
    +    System.exit(0);
    +    ^
    +
    + + Forgetting to declare the kind of object in a container +
    Note: Histo.java uses unchecked or unsafe operations. Note:
    +Recompile with -Xlint:unchecked for details.
    +
    +
    diff --git a/pretext/Java4Python/conditionals.ptx b/pretext/Java4Python/conditionals.ptx new file mode 100644 index 0000000..049b285 --- /dev/null +++ b/pretext/Java4Python/conditionals.ptx @@ -0,0 +1,190 @@ + + +
    + Conditionals + +

    Conditional statements in Python and Java are very similar. In Python we + have three patterns:

    +
    + + Simple if +
    if condition:
    +    statement1
    +    statement2
    +    ...
    +

    In Java this same pattern is simply written as:

    +
    if (condition) {
    +    statement1
    +    statement2
    +    ...
    +}
    +

    Once again you can see that in Java the curly braces define a block + rather than indentation. In Java the parenthesis around the condition + are required because if is technically a function that evaluates to True + or False.

    +
    + + if else +
    if condition:
    +    statement1
    +    statement2
    +    ...
    +else:
    +    statement1
    +    statement2
    +    ...
    +

    In Java this is written as:

    +
    if (condition) {
    +    statement1
    +    statement2
    +    ...
    +} else {
    +    statement1
    +    statement2
    +    ...
    +}
    +
    + + elif +

    Java does not have an elif pattern like Python. In Java you can get the + functionality of an elif statement by nesting if and else. Here is a + simple example in both Python and Java.

    + + +grade = int(input('enter a grade')) +if grade < 60: + print('F') +elif grade < 70: + print('D') +elif grade < 80: + print('C') +elif grade < 90: + print('B') +else: + print('A') + + + + + + +

    In Java we have a couple of ways to write this

    + + +public class ElseIf { + public static void main(String args[]) { + int grade = 85; + + if (grade < 60) { + System.out.println('F'); + } else { + if (grade < 70) { + System.out.println('F'); + } else { + if (grade < 80) { + System.out.println('F'); + } else { + if (grade < 90) { + System.out.println('F'); + } else { + System.out.println('F'); + } + } + } + } + } + } + + + + + + +

    We can get even closer to the elif statement by taking advantage of the + Java rule that a single statement does not need to be enclosed in curly + braces. Since the if is the only statement used in each else we can get + away with the following.

    + + +public class ElseIf { + public static void main(String args[]) { + int grade = 85; + if (grade < 60) { + System.out.println('F'); + } else if (grade < 70) { + System.out.println('D'); + } else if (grade < 80) { + System.out.println('C'); + } else if (grade < 90) { + System.out.println('B'); + } else System.out.println('A'); + } +} + + + + + + +
    + + switch +

    Java also supports a switch statement that acts something like the + elif statement of Python under certain conditions. To write the grade + program using a switch statement we would use the following:

    + + +public class SwitchUp { + public static void main(String args[]) { + int grade = 85; + + int tempgrade = grade / 10; + switch(tempgrade) { + case 10: + case 9: + System.out.println('A'); + break; + case 8: + System.out.println('B'); + break; + case 7: + System.out.println('C'); + break; + case 6: + System.out.println('A'); + break; + default: + System.out.println('F'); + } + } + } + + + + + + +

    The switch statement is not used very often, and I recommend you do + not use it! First, it is not as powerful as the else if model + because the switch variable can only be compared for equality with an + integer or enumerated constant. Second it is very easy to forget to put + in the break statement. If the break statement is left out then then + the next alternative will be automatically executed. For example if the + grade was 95 and the break was omitted from the case 9: + alternative then the program would print(out both A and B.)

    +
    + + Boolean Operators +

    The conditionals used in the if statement can be boolean variables, + simple comparisons, and compound boolean expressions.

    +

    Java also supports the boolean expression. + condition ? trueValue : falseValue This expression can be used to + test a condition as part of an assignment statement. For example + a = a % 2 == 0 ? a*a : 3*x -1 In the previous assignment statement + the expression a%2 ==0 is first checked. If it is true then a is + assigned the value a * a if it is false then a is assigned the value + of 3*x-1. Of course all of this could have been accomplished using a + regular if else statement, but sometimes the convenience of a single + statement is too much to resist.

    +
    +
    diff --git a/pretext/Java4Python/definingclasses.ptx b/pretext/Java4Python/definingclasses.ptx new file mode 100644 index 0000000..31eed84 --- /dev/null +++ b/pretext/Java4Python/definingclasses.ptx @@ -0,0 +1,847 @@ + + +
    + Defining Classes in Java + +

    You have already seen how to define classes in Java. It’s unavoidable for + even the simplest of programs. In this section we will look at how we + define classes to create our own data types. Lets start by creating a + fraction class to extend the set of numeric data types provided by our + language. The requirements for this new data type are as follows:

    +

    +

      +
    • +

      Given a numerator and a denominator create a new Fraction.

      +
    • +
    • +

      When a fraction is printed it should be simplified.

      +
    • +
    • +

      Two fractions can be added or subtracted

      +
    • +
    • +

      Two fractions can be multiplied or divided

      +
    • +
    • +

      Two fractions can be compared

      +
    • +
    • +

      A fraction and an integer can be added together.

      +
    • +
    • +

      Given a list of Fractions that list should be sortable by the default + sorting function.

      +
    • +
    +

    +

    Here is a mostly complete implementation of a Fraction class in Python + that we will refer to throughout this section:

    + + +class Fraction: + def __init__(self, num, den): + """ + :param num: The top of the fraction + :param den: The bottom of the fraction + """ + self.num = num + self.den = den + + def __repr__(self): + if self.num > self.den: + retWhole = int(self.num / self.den) + retNum = self.num - (retWhole * self.den) + return str(retWhole) + " " + str(retNum) + "/" + str(self.den) + else: + return str(self.num) + "/" + str(self.den) + + def show(self): + print(self.num, "/", self.den) + + def __add__(self, other): + # convert to a fraction + other = self.toFract(other) + newnum = self.num * other.den + self.den * other.num + newden = self.den * other.den + common = gcd(newnum, newden) + return Fraction(int(newnum / common), int(newden / common)) + + __radd__ = __add__ + + def __lt__(self, other): + num1 = self.num * other.den + num2 = self.den * other.num + return num1 < num2 + + def toFract(self, n): + if isinstance(n, int): + other = Fraction(n, 1) + elif isinstance(n, float): + wholePart = int(n) + fracPart = n - wholePart + # convert to 100ths??? + fracNum = int(fracPart * 100) + newNum = wholePart * 100 + fracNum + other = Fraction(newNum, 100) + elif isinstance(n, Fraction): + other = n + else: + print("Error: cannot add a fraction to a ", type(n)) + return None + return other + + +def gcd(m, n): + """ + A helper function for Fraction + """ + while m % n != 0: + oldm = m + oldn = n + m = oldn + n = oldm % oldn + return n + +print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) + + + + + + +

    The instance variables (data members) we will need for our fraction + class are the numerator and denominator. Of course in Python we can add + instance variables to a class at any time by simply assigning a value to + objectReference.variableName, whereas in Java all data members must be + declared up front.

    +

    The declarations of instance variables can come at the beginning of the + class definition or the end. Cay Horstman, author of the “Core Java” + books puts the declarations at the end of the class. I like them at the + very beginning so you see the variables that are declared before you + begin looking at the code that uses them. With that in mind the first + part of the Fraction class definition is as follows:

    + + +public class Fraction { + private Integer numerator; + private Integer denominator; +} + + +

    Notice that we have declared the numerator and denominator to be + private. This means that the compiler will generate an error if another + method tries to write code like the following:

    + + +Fraction f = new Fraction(1,2); +Integer y = f.numerator * 10; + + +

    Direct access to instance variables is not allowed. Therefore if we + legitimately want to be able to access information such as the numerator + or denominator for a particular fraction we must have getter methods. + It is very common programming practice to provide getter and setter + methods for instance variables in Java.

    + + +public Integer getNumerator() { + return numerator; +} + +public void setNumerator(Integer numerator) { + this.numerator = numerator; +} + +public Integer getDenominator() { + return denominator; +} + +public void setDenominator(Integer denominator) { + this.denominator = denominator; +} + + +
    + + Writing a constructor +

    Once you have identified the instance variables for your class the next + thing to consider is the constructor. In Java, constructors have the + same name as the class and are declared public. They are declared + without a return type. So any method that is named the same as the + class and has no return type is a constructor. Our constructor will take + two parameters: the numerator and the denominator.

    + + +public Fraction(Integer top, Integer bottom) { + num = top; + den = bottom; +} + + +

    There are a couple of important things to notice here. First, you will + notice that the constructor does not have a self parameter. You will + also notice that we can simply refer to the instance variables by name + without the self prefix, because they have already been declared. This + allows the Java compiler to do the work of dereferencing the current + Java object. Java does provide a special variable called this that + works like the self variable. In Java, this is typically only used + when it is needed to differentiate between a parameter or local variable + and an instance variable. For example this alternate definition of the + the Fraction constructor uses this to differentiate between + parameters and instance variables.

    + + +public Fraction(Integer num, Integer den) { + this.num = num; + this.den = den; +} + + +
    + + Methods +

    Now we come to one of the major differences between Java and Python. The + Python class definition used the special methods for addition and + comparison that have the effect of redefining how the standard operators + behave: in Python, __add__ and __lt__ change the behavior of + and <, respectively. In Java there is no operator overloading. So we will have to write the method for addition a little differently.

    +

    A point of terminology: Python has both “functions” (def outside a class) and “methods” (def inside a class). Since Java requires all code to be inside classes, it only has “methods.” Those from a C++ background might refer to methods as “member functions.”

    +

    Let’s begin by implementing addition in Java:

    + + +public Fraction add(Fraction otherFrac) { + Integer newNum = otherFrac.getDenominator() * this.numerator + + this.denominator * otherFrac.getNumerator(); + Integer newDen = this.denominator * otherFrac.getDenominator(); + Integer common = gcd(newNum, newDen); + return new Fraction(newNum/common, newDen/common); +} + + +

    First you will notice that the add method is declared as + public Fraction The public part means that any other method may + call the add method. The Fraction part means that add will + return a fraction as its result.

    +

    Second, you will notice that the method makes use of the this variable. In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. So this version of the code is equivalent:

    + + +public Fraction add(Fraction otherFrac) { + Integer newNum = otherFrac.getDenominator() * numerator + + denominator * otherFrac.getNumerator(); + Integer newDen = denominator * otherFrac.getDenominator(); + Integer common = gcd(newNum, newDen); + return new Fraction(newNum/common, newDen/common); +} + + +

    The addition takes place by multiplying each numerator by the opposite + denominator before adding. This procedure ensures that we are adding two + fractions with common denominators. Using this approach the denominator + is computed by multiplying the two denominators. The greatest common + divisor method, gcd, is used to find a common divisor to simplify the + numerator and denominator in the result.

    +

    Finally on line 6 a new Fraction is returned as the result of the + computation. The value that is returned by the return statement must + match the value that is specified as part of the declaration. So, in + this case the return value on line 8 must match the declared value on + line 1.

    + + Method Signatures and Overloading +

    Our specification for this project said that we need to be able to add a + Fraction to an Integer. In Python we can do this by checking the + type of the parameter using the isinstance function at runtime. + Recall that isinstance(1,int) returns True to indicate that 1 is + indeed an instance of the int class. See the __add__ and toFract methods in the Python version of the Fraction class to see how our Python + implementation fulfills this requirement.

    +

    In Java we can do runtime type checking, but the compiler will not allow + us to pass an Integer to the add method since the parameter has been + declared to be a Fraction. The way that we solve this problem is by + writing another add method with a different set of parameters. In + Java this practice is legal and common we call this practice + method overloading.

    +

    This idea of method overloading raises a very important difference between + Python and Java. In Python a method is known by its name only. In Java a + method is known by its signature. The signature of a method includes its + name, and the types of all of its parameters. The name and the types of + the parameters are enough information for the Java compiler to decide + which method to call at runtime.

    +

    To solve the problem of adding an Integer and a Fraction in Java + we will overload both the constructor and the add method. We will + overload the constructor so that if it only receives a single + Integer it will convert the Integer into a Fraction. We will + also overload the add method so that if it receives an Integer as a + parameter it will first construct a Fraction from that integer and then + add the two Fractions together. The new methods that accomplish this + task are as follows:

    + + +public Fraction(Integer num) { + this.numerator = num; + this.denominator = 1; +} + +public Fraction add(Integer other) { + return add(new Fraction(other)); +} + + +

    Notice that the overloading approach can provide us with a certain + elegance to our code. Rather than utilizing if statements to check the + types of parameters we just overload methods ahead of time which + allows us to call the method we want and allow the compiler to make the + decisions for us. This way of thinking about programming takes some + practice.

    +

    Our full Fraction class to this point would look like the following. You + should compile and run the program to see what happens.

    + + +public class Fraction { + + private Integer numerator; + private Integer denominator; + + public Fraction(Integer num, Integer den) { + this.numerator = num; + this.denominator = den; + } + + public Fraction(Integer num) { + this.numerator = num; + this.denominator = 1; + } + + public Integer getNumerator() { + return numerator; + } + + public Integer getDenominator() { + return denominator; + } + + public Fraction add(Fraction other) { + Integer newNum = other.getDenominator()*this.numerator + this.denominator*other.getNumerator(); + Integer newDen = this.denominator * other.getDenominator(); + Integer common = gcd(newNum,newDen); + return new Fraction(newNum/common, newDen/common ); + } + + public Fraction add(Integer other) { + return add(new Fraction(other)); + } + + private static Integer gcd(Integer m, Integer n) { + while (m % n != 0) { + Integer oldm = m; + Integer oldn = n; + m = oldn; + n = oldm%oldn; + } + return n; + } + + public static void main(String[] args) { + Fraction f1 = new Fraction(1,2); + + System.out.println(f1.add(1)); + } + +} + + + + + + +
    +
    + + Inheritance +

    If you ran the program above you probably noticed that the output is not + very satisfying. Chances are your output looked something like this:

    + + +Fraction@6ff3c5b5 + + +

    The reason is that we have not yet provided a friendly string + representation for our Fraction objects. Just like in + Python, whenever an object is printed by the println method it must + be converted to string format. In Python you can control how that looks + by writing an __str__ method for your class. If you do not then you + will get the default, which looks something like the above.

    + + The <c>Object</c> Class +

    In Java, the equivalent of __str__ is the toString method. Every + object in Java already has a toString method defined for it because + every class in Java automatically inherits from the Object class. The + Object class provides default implementations for the following + methods.

    +

    +

      +
    • +

      + clone +

      +
    • +
    • +

      + equals +

      +
    • +
    • +

      + finalize +

      +
    • +
    • +

      + getClass +

      +
    • +
    • +

      + hashCode +

      +
    • +
    • +

      + notify +

      +
    • +
    • +

      + notifyAll +

      +
    • +
    • +

      + toString +

      +
    • +
    • +

      + wait +

      +
    • +
    +

    +

    We are not interested in most of the methods on that list, and many + Java programmers live happy and productive lives without knowing much + about most of the methods on that list. However, to make our output + nicer we will implement the toString method for the Fraction + class. A simple version of the method is provided below.

    + + +public String toString() { + return numerator.toString() + "/" + denominator.toString(); +} + + +

    The other important class for us to implement from the list of methods + inherited from Object is the equals method. In Java, when two objects are compared using the == operator they are tested to see if they are exactly the same object (that is, do the two objects occupy the same + exact space in the computer’s memory?). This is also the default behavior of the equals method provided by Object. The equals method allows us to + decide if two objects are equal by looking at their instance variables. + However it is important to remember that since Java does not have + operator overloading if you want to use your equals method you must call it directly. Therefore once you write your own equals method:

    + + +object1 == object2 + + +

    is NOT the same as

    + + +object1.equals(object2) + + +

    Here is an equals method for the Fraction class:

    + + +public boolean equals(Fraction other) { + Integer num1 = this.numerator * other.getDenominator(); + Integer num2 = this.denominator * other.getNumerator(); + if (num1 == num2) + return true; + else + return false; +} + + +

    One important thing to remember about equals is that it only checks + to see if two objects are equal – it does not have any notion of less than + or greater than. We’ll see more about that shortly.

    +
    + + Abstract Classes and Methods +

    If we want to make our Fraction class behave like Integer, Double, and + the other numeric classes in Java then we need to make a couple of additional + modifications to the class. The first thing we will do is plug + Fraction into the Java class hierarchy at the same place as Integer + and its siblings. If you look at the documentation for Integer you will + see that Integer’s parent class is Number. Number is an abstract + class that specifies several methods that all of its children must + implement. In Java an abstract class is more than just a placeholder for + common methods. In Java an abstract class has the power to specify + certain methods that all of its children must implement. You can + trace this power back to the strong typing nature of Java.

    +

    Here is code that makes the Fraction class a child of Number:

    + + +public class Fraction extends Number { + ... +} + + +

    The keyword extends tells the compiler that the class Fraction + extends, or adds new functionality to the Number class. A child + class always extends its parent.

    +

    The methods we must implement if Fraction is going to be a child of + Number are:

    +

    +

      +
    • +

      + longValue +

      +
    • +
    • +

      + intValue +

      +
    • +
    • +

      + floatValue +

      +
    • +
    • +

      + doubleValue +

      +
    • +
    +

    +

    This really isn’t much work for us to implement these methods, as all + we have to do is some type conversion and some division:

    + + +public double doubleValue() { + return numerator.doubleValue() / denominator.doubleValue(); +} + + +public float floatValue() { + return numerator.floatValue() / denominator.floatValue(); +} + + +public int intValue() { + return numerator.intValue() / denominator.intValue(); +} + + +public long longValue() { + return numerator.longValue() / denominator.longValue(); +} + + +

    By having the Fraction class extend the Number class we can now + pass a Fraction to any Java method that specifies it can receive a + Number as one of its parameters. For example many Java user + interface methods accept any object that is a subclass of Number as + a parameter. In Java the class hierarchy and the “is-a” relationships are + very important. Whereas in Python you can pass any kind of object as a + parameter to any method or function, the strong typing of Java makes sure that you + only pass an object as a parameter that is of the type specified in the + method signature, or one of the children of the type specified. When you see a + parameter of type Number it’s important to remember that an + Integer is-a Number and a Double is-a Number and a + Fraction is-a Number, because these classes are children of Number.

    +

    However, and this is a big however, it is important to remember + that if you specify Number as the type of a particular parameter + then the Java compiler will only let you use the methods of a + Number: longValue, intValue, floatValue, and + doubleValue.

    +

    Suppose you try to define a method as follows:

    + + +public void test(Number a, Number b) { + a.add(b); +} + + +

    The Java compiler would give an error because add is not a defined + method of the Number class. You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add).

    +
    +
    + + Interfaces +

    Lets turn our attention to making a list of fractions sortable by the + standard Java sorting method Collections.sort. In Python, we would just need to implement the __cmp__ method. But in Java we + cannot be that informal. In Java, things that are sortable must be + Comparable. Your first thought might be that Comparable is + superclass of Number, but that is actually not the case. Java only supports single inheritance, that is, a class can + have only one parent. Although it would be possible to add an additional + layer to the class hierarchy it would also complicate things + dramatically, because not only are Numbers comparable, but Strings are + also Comparable as would many other types. For example, we might have a + Student class and we want to be able to sort students by their GPA. + But Student might already extends the class Person for which there would be no natural comparison method.

    +

    Java’s answer to this problem is the Interface mechanism. Interfaces + are like a combination of “inheritance” and “contracts” all rolled into one. + An interface is a specification that says any object that claims it + implements this interface must provide the following methods. It sounds + a little bit like an abstract class, however it is outside the + inheritance mechanism. You can never create an instance of + Comparable. Many objects, however, do implement the Comparable + interface. What does the Comparable interface specify?

    +

    The Comparable interface says that any object that claims to be + Comparable must implement the compareTo method. Here is an excerpt from the official documentation for the compareTo method as specified by the Comparable interface.

    + + +int compareTo(T o) + +Compares this object with the specified object for order. Returns a +negative integer, zero, or a positive integer as this object is less +than, equal to, or greater than the specified object. The +implementor must ensure sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) for +all x and y. (This implies that x.compareTo(y) must throw an exception +iff y.compareTo(x) throws an exception.) + +... + + +

    To make our Fraction class Comparable we must modify the class + declaration line as follows:

    + + +public class Fraction extends Number implements Comparable<Fraction> { + ... +} + + +

    The specification Comparable<Fraction> makes it clear that Fraction + is only comparable with another Fraction. The compareTo method could + be implemented as follows:

    + + +public int compareTo(Fraction other) { + Integer num1 = this.numerator * other.getDenominator(); + Integer num2 = this.denominator * other.getNumerator(); + return num1 - num2; +} + + +
    + + Static member variables +

    Suppose that you wanted to write a Student class so that the class could + keep track of the number of students it had created. Although you could + do this with a global counter variable that is an ugly solution. The + right way to do it is to use a static variable. In Python we could do + this as follows:

    + + +class Student: + numStudents = 0 + + def __init__(self, id, name): + self.id = id + self.name = name + + Student.numStudents = Student.numStudents + 1 + +def main(): + for i in range(10): + s = Student(i,"Student-"+str(i)) + print('Number of students:', Student.numStudents) + +main() + + + + + + +

    In Java we would write this same example using a static declaration.

    + + +public class Student { + public static Integer numStudents = 0; + + private int id; + private String name; + + public Student(Integer id, String name) { + this.id = id; + this.name = name; + + numStudents = numStudents + 1; + } + + public static void main(String[] args) { + for(Integer i = 0; i < 10; i++) { + Student s = new Student(i,"Student"+i.toString()); + } + System.out.println("Number of students: "+Student.numStudents.toString()); + } +} + + + + + + +

    In this example notice that we create a static member variable by using + the static modifier on the variable declaration. Once a variable has + been declared static in Java it can be accessed from inside the class + without prefixing the name of the class as we had to do in Python.

    +
    + + Static Methods +

    We have already discussed the most common static method of all, + main. However in our Fraction class we also implemented a method to + calculate the greatest common divisor for two fractions (gdc). There + is no reason for this method to be a member method since it takes two + Integer values as its parameters. Therefore we declare the method to + be a static method of the class. Furthermore, since we are only going to + use this gcd method for our own purposes we can make it private.

    + + +private static Integer gcd(Integer m, Integer n) { + while (m % n != 0) { + Integer oldm = m; + Integer oldn = n; + m = oldn; + n = oldm%oldn; + } + return n; +} + + +
    + + Full Implementation of the Fraction Class +

    Here is a final version of the Fraction class in Java, which includes all the features we discussed:

    + + +import java.util.ArrayList; +import java.util.Collections; + +public class Fraction extends Number implements Comparable<Fraction> { + + private Integer numerator; + private Integer denominator; + + /** Creates a new instance of Fraction */ + public Fraction(Integer num, Integer den) { + this.numerator = num; + this.denominator = den; + } + + public Fraction(Integer num) { + this.numerator = num; + this.denominator = 1; + } + + public Fraction add(Fraction other) { + Integer newNum = other.getDenominator()*this.numerator + this.denominator*other.getNumerator(); + Integer newDen = this.denominator * other.getDenominator(); + Integer common = gcd(newNum,newDen); + return new Fraction(newNum/common, newDen/common); + } + + public Fraction add(Integer other) { + return add(new Fraction(other)); + } + + public Integer getNumerator() { + return numerator; + } + + public void setNumerator(Integer numerator) { + this.numerator = numerator; + } + + public Integer getDenominator() { + return denominator; + } + + public void setDenominator(Integer denominator) { + this.denominator = denominator; + } + + public String toString() { + return numerator.toString() + "/" + denominator.toString(); + } + + public boolean equals(Fraction other) { + Integer num1 = this.numerator * other.getDenominator(); + Integer num2 = this.denominator * other.getNumerator(); + if (num1 == num2) + return true; + else + return false; + } + + public double doubleValue() { + return numerator.doubleValue() / denominator.doubleValue(); + } + + public float floatValue() { + return numerator.floatValue() / denominator.floatValue(); + } + + public int intValue() { + return numerator.intValue() / denominator.intValue(); + } + + public long longValue() { + return numerator.longValue() / denominator.longValue(); + } + + public int compareTo(Fraction other) { + Integer num1 = this.numerator * other.getDenominator(); + Integer num2 = this.denominator * other.getNumerator(); + return num1 - num2; + } + + private static Integer gcd(Integer m, Integer n) { + while (m % n != 0) { + Integer oldm = m; + Integer oldn = n; + m = oldn; + n = oldm%oldn; + } + return n; + } + + public static void main(String[] args) { + Fraction f1 = new Fraction(1,2); + Fraction f2 = new Fraction(2,3); + Fraction f3 = new Fraction(1,4); + + System.out.println("Adding: " + f1.add(1)); + System.out.println("Calling intValue(): " + f1.intValue()); + System.out.println("Calling doubleValue(): " + f1.doubleValue()); + + ArrayList<Fraction> myFracs = new ArrayList<Fraction>(); + myFracs.add(f1); + myFracs.add(f2); + myFracs.add(f3); + Collections.sort(myFracs); + + System.out.println("Sorted fractions:"); + for(Fraction f : myFracs) { + System.out.println(f); + } + } + +} + + + + + + +
    +
    diff --git a/pretext/Java4Python/firstjavaprogram.ptx b/pretext/Java4Python/firstjavaprogram.ptx new file mode 100644 index 0000000..661caab --- /dev/null +++ b/pretext/Java4Python/firstjavaprogram.ptx @@ -0,0 +1,275 @@ + + +
    + Lets look at a Java Program +

    A time-honored tradition in Computer Science is to write a program + called “hello world.” The “hello world” program is simple and easy. + There are no logic errors to make, so getting it to run relies only on + understanding the syntax. To be clear, lets look at a “complicated” + version of hello world for Python:

    +
    def main():
    +    print("Hello World!")
    +

    Remember that we can define this program right at the Python command + line and then run it:

    +
    >>> main()
    +"Hello World!"
    +>>>
    +

    Now lets look at the same program written in Java:

    + + +public class Hello { + + public static void main(String[] args) { + System.out.println("Hello World!"); + } + +} + + + + + + +

    What we see is that at the core there are a few similarities, such as a + main and the string “Hello World”. However, there is a lot more stuff + around the edges that make it harder to see the core of the program. Do + not worry! An important skill for a computer scientist is to learn what + to ignore and what to look at carefully. You will soon find that there + are some elements of Java that will fade into the background as you + become used to seeing them. One thing that will help you is to learn a + little bit about Java .

    +

    The first question you probably have about this little program is “How + do I run it?” Running a Java program is not as simple as running a + Python program. The first thing you need to do with a Java program is + compile it. The first big difference between Java and Python is that + Python is an interpreted language. We could run our Python programs in + the Python interpreter and we were quite happy to do that. Java + makes running programs a two step process. First we must type the hello + world program into a file and save that file using the name + Hello.java The file name must be the same as the public class you + define in the file. Once we have saved the file we compile it from + the command line as follows:

    + + +$ javac Hello.java +$ ls -l Hello.* +-rw-r--r-- 1 bmiller bmiller 391 Jul 19 17:47 Hello.class +-rw-r--r-- 1 bmiller bmiller 117 Jul 19 17:46 Hello.java + + +

    The command javac compiles our java source code into compiled byte + code and saves it in a file called Hello.class. Hello.class is a + binary file so you won’t learn much if you try to examine the class file + with an editor. Hopefully you didn’t make any mistakes, but if you did + you may want to consult the + section for helpful hints on compiler errors.

    +

    Now that we have compiled our java source code we can run the compiled + code using the java command.

    + + +$ java Hello +Hello World! +$ + + +

    Now you may be wondering what good is that extra step? What does + compiling do for us? There are a couple of important benefits we get + from compiling:

    +

    +

      +
    • +

      Early detection of errors

      +
    • +
    • +

      Faster program execution

      +
    • +
    +

    +

    The job of the compiler is to turn your java code into language that the + Java Virtual Machine (JVM) can understand. We call the code that the JVM + understands byte code. The JVM interprets the byte code much like + the Python interpreter interprets your Python. However since byte code + is much closer to the native language of the computer it can run faster.

    +

    When the compiler does the translation it can find many different kinds + of errors. For example, if you make a typo, the compiler will find the + typo and point it out to you before you ever run the program. We will + look at some examples of compiler errors shortly. Chances are you will + create some on your own very soon, too.

    +

    Now that we have run our hello world program, lets go back and look at + it carefully to see what we can learn about the Java language. This + simple example illustrates a few very important rules:

    +

    +

      +
    1. +

      Every Java program must define a class, and all code is inside a class

      +
    2. +
    3. +

      Everything in Java must have a type

      +
    4. +
    5. +

      Every Java program must have a function called + public static void main(String[] args)

      +
    6. +
    +

    +

    Lets take the hello world example a line at a time to see how these + rules are applied. On line 1 we see that we are declaring a class called + Hello:

    + + +public class Hello { + + +

    As rule 1 says all Java code resides inside a class. Unlike + Python where a program can simply be a bunch of statements in a file, + Java programs must be inside a class. So, we define a class Hello, + which is not a very useful class because it has no instance variables, and only one + method. You will also notice the curly brace {. In Java, blocks of + code are identified by pairs of curly braces. The block starts with a + { and ends with a }. You will notice that I indented my code + that followed the left brace, but in Java this is only done by + convention, it is not enforced.

    +

    On the next line we start our method definition. The name of this method + is:

    + + +public static void main(String[] args) + + +

    Everything on this line is significant, and helps in the identification + of this method. For example the following lines look similar but are in + fact treated by Java as completely different methods:

    +

    +

      +
    • +

      + public void main(String[] args) +

      +
    • +
    • +

      + public static void main(String args) +

      +
    • +
    • +

      + public static void main() +

      +
    • +
    • +

      + void main(String args) +

      +
    • +
    +

    +

    Just digging in to this one line will take us deep into the world of + Java, so we are going to start digging but we are not going to dig too + deeply right away. Much of what could be revealed by this one line is + better understood through other examples, so be patient.

    +

    The first word, public indicates to the Java compiler that this is a + method that anyone can call. We will see that Java enforces several + levels of security on the methods we write, including public, + protected, and private methods.

    +

    The next word, static tells Java that this is a method that is part + of the class, but is not a method for any one instance of the class. The + kind of methods we typically wrote in Python required an instance in + order for the method to be called. With a static method, the object to + the left of the . is a class, not an instance of the class. For example, + the way that we would call the main method directly is: + Hello.main(parameter1). For now, you can think of static methods the + same way you think of methods in Python modules that don’t require an + instance, for example the math module contains many methods: sin, cos, + etc. You probably evaluated these methods using the names + math.cos(90) or math.sin(60).

    +

    The next word, void tells the Java compiler that the method main + will not return a value. This is roughly analogous to omitting the + return statement in a Python method. In other words, the method will run + to completion and exit but will not return a value that you can use in + an assignment statement. As we look at other examples we will see that + every Java function must tell the compiler what kind of an object it + will return. This is in keeping with the rule that says everything in + Java must have a type. In this case we use the special type called + void which means no type.

    +

    Next we have the proper name for the method: main. The rules for + names in Java are similar to the rules in Python. Names can include + letters, numbers, and the _. Names in Java must start with a letter.

    +

    Finally, we have the parameter list for the method. In this example we + have one parameter. The name of the parameter is args, however, + because everything in Java must have a type, we also have to tell the + compiler that the value of args is an array of strings. For the + moment you can just think of an array as being the same thing as a list + in Python. The practical benefit of declaring that the method main must + accept one parameter and the parameter must be an array of strings is + that if you call main somewhere else in your code and and pass it an + array of integers or even a single string, the compiler will flag it as + an error.

    +

    That is a lot of new material to digest in only a single line of Java! + Lets press on and look at the next line:

    + + +System.out.println("Hello World!"); + + +

    This line should look a bit + more familiar to you. Python and Java both use the dot notation for + finding names. In this example we start with System. System is a + class. Within the system class we find the object named out. The + out object is the standard output stream for this program. Having + located the out object Java will now call the method named + println(String s) on that object. The println method prints a + string and adds a newline character at the end. Anywhere in Python that + you used the print function you will use the System.out.println + method in Java.

    +

    Now there is one more character on this line that is significant and + that is the ; at the end. In Java the ; signifies the end of a + statement. Java statements can spread across many lines, but the compiler + knows it has reached the end of a statement when it encounters a ;. + In Python, it is not required (or recommend) to use semicolons in this way, + but whitespace is meaningful. + In contrast, in Java semicolons are required to end statements, but + whitespace is not considered meaningful. + This is a very important difference to remember! In Java, the following + statements are all legal and equivalent. I would not encourage you to + write your code like this, but you should know that it is legal.

    + + +System.out.println("Hello World"); +System.out.println("Hello World") +; +System.out.println + ( + "Hello World" + ) ; +System. + out. + println("Hello World") + ; + + +

    The last two lines of the hello world program simply close the two + blocks using }. The first or outer block is the class definition. The second or + inner block is the function definition.

    +

    If we wanted to translate the Java back to Python we would have + something like the following class definition.

    + + +class Hello(object): + @staticmethod + def main(args): + print("Hello World!") + + +

    Notice that we used the decorator @staticmethod to tell the Python + interpreter that main is going to be a static method. The impact of + this is that we don’t have to, indeed we should not, use self as the + first parameter of the main method! Using this definition we can call + the main method in a Python session like this:

    + + +>>> Hello.main("") +Hello World! +>>> + + +
    diff --git a/pretext/Java4Python/introduction.ptx b/pretext/Java4Python/introduction.ptx new file mode 100644 index 0000000..fc9ff5d --- /dev/null +++ b/pretext/Java4Python/introduction.ptx @@ -0,0 +1,55 @@ + + +
    + Introduction +

    This book assumes that you are already familiar with the + Python programming language. We will use + Python as a starting point for our journey into + Java. We will begin by looking at a very simple + Java program, just to see what the language looks like and how we get a + program to run. Next, we will look at the main constructs that are + common to most programming languages:

    +
    +

    +

      +
    • +

      Data Types

      +
    • +
    • +

      Loops

      +
    • +
    • +

      Reading user input

      +
    • +
    • +

      Conditionals

      +
    • +
    +

    +
    +

    Once we have the basics of Java behind us we will move on to look at the + features of Java that are both unique and powerful.

    +
    +

    +

      +
    • +

      Classes

      +
    • +
    • +

      Interfaces

      +
    • +
    • +

      Collections

      +
    • +
    • +

      Graphical User Interface Programming

      +
    • +
    • +

      Generic Programming

      +
    • +
    +

    +
    +

    Please note that this book is a work in progress. I will continue to + update and post new versions.

    +
    diff --git a/pretext/Java4Python/javadatatypes.ptx b/pretext/Java4Python/javadatatypes.ptx new file mode 100644 index 0000000..8070bff --- /dev/null +++ b/pretext/Java4Python/javadatatypes.ptx @@ -0,0 +1,895 @@ + + +
    + Java Data Types + + + + + Numeric +

    One of the great things about Python is that all of the basic data types + are objects. Integers are objects, floating point numbers are objects, + lists are objects, everything. In Java that is not the case. In Java, + some of the most basic data types like integers and floating point + numbers are not objects. The benefit of having these primitive data + types be non-objects is that operations on the primitives are fast. The + problem is that it became difficult for programmers to combine objects + and non-objects in the way that we do in Python. So, eventually all the + non-object primitives ended up with Objectified versions.

    + + + + + Primitive + + + Object + + + + + int + + + Integer + + + + + float + + + Float + + + + + double + + + Double + + + + + char + + + Char + + + + + boolean + + + Boolean + + + +
    +

    In older versions of Java, it was the programmers responsibility to + convert back and forth from a primitive to an object whenever necessary. + This process of converting a primitive to an object was called + “boxing.” The reverse process is called “unboxing.” In Java 5, the + compiler became smart enough to know when to convert back and forth and + is called “autoboxing.” In this book, we will typically use the Object + version of all the numeric data types and let the compiler do its thing.

    +

    Let’s look at a simple Python function which converts a Fahrenheit + temperature to Celsius. + If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook.

    + + +def main(): + fahr = int(input("Enter the temperature in F: ")) + cel = (fahr - 32) * 5.0/9.0 + print("the temperature in C is: ", cel) + +main() + + + + + + +

    Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook.

    + + +import java.util.Scanner; + +public class TempConv { + public static void main(String[] args) { + Double fahr; + Double cel; + Scanner in; + + in = new Scanner(System.in); + System.out.println("Enter the temperature in F: "); + fahr = in.nextDouble(); + + cel = (fahr - 32) * 5.0/9.0; + System.out.println("The temperature in C is: " + cel); + } +} + + + + + + +

    There are several new concepts introduced in this example. We will look + at them in the following order:

    +

    +

      +
    • +

      Import

      +
    • +
    • +

      Variable Declaration

      +
    • +
    • +

      Input/Output and the Scanner Class

      +
    • +
    +

    + + Import +

    In Java, you can use any class that is available without having to import + the class, subject to two very important conditions:

    +

    +

      +
    1. +

      The javac and java commands must know that the class exists.

      +
    2. +
    3. +

      You must use the full name of the class

      +
    4. +
    +

    +

    Your first question might be how do the java and javac commands + know that certain classes exist. The answer is the following:

    +

    +

      +
    1. +

      Java knows about all the classes that are defined in .java and .class + files in your current working directory.

      +
    2. +
    3. +

      Java knows about all the classes that are shipped with Java.

      +
    4. +
    5. +

      Java knows about all the classes that are included in your + CLASSPATH environment variable. Your CLASSPATH environment + variable can name two kinds of structures.

      +

      +

        +
      1. +

        A .jar file that contains Java classes

        +
      2. +
      3. +

        Another directory that contains Java class files

        +
      4. +
      +

      +
    6. +
    +

    +

    You can think of the import statement in Java as working a little bit + like the from module import xxx statement in Python. However, behind + the scenes, the two statements actually do very different things. The + first important difference to understand is that the class naming system + in Java is very hierarchical. The full name of the Scanner class is + really java.util.Scanner. You can think of this name as having two + parts: The first part java.util is called the package and the + last part is the class. We’ll talk more about the class naming system a + bit later. The second important difference is that it is the Java class + loader’s responsibility to load classes into memory, not the import + statement’s.

    +

    So, what exactly does the import statement do? What it does is tell the + compiler that we are going to use a shortened version of the class’s + name. In this example we are going to use the class + java.util.Scanner but we can refer to it as just Scanner. We + could use the java.util.Scanner class without any problem and + without any import statement, provided that we always referred to it by + its full name. As an experiment, you may want to try this yourself. + Remove the import statement and change the string Scanner to + java.util.Scanner in the rest of the code. The program should still + compile and run.

    +
    + + Declaring Variables +

    Here is where we run into one of the most important differences between + Java and Python. Python is a dynamically typed language. In a + dynamically typed language a variable can refer to any kind of object at + any time. When the variable is used, the interpreter figures out what + kind of object it is. Java is a statically typed language. In a + statically typed language the association between a variable and the + type of object the variable can refer to is determined when the variable + is declared. Once the declaration is made it is an error for a + variable to refer to an object of any other type.

    +

    In the example above, lines 5—7 contain variable declarations. + Specifically we are saying that fahr and cel are going to + reference objects that are of type Double. The variable in will + reference a Scanner object. This means that if we were to try an + assignment like fahr = "xyz" the compiler would generate an error + because "xyz" is a string and fahr is supposed to be a double.

    +

    For Python programmers, the following error is likely to be even more + common. Suppose we forgot the declaration for cel and instead left + line 6 blank. What would happen when we type javac TempConv.java on + the command line?

    +
    TempConv.java:13: cannot find symbol
    +symbol  : variable cel
    +location: class TempConv
    +         cel = (fahr - 32) * 5.0/9.0;
    +         ^
    +TempConv.java:14: cannot find symbol
    +symbol  : variable cel
    +location: class TempConv
    +         System.out.println("The temperature in C is: " + cel);
    +                                                          ^
    +2 errors
    +

    When you see the first kind of error, where the symbol is on the left + side of the equals sign, it usually means that you have not declared the + variable. If you have ever tried to use a Python variable that you have + not initialized the second error message will be familiar to you. The + difference here is that we see the message before we ever try to test + our program. More common error messages are discussed in the section + .

    +

    The general rule in Java is that you must decide what kind of an object + your variable is going to reference and then you must declare that + variable before you use it. There is much more to say about the static + typing of Java, but for now this is enough.

    +
    + + Input / Output / Scanner +

    In the previous section we created a Scanner object. In + Java, Scanner objects make getting input from the user, a file, or even + over the network relatively easy. In our case we simply want to ask the + user to type in a number at the command line, so in line 9 we construct + a Scanner by calling the constructor and passing it the System.in + object. Notice that this Scanner object is assigned to the name in, + which we declared to be a Scanner on line 7. System.in is + similar to System.out except, of course, it is used for input. If you + are wondering why we must create a Scanner to read data from + System.in when we can write data directly to System.out using + println, you are not alone. We will talk about the reasons why this + is so later when we talk in-depth about Java streams. You will also see + in other examples that we can create a Scanner by passing the Scanner a + File object. You can think of a Scanner as a kind of “adapter” that + makes low level objects easier to use.

    +

    On line 11 we use the Scanner object to read in a number. Here again we + see the implications of Java being a strongly typed language. Notice + that we must call the method nextDouble because the variable + fahr was declared as a double. So, we must have a function that is + guaranteed to return each kind of object we might want to read. In this + case, we need to read a Double so we call the function nextDouble. The + compiler matches up these assignment statments and if you try to assign + the results of a method call to the wrong kind of variable it will be + flagged as an error.

    +

    The table below shows some commonly used methods of the Scanner class. There + are many more methods supported by this class and we will talk about how + to find them in our chapter about .

    + + + + + Return type + + + Method name + + + Description + + + + + boolean + + + hasNext() + + + returns true if more data is present + + + + + boolean + + + hasNextInt() + + + returns true if the next thing to read is an integer + + + + + boolean + + + hasNextFloat() + + + returns true if the next thing to read is a float + + + + + boolean + + + hasNextDouble() + + + returns true if the next thing to read is a double + + + + + Integer + + + nextInt() + + + returns the next thing to read as an integer + + + + + Float + + + nextFloat() + + + returns the next thing to read as a float + + + + + Double + + + nextDouble() + + + returns the next thing to read as a Double + + + + + String + + + next() + + + returns the next thing to read as a String + + + +
    +
    +
    + + String +

    Strings in Java and Python are quite similar. Like Python, Java strings + are immutable. However, manipulating strings in Java is not quite as + obvious since Strings do not support an indexing or slicing operator. + That is not to say that you can’t index into a Java string, you can. You + can also pull out a substring just as you can with slicing. The + difference is that Java uses method calls where Python uses operators.

    +

    In fact, this is the first example of another big difference between Java + and Python. Java does not support any operator overloading. Table 3 maps + common Python string operations to their Java counterparts. For the + examples shown in the table we will use a string variable called “str”

    + + + + + Python + + + Java + + + Description + + + + + str[3] + + + str.charAt(3) + + + Return character in 3rd position + + + + + str[2:4] + + + str.substring(2,4) + + + Return substring from 2nd up to but not including 4th + + + + + len(str) + + + str.length() + + + Return the length of the string + + + + + str.find('x') + + + str.indexOf('x') + + + Find the first occurrence of x + + + + + str.split() + + + str.split('\s') + + + Split the string on whitespace into a list/array of strings + + + + + str.split(',') + + + str.split(',') + + + Split the string at ',' into a list/array of strings + + + + + str + str + + str + str or str.concat(str) + + + Concatenate two strings together + + + + + str.strip() + + + str.trim() + + + Remove any whitespace at the beginning or end + + + +
    +
    + + List +

    Next, let’s look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. + The data file we will use has one number between 0 and 9 on each line of the file. + Here is a simple Python program that creates and prints a histogram.

    + + +def main(): + count = [0]*10 + data = open('test.dat') + + for line in data: + count[int(line)] = count[int(line)] + 1 + + idx = 0 + for num in count: + print(idx, " occured ", num, " times.") + idx += 1 + +main() + + + + + + +

    Test running the program. It will read this data:

    + +
    +
    +   1
    +   2
    +   3
    +   9
    +   1
    +
    +      
    +
    +

    Lets review what is happening in this little program. First, we create a list + and initialize the first 10 positions in the list to be + 0. Next we open the data file called ‘test.dat’. Third, we have a loop + that reads each line of the file. As we read each line we convert it to + an integer and increment the counter at the position in the list + indicated by the number on the line we just read. Finally we iterate + over each element in the list, printing out both the position in the list + and the total value stored in that position.

    +

    To write the Java version of this program we will have to introduce + several new Java concepts. First, you will see the Java equivalent of a + list, called an ArrayList. Next, you will see three different kinds + of loops used in Java. Two of the loops we will use are going to be very + familiar, the third one is different from what you are used to in Python + but is easy when you understand the syntax:

    +

    +

      +
    • +

      + while (condition) { code } +

      +

      +

        +
      • +

        The code will be repeatedly executed until the condition becomes false.

        +
      • +
      +

      +
    • +
    • +

      + for (initialization statement; condition; loop statement) { code } +

      +

      +

        +
      • +

        The code will be repeatedly executed until the condition becomes false. As shown in the example below, the initialization statement and loop statement make this form useful for iterating over a range of numbers, similar to how you might use for i in range(10) in Python.

        +
      • +
      +

      +
    • +
    • +

      + for (Type variable : collection) { code } +

      +

      +

        +
      • +

        The code will be executed once for each element in the collection. Each execution, variable will be assigned to the next element of collection. Known as the “for-each” loop. This form is useful for iterating over members of a collection, similar to how you might use for a in array in Python.

        +
      • +
      +

      +
    • +
    +

    +

    Here is the Java code needed to write the exact same program:

    + + +import java.util.Scanner; +import java.util.ArrayList; +import java.io.File; +import java.io.IOException; + +public class Histo { + + public static void main(String[] args) { + Scanner data = null; + ArrayList<Integer> count; + Integer idx; + + try { + data = new Scanner(new File("test.dat")); + } + catch ( IOException e) { + System.out.println("Unable to open data file"); + e.printStackTrace(); + System.exit(0); + } + + count = new ArrayList<Integer>(10); + for (Integer i = 0; i < 10; i++) { + count.add(i,0); + } + + while(data.hasNextInt()) { + idx = data.nextInt(); + count.set(idx,count.get(idx)+1); + } + + idx = 0; + for(Integer i : count) { + System.out.println(idx + " occured " + i + " times."); + idx++; + } + } +} + + + + + + +

    Before going any further, I suggest you try to compile the above program + and run it on some test data that you create.

    +

    Now, let’s look at what is happening in the Java source. As usual, we + declare the variables we are going to use at the beginning of the + method. In this example we are declaring a Scanner variable called data, + an integer called idx and an ArrayList called count. However, there + is a new twist to the ArrayList declaration. Unlike Python where + lists can contain just about anything, in Java we let the compiler know + what kind of objects our array list is going to contain. In this case + the ArrayList will contain Integers. The syntax we use to declare + what kind of object the list will contain is the <Type> + syntax.

    +

    Technically, you don’t have to declare what is going to be in an array + list. The compiler will allow you to leave the <``*Type*>`` off the + declaration. If you don’t tell Java what kind of object is going to be + on the list Java will give you a warning message like this:

    +
    Note: Histo.java uses unchecked or unsafe operations.
    +Note: Recompile with -Xlint:unchecked for details.
    +

    Without the <Integer> part of the declaration Java simply assumes that + any object can be on the list. However, without resorting to an ugly + notation called casting, you cannot do anything with the objects on a + list like this! So, if you forget you will surely see more errors later + in your code. (Try it and see what you get)

    +

    Lines 13—20 are required to open the file. Why so many lines to open a + file in Java? The additional code mainly comes from the fact that Java + forces you to reckon with the possibility that the file you want to open + is not going to be there. If you attempt to open a file that is not + there you will get an error. A try/catch construct allows us to try + things that are risky, and gracefully recover from an error if one + occurs. The following example shows the general structure of a try/catch + block.

    +
    try {
    +   Put some risky code in here, like opening a file
    +}
    +catch (Exception e) {
    +   If an error happens in the try block an exception is thrown.
    +   We will catch that exception here!
    +}
    +

    Notice that in line 16 we are catching an IOException. In fact, we + will see later that we can have multiple catch blocks to catch different + types of exceptions. If we want to be lazy and catch any old exception + we can catch an Exception which is the parent of all exceptions. + However, catching Exception is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program.

    +

    On line 22 we create our ArrayList and give it an initial size of 10. + Strictly speaking, it is not necessary to give the ArrayList any + size. It will grow or shrink dynamically as needed, just like a list in + Python. On line 23 we start the first of three loops. The for loop on + lines 23–25 serves the same purpose as the Python statement + count = [0]*10, that is it initializes the first 10 positions in the + ArrayList to hold the value 0.

    +

    The syntax of this for loop probably looks very strange to you, but in + fact it is not too different from what happens in Python using range. In + fact for (Integer i = 0; i < 10; i++) is exactly equivalent to the + Python for i in range(10) The first statement inside the parenthesis + declares and initializes a loop variable i. The second statement is a + Boolean expression that is our exit condition. In other words we will + keep looping as long as this expression evaluates to true. The third + clause is used to increment the value of the loop variable at the end of + iteration through the loop. In fact i++ is Java shorthand for + i = i + 1 Java also supports the shorthand i-- to decrement the + value of i. Like Python, you can also write i += 2 as shorthand for + i = i + 2 Try to rewrite the following Python for loops as Java for + loops:

    +

    +

      +
    • +

      + for i in range(2,101,2) +

      +
    • +
    • +

      + for i in range(1,100) +

      +
    • +
    • +

      + for i in range(100,0,-1) +

      +
    • +
    • +

      for x,y in zip(range(10),range(0,20,2)) [hint, you can + separate statements in the same clause with a ,]

      +
    • +
    +

    +

    The next loop (lines 27–30) shows a typical Java pattern for reading + data from a file. Java while loops and Python while loops are identical + in their logic. In this case, we will continue to process the body of the + loop as long as data.hasNextInt() returns true.

    +

    Line 29 illustrates another important difference between Python and + Java. Notice that in Java we can not write + count[idx] = count[idx] + 1. This is because in Java there is no + overloading of operators. Everything except the most basic math and + logical operations is done using methods. So, to set the value of an + ArrayList element we use the set method. The first parameter of + set indicates the index or position in the ArrayList we are + going to change. The next parameter is the value we want to set. Notice + that, once again, we cannot use the indexing square bracket operator to + retrieve a value from the list, but we must use the get method.

    +

    The last loop in this example is similar to the Python for loop where + the object of the loop is a Sequence. In Java we can use this kind of + for loop over all kinds of sequences, which are called Collection + classes in Java. The for loop on line 33 for(Integer i : count) is + equivalent to the Python loop for i in count: This loop iterates + over all of the elements in the ArrayList called count. Each time + through the loop the Integer variable i is bound to the next element of + the ArrayList. If you tried the experiment of removing the + <Integer> part of the ArrayList declaration you probably noticed + that you had an error on this line. Why?

    +
    + + Arrays +

    As I said at the outset of this section, we are going to use Java + ArrayLists because they are easier to use and more closely match the + way that Python lists behave. However, if you look at Java code on the + internet or even in your Core Java books you are going to see examples + of something called arrays. In fact you have already seen one example of + an array declared in the ‘Hello World’ program. Lets rewrite this + program to use primitive arrays rather than array lists.

    + + +import java.util.Scanner; +import java.io.File; +import java.io.IOException; + +public class HistoArray { + public static void main(String[] args) { + Scanner data = null; + Integer[] count = {0,0,0,0,0,0,0,0,0,0}; + Integer idx; + + try { + data = new Scanner(new File("test.dat")); + } + catch ( IOException e) { + System.out.println("Unable to open data file"); + e.printStackTrace(); + System.exit(0); + } + + while(data.hasNextInt()) { + idx = data.nextInt(); + count[idx] = count[idx] + 1; + } + + idx = 0; + for(Integer i : count) { + System.out.println(idx + " occured " + i + " times."); + idx++; + } + } +} + + + + + + +

    The main difference between this example and the previous example is + that we declare count to be an Array of integers. We also can initialize + short arrays directly using the syntax shown on line 8. Then notice that + on line 22 we can use the square bracket notation to index into an + array.

    +
    + + Dictionary +

    Just as Python provides the dictionary when we want to have easy access + to key-value pairs, Java also provides us a similar mechanism. Rather + than the dictionary terminology, Java calls these objects Maps. Java + provides two different implementations of a map, one is called the + TreeMap and the other is called a HashMap. As you might guess + the TreeMap uses a balanced binary tree behind the scenes, and the + HashMap uses a hash table.

    +

    Lets stay with a simple frequency counting example, only this time we + will count the frequency of words in a document. A simple Python program + for this job could look like this:

    + + +def main(): + data = open('alice30.txt') + wordList = data.read().split() + count = {} + for w in wordList: + w = w.lower() + count[w] = count.get(w,0) + 1 + + keyList = sorted(count.keys()) + for k in keyList: + print("%-20s occurred %4d times" % (k, count[k])) + +main() + + + + + + +
    +Down, down, down.  Would the fall NEVER come to an end!  'I
    +wonder how many miles I've fallen by this time?' she said aloud.
    +'I must be getting somewhere near the centre of the earth.  Let
    +me see:  that would be four thousand miles down, I think--' (for,
    +you see, Alice had learnt several things of this sort in her
    +lessons in the schoolroom, and though this was not a VERY good
    +opportunity for showing off her knowledge, as there was no one to
    +listen to her, still it was good practice to say it over) '--yes,
    +that's about the right distance--but then I wonder what Latitude
    +or Longitude I've got to?'  (Alice had no idea what Latitude was,
    +or Longitude either, but thought they were nice grand words to
    +say.)
    +  
    +

    Notice that the structure of the program is very similar to the numeric + histogram program.

    + + +import java.util.Scanner; +import java.util.ArrayList; +import java.io.File; +import java.io.IOException; +import java.util.TreeMap; + +public class HistoMap { + + public static void main(String[] args) { + Scanner data = null; + TreeMap<String,Integer> count; + Integer idx; + String word; + Integer wordCount; + + try { + data = new Scanner(new File("alice30.txt")); + } + catch ( IOException e) { + System.out.println("Unable to open data file"); + e.printStackTrace(); + System.exit(0); + } + + count = new TreeMap<String,Integer>(); + + while(data.hasNext()) { + word = data.next().toLowerCase(); + wordCount = count.get(word); + if (wordCount == null) { + wordCount = 0; + } + count.put(word,++wordCount); + } + + for(String i : count.keySet()) { + System.out.printf("%-20s occured %5d times\n", i, count.get(i) ); + } + } +} + + + + + + +

    Improve the program above to remove the punctuation.

    +
    +
    diff --git a/pretext/Java4Python/loopsanditeration.ptx b/pretext/Java4Python/loopsanditeration.ptx new file mode 100644 index 0000000..897e3b9 --- /dev/null +++ b/pretext/Java4Python/loopsanditeration.ptx @@ -0,0 +1,93 @@ + + +
    + Loops and Iteration + +

    You have already seen a couple of examples of iteration and looping in + Java. So this section will just serve as a reference for the differences + in Syntax.

    +
    + + Definite Loop +

    In Python the easiest way to write a definite loop is using the for loop + in conjunction with the range function. For example:

    +
    for i in range(10):
    +   print(i)
    +

    In Java we would write this as:

    +
    for (Integer i = 0; i < 10; i++ ) {
    +    System.out.println(i);
    +}
    +

    Recall that the range function provides you with a wide variety of + options for controlling the value of the loop variable.

    +
    range(stop)
    +range(start,stop)
    +range(start,stop,step)
    +

    The Java for loop is really analogous to the last option giving you + explicit control over the starting, stopping, and stepping in the three + clauses inside the parenthesis. You can think of it this way:

    +
    for (start clause; stop clause; step clause) {
    +    statement1
    +    statement2
    +    ...
    +}
    +

    If you want to start at 100, stop at 0 and count backward by 5 the + Python loop would be written as:

    +
    for i in range(100,-1,-5):
    +    print(i)
    +

    In Java we would write this as:

    +
    for (Integer i = 100; i >= 0; i -= 5)
    +    System.out.println(i);
    +

    In Python the for loop can also iterate over any sequence such as a + list, a string, or a tuple. Java also provides a variation of its for + loop that provides the same functionality in its so called for each + loop.

    +

    In Python we can iterate over a list as follows:

    +
    l = [1, 1, 2, 3, 5, 8, 13, 21]
    +for fib in l:
    +   print(fib)
    +

    In Java we can iterate over an ArrayList of integers too:

    +
    ArrayList<Integer> l = new ArrayList<Integer>();
    +l.add(1); l.add(1); l.add(2); l.add(3);
    +for (Integer i : l) {
    +    System.out.println(i)
    +}
    +

    This example stretches the imagination a bit, and in fact points out one + area where Java’ s primitive arrays are easier to use than an array + list. In fact all primitive arrays can be used in a for each loop.

    +
    int l[] = {1,1,2,3,5,8,13,21};
    +for(int i : l) {
    +    System.out.println(i);
    +}
    +

    To iterate over the characters in a string in Java do the following:

    +
    String t = "Hello World";
    +for (char c : t.toCharArray()) {
    +    System.out.println(c);
    +}
    +
    + + Indefinite Loops +

    Both Python and Java support the while loop. Recall that in Python the + while loop is written as:

    +
    while  condition:
    +   statement1
    +   statement2
    +   ...
    +

    In Java we add parenthesis and curly braces to get:

    +
    while (condition) {
    +    statement1
    +    statement2
    +    ...
    +}
    +

    Java adds an additional, if seldom used variation of the while loop + called the do loop. The do loop is very similar to while except that the + condition is evaluated at the end of the loop rather than the beginning. + This ensures that a loop will be executed at least one time. Some + programmers prefer this loop in some situations because it avoids an + additional assignment prior to the loop. For example:

    +
    do {
    +    statement1
    +    statement2
    +    ...
    +} while (condition);
    +
    +
    diff --git a/pretext/Java4Python/moredocumentation.ptx b/pretext/Java4Python/moredocumentation.ptx new file mode 100644 index 0000000..738a257 --- /dev/null +++ b/pretext/Java4Python/moredocumentation.ptx @@ -0,0 +1,49 @@ + + +
    + Java Documentation +

    All Java class libraries are documented and available online. Here are + two good resources for you to use:

    +

    +

      +
    • +

      JavaDoc The Javadoconline website + provides a nice searchable interface. Search for a classname and you + will get the documentation you are looking for.

      +
    • +
    • +

      JavaAPI + contains the same information but in a browsable format. If you don’t + know the class name exactly this is a good way to see what is close.

      +
    • +
    +

    +

    In general the Javadoc page for any class contains information about:

    +

    +

      +
    • +

      Where this class falls in the class hierarchy. What classes are its + parents and what classes are its decendents.

      +
    • +
    • +

      A summary and some examples of using the class.

      +
    • +
    • +

      A summary listing of instance variables

      +
    • +
    • +

      A summary listing of Constructors

      +
    • +
    • +

      A summary listing of Methods

      +
    • +
    • +

      Detailed documentation on constructors and methods.

      +
    • +
    +

    +

    Typically the Javadoc pages are constructed from the source code where + the class is implemented. This encourages Java programmers to do a good + job of documenting their code, while providing a user friendly way to + read the documentation without looking at the code directly.

    +
    diff --git a/pretext/Java4Python/namingconventions.ptx b/pretext/Java4Python/namingconventions.ptx new file mode 100644 index 0000000..f410bdb --- /dev/null +++ b/pretext/Java4Python/namingconventions.ptx @@ -0,0 +1,25 @@ + + +
    + Naming Conventions +

    Java has some very handy naming conventions.

    +

    +

      +
    • +

      Class names always start with an upper case letter. For example, + Scanner, System, Hello

      +
    • +
    • +

      Method names always start with a lower case letter, and use camelCase + to represent multiword method names. for example nextInt()

      +
    • +
    • +

      Instance variables of a class start with a lower case letter and use + camelCase

      +
    • +
    • +

      Constants are in all upper case letters. for example Math.MAXINT

      +
    • +
    +

    +
    diff --git a/pretext/Java4Python/preface.ptx b/pretext/Java4Python/preface.ptx new file mode 100644 index 0000000..c102aba --- /dev/null +++ b/pretext/Java4Python/preface.ptx @@ -0,0 +1,31 @@ + + +
    + Preface +

    Welcome to Java for Python Programmers. This short ebook is an ongoing + project to help Computer Science students who have had one or two + semesters of Python learn the Java programming language. If you are not + a part of that audience you may still find this a useful way to learn + about Java. This book is written using the build on what you know + philosophy. In order to help you learn Java I will start with a Python + example and then implement the example in Java. Along the way we will + examine the strengths, weaknesses and differences between those two + languages.

    +

    This book does not attempt to replace the many good Java reference books + that are available, in fact I use this in my course along with + Cay Horstman’s “Core Java” volumes. + Please feel free to use this book for + yourself, or if it fits a class you are teaching you are welcome to use + this as a resource for your own class.

    +

    I have published this article using a Creative Commons license to + encourage you to use it, change it, and modify it for your own purposes. + I would appreciate knowing what you think if you do use this book, and I + would love to see any modifications or additions you make.

    +

    Brad Miller bmiller@luther.edu January, + 2008

    +
    +

    image + This work is licensed under a Creative Commons Attribution 3.0 + United States License. See http://creativecommons.org

    +
    +
    diff --git a/pretext/Java4Python/toctree.ptx b/pretext/Java4Python/toctree.ptx new file mode 100644 index 0000000..2976c0c --- /dev/null +++ b/pretext/Java4Python/toctree.ptx @@ -0,0 +1,17 @@ + + +
    + Java for Python Programmers + + + + + + + + + + + + +
    diff --git a/pretext/Java4Python/whylearnjava.ptx b/pretext/Java4Python/whylearnjava.ptx new file mode 100644 index 0000000..f9bc7d4 --- /dev/null +++ b/pretext/Java4Python/whylearnjava.ptx @@ -0,0 +1,59 @@ + + +
    + Why Learn another programming Language? + +

    Python is a nice language for beginning programming for several reasons. + First the syntax is sparse, and clear. Second, the underlying model of + how objects and variables work is very consistent. Third, you can write + powerful and interesting programs without a lot of work. However, Python + is representative of one kind of language, called a dynamic language. + You might think of Python as being fairly informal. There are other + languages, like Java and C++ that are more formal.

    +

    These languages have some advantages of their own. First, is speed: Java + and C++ code will generally give better performance than Python code + 1. Second is their maintainability. A lot of what makes Python + easy to use is that you must remember certain things. For example if you + set variable x to reference a turtle, and forget later that x is + a turtle but try to invoke a string method on it, you will get an error. + Java and C++ protect you by forcing you to be upfront and formal about + the kind of object each variable is going to refer to.

    +

    In one sense Python is representative of a whole class of languages, + sometimes referred to as “scripting languages.” Other languages in the + same category as Python are Ruby and Perl. Java is representative of + what I will call industrial strength languages. Industrial strength + languages are good for projects with several people working on the + project where being formal and careful about what you do may impact lots + of other people. Languages in this category include Rust, C++, C#, and Ada.

    +

    Programming languages will always change. As the field of computer + science advances there will be new programming languages and you will + need to learn them. It is important to learn several programming + languages so that you know what to expect. There are certain features + that most programming languages have in common; variables, loops, + conditionals, functions. And there are some features that are unique. If + you know what is common in languages that is a good place to start.

    +
    + + Why Learn Java? Why not C or C++? +

    It is easier to learn to create interesting programs in Java than in C or C++, for several reasons:

    +

    +

      +
    • +

      Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. Java has over 4,000 different classes included in the Java 14 Standard Edition. We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester.

      +
    • +
    • +

      Java incorporates automatic garbage collection of memory, whereas C and C++ programs typically include some degree of manual memory management. This makes programming in those languages more challenging.

      +
    • +
    • +

      C++’s syntax is more complicated than Java’s, making it more difficult to learn. For example, C++ supports a feature called operator overloading, which makes it possible to change the behavior of operators like +. This can make it more difficult to understand what a C++ program is doing.

      +
    • +
    +

    +

    Certainly, C and C++ are important languages, and are worth learning. But for these and other reasons, we’ve decided to use Java for this course. Learning Java will be a good preparation for learning these and other languages!

    + Footnotes + + +

    Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). So native language performance is just one criteria to consider when deciding which language to use for a program.

    +
    +
    +
    diff --git a/pretext/bookinfo.ptx b/pretext/bookinfo.ptx new file mode 100644 index 0000000..4c47d98 --- /dev/null +++ b/pretext/bookinfo.ptx @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + +java4py2 + + + +JAVA4PY + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pretext/index.ptx b/pretext/index.ptx new file mode 100644 index 0000000..400217c --- /dev/null +++ b/pretext/index.ptx @@ -0,0 +1,31 @@ + + +
    + Welcome to Java for Python Programmers + +

    Contents:

    + +
    + + Indices and tables +

    +

      +
    • +

      + +

      +
    • +
    • +

      + +

      +
    • +
    • +

      + +

      +
    • +
    +

    +
    +
    diff --git a/pretext/java4py2.ptx b/pretext/java4py2.ptx new file mode 100644 index 0000000..6b974f2 --- /dev/null +++ b/pretext/java4py2.ptx @@ -0,0 +1,14 @@ + + + + + Java For Python Programmer + The PreTeXt Interactive Edition + + + + + + + + \ No newline at end of file diff --git a/pretext/publication-rs-academy.xml b/pretext/publication-rs-academy.xml new file mode 100644 index 0000000..1d9a777 --- /dev/null +++ b/pretext/publication-rs-academy.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + diff --git a/pretext/publication-rs-for-all.xml b/pretext/publication-rs-for-all.xml new file mode 100644 index 0000000..85a341a --- /dev/null +++ b/pretext/publication-rs-for-all.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pretext/rs-substitutes.xml b/pretext/rs-substitutes.xml new file mode 100644 index 0000000..8144f42 --- /dev/null +++ b/pretext/rs-substitutes.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/project.ptx b/project.ptx new file mode 100644 index 0000000..8f06774 --- /dev/null +++ b/project.ptx @@ -0,0 +1,64 @@ + + + + + + html + pretext/java4py2.ptx + pretext/publication-rs-for-all.xml + output/html + + + html + pretext/java4py2.ptx + pretext/publication-rs-academy.xml + published/java4py2 + + + epub + pretext/java4py2.ptx + pretext/publication-pub.xml + published/epub + + + latex + pretext/java4py2.ptx + pretext/publication-rs-for-all.xml + output/latex + + + pdf + pretext/java4py2.ptx + pretext/publication-rs-for-all.xml + output/pdf + + + html + source/java4py2.ptx + publication/publication.ptx + output/subset + + + ch-first + + + + latex + pdflatex + xelatex + pdf2svg + asy + sage + convert + pdftops + pdf-crop-margins + pageres + node + file2brl + + From 9ed8ff561e176586430178dfdf2baf254098f639 Mon Sep 17 00:00:00 2001 From: moisedk Date: Tue, 4 Mar 2025 23:08:24 -0500 Subject: [PATCH 029/448] Fix mising data files in activecode --- pretext/Java4Python/javadatatypes.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pretext/Java4Python/javadatatypes.ptx b/pretext/Java4Python/javadatatypes.ptx index 8070bff..f06acf2 100644 --- a/pretext/Java4Python/javadatatypes.ptx +++ b/pretext/Java4Python/javadatatypes.ptx @@ -582,7 +582,7 @@ main()

    Here is the Java code needed to write the exact same program:

    - + import java.util.Scanner; import java.util.ArrayList; @@ -748,7 +748,7 @@ catch (Exception e) { of something called arrays. In fact you have already seen one example of an array declared in the ‘Hello World’ program. Lets rewrite this program to use primitive arrays rather than array lists.

    - + import java.util.Scanner; import java.io.File; @@ -842,7 +842,7 @@ say.)

    Notice that the structure of the program is very similar to the numeric histogram program.

    - + import java.util.Scanner; import java.util.ArrayList; From eb9ebf5e185446b44f53a300764eff1021f43d9c Mon Sep 17 00:00:00 2001 From: moisedk Date: Tue, 4 Mar 2025 23:15:09 -0500 Subject: [PATCH 030/448] Fix stdin error --- pretext/Java4Python/javadatatypes.ptx | 1 + 1 file changed, 1 insertion(+) diff --git a/pretext/Java4Python/javadatatypes.ptx b/pretext/Java4Python/javadatatypes.ptx index f06acf2..edcfd6a 100644 --- a/pretext/Java4Python/javadatatypes.ptx +++ b/pretext/Java4Python/javadatatypes.ptx @@ -112,6 +112,7 @@ public class TempConv { } } + From 4091bb40cadc4f6aa2c0835f0dbfb34801d9cb27 Mon Sep 17 00:00:00 2001 From: moisedk Date: Tue, 4 Mar 2025 23:19:31 -0500 Subject: [PATCH 031/448] Fix Page title initial --- pretext/bookinfo.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pretext/bookinfo.ptx b/pretext/bookinfo.ptx index 4c47d98..273e87f 100644 --- a/pretext/bookinfo.ptx +++ b/pretext/bookinfo.ptx @@ -52,7 +52,7 @@ along with MathBook XML. If not, see . -JAVA4PY + From b0fe3ce0d4cec21c858f2217f1b4f42621a3a75a Mon Sep 17 00:00:00 2001 From: moisedk Date: Tue, 4 Mar 2025 23:51:00 -0500 Subject: [PATCH 032/448] Fix cross-reference issues and change cross-reference type to show title --- pretext/Java4Python/firstjavaprogram.ptx | 4 ++-- pretext/Java4Python/javadatatypes.ptx | 4 ++-- pretext/bookinfo.ptx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pretext/Java4Python/firstjavaprogram.ptx b/pretext/Java4Python/firstjavaprogram.ptx index 661caab..3f5ac78 100644 --- a/pretext/Java4Python/firstjavaprogram.ptx +++ b/pretext/Java4Python/firstjavaprogram.ptx @@ -37,7 +37,7 @@ public class Hello { to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them. One thing that will help you is to learn a - little bit about Java .

    + little bit about Java .

    The first question you probably have about this little program is “How do I run it?” Running a Java program is not as simple as running a Python program. The first thing you need to do with a Java program is @@ -61,7 +61,7 @@ $ ls -l Hello.* code and saves it in a file called Hello.class. Hello.class is a binary file so you won’t learn much if you try to examine the class file with an editor. Hopefully you didn’t make any mistakes, but if you did - you may want to consult the + you may want to consult the section for helpful hints on compiler errors.

    Now that we have compiled our java source code we can run the compiled code using the java command.

    diff --git a/pretext/Java4Python/javadatatypes.ptx b/pretext/Java4Python/javadatatypes.ptx index edcfd6a..c5b03f6 100644 --- a/pretext/Java4Python/javadatatypes.ptx +++ b/pretext/Java4Python/javadatatypes.ptx @@ -235,7 +235,7 @@ location: class TempConv not initialized the second error message will be familiar to you. The difference here is that we see the message before we ever try to test our program. More common error messages are discussed in the section - .

    + .

    The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. There is much more to say about the static @@ -269,7 +269,7 @@ location: class TempConv flagged as an error.

    The table below shows some commonly used methods of the Scanner class. There are many more methods supported by this class and we will talk about how - to find them in our chapter about .

    + to find them in our chapter about .

    diff --git a/pretext/bookinfo.ptx b/pretext/bookinfo.ptx index 273e87f..9277ba1 100644 --- a/pretext/bookinfo.ptx +++ b/pretext/bookinfo.ptx @@ -68,6 +68,6 @@ along with MathBook XML. If not, see . - + \ No newline at end of file From da31b1c1f6bc0222b47fa236971af816d140b6eb Mon Sep 17 00:00:00 2001 From: moisedk Date: Wed, 5 Mar 2025 08:48:00 -0500 Subject: [PATCH 033/448] Corrected if-statement mistake (this error was in the original rst version) --- pretext/Java4Python/conditionals.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pretext/Java4Python/conditionals.ptx b/pretext/Java4Python/conditionals.ptx index 049b285..6853f66 100644 --- a/pretext/Java4Python/conditionals.ptx +++ b/pretext/Java4Python/conditionals.ptx @@ -79,15 +79,15 @@ public class ElseIf { System.out.println('F'); } else { if (grade < 70) { - System.out.println('F'); + System.out.println('D'); } else { if (grade < 80) { - System.out.println('F'); + System.out.println('C'); } else { if (grade < 90) { - System.out.println('F'); + System.out.println('B'); } else { - System.out.println('F'); + System.out.println('A'); } } } From 85a31d0fe4b375e27412972d15dde109db66e52e Mon Sep 17 00:00:00 2001 From: moisedk Date: Mon, 17 Mar 2025 01:30:47 -0400 Subject: [PATCH 034/448] Restore the Makefile to what if used to be --- Makefile | 255 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 155 insertions(+), 100 deletions(-) diff --git a/Makefile b/Makefile index 34a54a8..320dbf0 100644 --- a/Makefile +++ b/Makefile @@ -1,102 +1,157 @@ -.PHONY: all fixed_source xml fixed_xml ptx post fix_ids post2 post3 build_web clean pristine restore onetime - -# -# .env sets some environment varibles that we don't want to commit +# Makefile for Sphinx documentation # -ifeq ($(origin R2P), undefined) -include .env -endif - -DEBUG_PRETEXT := # -v DEBUG - -# The root of everything -sources := $(shell find _sources -type f) - -# After we fix them with the fix'em scripts -fixed_sources := $(patsubst _sources/%,_fixed_sources/%,$(sources)) - -# Then we generate XML for each rst file except for common.rst -xml := $(patsubst _fixed_sources/%.rst,build/xml/%.xml,$(filter-out _fixed_sources/common.rst,$(fixed_sources))) - -# And then each xml file is eventually turned into ptx -ptx := $(patsubst build/xml/%.xml,pretext/%.ptx,$(xml)) - -# This will run from a virtual env. -rs2ptx := python -m runestone rs2ptx --sourcedir _fixed_sources - -all: fixed_source fixed_xml - # $(MAKE) fixed_ptx build_$(TARGET) - -fixed_source: $(fixed_sources) - -_fixed_sources/%: _sources/% | _fixed_sources - mkdir -p $(dir $@) - ./fix-raw-html-links.pl --debug $< > $@ - ./fix-source.pl $@ - -_fixed_sources: - mkdir $@ - -xml: - $(rs2ptx) - # rm build/xml/common.xml - -fixed_xml: xml - find build/xml -name '*.xml' -exec ./fix-xml.pl {} \; - ./fixIds.py build/xml ".xml" - -fixed_ptx: post - find pretext -name '*.ptx' -exec ./fix-ptx.pl {} \; - find pretext -name '*.ptx' -exec ./fix-tests.pl {} \; - find pretext -name '*.ptx' -exec ./fix-data-stdin.pl {} \; - if [ -d hand-fixes ]; then rsync -r hand-fixes/ pretext/; fi - -# This works better than the script that does them all -pretext/%.ptx: XMLFILE = $(patsubst _fixed_sources/%.rst,build/xml/%.xml,$<) -pretext/%.ptx: _fixed_sources/%.rst | build/xml/%.xml pretext - mkdir -p $(dir $@) - xsltproc --novalid $(R2P)/docutils2ptx.xsl $(XMLFILE) > $(XMLFILE).pass1 - xsltproc --novalid post-1.xsl $(XMLFILE).pass1 > $(XMLFILE).pass2 - xsltproc --novalid post-2.xsl $(XMLFILE).pass2 > $(XMLFILE).pass3 - xsltproc --novalid post-3.xsl $(XMLFILE).pass3 > $@ - -pretext/rs-substitutes.xml: rs-substitutes.xml | pretext - cp $< $@ - -pretext: - mkdir $@ - -ptx: $(ptx) pretext/rs-substitutes.xml - -# need to do pretext init in here to generate project.ptx -# need to manually edit project.ptx and create publication-rs-for-all.xml -# as described in https://github.com/bnmnetp/Runestone2PreTeXt/blob/main/README.md -post: ptx - ./fixIds.py pretext .ptx - python $(R2P)/fix_xrefs.py - python $(R2P)/reformatPtx.py - python $(R2P)/index2main.py - python $(R2P)/toctree2xml.py . _fixed_sources - python $(R2P)/filltoc.py pretext _fixed_sources - python $(R2P)/copy_figs.py ./_fixed_sources ./pretext/assets - -restore: - git restore pretext - git restore _sources/ - git restore rs-substitutes.xml - git clean -fdx pretext - -onetime: - python $(R2P)/index2main.py - -build_web: - pretext $(DEBUG_PRETEXT) build web - -build_runestone: - pretext $(DEBUG_PRETEXT) build runestone - -clean: restore - rm -rf build/xml -pristine: clean - rm -rf _fixed_sources \ No newline at end of file +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = build + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source +# the i18n builder cannot share the environment and doctrees with the others +I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext + +all: html + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " texinfo to make Texinfo files" + @echo " info to make Texinfo files and run them through makeinfo" + @echo " gettext to make PO message catalogs" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + + + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/JavaforPythonProgrammers.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/JavaforPythonProgrammers.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/JavaforPythonProgrammers" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/JavaforPythonProgrammers" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + $(MAKE) -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +texinfo: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo + @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." + @echo "Run \`make' in that directory to run these through makeinfo" \ + "(use \`make info' here to do that automatically)." + +info: + $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo + @echo "Running Texinfo files through makeinfo..." + make -C $(BUILDDIR)/texinfo info + @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." + +gettext: + $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale + @echo + @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." \ No newline at end of file From bdf201882d3229ddf1ac77bea87959b7782fb49d Mon Sep 17 00:00:00 2001 From: moisedk Date: Thu, 8 May 2025 13:31:38 -0400 Subject: [PATCH 035/448] Split Chapters into their own files --- pretext/bookinfo.ptx | 73 ------------------- pretext/java4py2.ptx | 14 ---- .../ch_10_moredocumentation.ptx} | 0 .../ch_1_introduction.ptx} | 0 .../ch_2_whylearnjava.ptx} | 0 .../ch_3_firstjavaprogram.ptx} | 0 .../ch_4_javadatatypes.ptx} | 0 .../ch_5_conditionals.ptx} | 0 .../ch_6_loopsanditeration.ptx} | 0 .../ch_7_definingclasses.ptx} | 0 .../ch_8_namingconventions.ptx} | 0 .../ch_9_commonmistakes.ptx} | 0 pretext/source/main.ptx | 20 +++++ .../meta_backmatter.ptx} | 18 +++-- pretext/source/meta_bookinfo.ptx | 16 ++++ pretext/source/meta_frontmatter.ptx | 47 ++++++++++++ pretext/{Java4Python => source}/preface.ptx | 0 pretext/{Java4Python => source}/toctree.ptx | 4 +- project.ptx | 14 ++-- 19 files changed, 103 insertions(+), 103 deletions(-) delete mode 100644 pretext/bookinfo.ptx delete mode 100644 pretext/java4py2.ptx rename pretext/{Java4Python/moredocumentation.ptx => source/ch_10_moredocumentation.ptx} (100%) rename pretext/{Java4Python/introduction.ptx => source/ch_1_introduction.ptx} (100%) rename pretext/{Java4Python/whylearnjava.ptx => source/ch_2_whylearnjava.ptx} (100%) rename pretext/{Java4Python/firstjavaprogram.ptx => source/ch_3_firstjavaprogram.ptx} (100%) rename pretext/{Java4Python/javadatatypes.ptx => source/ch_4_javadatatypes.ptx} (100%) rename pretext/{Java4Python/conditionals.ptx => source/ch_5_conditionals.ptx} (100%) rename pretext/{Java4Python/loopsanditeration.ptx => source/ch_6_loopsanditeration.ptx} (100%) rename pretext/{Java4Python/definingclasses.ptx => source/ch_7_definingclasses.ptx} (100%) rename pretext/{Java4Python/namingconventions.ptx => source/ch_8_namingconventions.ptx} (100%) rename pretext/{Java4Python/commonmistakes.ptx => source/ch_9_commonmistakes.ptx} (100%) create mode 100644 pretext/source/main.ptx rename pretext/{Java4Python/backmatter.ptx => source/meta_backmatter.ptx} (93%) create mode 100644 pretext/source/meta_bookinfo.ptx create mode 100644 pretext/source/meta_frontmatter.ptx rename pretext/{Java4Python => source}/preface.ptx (100%) rename pretext/{Java4Python => source}/toctree.ptx (87%) diff --git a/pretext/bookinfo.ptx b/pretext/bookinfo.ptx deleted file mode 100644 index 9277ba1..0000000 --- a/pretext/bookinfo.ptx +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -java4py2 - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pretext/java4py2.ptx b/pretext/java4py2.ptx deleted file mode 100644 index 6b974f2..0000000 --- a/pretext/java4py2.ptx +++ /dev/null @@ -1,14 +0,0 @@ - - - - - Java For Python Programmer - The PreTeXt Interactive Edition - - - - - - - - \ No newline at end of file diff --git a/pretext/Java4Python/moredocumentation.ptx b/pretext/source/ch_10_moredocumentation.ptx similarity index 100% rename from pretext/Java4Python/moredocumentation.ptx rename to pretext/source/ch_10_moredocumentation.ptx diff --git a/pretext/Java4Python/introduction.ptx b/pretext/source/ch_1_introduction.ptx similarity index 100% rename from pretext/Java4Python/introduction.ptx rename to pretext/source/ch_1_introduction.ptx diff --git a/pretext/Java4Python/whylearnjava.ptx b/pretext/source/ch_2_whylearnjava.ptx similarity index 100% rename from pretext/Java4Python/whylearnjava.ptx rename to pretext/source/ch_2_whylearnjava.ptx diff --git a/pretext/Java4Python/firstjavaprogram.ptx b/pretext/source/ch_3_firstjavaprogram.ptx similarity index 100% rename from pretext/Java4Python/firstjavaprogram.ptx rename to pretext/source/ch_3_firstjavaprogram.ptx diff --git a/pretext/Java4Python/javadatatypes.ptx b/pretext/source/ch_4_javadatatypes.ptx similarity index 100% rename from pretext/Java4Python/javadatatypes.ptx rename to pretext/source/ch_4_javadatatypes.ptx diff --git a/pretext/Java4Python/conditionals.ptx b/pretext/source/ch_5_conditionals.ptx similarity index 100% rename from pretext/Java4Python/conditionals.ptx rename to pretext/source/ch_5_conditionals.ptx diff --git a/pretext/Java4Python/loopsanditeration.ptx b/pretext/source/ch_6_loopsanditeration.ptx similarity index 100% rename from pretext/Java4Python/loopsanditeration.ptx rename to pretext/source/ch_6_loopsanditeration.ptx diff --git a/pretext/Java4Python/definingclasses.ptx b/pretext/source/ch_7_definingclasses.ptx similarity index 100% rename from pretext/Java4Python/definingclasses.ptx rename to pretext/source/ch_7_definingclasses.ptx diff --git a/pretext/Java4Python/namingconventions.ptx b/pretext/source/ch_8_namingconventions.ptx similarity index 100% rename from pretext/Java4Python/namingconventions.ptx rename to pretext/source/ch_8_namingconventions.ptx diff --git a/pretext/Java4Python/commonmistakes.ptx b/pretext/source/ch_9_commonmistakes.ptx similarity index 100% rename from pretext/Java4Python/commonmistakes.ptx rename to pretext/source/ch_9_commonmistakes.ptx diff --git a/pretext/source/main.ptx b/pretext/source/main.ptx new file mode 100644 index 0000000..fa717b4 --- /dev/null +++ b/pretext/source/main.ptx @@ -0,0 +1,20 @@ + + + + + Java For Python Programmer + The PreTeXt Interactive Edition + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pretext/Java4Python/backmatter.ptx b/pretext/source/meta_backmatter.ptx similarity index 93% rename from pretext/Java4Python/backmatter.ptx rename to pretext/source/meta_backmatter.ptx index 95e3d3b..6dcf6f9 100644 --- a/pretext/Java4Python/backmatter.ptx +++ b/pretext/source/meta_backmatter.ptx @@ -1,8 +1,11 @@ -
    - Colophon - + + + Appendices + + +

    I started writing this article in 2006 using Python’s restructured text. In 2007 I switched to markdown since everything else I was writing used markdown. In particular I switched to the variant of markdown used by @@ -13,8 +16,9 @@ the document became so big that I used pandoc to convert it to latex for preparing the final version. I used The htlatex program to generate html for the online version of this document.

    -
    - + + + Shameless Plug

    If you got this far, I would also like to use this space as a shameless plug for two books. At Luther college we use Python for CS1 and CS2. @@ -32,5 +36,5 @@ well. This book will be available for Fall 2008 classes from Jones and Bartlett publishers. The tentative title is Python in Context. Please feel free to contact me for more information.

    -
    -
    + + diff --git a/pretext/source/meta_bookinfo.ptx b/pretext/source/meta_bookinfo.ptx new file mode 100644 index 0000000..042aa19 --- /dev/null +++ b/pretext/source/meta_bookinfo.ptx @@ -0,0 +1,16 @@ + + + + + + + +java4py2 + + + + + + + + \ No newline at end of file diff --git a/pretext/source/meta_frontmatter.ptx b/pretext/source/meta_frontmatter.ptx new file mode 100644 index 0000000..bb81025 --- /dev/null +++ b/pretext/source/meta_frontmatter.ptx @@ -0,0 +1,47 @@ + + + + + + + + + Dr. Brad Miller + Computer Science + Luther College + + + + + + +

    Welcome to Java for Python Programmers. This short ebook is an ongoing + project to help Computer Science students who have had one or two + semesters of Python learn the Java programming language. If you are not + a part of that audience you may still find this a useful way to learn + about Java. This book is written using the build on what you know + philosophy. In order to help you learn Java I will start with a Python + example and then implement the example in Java. Along the way we will + examine the strengths, weaknesses and differences between those two + languages.

    +

    This book does not attempt to replace the many good Java reference books + that are available, in fact I use this in my course along with + Cay Horstman’s “Core Java” volumes. + Please feel free to use this book for + yourself, or if it fits a class you are teaching you are welcome to use + this as a resource for your own class.

    +

    I have published this article using a Creative Commons license to + encourage you to use it, change it, and modify it for your own purposes. + I would appreciate knowing what you think if you do use this book, and I + would love to see any modifications or additions you make.

    +

    Brad Miller bmiller@luther.edu January, + 2008

    +
    +

    + This work is licensed under a Creative Commons Attribution 3.0 + United States License. See http://creativecommons.org

    +
    +
    + +
    + diff --git a/pretext/Java4Python/preface.ptx b/pretext/source/preface.ptx similarity index 100% rename from pretext/Java4Python/preface.ptx rename to pretext/source/preface.ptx diff --git a/pretext/Java4Python/toctree.ptx b/pretext/source/toctree.ptx similarity index 87% rename from pretext/Java4Python/toctree.ptx rename to pretext/source/toctree.ptx index 2976c0c..97f28ba 100644 --- a/pretext/Java4Python/toctree.ptx +++ b/pretext/source/toctree.ptx @@ -1,6 +1,6 @@ -
    + diff --git a/project.ptx b/project.ptx index 8f06774..98fdc90 100644 --- a/project.ptx +++ b/project.ptx @@ -8,37 +8,37 @@ html - pretext/java4py2.ptx + pretext/source/main.ptx pretext/publication-rs-for-all.xml output/html html - pretext/java4py2.ptx + pretext/source/main.ptx pretext/publication-rs-academy.xml - published/java4py2 + published/main epub - pretext/java4py2.ptx + pretext/source/main.ptx pretext/publication-pub.xml published/epub latex - pretext/java4py2.ptx + pretext/source/main.ptx pretext/publication-rs-for-all.xml output/latex pdf - pretext/java4py2.ptx + pretext/source/main.ptx pretext/publication-rs-for-all.xml output/pdf html - source/java4py2.ptx + pretext/source/main.ptx publication/publication.ptx output/subset From cc253dda7d65520f4cb48c5a2ce14e556cc3371a Mon Sep 17 00:00:00 2001 From: moisedk Date: Thu, 8 May 2025 14:01:22 -0400 Subject: [PATCH 036/448] Update project version and remove .pkl fileP --- .gitignore | 1 + pretext/GenFigs/.web_assets.pkl | Bin 120 -> 0 bytes project.ptx | 2 +- 3 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 pretext/GenFigs/.web_assets.pkl diff --git a/.gitignore b/.gitignore index c446745..ad2865c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ build/* .idea/* *.pyc +*.pkl source/doctrees/* *~ sphinx-enki-info.txt diff --git a/pretext/GenFigs/.web_assets.pkl b/pretext/GenFigs/.web_assets.pkl deleted file mode 100644 index d2f5448116ef330f29bba4eaf9f0f58e618cc96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 120 zcmZo*nVQQ00ku8k3pdvPAy Vv>(U$MT7h{=j|#vGNrUw4**onFAM+x diff --git a/project.ptx b/project.ptx index 98fdc90..d58f9ee 100644 --- a/project.ptx +++ b/project.ptx @@ -4,7 +4,7 @@ project. To edit the content of your document, open `source/cppds2.ptx` (default location). --> - + html From 3a8326c64f7eb37ccd1878388e2c3e3b8c7eca9e Mon Sep 17 00:00:00 2001 From: moisedk Date: Thu, 8 May 2025 16:22:55 -0400 Subject: [PATCH 037/448] Updated file directory and pretext version 2 --- pretext/index.ptx | 31 ------- pretext/source/preface.ptx | 31 ------- project.ptx | 81 +++++------------- .../publication-rs-academy.xml | 0 .../publication-rs-for-all.xml | 0 {pretext => source}/Figures/somerights20.png | Bin source/GenFigs/somerights20.png | Bin 0 -> 958 bytes .../ch_10_moredocumentation.ptx | 0 .../source => source}/ch_1_introduction.ptx | 0 .../source => source}/ch_2_whylearnjava.ptx | 0 .../ch_3_firstjavaprogram.ptx | 0 .../source => source}/ch_4_javadatatypes.ptx | 0 .../source => source}/ch_5_conditionals.ptx | 0 .../ch_6_loopsanditeration.ptx | 0 .../ch_7_definingclasses.ptx | 0 .../ch_8_namingconventions.ptx | 0 .../source => source}/ch_9_commonmistakes.ptx | 0 {pretext/source => source}/main.ptx | 0 .../source => source}/meta_backmatter.ptx | 0 {pretext/source => source}/meta_bookinfo.ptx | 0 .../source => source}/meta_frontmatter.ptx | 2 +- {pretext => source}/rs-substitutes.xml | 0 {pretext/source => source}/toctree.ptx | 0 23 files changed, 23 insertions(+), 122 deletions(-) delete mode 100644 pretext/index.ptx delete mode 100644 pretext/source/preface.ptx rename {pretext => publication}/publication-rs-academy.xml (100%) rename {pretext => publication}/publication-rs-for-all.xml (100%) rename {pretext => source}/Figures/somerights20.png (100%) create mode 100644 source/GenFigs/somerights20.png rename {pretext/source => source}/ch_10_moredocumentation.ptx (100%) rename {pretext/source => source}/ch_1_introduction.ptx (100%) rename {pretext/source => source}/ch_2_whylearnjava.ptx (100%) rename {pretext/source => source}/ch_3_firstjavaprogram.ptx (100%) rename {pretext/source => source}/ch_4_javadatatypes.ptx (100%) rename {pretext/source => source}/ch_5_conditionals.ptx (100%) rename {pretext/source => source}/ch_6_loopsanditeration.ptx (100%) rename {pretext/source => source}/ch_7_definingclasses.ptx (100%) rename {pretext/source => source}/ch_8_namingconventions.ptx (100%) rename {pretext/source => source}/ch_9_commonmistakes.ptx (100%) rename {pretext/source => source}/main.ptx (100%) rename {pretext/source => source}/meta_backmatter.ptx (100%) rename {pretext/source => source}/meta_bookinfo.ptx (100%) rename {pretext/source => source}/meta_frontmatter.ptx (97%) rename {pretext => source}/rs-substitutes.xml (100%) rename {pretext/source => source}/toctree.ptx (100%) diff --git a/pretext/index.ptx b/pretext/index.ptx deleted file mode 100644 index 400217c..0000000 --- a/pretext/index.ptx +++ /dev/null @@ -1,31 +0,0 @@ - - -
    - Welcome to Java for Python Programmers - -

    Contents:

    - -
    - - Indices and tables -

    -

      -
    • -

      - -

      -
    • -
    • -

      - -

      -
    • -
    • -

      - -

      -
    • -
    -

    -
    -
    diff --git a/pretext/source/preface.ptx b/pretext/source/preface.ptx deleted file mode 100644 index c102aba..0000000 --- a/pretext/source/preface.ptx +++ /dev/null @@ -1,31 +0,0 @@ - - -
    - Preface -

    Welcome to Java for Python Programmers. This short ebook is an ongoing - project to help Computer Science students who have had one or two - semesters of Python learn the Java programming language. If you are not - a part of that audience you may still find this a useful way to learn - about Java. This book is written using the build on what you know - philosophy. In order to help you learn Java I will start with a Python - example and then implement the example in Java. Along the way we will - examine the strengths, weaknesses and differences between those two - languages.

    -

    This book does not attempt to replace the many good Java reference books - that are available, in fact I use this in my course along with - Cay Horstman’s “Core Java” volumes. - Please feel free to use this book for - yourself, or if it fits a class you are teaching you are welcome to use - this as a resource for your own class.

    -

    I have published this article using a Creative Commons license to - encourage you to use it, change it, and modify it for your own purposes. - I would appreciate knowing what you think if you do use this book, and I - would love to see any modifications or additions you make.

    -

    Brad Miller bmiller@luther.edu January, - 2008

    -
    -

    - This work is licensed under a Creative Commons Attribution 3.0 - United States License. See http://creativecommons.org

    -
    -
    diff --git a/project.ptx b/project.ptx index d58f9ee..fe71da4 100644 --- a/project.ptx +++ b/project.ptx @@ -1,64 +1,27 @@ - - - html - pretext/source/main.ptx - pretext/publication-rs-for-all.xml - output/html - - - html - pretext/source/main.ptx - pretext/publication-rs-academy.xml - published/main - - - epub - pretext/source/main.ptx - pretext/publication-pub.xml - published/epub - - - latex - pretext/source/main.ptx - pretext/publication-rs-for-all.xml - output/latex - - - pdf - pretext/source/main.ptx - pretext/publication-rs-for-all.xml - output/pdf - - - html - pretext/source/main.ptx - publication/publication.ptx - output/subset - - - ch-first + + + + - - latex - pdflatex - xelatex - pdf2svg - asy - sage - convert - pdftops - pdf-crop-margins - pageres - node - file2brl - - +
    \ No newline at end of file diff --git a/pretext/publication-rs-academy.xml b/publication/publication-rs-academy.xml similarity index 100% rename from pretext/publication-rs-academy.xml rename to publication/publication-rs-academy.xml diff --git a/pretext/publication-rs-for-all.xml b/publication/publication-rs-for-all.xml similarity index 100% rename from pretext/publication-rs-for-all.xml rename to publication/publication-rs-for-all.xml diff --git a/pretext/Figures/somerights20.png b/source/Figures/somerights20.png similarity index 100% rename from pretext/Figures/somerights20.png rename to source/Figures/somerights20.png diff --git a/source/GenFigs/somerights20.png b/source/GenFigs/somerights20.png new file mode 100644 index 0000000000000000000000000000000000000000..a66f4d1a010e16aacf1a8538fd0e624a5c0d2586 GIT binary patch literal 958 zcmV;v13~g(}02g#pPE-H?|NsC0|NsC0|NsC0|NsC0|NsC00OmmE zUH||B+(|@1RCwC7mg|*X@f!!V?^D@c`2xR=E3 zGPlAObS8I&JR3Q2cXAEBzZGm;&_-`xNPf&{BX5#7@cljbk-0+>d@X{_2cUo@VF8yc<~PWWbx_*z?13} z*XA&&T>b*Qdc0X&6q{gPl`Y1@%-X(&l+Oqg(Hg$G33pAQaqn4KKFQ3YPNKP_Az^0(rv7>;@paPO}BAR zH|N!FU_39b6!jt9hF=xGue^z{VYxg+sdrUPZ%)kLm-J@x;(Da94=v*?lF8Ml&^MKL zKknY))O1YgW+20vc7JJWX{h(2hW-XyGA|nve8?g!2iH$9uA`UUX4h$?Ycq~&}>b-&O0!mDD zs55j}gL!H*4Gb;lRLja7xi-GZQCkTx?i}1^3EVQy+zl)VjI)?lu+2;u&fu~#N4Vh? zED5Y;K?Vo=S~Ed5EAXuV$C$wQN=jBV$%?YFe7(d+lcFn_go4XpcIhE2#$}Pfakqjb zGzNx2Nn2T&BO0AQD3-i61{Q<7SW$Uwzm*kbWsYc*iMwJL;CvGsAEjMnvm%2-tQ3cI zl@>5;v2nJ-z_;X8q%|vWm7!ccjsYg`37f_Cj|pN-OvH$JK^T8&rlw~y?`* gT;BX$f&3F-0A)C#*)>-;h5!Hn07*qoM6N<$f;NiBjQ{`u literal 0 HcmV?d00001 diff --git a/pretext/source/ch_10_moredocumentation.ptx b/source/ch_10_moredocumentation.ptx similarity index 100% rename from pretext/source/ch_10_moredocumentation.ptx rename to source/ch_10_moredocumentation.ptx diff --git a/pretext/source/ch_1_introduction.ptx b/source/ch_1_introduction.ptx similarity index 100% rename from pretext/source/ch_1_introduction.ptx rename to source/ch_1_introduction.ptx diff --git a/pretext/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx similarity index 100% rename from pretext/source/ch_2_whylearnjava.ptx rename to source/ch_2_whylearnjava.ptx diff --git a/pretext/source/ch_3_firstjavaprogram.ptx b/source/ch_3_firstjavaprogram.ptx similarity index 100% rename from pretext/source/ch_3_firstjavaprogram.ptx rename to source/ch_3_firstjavaprogram.ptx diff --git a/pretext/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx similarity index 100% rename from pretext/source/ch_4_javadatatypes.ptx rename to source/ch_4_javadatatypes.ptx diff --git a/pretext/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx similarity index 100% rename from pretext/source/ch_5_conditionals.ptx rename to source/ch_5_conditionals.ptx diff --git a/pretext/source/ch_6_loopsanditeration.ptx b/source/ch_6_loopsanditeration.ptx similarity index 100% rename from pretext/source/ch_6_loopsanditeration.ptx rename to source/ch_6_loopsanditeration.ptx diff --git a/pretext/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx similarity index 100% rename from pretext/source/ch_7_definingclasses.ptx rename to source/ch_7_definingclasses.ptx diff --git a/pretext/source/ch_8_namingconventions.ptx b/source/ch_8_namingconventions.ptx similarity index 100% rename from pretext/source/ch_8_namingconventions.ptx rename to source/ch_8_namingconventions.ptx diff --git a/pretext/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx similarity index 100% rename from pretext/source/ch_9_commonmistakes.ptx rename to source/ch_9_commonmistakes.ptx diff --git a/pretext/source/main.ptx b/source/main.ptx similarity index 100% rename from pretext/source/main.ptx rename to source/main.ptx diff --git a/pretext/source/meta_backmatter.ptx b/source/meta_backmatter.ptx similarity index 100% rename from pretext/source/meta_backmatter.ptx rename to source/meta_backmatter.ptx diff --git a/pretext/source/meta_bookinfo.ptx b/source/meta_bookinfo.ptx similarity index 100% rename from pretext/source/meta_bookinfo.ptx rename to source/meta_bookinfo.ptx diff --git a/pretext/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx similarity index 97% rename from pretext/source/meta_frontmatter.ptx rename to source/meta_frontmatter.ptx index bb81025..45541ef 100644 --- a/pretext/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -37,7 +37,7 @@

    Brad Miller bmiller@luther.edu January, 2008

    -

    +

    This work is licensed under a Creative Commons Attribution 3.0 United States License. See http://creativecommons.org

    diff --git a/pretext/rs-substitutes.xml b/source/rs-substitutes.xml similarity index 100% rename from pretext/rs-substitutes.xml rename to source/rs-substitutes.xml diff --git a/pretext/source/toctree.ptx b/source/toctree.ptx similarity index 100% rename from pretext/source/toctree.ptx rename to source/toctree.ptx From 088accf906db95df1032b3f0586cd065599a9b93 Mon Sep 17 00:00:00 2001 From: moisedk Date: Mon, 12 May 2025 12:12:48 -0400 Subject: [PATCH 038/448] Updated index page and removed unnecessary path begining from main.ptx --- publication/publication-rs-academy.xml | 2 ++ publication/publication-rs-for-all.xml | 2 ++ source/main.ptx | 6 +++--- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/publication/publication-rs-academy.xml b/publication/publication-rs-academy.xml index 1d9a777..c8cece1 100644 --- a/publication/publication-rs-academy.xml +++ b/publication/publication-rs-academy.xml @@ -26,6 +26,8 @@ along with PreTeXt. If not, see . + diff --git a/publication/publication-rs-for-all.xml b/publication/publication-rs-for-all.xml index 85a341a..7860b0f 100644 --- a/publication/publication-rs-for-all.xml +++ b/publication/publication-rs-for-all.xml @@ -5,6 +5,8 @@ + diff --git a/source/main.ptx b/source/main.ptx index fa717b4..8231d39 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -4,9 +4,9 @@ Java For Python Programmer The PreTeXt Interactive Edition - - - + + + From 5e675e7a52f6d604f41d8e9bddff170e6069720c Mon Sep 17 00:00:00 2001 From: moisedk Date: Wed, 14 May 2025 14:50:31 -0400 Subject: [PATCH 039/448] Removed stringparam element from publication file --- publication/publication-rs-academy.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/publication/publication-rs-academy.xml b/publication/publication-rs-academy.xml index c8cece1..9df1d85 100644 --- a/publication/publication-rs-academy.xml +++ b/publication/publication-rs-academy.xml @@ -28,9 +28,7 @@ along with PreTeXt. If not, see . - - - + From b9ffc86fad5ec6a0a49cafd53aab7eb09d4ffabc Mon Sep 17 00:00:00 2001 From: moisedk Date: Sun, 6 Jul 2025 04:49:50 -0400 Subject: [PATCH 040/448] Replace program/input with proram/code --- source/ch_3_firstjavaprogram.ptx | 36 +++++------ source/ch_4_javadatatypes.ptx | 28 ++++----- source/ch_5_conditionals.ptx | 16 ++--- source/ch_7_definingclasses.ptx | 100 +++++++++++++++---------------- 4 files changed, 90 insertions(+), 90 deletions(-) diff --git a/source/ch_3_firstjavaprogram.ptx b/source/ch_3_firstjavaprogram.ptx index 3f5ac78..b6717f5 100644 --- a/source/ch_3_firstjavaprogram.ptx +++ b/source/ch_3_firstjavaprogram.ptx @@ -16,7 +16,7 @@ >>>

    Now lets look at the same program written in Java:

    - + public class Hello { public static void main(String[] args) { @@ -24,7 +24,7 @@ public class Hello { } } - + @@ -50,12 +50,12 @@ public class Hello { define in the file. Once we have saved the file we compile it from the command line as follows:

    - + $ javac Hello.java $ ls -l Hello.* -rw-r--r-- 1 bmiller bmiller 391 Jul 19 17:47 Hello.class -rw-r--r-- 1 bmiller bmiller 117 Jul 19 17:46 Hello.java - +

    The command javac compiles our java source code into compiled byte code and saves it in a file called Hello.class. Hello.class is a @@ -66,11 +66,11 @@ $ ls -l Hello.*

    Now that we have compiled our java source code we can run the compiled code using the java command.

    - + $ java Hello Hello World! $ - +

    Now you may be wondering what good is that extra step? What does compiling do for us? There are a couple of important benefits we get @@ -116,9 +116,9 @@ $ rules are applied. On line 1 we see that we are declaring a class called Hello:

    - + public class Hello { - +

    As rule 1 says all Java code resides inside a class. Unlike Python where a program can simply be a bunch of statements in a file, @@ -132,9 +132,9 @@ public class Hello {

    On the next line we start our method definition. The name of this method is:

    - + public static void main(String[] args) - +

    Everything on this line is significant, and helps in the identification of this method. For example the following lines look similar but are in @@ -207,9 +207,9 @@ public static void main(String[] args)

    That is a lot of new material to digest in only a single line of Java! Lets press on and look at the next line:

    - + System.out.println("Hello World!"); - +

    This line should look a bit more familiar to you. Python and Java both use the dot notation for @@ -233,7 +233,7 @@ System.out.println("Hello World!"); statements are all legal and equivalent. I would not encourage you to write your code like this, but you should know that it is legal.

    - + System.out.println("Hello World"); System.out.println("Hello World") ; @@ -245,7 +245,7 @@ System. out. println("Hello World") ; - +

    The last two lines of the hello world program simply close the two blocks using }. The first or outer block is the class definition. The second or @@ -253,12 +253,12 @@ System.

    If we wanted to translate the Java back to Python we would have something like the following class definition.

    - + class Hello(object): @staticmethod def main(args): print("Hello World!") - +

    Notice that we used the decorator @staticmethod to tell the Python interpreter that main is going to be a static method. The impact of @@ -266,10 +266,10 @@ class Hello(object): first parameter of the main method! Using this definition we can call the main method in a Python session like this:

    - + >>> Hello.main("") Hello World! >>> - +
    diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index c5b03f6..537d43a 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -79,14 +79,14 @@ temperature to Celsius. If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook.

    - + def main(): fahr = int(input("Enter the temperature in F: ")) cel = (fahr - 32) * 5.0/9.0 print("the temperature in C is: ", cel) main() - + @@ -94,7 +94,7 @@ main()

    Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook.

    - + import java.util.Scanner; public class TempConv { @@ -111,7 +111,7 @@ public class TempConv { System.out.println("The temperature in C is: " + cel); } } - + @@ -496,7 +496,7 @@ location: class TempConv The data file we will use has one number between 0 and 9 on each line of the file. Here is a simple Python program that creates and prints a histogram.

    - + def main(): count = [0]*10 data = open('test.dat') @@ -510,7 +510,7 @@ def main(): idx += 1 main() - + @@ -584,7 +584,7 @@ main()

    Here is the Java code needed to write the exact same program:

    - + import java.util.Scanner; import java.util.ArrayList; import java.io.File; @@ -623,7 +623,7 @@ public class Histo { } } } - + @@ -750,7 +750,7 @@ catch (Exception e) { an array declared in the ‘Hello World’ program. Lets rewrite this program to use primitive arrays rather than array lists.

    - + import java.util.Scanner; import java.io.File; import java.io.IOException; @@ -782,7 +782,7 @@ public class HistoArray { } } } - + @@ -807,7 +807,7 @@ public class HistoArray { will count the frequency of words in a document. A simple Python program for this job could look like this:

    - + def main(): data = open('alice30.txt') wordList = data.read().split() @@ -821,7 +821,7 @@ def main(): print("%-20s occurred %4d times" % (k, count[k])) main() - + @@ -844,7 +844,7 @@ say.)

    Notice that the structure of the program is very similar to the numeric histogram program.

    - + import java.util.Scanner; import java.util.ArrayList; import java.io.File; @@ -885,7 +885,7 @@ public class HistoMap { } } } - + diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index 6853f66..40aac8b 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -50,7 +50,7 @@ else: functionality of an elif statement by nesting if and else. Here is a simple example in both Python and Java.

    - + grade = int(input('enter a grade')) if grade < 60: print('F') @@ -62,7 +62,7 @@ elif grade < 90: print('B') else: print('A') - + @@ -70,7 +70,7 @@ else:

    In Java we have a couple of ways to write this

    - + public class ElseIf { public static void main(String args[]) { int grade = 85; @@ -94,7 +94,7 @@ public class ElseIf { } } } - + @@ -105,7 +105,7 @@ public class ElseIf { braces. Since the if is the only statement used in each else we can get away with the following.

    - + public class ElseIf { public static void main(String args[]) { int grade = 85; @@ -120,7 +120,7 @@ public class ElseIf { } else System.out.println('A'); } } - + @@ -133,7 +133,7 @@ public class ElseIf { elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following:

    - + public class SwitchUp { public static void main(String args[]) { int grade = 85; @@ -158,7 +158,7 @@ public class SwitchUp { } } } - + diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 31eed84..16a9559 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -37,7 +37,7 @@

    Here is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section:

    - + class Fraction: def __init__(self, num, den): """ @@ -103,7 +103,7 @@ def gcd(m, n): return n print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) - + @@ -121,21 +121,21 @@ print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) begin looking at the code that uses them. With that in mind the first part of the Fraction class definition is as follows:

    - + public class Fraction { private Integer numerator; private Integer denominator; } - +

    Notice that we have declared the numerator and denominator to be private. This means that the compiler will generate an error if another method tries to write code like the following:

    - + Fraction f = new Fraction(1,2); Integer y = f.numerator * 10; - +

    Direct access to instance variables is not allowed. Therefore if we legitimately want to be able to access information such as the numerator @@ -143,7 +143,7 @@ Integer y = f.numerator * 10; It is very common programming practice to provide getter and setter methods for instance variables in Java.

    - + public Integer getNumerator() { return numerator; } @@ -159,7 +159,7 @@ public Integer getDenominator() { public void setDenominator(Integer denominator) { this.denominator = denominator; } - + @@ -171,12 +171,12 @@ public void setDenominator(Integer denominator) { class and has no return type is a constructor. Our constructor will take two parameters: the numerator and the denominator.

    - + public Fraction(Integer top, Integer bottom) { num = top; den = bottom; } - +

    There are a couple of important things to notice here. First, you will notice that the constructor does not have a self parameter. You will @@ -190,12 +190,12 @@ public Fraction(Integer top, Integer bottom) { the Fraction constructor uses this to differentiate between parameters and instance variables.

    - + public Fraction(Integer num, Integer den) { this.num = num; this.den = den; } - +
    @@ -207,7 +207,7 @@ public Fraction(Integer num, Integer den) {

    A point of terminology: Python has both “functions” (def outside a class) and “methods” (def inside a class). Since Java requires all code to be inside classes, it only has “methods.” Those from a C++ background might refer to methods as “member functions.”

    Let’s begin by implementing addition in Java:

    - + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + this.denominator * otherFrac.getNumerator(); @@ -215,7 +215,7 @@ public Fraction add(Fraction otherFrac) { Integer common = gcd(newNum, newDen); return new Fraction(newNum/common, newDen/common); } - +

    First you will notice that the add method is declared as public Fraction The public part means that any other method may @@ -223,7 +223,7 @@ public Fraction add(Fraction otherFrac) { return a fraction as its result.

    Second, you will notice that the method makes use of the this variable. In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. So this version of the code is equivalent:

    - + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * numerator + denominator * otherFrac.getNumerator(); @@ -231,7 +231,7 @@ public Fraction add(Fraction otherFrac) { Integer common = gcd(newNum, newDen); return new Fraction(newNum/common, newDen/common); } - +

    The addition takes place by multiplying each numerator by the opposite denominator before adding. This procedure ensures that we are adding two @@ -273,7 +273,7 @@ public Fraction add(Fraction otherFrac) { add the two Fractions together. The new methods that accomplish this task are as follows:

    - + public Fraction(Integer num) { this.numerator = num; this.denominator = 1; @@ -282,7 +282,7 @@ public Fraction(Integer num) { public Fraction add(Integer other) { return add(new Fraction(other)); } - +

    Notice that the overloading approach can provide us with a certain elegance to our code. Rather than utilizing if statements to check the @@ -293,7 +293,7 @@ public Fraction add(Integer other) {

    Our full Fraction class to this point would look like the following. You should compile and run the program to see what happens.

    - + public class Fraction { private Integer numerator; @@ -345,7 +345,7 @@ public class Fraction { } } - + @@ -358,9 +358,9 @@ public class Fraction {

    If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like this:

    - + Fraction@6ff3c5b5 - +

    The reason is that we have not yet provided a friendly string representation for our Fraction objects. Just like in @@ -430,11 +430,11 @@ Fraction@6ff3c5b5 nicer we will implement the toString method for the Fraction class. A simple version of the method is provided below.

    - + public String toString() { return numerator.toString() + "/" + denominator.toString(); } - +

    The other important class for us to implement from the list of methods inherited from Object is the equals method. In Java, when two objects are compared using the == operator they are tested to see if they are exactly the same object (that is, do the two objects occupy the same @@ -443,19 +443,19 @@ public String toString() { However it is important to remember that since Java does not have operator overloading if you want to use your equals method you must call it directly. Therefore once you write your own equals method:

    - + object1 == object2 - +

    is NOT the same as

    - + object1.equals(object2) - +

    Here is an equals method for the Fraction class:

    - + public boolean equals(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); @@ -464,7 +464,7 @@ public boolean equals(Fraction other) { else return false; } - +

    One important thing to remember about equals is that it only checks to see if two objects are equal – it does not have any notion of less than @@ -485,11 +485,11 @@ public boolean equals(Fraction other) { trace this power back to the strong typing nature of Java.

    Here is code that makes the Fraction class a child of Number:

    - + public class Fraction extends Number { ... } - +

    The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. A child @@ -523,7 +523,7 @@ public class Fraction extends Number {

    This really isn’t much work for us to implement these methods, as all we have to do is some type conversion and some division:

    - + public double doubleValue() { return numerator.doubleValue() / denominator.doubleValue(); } @@ -542,7 +542,7 @@ public int intValue() { public long longValue() { return numerator.longValue() / denominator.longValue(); } - +

    By having the Fraction class extend the Number class we can now pass a Fraction to any Java method that specifies it can receive a @@ -563,11 +563,11 @@ public long longValue() { doubleValue.

    Suppose you try to define a method as follows:

    - + public void test(Number a, Number b) { a.add(b); } - +

    The Java compiler would give an error because add is not a defined method of the Number class. You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add).

    @@ -597,7 +597,7 @@ public void test(Number a, Number b) {

    The Comparable interface says that any object that claims to be Comparable must implement the compareTo method. Here is an excerpt from the official documentation for the compareTo method as specified by the Comparable interface.

    - + int compareTo(T o) Compares this object with the specified object for order. Returns a @@ -608,28 +608,28 @@ all x and y. (This implies that x.compareTo(y) must throw an exception iff y.compareTo(x) throws an exception.) ... - +

    To make our Fraction class Comparable we must modify the class declaration line as follows:

    - + public class Fraction extends Number implements Comparable<Fraction> { ... } - +

    The specification Comparable<Fraction> makes it clear that Fraction is only comparable with another Fraction. The compareTo method could be implemented as follows:

    - + public int compareTo(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); return num1 - num2; } - +
    @@ -640,7 +640,7 @@ public int compareTo(Fraction other) { right way to do it is to use a static variable. In Python we could do this as follows:

    - + class Student: numStudents = 0 @@ -656,7 +656,7 @@ def main(): print('Number of students:', Student.numStudents) main() - + @@ -664,7 +664,7 @@ main()

    In Java we would write this same example using a static declaration.

    - + public class Student { public static Integer numStudents = 0; @@ -685,7 +685,7 @@ public class Student { System.out.println("Number of students: "+Student.numStudents.toString()); } } - + @@ -706,7 +706,7 @@ public class Student { be a static method of the class. Furthermore, since we are only going to use this gcd method for our own purposes we can make it private.

    - + private static Integer gcd(Integer m, Integer n) { while (m % n != 0) { Integer oldm = m; @@ -716,14 +716,14 @@ private static Integer gcd(Integer m, Integer n) { } return n; } - +
    Full Implementation of the Fraction Class

    Here is a final version of the Fraction class in Java, which includes all the features we discussed:

    - + import java.util.ArrayList; import java.util.Collections; @@ -837,7 +837,7 @@ public class Fraction extends Number implements Comparable<Fraction> { } } - + From 2e939957d52c1132840f4f39d24d3f6e5108ad52 Mon Sep 17 00:00:00 2001 From: moisedk Date: Sun, 6 Jul 2025 06:01:39 -0400 Subject: [PATCH 041/448] Fix divisions. section->chapter, subsection->section, subsubsection->subsection --- source/ch_10_moredocumentation.ptx | 4 +-- source/ch_1_introduction.ptx | 4 +-- source/ch_2_whylearnjava.ptx | 8 +++--- source/ch_3_firstjavaprogram.ptx | 4 +-- source/ch_4_javadatatypes.ptx | 36 ++++++++++++------------ source/ch_5_conditionals.ptx | 24 ++++++++-------- source/ch_6_loopsanditeration.ptx | 12 ++++---- source/ch_7_definingclasses.ptx | 44 +++++++++++++++--------------- source/ch_8_namingconventions.ptx | 4 +-- source/ch_9_commonmistakes.ptx | 24 ++++++++-------- source/toctree.ptx | 4 +-- 11 files changed, 84 insertions(+), 84 deletions(-) diff --git a/source/ch_10_moredocumentation.ptx b/source/ch_10_moredocumentation.ptx index 738a257..bc67007 100644 --- a/source/ch_10_moredocumentation.ptx +++ b/source/ch_10_moredocumentation.ptx @@ -1,6 +1,6 @@ -
    + Java Documentation

    All Java class libraries are documented and available online. Here are two good resources for you to use:

    @@ -46,4 +46,4 @@ the class is implemented. This encourages Java programmers to do a good job of documenting their code, while providing a user friendly way to read the documentation without looking at the code directly.

    -
    + diff --git a/source/ch_1_introduction.ptx b/source/ch_1_introduction.ptx index fc9ff5d..d469619 100644 --- a/source/ch_1_introduction.ptx +++ b/source/ch_1_introduction.ptx @@ -1,6 +1,6 @@ -
    + Introduction

    This book assumes that you are already familiar with the Python programming language. We will use @@ -52,4 +52,4 @@

    Please note that this book is a work in progress. I will continue to update and post new versions.

    -
    + diff --git a/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx index f9bc7d4..4afa583 100644 --- a/source/ch_2_whylearnjava.ptx +++ b/source/ch_2_whylearnjava.ptx @@ -1,6 +1,6 @@ -
    + Why Learn another programming Language?

    Python is a nice language for beginning programming for several reasons. @@ -33,7 +33,7 @@ conditionals, functions. And there are some features that are unique. If you know what is common in languages that is a good place to start.

    - +
    Why Learn Java? Why not C or C++?

    It is easier to learn to create interesting programs in Java than in C or C++, for several reasons:

    @@ -55,5 +55,5 @@

    Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). So native language performance is just one criteria to consider when deciding which language to use for a program.

    - -
    +
    + diff --git a/source/ch_3_firstjavaprogram.ptx b/source/ch_3_firstjavaprogram.ptx index b6717f5..668d7ec 100644 --- a/source/ch_3_firstjavaprogram.ptx +++ b/source/ch_3_firstjavaprogram.ptx @@ -1,6 +1,6 @@ -
    + Lets look at a Java Program

    A time-honored tradition in Computer Science is to write a program called “hello world.” The “hello world” program is simple and easy. @@ -272,4 +272,4 @@ Hello World! >>> -

    + diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index 537d43a..b0b1fe1 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -1,11 +1,11 @@ -
    + Java Data Types - +
    Numeric

    One of the great things about Python is that all of the basic data types are objects. Integers are objects, floating point numbers are objects, @@ -133,7 +133,7 @@ public class TempConv {

    - + Import

    In Java, you can use any class that is available without having to import the class, subject to two very important conditions:

    @@ -196,8 +196,8 @@ public class TempConv { Remove the import statement and change the string Scanner to java.util.Scanner in the rest of the code. The program should still compile and run.

    -
    - + + Declaring Variables

    Here is where we run into one of the most important differences between Java and Python. Python is a dynamically typed language. In a @@ -240,8 +240,8 @@ location: class TempConv your variable is going to reference and then you must declare that variable before you use it. There is much more to say about the static typing of Java, but for now this is enough.

    -
    - + + Input / Output / Scanner

    In the previous section we created a Scanner object. In Java, Scanner objects make getting input from the user, a file, or even @@ -373,9 +373,9 @@ location: class TempConv

    - - - + + +
    String

    Strings in Java and Python are quite similar. Like Python, Java strings are immutable. However, manipulating strings in Java is not quite as @@ -489,8 +489,8 @@ location: class TempConv - - +

    +
    List

    Next, let’s look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. The data file we will use has one number between 0 and 9 on each line of the file. @@ -739,8 +739,8 @@ catch (Exception e) { the ArrayList. If you tried the experiment of removing the <Integer> part of the ArrayList declaration you probably noticed that you had an error on this line. Why?

    - - +
    +
    Arrays

    As I said at the outset of this section, we are going to use Java ArrayLists because they are easier to use and more closely match the @@ -793,8 +793,8 @@ public class HistoArray { short arrays directly using the syntax shown on line 8. Then notice that on line 22 we can use the square bracket notation to index into an array.

    - - +
    +
    Dictionary

    Just as Python provides the dictionary when we want to have easy access to key-value pairs, Java also provides us a similar mechanism. Rather @@ -892,5 +892,5 @@ public class HistoMap {

    Improve the program above to remove the punctuation.

    - -
    + + diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index 40aac8b..1a7fb8b 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -1,12 +1,12 @@ -
    + Conditionals

    Conditional statements in Python and Java are very similar. In Python we have three patterns:

    - +
    Simple if
    if condition:
         statement1
    @@ -22,8 +22,8 @@
                     rather than indentation. In Java the parenthesis around the condition
                     are required because if is technically a function that evaluates to True
                     or False.

    - - +
    +
    if else
    if condition:
         statement1
    @@ -43,8 +43,8 @@ else:
         statement2
         ...
     }
    - - +
    +
    elif

    Java does not have an elif pattern like Python. In Java you can get the functionality of an elif statement by nesting if and else. Here is a @@ -126,8 +126,8 @@ public class ElseIf { - - +

    +
    switch

    Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade @@ -172,8 +172,8 @@ public class SwitchUp { the next alternative will be automatically executed. For example if the grade was 95 and the break was omitted from the case 9: alternative then the program would print(out both A and B.)

    - - +
    +
    Boolean Operators

    The conditionals used in the if statement can be boolean variables, simple comparisons, and compound boolean expressions.

    @@ -186,5 +186,5 @@ public class SwitchUp { of 3*x-1. Of course all of this could have been accomplished using a regular if else statement, but sometimes the convenience of a single statement is too much to resist.

    - -
    +
    + diff --git a/source/ch_6_loopsanditeration.ptx b/source/ch_6_loopsanditeration.ptx index 897e3b9..589cac4 100644 --- a/source/ch_6_loopsanditeration.ptx +++ b/source/ch_6_loopsanditeration.ptx @@ -1,13 +1,13 @@ -
    + Loops and Iteration

    You have already seen a couple of examples of iteration and looping in Java. So this section will just serve as a reference for the differences in Syntax.

    - +
    Definite Loop

    In Python the easiest way to write a definite loop is using the for loop in conjunction with the range function. For example:

    @@ -63,8 +63,8 @@ for(int i : l) { for (char c : t.toCharArray()) { System.out.println(c); } - - +
    +
    Indefinite Loops

    Both Python and Java support the while loop. Recall that in Python the while loop is written as:

    @@ -89,5 +89,5 @@ for (char c : t.toCharArray()) { statement2 ... } while (condition); - -
    +
    + diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 16a9559..94dfb66 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -1,6 +1,6 @@ -
    + Defining Classes in Java

    You have already seen how to define classes in Java. It’s unavoidable for @@ -162,7 +162,7 @@ public void setDenominator(Integer denominator) { - +

    Writing a constructor

    Once you have identified the instance variables for your class the next thing to consider is the constructor. In Java, constructors have the @@ -197,8 +197,8 @@ public Fraction(Integer num, Integer den) { } - - +

    +
    Methods

    Now we come to one of the major differences between Java and Python. The Python class definition used the special methods for addition and @@ -244,7 +244,7 @@ public Fraction add(Fraction otherFrac) { match the value that is specified as part of the declaration. So, in this case the return value on line 8 must match the declared value on line 1.

    - + Method Signatures and Overloading

    Our specification for this project said that we need to be able to add a Fraction to an Integer. In Python we can do this by checking the @@ -351,9 +351,9 @@ public class Fraction { - - - + +

    +
    Inheritance

    If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like this:

    @@ -368,7 +368,7 @@ Fraction@6ff3c5b5 be converted to string format. In Python you can control how that looks by writing an __str__ method for your class. If you do not then you will get the default, which looks something like the above.

    - + The <c>Object</c> Class

    In Java, the equivalent of __str__ is the toString method. Every object in Java already has a toString method defined for it because @@ -469,8 +469,8 @@ public boolean equals(Fraction other) {

    One important thing to remember about equals is that it only checks to see if two objects are equal – it does not have any notion of less than or greater than. We’ll see more about that shortly.

    -
    - + + Abstract Classes and Methods

    If we want to make our Fraction class behave like Integer, Double, and the other numeric classes in Java then we need to make a couple of additional @@ -571,9 +571,9 @@ public void test(Number a, Number b) {

    The Java compiler would give an error because add is not a defined method of the Number class. You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add).

    -
    - - + +
    +
    Interfaces

    Lets turn our attention to making a list of fractions sortable by the standard Java sorting method Collections.sort. In Python, we would just need to implement the __cmp__ method. But in Java we @@ -631,8 +631,8 @@ public int compareTo(Fraction other) { } - - +

    +
    Static member variables

    Suppose that you wanted to write a Student class so that the class could keep track of the number of students it had created. Although you could @@ -695,8 +695,8 @@ public class Student { the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python.

    - - +
    +
    Static Methods

    We have already discussed the most common static method of all, main. However in our Fraction class we also implemented a method to @@ -718,8 +718,8 @@ private static Integer gcd(Integer m, Integer n) { } - - +

    +
    Full Implementation of the Fraction Class

    Here is a final version of the Fraction class in Java, which includes all the features we discussed:

    @@ -843,5 +843,5 @@ public class Fraction extends Number implements Comparable<Fraction> { - -
    +
    + diff --git a/source/ch_8_namingconventions.ptx b/source/ch_8_namingconventions.ptx index f410bdb..b47ba36 100644 --- a/source/ch_8_namingconventions.ptx +++ b/source/ch_8_namingconventions.ptx @@ -1,6 +1,6 @@ -
    + Naming Conventions

    Java has some very handy naming conventions.

    @@ -22,4 +22,4 @@

    -
    + diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index cd39464..04d24a1 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -1,27 +1,27 @@ -
    + Common Mistakes - +
    Forgetting to declare your variables
    Histo.java:21: cannot find symbol
     symbol  : variable count
     location: class Histo
         count = new ArrayList<Integer>(10);
         ^
    - - +
    +
    Not importing a class
    Histo.java:9: cannot find symbol
     symbol  : class Scanner
     location: class Histo
         Scanner data = null;
         ^
    - - +
    +
    Forgetting to use the new keyword to create an object

    Here’s an example of the error message that occurs when you forget to use the new keyword. Notice that the message is pretty unhelpful. @@ -33,17 +33,17 @@ symbol : method Scanner(java.io.File) location: class Histo data = Scanner(new File("test.dat")); ^ - - +

    +
    Forgetting a Semicolon
    Histo.java:19:
     ';' expected
         System.exit(0);
         ^
    - - +
    +
    Forgetting to declare the kind of object in a container
    Note: Histo.java uses unchecked or unsafe operations. Note:
     Recompile with -Xlint:unchecked for details.
    - -
    +
    + diff --git a/source/toctree.ptx b/source/toctree.ptx index 97f28ba..60fac2f 100644 --- a/source/toctree.ptx +++ b/source/toctree.ptx @@ -1,6 +1,6 @@ - + --> From 03923e19a142107f438123425a3bcb53a2505bbc Mon Sep 17 00:00:00 2001 From: moisedk Date: Sun, 6 Jul 2025 06:07:29 -0400 Subject: [PATCH 042/448] Formatted all chapter files --- source/ch_10_moredocumentation.ptx | 120 ++- source/ch_1_introduction.ptx | 129 ++- source/ch_2_whylearnjava.ptx | 144 +-- source/ch_3_firstjavaprogram.ptx | 528 ++++++----- source/ch_4_javadatatypes.ptx | 1304 ++++++++++++---------------- source/ch_5_conditionals.ptx | 215 +++-- source/ch_6_loopsanditeration.ptx | 188 ++-- source/ch_7_definingclasses.ptx | 1103 ++++++++++++----------- source/ch_8_namingconventions.ptx | 60 +- source/ch_9_commonmistakes.ptx | 89 +- source/main.ptx | 40 +- source/meta_backmatter.ptx | 62 +- source/meta_bookinfo.ptx | 13 +- source/meta_frontmatter.ptx | 79 +- 14 files changed, 2052 insertions(+), 2022 deletions(-) diff --git a/source/ch_10_moredocumentation.ptx b/source/ch_10_moredocumentation.ptx index bc67007..942fd2d 100644 --- a/source/ch_10_moredocumentation.ptx +++ b/source/ch_10_moredocumentation.ptx @@ -1,49 +1,77 @@ + - Java Documentation -

    All Java class libraries are documented and available online. Here are - two good resources for you to use:

    -

    -

      -
    • -

      JavaDoc The Javadoconline website - provides a nice searchable interface. Search for a classname and you - will get the documentation you are looking for.

      -
    • -
    • -

      JavaAPI - contains the same information but in a browsable format. If you don’t - know the class name exactly this is a good way to see what is close.

      -
    • -
    -

    -

    In general the Javadoc page for any class contains information about:

    -

    -

      -
    • -

      Where this class falls in the class hierarchy. What classes are its - parents and what classes are its decendents.

      -
    • -
    • -

      A summary and some examples of using the class.

      -
    • -
    • -

      A summary listing of instance variables

      -
    • -
    • -

      A summary listing of Constructors

      -
    • -
    • -

      A summary listing of Methods

      -
    • -
    • -

      Detailed documentation on constructors and methods.

      -
    • -
    -

    -

    Typically the Javadoc pages are constructed from the source code where - the class is implemented. This encourages Java programmers to do a good - job of documenting their code, while providing a user friendly way to - read the documentation without looking at the code directly.

    -
    + Java Documentation + +

    + All Java class libraries are documented and available online. + Here are two good resources for you to use: +

    + +

    +

      +
    • +

      + JavaDoc The Javadoconline website provides a nice searchable interface. Search for a classname and you will get the documentation you are looking for. +

      +
    • + +
    • +

      + JavaAPI contains the same information but in a browsable format. If you don’t know the class name exactly this is a good way to see what is close. +

      +
    • +
    +

    + +

    + In general the Javadoc page for any class contains information about: +

    + +

    +

      +
    • +

      + Where this class falls in the class hierarchy. + What classes are its parents and what classes are its decendents. +

      +
    • + +
    • +

      + A summary and some examples of using the class. +

      +
    • + +
    • +

      + A summary listing of instance variables +

      +
    • + +
    • +

      + A summary listing of Constructors +

      +
    • + +
    • +

      + A summary listing of Methods +

      +
    • + +
    • +

      + Detailed documentation on constructors and methods. +

      +
    • +
    +

    + +

    + Typically the Javadoc pages are constructed from the source code where the class is implemented. + This encourages Java programmers to do a good job of documenting their code, while providing a user friendly way to read the documentation without looking at the code directly. +

    + \ No newline at end of file diff --git a/source/ch_1_introduction.ptx b/source/ch_1_introduction.ptx index d469619..0396762 100644 --- a/source/ch_1_introduction.ptx +++ b/source/ch_1_introduction.ptx @@ -1,55 +1,88 @@ + - Introduction -

    This book assumes that you are already familiar with the - Python programming language. We will use - Python as a starting point for our journey into - Java. We will begin by looking at a very simple - Java program, just to see what the language looks like and how we get a - program to run. Next, we will look at the main constructs that are - common to most programming languages:

    -
    + Introduction +

    -

      -
    • -

      Data Types

      -
    • -
    • -

      Loops

      -
    • -
    • -

      Reading user input

      -
    • -
    • -

      Conditionals

      -
    • -
    + This book assumes that you are already familiar with the Python programming language. + We will use Python as a starting point for our journey into Java. + We will begin by looking at a very simple Java program, just to see what the language looks like and how we get a program to run. + Next, we will look at the main constructs that are common to most programming languages:

    -
    -

    Once we have the basics of Java behind us we will move on to look at the - features of Java that are both unique and powerful.

    -
    + +
    +

    +

      +
    • +

      + Data Types +

      +
    • + +
    • +

      + Loops +

      +
    • + +
    • +

      + Reading user input +

      +
    • + +
    • +

      + Conditionals +

      +
    • +
    +

    +
    +

    -

      -
    • -

      Classes

      -
    • -
    • -

      Interfaces

      -
    • -
    • -

      Collections

      -
    • -
    • -

      Graphical User Interface Programming

      -
    • -
    • -

      Generic Programming

      -
    • -
    + Once we have the basics of Java behind us we will move on to look at the features of Java that are both unique and powerful.

    -
    -

    Please note that this book is a work in progress. I will continue to - update and post new versions.

    -
    + +
    +

    +

      +
    • +

      + Classes +

      +
    • + +
    • +

      + Interfaces +

      +
    • + +
    • +

      + Collections +

      +
    • + +
    • +

      + Graphical User Interface Programming +

      +
    • + +
    • +

      + Generic Programming +

      +
    • +
    +

    +
    + +

    + Please note that this book is a work in progress. + I will continue to update and post new versions. +

    + \ No newline at end of file diff --git a/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx index 4afa583..491d41e 100644 --- a/source/ch_2_whylearnjava.ptx +++ b/source/ch_2_whylearnjava.ptx @@ -1,59 +1,91 @@ + - Why Learn another programming Language? - -

    Python is a nice language for beginning programming for several reasons. - First the syntax is sparse, and clear. Second, the underlying model of - how objects and variables work is very consistent. Third, you can write - powerful and interesting programs without a lot of work. However, Python - is representative of one kind of language, called a dynamic language. - You might think of Python as being fairly informal. There are other - languages, like Java and C++ that are more formal.

    -

    These languages have some advantages of their own. First, is speed: Java - and C++ code will generally give better performance than Python code - 1. Second is their maintainability. A lot of what makes Python - easy to use is that you must remember certain things. For example if you - set variable x to reference a turtle, and forget later that x is - a turtle but try to invoke a string method on it, you will get an error. - Java and C++ protect you by forcing you to be upfront and formal about - the kind of object each variable is going to refer to.

    -

    In one sense Python is representative of a whole class of languages, - sometimes referred to as “scripting languages.” Other languages in the - same category as Python are Ruby and Perl. Java is representative of - what I will call industrial strength languages. Industrial strength - languages are good for projects with several people working on the - project where being formal and careful about what you do may impact lots - of other people. Languages in this category include Rust, C++, C#, and Ada.

    -

    Programming languages will always change. As the field of computer - science advances there will be new programming languages and you will - need to learn them. It is important to learn several programming - languages so that you know what to expect. There are certain features - that most programming languages have in common; variables, loops, - conditionals, functions. And there are some features that are unique. If - you know what is common in languages that is a good place to start.

    -
    -
    - Why Learn Java? Why not C or C++? -

    It is easier to learn to create interesting programs in Java than in C or C++, for several reasons:

    -

    -

      -
    • -

      Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. Java has over 4,000 different classes included in the Java 14 Standard Edition. We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester.

      -
    • -
    • -

      Java incorporates automatic garbage collection of memory, whereas C and C++ programs typically include some degree of manual memory management. This makes programming in those languages more challenging.

      -
    • -
    • -

      C++’s syntax is more complicated than Java’s, making it more difficult to learn. For example, C++ supports a feature called operator overloading, which makes it possible to change the behavior of operators like +. This can make it more difficult to understand what a C++ program is doing.

      -
    • -
    -

    -

    Certainly, C and C++ are important languages, and are worth learning. But for these and other reasons, we’ve decided to use Java for this course. Learning Java will be a good preparation for learning these and other languages!

    - Footnotes - - -

    Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). So native language performance is just one criteria to consider when deciding which language to use for a program.

    -
    -
    -
    + Why Learn another programming Language? + + +

    + Python is a nice language for beginning programming for several reasons. + First the syntax is sparse, and clear. + Second, the underlying model of how objects and variables work is very consistent. + Third, you can write powerful and interesting programs without a lot of work. + However, Python is representative of one kind of language, called a dynamic language. + You might think of Python as being fairly informal. + There are other languages, like Java and C++ that are more formal. +

    + +

    + These languages have some advantages of their own. + First, is speed: Java and C++ code will generally give better performance than Python code 1. + Second is their maintainability. + A lot of what makes Python easy to use is that you must remember certain things. + For example if you set variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. + Java and C++ protect you by forcing you to be upfront and formal about the kind of object each variable is going to refer to. +

    + +

    + In one sense Python is representative of a whole class of languages, sometimes referred to as “scripting languages.” Other languages in the same category as Python are Ruby and Perl. + Java is representative of what I will call industrial strength languages. + Industrial strength languages are good for projects with several people working on the project where being formal and careful about what you do may impact lots of other people. + Languages in this category include Rust, C++, C#, and Ada. +

    + +

    + Programming languages will always change. + As the field of computer science advances there will be new programming languages and you will need to learn them. + It is important to learn several programming languages so that you know what to expect. + There are certain features that most programming languages have in common; variables, loops, conditionals, functions. + And there are some features that are unique. + If you know what is common in languages that is a good place to start. +

    +
    + +
    + Why Learn Java? Why not C or C++? + +

    + It is easier to learn to create interesting programs in Java than in C or C++, for several reasons: +

    + +

    +

      +
    • +

      + Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. + Java has over 4,000 different classes included in the Java 14 Standard Edition. + We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester. +

      +
    • + +
    • +

      + Java incorporates automatic garbage collection of memory, whereas C and C++ programs typically include some degree of manual memory management. + This makes programming in those languages more challenging. +

      +
    • + +
    • +

      + C++’s syntax is more complicated than Java’s, making it more difficult to learn. + For example, C++ supports a feature called operator overloading, which makes it possible to change the behavior of operators like +. + This can make it more difficult to understand what a C++ program is doing. +

      +
    • +
    +

    + +

    + Certainly, C and C++ are important languages, and are worth learning. + But for these and other reasons, we’ve decided to use Java for this course. + Learning Java will be a good preparation for learning these and other languages! +

    + Footnotes +

    + Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. + This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). + So native language performance is just one criteria to consider when deciding which language to use for a program. +

    +
    +
    + \ No newline at end of file diff --git a/source/ch_3_firstjavaprogram.ptx b/source/ch_3_firstjavaprogram.ptx index 668d7ec..a925475 100644 --- a/source/ch_3_firstjavaprogram.ptx +++ b/source/ch_3_firstjavaprogram.ptx @@ -1,239 +1,280 @@ + - Lets look at a Java Program -

    A time-honored tradition in Computer Science is to write a program - called “hello world.” The “hello world” program is simple and easy. - There are no logic errors to make, so getting it to run relies only on - understanding the syntax. To be clear, lets look at a “complicated” - version of hello world for Python:

    -
    def main():
    -    print("Hello World!")
    -

    Remember that we can define this program right at the Python command - line and then run it:

    -
    >>> main()
    -"Hello World!"
    ->>>
    -

    Now lets look at the same program written in Java:

    - - -public class Hello { + Lets look at a Java Program + +

    + A time-honored tradition in Computer Science is to write a program called “hello world.” The “hello world” program is simple and easy. + There are no logic errors to make, so getting it to run relies only on understanding the syntax. + To be clear, lets look at a “complicated” version of hello world for Python: +

    + +
    def main(): print("Hello World!")
    +

    + Remember that we can define this program right at the Python command line and then run it: +

    + +
    >>> main() "Hello World!" >>>
    +

    + Now lets look at the same program written in Java: +

    + + + +public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } - } - - - - - - -

    What we see is that at the core there are a few similarities, such as a - main and the string “Hello World”. However, there is a lot more stuff - around the edges that make it harder to see the core of the program. Do - not worry! An important skill for a computer scientist is to learn what - to ignore and what to look at carefully. You will soon find that there - are some elements of Java that will fade into the background as you - become used to seeing them. One thing that will help you is to learn a - little bit about Java .

    -

    The first question you probably have about this little program is “How - do I run it?” Running a Java program is not as simple as running a - Python program. The first thing you need to do with a Java program is - compile it. The first big difference between Java and Python is that - Python is an interpreted language. We could run our Python programs in - the Python interpreter and we were quite happy to do that. Java - makes running programs a two step process. First we must type the hello - world program into a file and save that file using the name - Hello.java The file name must be the same as the public class you - define in the file. Once we have saved the file we compile it from - the command line as follows:

    - - + + + +

    + What we see is that at the core there are a few similarities, such as a main and the string “Hello World”. However, there is a lot more stuff around the edges that make it harder to see the core of the program. Do not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them. One thing that will help you is to learn a little bit about Java . +

    + +

    + The first question you probably have about this little program is “How do I run it?” Running a Java program is not as simple as running a Python program. The first thing you need to do with a Java program is compile it. The first big difference between Java and Python is that Python is an interpreted language. We could run our Python programs in the Python interpreter and we were quite happy to do that. Java makes running programs a two step process. First we must type the hello world program into a file and save that file using the name Hello.java The file name must be the same as the public class you define in the file. Once we have saved the file we compile it from the command line as follows: +

    + + + + $ javac Hello.java $ ls -l Hello.* -rw-r--r-- 1 bmiller bmiller 391 Jul 19 17:47 Hello.class -rw-r--r-- 1 bmiller bmiller 117 Jul 19 17:46 Hello.java - - -

    The command javac compiles our java source code into compiled byte - code and saves it in a file called Hello.class. Hello.class is a - binary file so you won’t learn much if you try to examine the class file - with an editor. Hopefully you didn’t make any mistakes, but if you did - you may want to consult the - section for helpful hints on compiler errors.

    -

    Now that we have compiled our java source code we can run the compiled - code using the java command.

    - - + + + +

    + The command javac compiles our java source code into compiled byte code and saves it in a file called Hello.class. + Hello.class is a binary file so you won’t learn much if you try to examine the class file with an editor. + Hopefully you didn’t make any mistakes, but if you did you may want to consult the section for helpful hints on compiler errors. +

    + +

    + Now that we have compiled our java source code we can run the compiled code using the java command. +

    + + + + $ java Hello Hello World! $ - - -

    Now you may be wondering what good is that extra step? What does - compiling do for us? There are a couple of important benefits we get - from compiling:

    -

    -

      -
    • -

      Early detection of errors

      -
    • -
    • -

      Faster program execution

      -
    • -
    -

    -

    The job of the compiler is to turn your java code into language that the - Java Virtual Machine (JVM) can understand. We call the code that the JVM - understands byte code. The JVM interprets the byte code much like - the Python interpreter interprets your Python. However since byte code - is much closer to the native language of the computer it can run faster.

    -

    When the compiler does the translation it can find many different kinds - of errors. For example, if you make a typo, the compiler will find the - typo and point it out to you before you ever run the program. We will - look at some examples of compiler errors shortly. Chances are you will - create some on your own very soon, too.

    -

    Now that we have run our hello world program, lets go back and look at - it carefully to see what we can learn about the Java language. This - simple example illustrates a few very important rules:

    -

    -

      -
    1. -

      Every Java program must define a class, and all code is inside a class

      -
    2. -
    3. -

      Everything in Java must have a type

      -
    4. -
    5. -

      Every Java program must have a function called - public static void main(String[] args)

      -
    6. -
    -

    -

    Lets take the hello world example a line at a time to see how these - rules are applied. On line 1 we see that we are declaring a class called - Hello:

    - - + + + +

    + Now you may be wondering what good is that extra step? What does compiling do for us? There are a couple of important benefits we get from compiling: +

    + +

    +

      +
    • +

      + Early detection of errors +

      +
    • + +
    • +

      + Faster program execution +

      +
    • +
    +

    + +

    + The job of the compiler is to turn your java code into language that the Java Virtual Machine (JVM) can understand. + We call the code that the JVM understands byte code. + The JVM interprets the byte code much like the Python interpreter interprets your Python. + However since byte code is much closer to the native language of the computer it can run faster. +

    + +

    + When the compiler does the translation it can find many different kinds of errors. + For example, if you make a typo, the compiler will find the typo and point it out to you before you ever run the program. + We will look at some examples of compiler errors shortly. + Chances are you will create some on your own very soon, too. +

    + +

    + Now that we have run our hello world program, lets go back and look at it carefully to see what we can learn about the Java language. + This simple example illustrates a few very important rules: +

    + +

    +

      +
    1. +

      + Every Java program must define a class, and all code is inside a class +

      +
    2. + +
    3. +

      + Everything in Java must have a type +

      +
    4. + +
    5. +

      + Every Java program must have a function called public static void main(String[] args) +

      +
    6. +
    +

    + +

    + Lets take the hello world example a line at a time to see how these rules are applied. + On line 1 we see that we are declaring a class called Hello: +

    + + + + public class Hello { - - -

    As rule 1 says all Java code resides inside a class. Unlike - Python where a program can simply be a bunch of statements in a file, - Java programs must be inside a class. So, we define a class Hello, - which is not a very useful class because it has no instance variables, and only one - method. You will also notice the curly brace {. In Java, blocks of - code are identified by pairs of curly braces. The block starts with a - { and ends with a }. You will notice that I indented my code - that followed the left brace, but in Java this is only done by - convention, it is not enforced.

    -

    On the next line we start our method definition. The name of this method - is:

    - - + + + +

    + As rule 1 says all Java code resides inside a class. + Unlike Python where a program can simply be a bunch of statements in a file, Java programs must be inside a class. + So, we define a class Hello, which is not a very useful class because it has no instance variables, and only one method. + You will also notice the curly brace {. + In Java, blocks of code are identified by pairs of curly braces. + The block starts with a { and ends with a }. + You will notice that I indented my code that followed the left brace, but in Java this is only done by convention, it is not enforced. +

    + +

    + On the next line we start our method definition. + The name of this method is: +

    + + + + public static void main(String[] args) - - -

    Everything on this line is significant, and helps in the identification - of this method. For example the following lines look similar but are in - fact treated by Java as completely different methods:

    -

    -

      -
    • -

      - public void main(String[] args) -

      -
    • -
    • -

      - public static void main(String args) -

      -
    • -
    • -

      - public static void main() -

      -
    • -
    • -

      - void main(String args) -

      -
    • -
    -

    -

    Just digging in to this one line will take us deep into the world of - Java, so we are going to start digging but we are not going to dig too - deeply right away. Much of what could be revealed by this one line is - better understood through other examples, so be patient.

    -

    The first word, public indicates to the Java compiler that this is a - method that anyone can call. We will see that Java enforces several - levels of security on the methods we write, including public, - protected, and private methods.

    -

    The next word, static tells Java that this is a method that is part - of the class, but is not a method for any one instance of the class. The - kind of methods we typically wrote in Python required an instance in - order for the method to be called. With a static method, the object to - the left of the . is a class, not an instance of the class. For example, - the way that we would call the main method directly is: - Hello.main(parameter1). For now, you can think of static methods the - same way you think of methods in Python modules that don’t require an - instance, for example the math module contains many methods: sin, cos, - etc. You probably evaluated these methods using the names - math.cos(90) or math.sin(60).

    -

    The next word, void tells the Java compiler that the method main - will not return a value. This is roughly analogous to omitting the - return statement in a Python method. In other words, the method will run - to completion and exit but will not return a value that you can use in - an assignment statement. As we look at other examples we will see that - every Java function must tell the compiler what kind of an object it - will return. This is in keeping with the rule that says everything in - Java must have a type. In this case we use the special type called - void which means no type.

    -

    Next we have the proper name for the method: main. The rules for - names in Java are similar to the rules in Python. Names can include - letters, numbers, and the _. Names in Java must start with a letter.

    -

    Finally, we have the parameter list for the method. In this example we - have one parameter. The name of the parameter is args, however, - because everything in Java must have a type, we also have to tell the - compiler that the value of args is an array of strings. For the - moment you can just think of an array as being the same thing as a list - in Python. The practical benefit of declaring that the method main must - accept one parameter and the parameter must be an array of strings is - that if you call main somewhere else in your code and and pass it an - array of integers or even a single string, the compiler will flag it as - an error.

    -

    That is a lot of new material to digest in only a single line of Java! - Lets press on and look at the next line:

    - - + + + +

    + Everything on this line is significant, and helps in the identification of this method. + For example the following lines look similar but are in fact treated by Java as completely different methods: +

    + +

    +

      +
    • +

      + public void main(String[] args) +

      +
    • + +
    • +

      + public static void main(String args) +

      +
    • + +
    • +

      + public static void main() +

      +
    • + +
    • +

      + void main(String args) +

      +
    • +
    +

    + +

    + Just digging in to this one line will take us deep into the world of Java, so we are going to start digging but we are not going to dig too deeply right away. + Much of what could be revealed by this one line is better understood through other examples, so be patient. +

    + +

    + The first word, public indicates to the Java compiler that this is a method that anyone can call. + We will see that Java enforces several levels of security on the methods we write, including public, protected, and private methods. +

    + +

    + The next word, static tells Java that this is a method that is part of the class, but is not a method for any one instance of the class. + The kind of methods we typically wrote in Python required an instance in order for the method to be called. + With a static method, the object to the left of the . is a class, not an instance of the class. + For example, the way that we would call the main method directly is: Hello.main(parameter1). + For now, you can think of static methods the same way you think of methods in Python modules that don’t require an instance, for example the math module contains many methods: sin, cos, etc. + You probably evaluated these methods using the names math.cos(90) or math.sin(60). +

    + +

    + The next word, void tells the Java compiler that the method main will not return a value. + This is roughly analogous to omitting the return statement in a Python method. + In other words, the method will run to completion and exit but will not return a value that you can use in an assignment statement. + As we look at other examples we will see that every Java function must tell the compiler what kind of an object it will return. + This is in keeping with the rule that says everything in Java must have a type. + In this case we use the special type called void which means no type. +

    + +

    + Next we have the proper name for the method: main. + The rules for names in Java are similar to the rules in Python. + Names can include letters, numbers, and the _. + Names in Java must start with a letter. +

    + +

    + Finally, we have the parameter list for the method. + In this example we have one parameter. + The name of the parameter is args, however, because everything in Java must have a type, we also have to tell the compiler that the value of args is an array of strings. + For the moment you can just think of an array as being the same thing as a list in Python. + The practical benefit of declaring that the method main must accept one parameter and the parameter must be an array of strings is that if you call main somewhere else in your code and and pass it an array of integers or even a single string, the compiler will flag it as an error. +

    + +

    + That is a lot of new material to digest in only a single line of Java! Lets press on and look at the next line: +

    + + + + System.out.println("Hello World!"); - - -

    This line should look a bit - more familiar to you. Python and Java both use the dot notation for - finding names. In this example we start with System. System is a - class. Within the system class we find the object named out. The - out object is the standard output stream for this program. Having - located the out object Java will now call the method named - println(String s) on that object. The println method prints a - string and adds a newline character at the end. Anywhere in Python that - you used the print function you will use the System.out.println - method in Java.

    -

    Now there is one more character on this line that is significant and - that is the ; at the end. In Java the ; signifies the end of a - statement. Java statements can spread across many lines, but the compiler - knows it has reached the end of a statement when it encounters a ;. - In Python, it is not required (or recommend) to use semicolons in this way, - but whitespace is meaningful. - In contrast, in Java semicolons are required to end statements, but - whitespace is not considered meaningful. - This is a very important difference to remember! In Java, the following - statements are all legal and equivalent. I would not encourage you to - write your code like this, but you should know that it is legal.

    - - + + + +

    + This line should look a bit more familiar to you. + Python and Java both use the dot notation for finding names. + In this example we start with System. + System is a class. + Within the system class we find the object named out. + The out object is the standard output stream for this program. + Having located the out object Java will now call the method named println(String s) on that object. + The println method prints a string and adds a newline character at the end. + Anywhere in Python that you used the print function you will use the System.out.println method in Java. +

    + +

    + Now there is one more character on this line that is significant and that is the ; at the end. + In Java the ; signifies the end of a statement. + Java statements can spread across many lines, but the compiler knows it has reached the end of a statement when it encounters a ;. + In Python, it is not required (or recommend) to use semicolons in this way, but whitespace is meaningful. + In contrast, in Java semicolons are required to end statements, but whitespace is not considered meaningful. + This is a very important difference to remember! In Java, the following statements are all legal and equivalent. + I would not encourage you to write your code like this, but you should know that it is legal. +

    + + + + System.out.println("Hello World"); System.out.println("Hello World") ; @@ -245,31 +286,40 @@ System. out. println("Hello World") ; - - -

    The last two lines of the hello world program simply close the two - blocks using }. The first or outer block is the class definition. The second or - inner block is the function definition.

    -

    If we wanted to translate the Java back to Python we would have - something like the following class definition.

    - - + + + +

    + The last two lines of the hello world program simply close the two blocks using }. + The first or outer block is the class definition. + The second or inner block is the function definition. +

    + +

    + If we wanted to translate the Java back to Python we would have something like the following class definition. +

    + + + + class Hello(object): @staticmethod def main(args): print("Hello World!") - - -

    Notice that we used the decorator @staticmethod to tell the Python - interpreter that main is going to be a static method. The impact of - this is that we don’t have to, indeed we should not, use self as the - first parameter of the main method! Using this definition we can call - the main method in a Python session like this:

    - - + + + +

    + Notice that we used the decorator @staticmethod to tell the Python interpreter that main is going to be a static method. + The impact of this is that we don’t have to, indeed we should not, use self as the first parameter of the main method! Using this definition we can call the main method in a Python session like this: +

    + + + + >>> Hello.main("") Hello World! >>> - - -
    + + + \ No newline at end of file diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index b0b1fe1..112d315 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -1,602 +1,487 @@ + - Java Data Types - - - -
    - Numeric -

    One of the great things about Python is that all of the basic data types - are objects. Integers are objects, floating point numbers are objects, - lists are objects, everything. In Java that is not the case. In Java, - some of the most basic data types like integers and floating point - numbers are not objects. The benefit of having these primitive data - types be non-objects is that operations on the primitives are fast. The - problem is that it became difficult for programmers to combine objects - and non-objects in the way that we do in Python. So, eventually all the - non-object primitives ended up with Objectified versions.

    - - - - - Primitive - - - Object - - - - - int - - - Integer - - - - - float - - - Float - - - - - double - - - Double - - - - - char - - - Char - - - - - boolean - - - Boolean - - - -
    -

    In older versions of Java, it was the programmers responsibility to - convert back and forth from a primitive to an object whenever necessary. - This process of converting a primitive to an object was called - “boxing.” The reverse process is called “unboxing.” In Java 5, the - compiler became smart enough to know when to convert back and forth and - is called “autoboxing.” In this book, we will typically use the Object - version of all the numeric data types and let the compiler do its thing.

    -

    Let’s look at a simple Python function which converts a Fahrenheit - temperature to Celsius. - If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook.

    - - + Java Data Types + + + + +
    + Numeric + +

    + One of the great things about Python is that all of the basic data types are objects. + Integers are objects, floating point numbers are objects, lists are objects, everything. + In Java that is not the case. + In Java, some of the most basic data types like integers and floating point numbers are not objects. + The benefit of having these primitive data types be non-objects is that operations on the primitives are fast. + The problem is that it became difficult for programmers to combine objects and non-objects in the way that we do in Python. + So, eventually all the non-object primitives ended up with Objectified versions. +

    + + + + + Primitive + Object + + + + int + Integer + + + + float + Float + + + + double + Double + + + + char + Char + + + + boolean + Boolean + + +
    + +

    + In older versions of Java, it was the programmers responsibility to convert back and forth from a primitive to an object whenever necessary. + This process of converting a primitive to an object was called “boxing.” The reverse process is called “unboxing.” In Java 5, the compiler became smart enough to know when to convert back and forth and is called “autoboxing.” In this book, we will typically use the Object version of all the numeric data types and let the compiler do its thing. +

    + +

    + Let’s look at a simple Python function which converts a Fahrenheit temperature to Celsius. + If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook. +

    + + + + def main(): fahr = int(input("Enter the temperature in F: ")) cel = (fahr - 32) * 5.0/9.0 print("the temperature in C is: ", cel) - main() - - +
    + +

    + Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook. +

    - - -

    Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook.

    - - -import java.util.Scanner; + + +import java.util.Scanner; public class TempConv { public static void main(String[] args) { Double fahr; Double cel; Scanner in; - in = new Scanner(System.in); System.out.println("Enter the temperature in F: "); fahr = in.nextDouble(); - cel = (fahr - 32) * 5.0/9.0; System.out.println("The temperature in C is: " + cel); } } - - - - - - - -

    There are several new concepts introduced in this example. We will look - at them in the following order:

    -

    -

      -
    • -

      Import

      -
    • -
    • -

      Variable Declaration

      -
    • -
    • -

      Input/Output and the Scanner Class

      -
    • -
    -

    - - Import -

    In Java, you can use any class that is available without having to import - the class, subject to two very important conditions:

    -

    -

      -
    1. -

      The javac and java commands must know that the class exists.

      -
    2. -
    3. -

      You must use the full name of the class

      -
    4. -
    -

    -

    Your first question might be how do the java and javac commands - know that certain classes exist. The answer is the following:

    -

    -

      -
    1. -

      Java knows about all the classes that are defined in .java and .class - files in your current working directory.

      -
    2. -
    3. -

      Java knows about all the classes that are shipped with Java.

      -
    4. -
    5. -

      Java knows about all the classes that are included in your - CLASSPATH environment variable. Your CLASSPATH environment - variable can name two kinds of structures.

      -

      -

        + + + +

        + There are several new concepts introduced in this example. We will look at them in the following order: +

        + +

        +

        • -

          A .jar file that contains Java classes

          +

          + Import +

        • +
        • -

          Another directory that contains Java class files

          +

          + Variable Declaration +

        • -
      + +
    6. +

      + Input/Output and the Scanner Class +

      +
    7. + +

      + + + + Import + +

      + In Java, you can use any class that is available without having to import the class, subject to two very important conditions:

      - -
    -

    -

    You can think of the import statement in Java as working a little bit - like the from module import xxx statement in Python. However, behind - the scenes, the two statements actually do very different things. The - first important difference to understand is that the class naming system - in Java is very hierarchical. The full name of the Scanner class is - really java.util.Scanner. You can think of this name as having two - parts: The first part java.util is called the package and the - last part is the class. We’ll talk more about the class naming system a - bit later. The second important difference is that it is the Java class - loader’s responsibility to load classes into memory, not the import - statement’s.

    -

    So, what exactly does the import statement do? What it does is tell the - compiler that we are going to use a shortened version of the class’s - name. In this example we are going to use the class - java.util.Scanner but we can refer to it as just Scanner. We - could use the java.util.Scanner class without any problem and - without any import statement, provided that we always referred to it by - its full name. As an experiment, you may want to try this yourself. - Remove the import statement and change the string Scanner to - java.util.Scanner in the rest of the code. The program should still - compile and run.

    - - - Declaring Variables -

    Here is where we run into one of the most important differences between - Java and Python. Python is a dynamically typed language. In a - dynamically typed language a variable can refer to any kind of object at - any time. When the variable is used, the interpreter figures out what - kind of object it is. Java is a statically typed language. In a - statically typed language the association between a variable and the - type of object the variable can refer to is determined when the variable - is declared. Once the declaration is made it is an error for a - variable to refer to an object of any other type.

    -

    In the example above, lines 5—7 contain variable declarations. - Specifically we are saying that fahr and cel are going to - reference objects that are of type Double. The variable in will - reference a Scanner object. This means that if we were to try an - assignment like fahr = "xyz" the compiler would generate an error - because "xyz" is a string and fahr is supposed to be a double.

    -

    For Python programmers, the following error is likely to be even more - common. Suppose we forgot the declaration for cel and instead left - line 6 blank. What would happen when we type javac TempConv.java on - the command line?

    -
    TempConv.java:13: cannot find symbol
    -symbol  : variable cel
    -location: class TempConv
    -         cel = (fahr - 32) * 5.0/9.0;
    -         ^
    -TempConv.java:14: cannot find symbol
    -symbol  : variable cel
    -location: class TempConv
    -         System.out.println("The temperature in C is: " + cel);
    -                                                          ^
    -2 errors
    -

    When you see the first kind of error, where the symbol is on the left - side of the equals sign, it usually means that you have not declared the - variable. If you have ever tried to use a Python variable that you have - not initialized the second error message will be familiar to you. The - difference here is that we see the message before we ever try to test - our program. More common error messages are discussed in the section - .

    -

    The general rule in Java is that you must decide what kind of an object - your variable is going to reference and then you must declare that - variable before you use it. There is much more to say about the static - typing of Java, but for now this is enough.

    -
    - - Input / Output / Scanner -

    In the previous section we created a Scanner object. In - Java, Scanner objects make getting input from the user, a file, or even - over the network relatively easy. In our case we simply want to ask the - user to type in a number at the command line, so in line 9 we construct - a Scanner by calling the constructor and passing it the System.in - object. Notice that this Scanner object is assigned to the name in, - which we declared to be a Scanner on line 7. System.in is - similar to System.out except, of course, it is used for input. If you - are wondering why we must create a Scanner to read data from - System.in when we can write data directly to System.out using - println, you are not alone. We will talk about the reasons why this - is so later when we talk in-depth about Java streams. You will also see - in other examples that we can create a Scanner by passing the Scanner a - File object. You can think of a Scanner as a kind of “adapter” that - makes low level objects easier to use.

    -

    On line 11 we use the Scanner object to read in a number. Here again we - see the implications of Java being a strongly typed language. Notice - that we must call the method nextDouble because the variable - fahr was declared as a double. So, we must have a function that is - guaranteed to return each kind of object we might want to read. In this - case, we need to read a Double so we call the function nextDouble. The - compiler matches up these assignment statments and if you try to assign - the results of a method call to the wrong kind of variable it will be - flagged as an error.

    -

    The table below shows some commonly used methods of the Scanner class. There - are many more methods supported by this class and we will talk about how - to find them in our chapter about .

    - - - - - Return type - - - Method name - - - Description - - - - - boolean - - - hasNext() - - - returns true if more data is present - - - - - boolean - - - hasNextInt() - - - returns true if the next thing to read is an integer - - - - - boolean - - - hasNextFloat() - - - returns true if the next thing to read is a float - - - - - boolean - - - hasNextDouble() - - - returns true if the next thing to read is a double - - - - - Integer - - - nextInt() - - - returns the next thing to read as an integer - - - - - Float - - - nextFloat() - - - returns the next thing to read as a float - - - - - Double - - - nextDouble() - - - returns the next thing to read as a Double - - - - - String - - - next() - - - returns the next thing to read as a String - - - -
    -
    -
    -
    - String -

    Strings in Java and Python are quite similar. Like Python, Java strings - are immutable. However, manipulating strings in Java is not quite as - obvious since Strings do not support an indexing or slicing operator. - That is not to say that you can’t index into a Java string, you can. You - can also pull out a substring just as you can with slicing. The - difference is that Java uses method calls where Python uses operators.

    -

    In fact, this is the first example of another big difference between Java - and Python. Java does not support any operator overloading. Table 3 maps - common Python string operations to their Java counterparts. For the - examples shown in the table we will use a string variable called “str”

    - - - - - Python - - - Java - - - Description - - - - - str[3] - - - str.charAt(3) - - - Return character in 3rd position - - - - - str[2:4] - - - str.substring(2,4) - - - Return substring from 2nd up to but not including 4th - - - - - len(str) - - - str.length() - - - Return the length of the string - - - - - str.find('x') - - - str.indexOf('x') - - - Find the first occurrence of x - - - - - str.split() - - - str.split('\s') - - - Split the string on whitespace into a list/array of strings - - - - - str.split(',') - - - str.split(',') - - - Split the string at ',' into a list/array of strings - - - - - str + str - - str + str or str.concat(str) - - - Concatenate two strings together - - - - - str.strip() - - - str.trim() - - - Remove any whitespace at the beginning or end - - - -
    -
    -
    - List -

    Next, let’s look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. - The data file we will use has one number between 0 and 9 on each line of the file. - Here is a simple Python program that creates and prints a histogram.

    - - + +

    +

      +
    1. +

      + The javac and java commands must know that the class exists. +

      +
    2. + +
    3. +

      + You must use the full name of the class +

      +
    4. +
    +

    + +

    + Your first question might be how do the java and javac commands know that certain classes exist. The answer is the following: +

    + +

    +

      +
    1. +

      + Java knows about all the classes that are defined in .java and .class files in your current working directory. +

      +
    2. + +
    3. +

      + Java knows about all the classes that are shipped with Java. +

      +
    4. + +
    5. +

      + Java knows about all the classes that are included in your CLASSPATH environment variable. Your CLASSPATH environment variable can name two kinds of structures. +

      + +

      +

        +
      1. +

        + A .jar file that contains Java classes +

        +
      2. + +
      3. +

        + Another directory that contains Java class files +

        +
      4. +
      +

      +
    6. +
    +

    + +

    + You can think of the import statement in Java as working a little bit like the from module import xxx statement in Python. However, behind the scenes, the two statements actually do very different things. The first important difference to understand is that the class naming system in Java is very hierarchical. The full name of the Scanner class is really java.util.Scanner. You can think of this name as having two parts: The first part java.util is called the package and the last part is the class. We’ll talk more about the class naming system a bit later. The second important difference is that it is the Java class loader’s responsibility to load classes into memory, not the import statement’s. +

    + +

    + So, what exactly does the import statement do? What it does is tell the compiler that we are going to use a shortened version of the class’s name. In this example we are going to use the class java.util.Scanner but we can refer to it as just Scanner. We could use the java.util.Scanner class without any problem and without any import statement, provided that we always referred to it by its full name. As an experiment, you may want to try this yourself. Remove the import statement and change the string Scanner to java.util.Scanner in the rest of the code. The program should still compile and run. +

    + + + + + Declaring Variables + +

    + Here is where we run into one of the most important differences between Java and Python. Python is a dynamically typed language. In a dynamically typed language a variable can refer to any kind of object at any time. When the variable is used, the interpreter figures out what kind of object it is. Java is a statically typed language. In a statically typed language the association between a variable and the type of object the variable can refer to is determined when the variable is declared. Once the declaration is made it is an error for a variable to refer to an object of any other type. +

    + +

    + In the example above, lines 5—7 contain variable declarations. Specifically we are saying that fahr and cel are going to reference objects that are of type Double. The variable in will reference a Scanner object. This means that if we were to try an assignment like fahr = "xyz" the compiler would generate an error because "xyz" is a string and fahr is supposed to be a double. +

    + +

    + For Python programmers, the following error is likely to be even more common. Suppose we forgot the declaration for cel and instead left line 6 blank. What would happen when we type javac TempConv.java on the command line? +

    + +
    TempConv.java:13: cannot find symbol symbol  : variable cel location: class TempConv cel = (fahr - 32) * 5.0/9.0; ^ TempConv.java:14: cannot find symbol symbol  : variable cel location: class TempConv System.out.println("The temperature in C is: " + cel); ^ 2 errors
    +

    + When you see the first kind of error, where the symbol is on the left side of the equals sign, it usually means that you have not declared the variable. If you have ever tried to use a Python variable that you have not initialized the second error message will be familiar to you. The difference here is that we see the message before we ever try to test our program. More common error messages are discussed in the section . +

    + +

    + The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. There is much more to say about the static typing of Java, but for now this is enough. +

    +
    + + + + Input / Output / Scanner + +

    + In the previous section we created a Scanner object. In Java, Scanner objects make getting input from the user, a file, or even over the network relatively easy. In our case we simply want to ask the user to type in a number at the command line, so in line 9 we construct a Scanner by calling the constructor and passing it the System.in object. Notice that this Scanner object is assigned to the name in, which we declared to be a Scanner on line 7. System.in is similar to System.out except, of course, it is used for input. If you are wondering why we must create a Scanner to read data from System.in when we can write data directly to System.out using println, you are not alone. We will talk about the reasons why this is so later when we talk in-depth about Java streams. You will also see in other examples that we can create a Scanner by passing the Scanner a File object. You can think of a Scanner as a kind of “adapter” that makes low level objects easier to use. +

    + +

    + On line 11 we use the Scanner object to read in a number. Here again we see the implications of Java being a strongly typed language. Notice that we must call the method nextDouble because the variable fahr was declared as a double. So, we must have a function that is guaranteed to return each kind of object we might want to read. In this case, we need to read a Double so we call the function nextDouble. The compiler matches up these assignment statments and if you try to assign the results of a method call to the wrong kind of variable it will be flagged as an error. +

    + +

    + The table below shows some commonly used methods of the Scanner class. There are many more methods supported by this class and we will talk about how to find them in our chapter about . +

    + + + + + Return type + Method name + Description + + + + boolean + hasNext() + returns true if more data is present + + + + boolean + hasNextInt() + returns true if the next thing to read is an integer + + + + boolean + hasNextFloat() + returns true if the next thing to read is a float + + + + boolean + hasNextDouble() + returns true if the next thing to read is a double + + + + Integer + nextInt() + returns the next thing to read as an integer + + + + Float + nextFloat() + returns the next thing to read as a float + + + + Double + nextDouble() + returns the next thing to read as a Double + + + + String + next() + returns the next thing to read as a String + + +
    +
    +
    + +
    + String + +

    + Strings in Java and Python are quite similar. Like Python, Java strings are immutable. However, manipulating strings in Java is not quite as obvious since Strings do not support an indexing or slicing operator. That is not to say that you can’t index into a Java string, you can. You can also pull out a substring just as you can with slicing. The difference is that Java uses method calls where Python uses operators. +

    + +

    + In fact, this is the first example of another big difference between Java and Python. Java does not support any operator overloading. Table 3 maps common Python string operations to their Java counterparts. For the examples shown in the table we will use a string variable called “str” +

    + + + + + Python + Java + Description + + + + str[3] + str.charAt(3) + Return character in 3rd position + + + + str[2:4] + str.substring(2,4) + Return substring from 2nd up to but not including 4th + + + + len(str) + str.length() + Return the length of the string + + + + str.find('x') + str.indexOf('x') + Find the first occurrence of x + + + + str.split() + str.split('\s') + Split the string on whitespace into a list/array of strings + + + + str.split(',') + str.split(',') + Split the string at ',' into a list/array of strings + + + + str + str + str + str or str.concat(str) + Concatenate two strings together + + + + str.strip() + str.trim() + Remove any whitespace at the beginning or end + + +
    +
    + +
    + List + +

    + Next, let’s look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. The data file we will use has one number between 0 and 9 on each line of the file. Here is a simple Python program that creates and prints a histogram. +

    + + + + def main(): count = [0]*10 data = open('test.dat') - for line in data: count[int(line)] = count[int(line)] + 1 - idx = 0 for num in count: print(idx, " occured ", num, " times.") idx += 1 - main() - - - - - - -

    Test running the program. It will read this data:

    - -
    -
    +              
    +        
    +
    +        

    + Test running the program. It will read this data: +

    + +
        1
        2
        3
        9
        1
    +        
    -
    - -

    Lets review what is happening in this little program. First, we create a list - and initialize the first 10 positions in the list to be - 0. Next we open the data file called ‘test.dat’. Third, we have a loop - that reads each line of the file. As we read each line we convert it to - an integer and increment the counter at the position in the list - indicated by the number on the line we just read. Finally we iterate - over each element in the list, printing out both the position in the list - and the total value stored in that position.

    -

    To write the Java version of this program we will have to introduce - several new Java concepts. First, you will see the Java equivalent of a - list, called an ArrayList. Next, you will see three different kinds - of loops used in Java. Two of the loops we will use are going to be very - familiar, the third one is different from what you are used to in Python - but is easy when you understand the syntax:

    -

    -

      -
    • -

      - while (condition) { code } -

      -

      -

        -
      • -

        The code will be repeatedly executed until the condition becomes false.

        -
      • -
      -

      -
    • -
    • -

      - for (initialization statement; condition; loop statement) { code } -

      -

      -

        -
      • -

        The code will be repeatedly executed until the condition becomes false. As shown in the example below, the initialization statement and loop statement make this form useful for iterating over a range of numbers, similar to how you might use for i in range(10) in Python.

        -
      • -
      -

      -
    • -
    • -

      - for (Type variable : collection) { code } -

      -

      +

      +Lets review what is happening in this little program. First, we create a list and initialize the first 10 positions in the list to be 0. Next we open the data file called ‘test.dat’. Third, we have a loop that reads each line of the file. As we read each line we convert it to an integer and increment the counter at the position in the list indicated by the number on the line we just read. Finally we iterate over each element in the list, printing out both the position in the list and the total value stored in that position. +

      + +

      +To write the Java version of this program we will have to introduce several new Java concepts. First, you will see the Java equivalent of a list, called an ArrayList. Next, you will see three different kinds of loops used in Java. Two of the loops we will use are going to be very familiar, the third one is different from what you are used to in Python but is easy when you understand the syntax: +

      + +

        -
      • -

        The code will be executed once for each element in the collection. Each execution, variable will be assigned to the next element of collection. Known as the “for-each” loop. This form is useful for iterating over members of a collection, similar to how you might use for a in array in Python.

        -
      • +
      • +

        + while (condition) { code } +

        + +

        +

          +
        • +

          +The code will be repeatedly executed until the condition becomes false. +

          +
        • +
        +

        +
      • + +
      • +

        + for (initialization statement; condition; loop statement) { code } +

        + +

        +

          +
        • +

          +The code will be repeatedly executed until the condition becomes false. As shown in the example below, the initialization statement and loop statement make this form useful for iterating over a range of numbers, similar to how you might use for i in range(10) in Python. +

          +
        • +
        +

        +
      • + +
      • +

        + for (Type variable : collection) { code } +

        + +

        +

          +
        • +

          +The code will be executed once for each element in the collection. Each execution, variable will be assigned to the next element of collection. Known as the “for-each” loop. This form is useful for iterating over members of a collection, similar to how you might use for a in array in Python. +

          +
        • +
        +

        +
      -

      -
    • -
    -

    -

    Here is the Java code needed to write the exact same program:

    - - +

    + +

    +Here is the Java code needed to write the exact same program: +

    + + + + import java.util.Scanner; import java.util.ArrayList; import java.io.File; import java.io.IOException; - public class Histo { - public static void main(String[] args) { Scanner data = null; ArrayList<Integer> count; Integer idx; - try { data = new Scanner(new File("test.dat")); } @@ -605,17 +490,14 @@ public class Histo { e.printStackTrace(); System.exit(0); } - count = new ArrayList<Integer>(10); for (Integer i = 0; i < 10; i++) { count.add(i,0); } - while(data.hasNextInt()) { idx = data.nextInt(); count.set(idx,count.get(idx)+1); } - idx = 0; for(Integer i : count) { System.out.println(idx + " occured " + i + " times."); @@ -623,144 +505,102 @@ public class Histo { } } } - - - - - - -

    Before going any further, I suggest you try to compile the above program - and run it on some test data that you create.

    -

    Now, let’s look at what is happening in the Java source. As usual, we - declare the variables we are going to use at the beginning of the - method. In this example we are declaring a Scanner variable called data, - an integer called idx and an ArrayList called count. However, there - is a new twist to the ArrayList declaration. Unlike Python where - lists can contain just about anything, in Java we let the compiler know - what kind of objects our array list is going to contain. In this case - the ArrayList will contain Integers. The syntax we use to declare - what kind of object the list will contain is the <Type> - syntax.

    -

    Technically, you don’t have to declare what is going to be in an array - list. The compiler will allow you to leave the <``*Type*>`` off the - declaration. If you don’t tell Java what kind of object is going to be - on the list Java will give you a warning message like this:

    -
    Note: Histo.java uses unchecked or unsafe operations.
    -Note: Recompile with -Xlint:unchecked for details.
    -

    Without the <Integer> part of the declaration Java simply assumes that - any object can be on the list. However, without resorting to an ugly - notation called casting, you cannot do anything with the objects on a - list like this! So, if you forget you will surely see more errors later - in your code. (Try it and see what you get)

    -

    Lines 13—20 are required to open the file. Why so many lines to open a - file in Java? The additional code mainly comes from the fact that Java - forces you to reckon with the possibility that the file you want to open - is not going to be there. If you attempt to open a file that is not - there you will get an error. A try/catch construct allows us to try - things that are risky, and gracefully recover from an error if one - occurs. The following example shows the general structure of a try/catch - block.

    -
    try {
    -   Put some risky code in here, like opening a file
    -}
    -catch (Exception e) {
    -   If an error happens in the try block an exception is thrown.
    -   We will catch that exception here!
    -}
    -

    Notice that in line 16 we are catching an IOException. In fact, we - will see later that we can have multiple catch blocks to catch different - types of exceptions. If we want to be lazy and catch any old exception - we can catch an Exception which is the parent of all exceptions. - However, catching Exception is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program.

    -

    On line 22 we create our ArrayList and give it an initial size of 10. - Strictly speaking, it is not necessary to give the ArrayList any - size. It will grow or shrink dynamically as needed, just like a list in - Python. On line 23 we start the first of three loops. The for loop on - lines 23–25 serves the same purpose as the Python statement - count = [0]*10, that is it initializes the first 10 positions in the - ArrayList to hold the value 0.

    -

    The syntax of this for loop probably looks very strange to you, but in - fact it is not too different from what happens in Python using range. In - fact for (Integer i = 0; i < 10; i++) is exactly equivalent to the - Python for i in range(10) The first statement inside the parenthesis - declares and initializes a loop variable i. The second statement is a - Boolean expression that is our exit condition. In other words we will - keep looping as long as this expression evaluates to true. The third - clause is used to increment the value of the loop variable at the end of - iteration through the loop. In fact i++ is Java shorthand for - i = i + 1 Java also supports the shorthand i-- to decrement the - value of i. Like Python, you can also write i += 2 as shorthand for - i = i + 2 Try to rewrite the following Python for loops as Java for - loops:

    -

    -

      -
    • -

      - for i in range(2,101,2) -

      -
    • -
    • -

      - for i in range(1,100) -

      -
    • -
    • -

      - for i in range(100,0,-1) -

      -
    • -
    • -

      for x,y in zip(range(10),range(0,20,2)) [hint, you can - separate statements in the same clause with a ,]

      -
    • -
    -

    -

    The next loop (lines 27–30) shows a typical Java pattern for reading - data from a file. Java while loops and Python while loops are identical - in their logic. In this case, we will continue to process the body of the - loop as long as data.hasNextInt() returns true.

    -

    Line 29 illustrates another important difference between Python and - Java. Notice that in Java we can not write - count[idx] = count[idx] + 1. This is because in Java there is no - overloading of operators. Everything except the most basic math and - logical operations is done using methods. So, to set the value of an - ArrayList element we use the set method. The first parameter of - set indicates the index or position in the ArrayList we are - going to change. The next parameter is the value we want to set. Notice - that, once again, we cannot use the indexing square bracket operator to - retrieve a value from the list, but we must use the get method.

    -

    The last loop in this example is similar to the Python for loop where - the object of the loop is a Sequence. In Java we can use this kind of - for loop over all kinds of sequences, which are called Collection - classes in Java. The for loop on line 33 for(Integer i : count) is - equivalent to the Python loop for i in count: This loop iterates - over all of the elements in the ArrayList called count. Each time - through the loop the Integer variable i is bound to the next element of - the ArrayList. If you tried the experiment of removing the - <Integer> part of the ArrayList declaration you probably noticed - that you had an error on this line. Why?

    -
    -
    - Arrays -

    As I said at the outset of this section, we are going to use Java - ArrayLists because they are easier to use and more closely match the - way that Python lists behave. However, if you look at Java code on the - internet or even in your Core Java books you are going to see examples - of something called arrays. In fact you have already seen one example of - an array declared in the ‘Hello World’ program. Lets rewrite this - program to use primitive arrays rather than array lists.

    - - + + + +

    + Before going any further, I suggest you try to compile the above program and run it on some test data that you create. +

    + +

    + Now, let’s look at what is happening in the Java source. As usual, we declare the variables we are going to use at the beginning of the method. In this example we are declaring a Scanner variable called data, an integer called idx and an ArrayList called count. However, there is a new twist to the ArrayList declaration. Unlike Python where lists can contain just about anything, in Java we let the compiler know what kind of objects our array list is going to contain. In this case the ArrayList will contain Integers. The syntax we use to declare what kind of object the list will contain is the <Type> syntax. +

    + +

    + Technically, you don’t have to declare what is going to be in an array list. The compiler will allow you to leave the <``*Type*>`` off the declaration. If you don’t tell Java what kind of object is going to be on the list Java will give you a warning message like this: +

    + +
    Note: Histo.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
    +

    + Without the <Integer> part of the declaration Java simply assumes that any object can be on the list. However, without resorting to an ugly notation called casting, you cannot do anything with the objects on a list like this! So, if you forget you will surely see more errors later in your code. (Try it and see what you get) +

    + +

    + Lines 13—20 are required to open the file. Why so many lines to open a file in Java? The additional code mainly comes from the fact that Java forces you to reckon with the possibility that the file you want to open is not going to be there. If you attempt to open a file that is not there you will get an error. A try/catch construct allows us to try things that are risky, and gracefully recover from an error if one occurs. The following example shows the general structure of a try/catch block. +

    + +
    try { Put some risky code in here, like opening a file } catch (Exception e) { If an error happens in the try block an exception is thrown. We will catch that exception here! }
    +

    + Notice that in line 16 we are catching an IOException. In fact, we will see later that we can have multiple catch blocks to catch different types of exceptions. If we want to be lazy and catch any old exception we can catch an Exception which is the parent of all exceptions. However, catching Exception is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program. +

    + +

    + On line 22 we create our ArrayList and give it an initial size of 10. Strictly speaking, it is not necessary to give the ArrayList any size. It will grow or shrink dynamically as needed, just like a list in Python. On line 23 we start the first of three loops. The for loop on lines 23–25 serves the same purpose as the Python statement count = [0]*10, that is it initializes the first 10 positions in the ArrayList to hold the value 0. +

    + +

    + The syntax of this for loop probably looks very strange to you, but in fact it is not too different from what happens in Python using range. In fact for (Integer i = 0; i < 10; i++) is exactly equivalent to the Python for i in range(10) The first statement inside the parenthesis declares and initializes a loop variable i. The second statement is a Boolean expression that is our exit condition. In other words we will keep looping as long as this expression evaluates to true. The third clause is used to increment the value of the loop variable at the end of iteration through the loop. In fact i++ is Java shorthand for i = i + 1 Java also supports the shorthand i-- to decrement the value of i. Like Python, you can also write i += 2 as shorthand for i = i + 2 Try to rewrite the following Python for loops as Java for loops: +

    + +

    +

      +
    • +

      + for i in range(2,101,2) +

      +
    • + +
    • +

      + for i in range(1,100) +

      +
    • + +
    • +

      + for i in range(100,0,-1) +

      +
    • + +
    • +

      + for x,y in zip(range(10),range(0,20,2)) [hint, you can separate statements in the same clause with a ,] +

      +
    • +
    +

    + +

    + The next loop (lines 27–30) shows a typical Java pattern for reading data from a file. Java while loops and Python while loops are identical in their logic. In this case, we will continue to process the body of the loop as long as data.hasNextInt() returns true. +

    + +

    + Line 29 illustrates another important difference between Python and Java. Notice that in Java we can not write count[idx] = count[idx] + 1. This is because in Java there is no overloading of operators. Everything except the most basic math and logical operations is done using methods. So, to set the value of an ArrayList element we use the set method. The first parameter of set indicates the index or position in the ArrayList we are going to change. The next parameter is the value we want to set. Notice that, once again, we cannot use the indexing square bracket operator to retrieve a value from the list, but we must use the get method. +

    + +

    + The last loop in this example is similar to the Python for loop where the object of the loop is a Sequence. In Java we can use this kind of for loop over all kinds of sequences, which are called Collection classes in Java. The for loop on line 33 for(Integer i : count) is equivalent to the Python loop for i in count: This loop iterates over all of the elements in the ArrayList called count. Each time through the loop the Integer variable i is bound to the next element of the ArrayList. If you tried the experiment of removing the <Integer> part of the ArrayList declaration you probably noticed that you had an error on this line. Why? +

    +
    + +
    + Arrays + +

    + As I said at the outset of this section, we are going to use Java ArrayLists because they are easier to use and more closely match the way that Python lists behave. However, if you look at Java code on the internet or even in your Core Java books you are going to see examples of something called arrays. In fact you have already seen one example of an array declared in the ‘Hello World’ program. Lets rewrite this program to use primitive arrays rather than array lists. +

    + + + + import java.util.Scanner; import java.io.File; import java.io.IOException; - public class HistoArray { public static void main(String[] args) { Scanner data = null; Integer[] count = {0,0,0,0,0,0,0,0,0,0}; Integer idx; - try { data = new Scanner(new File("test.dat")); } @@ -769,12 +609,10 @@ public class HistoArray { e.printStackTrace(); System.exit(0); } - while(data.hasNextInt()) { idx = data.nextInt(); count[idx] = count[idx] + 1; } - idx = 0; for(Integer i : count) { System.out.println(idx + " occured " + i + " times."); @@ -782,32 +620,28 @@ public class HistoArray { } } } - - - - - - -

    The main difference between this example and the previous example is - that we declare count to be an Array of integers. We also can initialize - short arrays directly using the syntax shown on line 8. Then notice that - on line 22 we can use the square bracket notation to index into an - array.

    -
    -
    - Dictionary -

    Just as Python provides the dictionary when we want to have easy access - to key-value pairs, Java also provides us a similar mechanism. Rather - than the dictionary terminology, Java calls these objects Maps. Java - provides two different implementations of a map, one is called the - TreeMap and the other is called a HashMap. As you might guess - the TreeMap uses a balanced binary tree behind the scenes, and the - HashMap uses a hash table.

    -

    Lets stay with a simple frequency counting example, only this time we - will count the frequency of words in a document. A simple Python program - for this job could look like this:

    - - + + + +

    + The main difference between this example and the previous example is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown on line 8. Then notice that on line 22 we can use the square bracket notation to index into an array. +

    +
    + +
    + Dictionary + +

    + Just as Python provides the dictionary when we want to have easy access to key-value pairs, Java also provides us a similar mechanism. Rather than the dictionary terminology, Java calls these objects Maps. Java provides two different implementations of a map, one is called the TreeMap and the other is called a HashMap. As you might guess the TreeMap uses a balanced binary tree behind the scenes, and the HashMap uses a hash table. +

    + +

    + Lets stay with a simple frequency counting example, only this time we will count the frequency of words in a document. A simple Python program for this job could look like this: +

    + + + + def main(): data = open('alice30.txt') wordList = data.read().split() @@ -815,51 +649,33 @@ def main(): for w in wordList: w = w.lower() count[w] = count.get(w,0) + 1 - keyList = sorted(count.keys()) for k in keyList: print("%-20s occurred %4d times" % (k, count[k])) - main() - - - - - - -
    -Down, down, down.  Would the fall NEVER come to an end!  'I
    -wonder how many miles I've fallen by this time?' she said aloud.
    -'I must be getting somewhere near the centre of the earth.  Let
    -me see:  that would be four thousand miles down, I think--' (for,
    -you see, Alice had learnt several things of this sort in her
    -lessons in the schoolroom, and though this was not a VERY good
    -opportunity for showing off her knowledge, as there was no one to
    -listen to her, still it was good practice to say it over) '--yes,
    -that's about the right distance--but then I wonder what Latitude
    -or Longitude I've got to?'  (Alice had no idea what Latitude was,
    -or Longitude either, but thought they were nice grand words to
    -say.)
    -  
    -

    Notice that the structure of the program is very similar to the numeric - histogram program.

    - - + + + +
     Down, down, down.  Would the fall NEVER come to an end!  'I wonder how many miles I've fallen by this time?' she said aloud. 'I must be getting somewhere near the centre of the earth.  Let me see:  that would be four thousand miles down, I think--' (for, you see, Alice had learnt several things of this sort in her lessons in the schoolroom, and though this was not a VERY good opportunity for showing off her knowledge, as there was no one to listen to her, still it was good practice to say it over) '--yes, that's about the right distance--but then I wonder what Latitude or Longitude I've got to?'  (Alice had no idea what Latitude was, or Longitude either, but thought they were nice grand words to say.) 
    +

    + Notice that the structure of the program is very similar to the numeric histogram program. +

    + + + + import java.util.Scanner; import java.util.ArrayList; import java.io.File; import java.io.IOException; import java.util.TreeMap; - public class HistoMap { - public static void main(String[] args) { Scanner data = null; TreeMap<String,Integer> count; Integer idx; String word; Integer wordCount; - try { data = new Scanner(new File("alice30.txt")); } @@ -868,9 +684,7 @@ public class HistoMap { e.printStackTrace(); System.exit(0); } - count = new TreeMap<String,Integer>(); - while(data.hasNext()) { word = data.next().toLowerCase(); wordCount = count.get(word); @@ -879,18 +693,16 @@ public class HistoMap { } count.put(word,++wordCount); } - for(String i : count.keySet()) { System.out.printf("%-20s occured %5d times\n", i, count.get(i) ); } } } - - - - - - -

    Improve the program above to remove the punctuation.

    -
    - +
    +
    + +

    + Improve the program above to remove the punctuation. +

    +
    +
    \ No newline at end of file diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index 1a7fb8b..a93bb04 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -1,56 +1,54 @@ + - Conditionals - -

    Conditional statements in Python and Java are very similar. In Python we - have three patterns:

    -
    -
    - Simple if -
    if condition:
    -    statement1
    -    statement2
    -    ...
    -

    In Java this same pattern is simply written as:

    -
    if (condition) {
    -    statement1
    -    statement2
    -    ...
    -}
    -

    Once again you can see that in Java the curly braces define a block - rather than indentation. In Java the parenthesis around the condition - are required because if is technically a function that evaluates to True - or False.

    -
    -
    - if else -
    if condition:
    -    statement1
    -    statement2
    -    ...
    -else:
    -    statement1
    -    statement2
    -    ...
    -

    In Java this is written as:

    -
    if (condition) {
    -    statement1
    -    statement2
    -    ...
    -} else {
    -    statement1
    -    statement2
    -    ...
    -}
    -
    -
    - elif -

    Java does not have an elif pattern like Python. In Java you can get the - functionality of an elif statement by nesting if and else. Here is a - simple example in both Python and Java.

    - - + Conditionals + + +

    + Conditional statements in Python and Java are very similar. + In Python we have three patterns: +

    +
    + +
    + Simple if + +
    if condition: statement1 statement2 ...
    +

    + In Java this same pattern is simply written as: +

    + +
    if (condition) { statement1 statement2 ... }
    +

    + Once again you can see that in Java the curly braces define a block rather than indentation. + In Java the parenthesis around the condition are required because if is technically a function that evaluates to True or False. +

    +
    + +
    + if else + +
    if condition: statement1 statement2 ... else: statement1 statement2 ...
    +

    + In Java this is written as: +

    + +
    if (condition) { statement1 statement2 ... } else { statement1 statement2 ... }
    +
    + +
    + elif + +

    + Java does not have an elif pattern like Python. + In Java you can get the functionality of an elif statement by nesting if and else. + Here is a simple example in both Python and Java. +

    + + + + grade = int(input('enter a grade')) if grade < 60: print('F') @@ -62,19 +60,19 @@ elif grade < 90: print('B') else: print('A') - - +
    + + +

    +In Java we have a couple of ways to write this +

    - - -

    In Java we have a couple of ways to write this

    - - + + public class ElseIf { public static void main(String args[]) { int grade = 85; - if (grade < 60) { System.out.println('F'); } else { @@ -94,18 +92,16 @@ public class ElseIf { } } } - - - - - - -

    We can get even closer to the elif statement by taking advantage of the - Java rule that a single statement does not need to be enclosed in curly - braces. Since the if is the only statement used in each else we can get - away with the following.

    - - + + + +

    +We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else we can get away with the following. +

    + + + + public class ElseIf { public static void main(String args[]) { int grade = 85; @@ -120,24 +116,23 @@ public class ElseIf { } else System.out.println('A'); } } - - - - - - -
    -
    - switch -

    Java also supports a switch statement that acts something like the - elif statement of Python under certain conditions. To write the grade - program using a switch statement we would use the following:

    - - + + +
    + +
    + switch + +

    +Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following: +

    + + + + public class SwitchUp { public static void main(String args[]) { int grade = 85; - int tempgrade = grade / 10; switch(tempgrade) { case 10: @@ -158,33 +153,23 @@ public class SwitchUp { } } } - - - - - - -

    The switch statement is not used very often, and I recommend you do - not use it! First, it is not as powerful as the else if model - because the switch variable can only be compared for equality with an - integer or enumerated constant. Second it is very easy to forget to put - in the break statement. If the break statement is left out then then - the next alternative will be automatically executed. For example if the - grade was 95 and the break was omitted from the case 9: - alternative then the program would print(out both A and B.)

    -
    -
    - Boolean Operators -

    The conditionals used in the if statement can be boolean variables, - simple comparisons, and compound boolean expressions.

    -

    Java also supports the boolean expression. - condition ? trueValue : falseValue This expression can be used to - test a condition as part of an assignment statement. For example - a = a % 2 == 0 ? a*a : 3*x -1 In the previous assignment statement - the expression a%2 ==0 is first checked. If it is true then a is - assigned the value a * a if it is false then a is assigned the value - of 3*x-1. Of course all of this could have been accomplished using a - regular if else statement, but sometimes the convenience of a single - statement is too much to resist.

    -
    - +
    +
    + +

    +The switch statement is not used very often, and I recommend you do not use it! First, it is not as powerful as the else if model because the switch variable can only be compared for equality with an integer or enumerated constant. Second it is very easy to forget to put in the break statement. If the break statement is left out then then the next alternative will be automatically executed. For example if the grade was 95 and the break was omitted from the case 9: alternative then the program would print(out both A and B.) +

    +
    + +
    + Boolean Operators + +

    +The conditionals used in the if statement can be boolean variables, simple comparisons, and compound boolean expressions. +

    + +

    +Java also supports the boolean expression. condition ? trueValue : falseValue This expression can be used to test a condition as part of an assignment statement. For example a = a % 2 == 0 ? a*a : 3*x -1 In the previous assignment statement the expression a%2 ==0 is first checked. If it is true then a is assigned the value a * a if it is false then a is assigned the value of 3*x-1. Of course all of this could have been accomplished using a regular if else statement, but sometimes the convenience of a single statement is too much to resist. +

    +
    +
    \ No newline at end of file diff --git a/source/ch_6_loopsanditeration.ptx b/source/ch_6_loopsanditeration.ptx index 589cac4..628eb8e 100644 --- a/source/ch_6_loopsanditeration.ptx +++ b/source/ch_6_loopsanditeration.ptx @@ -1,93 +1,101 @@ + - Loops and Iteration - -

    You have already seen a couple of examples of iteration and looping in - Java. So this section will just serve as a reference for the differences - in Syntax.

    -
    -
    - Definite Loop -

    In Python the easiest way to write a definite loop is using the for loop - in conjunction with the range function. For example:

    -
    for i in range(10):
    -   print(i)
    -

    In Java we would write this as:

    -
    for (Integer i = 0; i < 10; i++ ) {
    -    System.out.println(i);
    -}
    -

    Recall that the range function provides you with a wide variety of - options for controlling the value of the loop variable.

    -
    range(stop)
    -range(start,stop)
    -range(start,stop,step)
    -

    The Java for loop is really analogous to the last option giving you - explicit control over the starting, stopping, and stepping in the three - clauses inside the parenthesis. You can think of it this way:

    -
    for (start clause; stop clause; step clause) {
    -    statement1
    -    statement2
    -    ...
    -}
    -

    If you want to start at 100, stop at 0 and count backward by 5 the - Python loop would be written as:

    -
    for i in range(100,-1,-5):
    -    print(i)
    -

    In Java we would write this as:

    -
    for (Integer i = 100; i >= 0; i -= 5)
    -    System.out.println(i);
    -

    In Python the for loop can also iterate over any sequence such as a - list, a string, or a tuple. Java also provides a variation of its for - loop that provides the same functionality in its so called for each - loop.

    -

    In Python we can iterate over a list as follows:

    -
    l = [1, 1, 2, 3, 5, 8, 13, 21]
    -for fib in l:
    -   print(fib)
    -

    In Java we can iterate over an ArrayList of integers too:

    -
    ArrayList<Integer> l = new ArrayList<Integer>();
    -l.add(1); l.add(1); l.add(2); l.add(3);
    -for (Integer i : l) {
    -    System.out.println(i)
    -}
    -

    This example stretches the imagination a bit, and in fact points out one - area where Java’ s primitive arrays are easier to use than an array - list. In fact all primitive arrays can be used in a for each loop.

    -
    int l[] = {1,1,2,3,5,8,13,21};
    -for(int i : l) {
    -    System.out.println(i);
    -}
    -

    To iterate over the characters in a string in Java do the following:

    -
    String t = "Hello World";
    -for (char c : t.toCharArray()) {
    -    System.out.println(c);
    -}
    -
    -
    - Indefinite Loops -

    Both Python and Java support the while loop. Recall that in Python the - while loop is written as:

    -
    while  condition:
    -   statement1
    -   statement2
    -   ...
    -

    In Java we add parenthesis and curly braces to get:

    -
    while (condition) {
    -    statement1
    -    statement2
    -    ...
    -}
    -

    Java adds an additional, if seldom used variation of the while loop - called the do loop. The do loop is very similar to while except that the - condition is evaluated at the end of the loop rather than the beginning. - This ensures that a loop will be executed at least one time. Some - programmers prefer this loop in some situations because it avoids an - additional assignment prior to the loop. For example:

    -
    do {
    -    statement1
    -    statement2
    -    ...
    -} while (condition);
    -
    -
    + Loops and Iteration + + +

    + You have already seen a couple of examples of iteration and looping in Java. + So this section will just serve as a reference for the differences in Syntax. +

    +
    + +
    + Definite Loop + +

    + In Python the easiest way to write a definite loop is using the for loop in conjunction with the range function. + For example: +

    + +
    for i in range(10): print(i)
    +

    + In Java we would write this as: +

    + +
    for (Integer i = 0; i < 10; i++ ) { System.out.println(i); }
    +

    + Recall that the range function provides you with a wide variety of options for controlling the value of the loop variable. +

    + +
    range(stop) range(start,stop) range(start,stop,step)
    +

    + The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. + You can think of it this way: +

    + +
    for (start clause; stop clause; step clause) { statement1 statement2 ... }
    +

    + If you want to start at 100, stop at 0 and count backward by 5 the Python loop would be written as: +

    + +
    for i in range(100,-1,-5): print(i)
    +

    + In Java we would write this as: +

    + +
    for (Integer i = 100; i >= 0; i -= 5) System.out.println(i);
    +

    + In Python the for loop can also iterate over any sequence such as a list, a string, or a tuple. + Java also provides a variation of its for loop that provides the same functionality in its so called for each loop. +

    + +

    + In Python we can iterate over a list as follows: +

    + +
    l = [1, 1, 2, 3, 5, 8, 13, 21] for fib in l: print(fib)
    +

    + In Java we can iterate over an ArrayList of integers too: +

    + +
    ArrayList<Integer> l = new ArrayList<Integer>(); l.add(1); l.add(1); l.add(2); l.add(3); for (Integer i : l) { System.out.println(i) }
    +

    + This example stretches the imagination a bit, and in fact points out one area where Java’ s primitive arrays are easier to use than an array list. + In fact all primitive arrays can be used in a for each loop. +

    + +
    int l[] = {1,1,2,3,5,8,13,21}; for(int i : l) { System.out.println(i); }
    +

    + To iterate over the characters in a string in Java do the following: +

    + +
    String t = "Hello World"; for (char c : t.toCharArray()) { System.out.println(c); }
    +
    + +
    + Indefinite Loops + +

    + Both Python and Java support the while loop. + Recall that in Python the while loop is written as: +

    + +
    while  condition: statement1 statement2 ...
    +

    + In Java we add parenthesis and curly braces to get: +

    + +
    while (condition) { statement1 statement2 ... }
    +

    + Java adds an additional, if seldom used variation of the while loop called the do loop. + The do loop is very similar to while except that the condition is evaluated at the end of the loop rather than the beginning. + This ensures that a loop will be executed at least one time. + Some programmers prefer this loop in some situations because it avoids an additional assignment prior to the loop. + For example: +

    + +
    do { statement1 statement2 ... } while (condition);
    +
    + \ No newline at end of file diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 94dfb66..321dd01 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -1,43 +1,71 @@ + - Defining Classes in Java - -

    You have already seen how to define classes in Java. It’s unavoidable for - even the simplest of programs. In this section we will look at how we - define classes to create our own data types. Lets start by creating a - fraction class to extend the set of numeric data types provided by our - language. The requirements for this new data type are as follows:

    -

    -

      -
    • -

      Given a numerator and a denominator create a new Fraction.

      -
    • -
    • -

      When a fraction is printed it should be simplified.

      -
    • -
    • -

      Two fractions can be added or subtracted

      -
    • -
    • -

      Two fractions can be multiplied or divided

      -
    • -
    • -

      Two fractions can be compared

      -
    • -
    • -

      A fraction and an integer can be added together.

      -
    • -
    • -

      Given a list of Fractions that list should be sortable by the default - sorting function.

      -
    • -
    -

    -

    Here is a mostly complete implementation of a Fraction class in Python - that we will refer to throughout this section:

    - - + Defining Classes in Java + + +

    + You have already seen how to define classes in Java. + It’s unavoidable for even the simplest of programs. + In this section we will look at how we define classes to create our own data types. + Lets start by creating a fraction class to extend the set of numeric data types provided by our language. + The requirements for this new data type are as follows: +

    + +

    +

      +
    • +

      + Given a numerator and a denominator create a new Fraction. +

      +
    • + +
    • +

      + When a fraction is printed it should be simplified. +

      +
    • + +
    • +

      + Two fractions can be added or subtracted +

      +
    • + +
    • +

      + Two fractions can be multiplied or divided +

      +
    • + +
    • +

      + Two fractions can be compared +

      +
    • + +
    • +

      + A fraction and an integer can be added together. +

      +
    • + +
    • +

      + Given a list of Fractions that list should be sortable by the default sorting function. +

      +
    • +
    +

    + +

    + Here is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section: +

    + + + + class Fraction: def __init__(self, num, den): """ @@ -46,7 +74,6 @@ class Fraction: """ self.num = num self.den = den - def __repr__(self): if self.num > self.den: retWhole = int(self.num / self.den) @@ -54,10 +81,8 @@ class Fraction: return str(retWhole) + " " + str(retNum) + "/" + str(self.den) else: return str(self.num) + "/" + str(self.den) - def show(self): print(self.num, "/", self.den) - def __add__(self, other): # convert to a fraction other = self.toFract(other) @@ -65,14 +90,11 @@ class Fraction: newden = self.den * other.den common = gcd(newnum, newden) return Fraction(int(newnum / common), int(newden / common)) - __radd__ = __add__ - def __lt__(self, other): num1 = self.num * other.den num2 = self.den * other.num return num1 < num2 - def toFract(self, n): if isinstance(n, int): other = Fraction(n, 1) @@ -89,8 +111,6 @@ class Fraction: print("Error: cannot add a fraction to a ", type(n)) return None return other - - def gcd(m, n): """ A helper function for Fraction @@ -101,113 +121,130 @@ def gcd(m, n): m = oldn n = oldm % oldn return n - print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) - - - - - - -

    The instance variables (data members) we will need for our fraction - class are the numerator and denominator. Of course in Python we can add - instance variables to a class at any time by simply assigning a value to - objectReference.variableName, whereas in Java all data members must be - declared up front.

    -

    The declarations of instance variables can come at the beginning of the - class definition or the end. Cay Horstman, author of the “Core Java” - books puts the declarations at the end of the class. I like them at the - very beginning so you see the variables that are declared before you - begin looking at the code that uses them. With that in mind the first - part of the Fraction class definition is as follows:

    - - + + + +

    + The instance variables (data members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front. +

    + +

    + The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind the first part of the Fraction class definition is as follows: +

    + + + + public class Fraction { private Integer numerator; private Integer denominator; } - - -

    Notice that we have declared the numerator and denominator to be - private. This means that the compiler will generate an error if another - method tries to write code like the following:

    - - + + + +

    + Notice that we have declared the numerator and denominator to be private. + This means that the compiler will generate an error if another method tries to write code like the following: +

    + + + + Fraction f = new Fraction(1,2); Integer y = f.numerator * 10; - - -

    Direct access to instance variables is not allowed. Therefore if we - legitimately want to be able to access information such as the numerator - or denominator for a particular fraction we must have getter methods. - It is very common programming practice to provide getter and setter - methods for instance variables in Java.

    - - + + + +

    + Direct access to instance variables is not allowed. + Therefore if we legitimately want to be able to access information such as the numerator or denominator for a particular fraction we must have getter methods. + It is very common programming practice to provide getter and setter methods for instance variables in Java. +

    + + + + public Integer getNumerator() { return numerator; } - public void setNumerator(Integer numerator) { this.numerator = numerator; } - public Integer getDenominator() { return denominator; } - public void setDenominator(Integer denominator) { this.denominator = denominator; } - - -
    -
    - Writing a constructor -

    Once you have identified the instance variables for your class the next - thing to consider is the constructor. In Java, constructors have the - same name as the class and are declared public. They are declared - without a return type. So any method that is named the same as the - class and has no return type is a constructor. Our constructor will take - two parameters: the numerator and the denominator.

    - - + + + + +
    + Writing a constructor + +

    + Once you have identified the instance variables for your class the next thing to consider is the constructor. + In Java, constructors have the same name as the class and are declared public. + They are declared without a return type. + So any method that is named the same as the class and has no return type is a constructor. + Our constructor will take two parameters: the numerator and the denominator. +

    + + + + public Fraction(Integer top, Integer bottom) { num = top; den = bottom; } - - -

    There are a couple of important things to notice here. First, you will - notice that the constructor does not have a self parameter. You will - also notice that we can simply refer to the instance variables by name - without the self prefix, because they have already been declared. This - allows the Java compiler to do the work of dereferencing the current - Java object. Java does provide a special variable called this that - works like the self variable. In Java, this is typically only used - when it is needed to differentiate between a parameter or local variable - and an instance variable. For example this alternate definition of the - the Fraction constructor uses this to differentiate between - parameters and instance variables.

    - - + + + +

    + There are a couple of important things to notice here. + First, you will notice that the constructor does not have a self parameter. + You will also notice that we can simply refer to the instance variables by name without the self prefix, because they have already been declared. + This allows the Java compiler to do the work of dereferencing the current Java object. + Java does provide a special variable called this that works like the self variable. + In Java, this is typically only used when it is needed to differentiate between a parameter or local variable and an instance variable. + For example this alternate definition of the the Fraction constructor uses this to differentiate between parameters and instance variables. +

    + + + + public Fraction(Integer num, Integer den) { this.num = num; this.den = den; } - - -
    -
    - Methods -

    Now we come to one of the major differences between Java and Python. The - Python class definition used the special methods for addition and - comparison that have the effect of redefining how the standard operators - behave: in Python, __add__ and __lt__ change the behavior of + and <, respectively. In Java there is no operator overloading. So we will have to write the method for addition a little differently.

    -

    A point of terminology: Python has both “functions” (def outside a class) and “methods” (def inside a class). Since Java requires all code to be inside classes, it only has “methods.” Those from a C++ background might refer to methods as “member functions.”

    -

    Let’s begin by implementing addition in Java:

    - - + + +
    + +
    + Methods + +

    + Now we come to one of the major differences between Java and Python. + The Python class definition used the special methods for addition and comparison that have the effect of redefining how the standard operators behave: in Python, __add__ and __lt__ change the behavior of + and <, respectively. + In Java there is no operator overloading. + So we will have to write the method for addition a little differently. +

    + +

    + A point of terminology: Python has both “functions” (def outside a class) and “methods” (def inside a class). + Since Java requires all code to be inside classes, it only has “methods.” Those from a C++ background might refer to methods as “member functions.” +

    + +

    + Let’s begin by implementing addition in Java: +

    + + + + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + this.denominator * otherFrac.getNumerator(); @@ -215,15 +252,23 @@ public Fraction add(Fraction otherFrac) { Integer common = gcd(newNum, newDen); return new Fraction(newNum/common, newDen/common); } - - -

    First you will notice that the add method is declared as - public Fraction The public part means that any other method may - call the add method. The Fraction part means that add will - return a fraction as its result.

    -

    Second, you will notice that the method makes use of the this variable. In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. So this version of the code is equivalent:

    - - + + + +

    + First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. + The Fraction part means that add will return a fraction as its result. +

    + +

    + Second, you will notice that the method makes use of the this variable. + In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. + So this version of the code is equivalent: +

    + + + + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * numerator + denominator * otherFrac.getNumerator(); @@ -231,103 +276,107 @@ public Fraction add(Fraction otherFrac) { Integer common = gcd(newNum, newDen); return new Fraction(newNum/common, newDen/common); } - - -

    The addition takes place by multiplying each numerator by the opposite - denominator before adding. This procedure ensures that we are adding two - fractions with common denominators. Using this approach the denominator - is computed by multiplying the two denominators. The greatest common - divisor method, gcd, is used to find a common divisor to simplify the - numerator and denominator in the result.

    -

    Finally on line 6 a new Fraction is returned as the result of the - computation. The value that is returned by the return statement must - match the value that is specified as part of the declaration. So, in - this case the return value on line 8 must match the declared value on - line 1.

    - - Method Signatures and Overloading -

    Our specification for this project said that we need to be able to add a - Fraction to an Integer. In Python we can do this by checking the - type of the parameter using the isinstance function at runtime. - Recall that isinstance(1,int) returns True to indicate that 1 is - indeed an instance of the int class. See the __add__ and toFract methods in the Python version of the Fraction class to see how our Python - implementation fulfills this requirement.

    -

    In Java we can do runtime type checking, but the compiler will not allow - us to pass an Integer to the add method since the parameter has been - declared to be a Fraction. The way that we solve this problem is by - writing another add method with a different set of parameters. In - Java this practice is legal and common we call this practice - method overloading.

    -

    This idea of method overloading raises a very important difference between - Python and Java. In Python a method is known by its name only. In Java a - method is known by its signature. The signature of a method includes its - name, and the types of all of its parameters. The name and the types of - the parameters are enough information for the Java compiler to decide - which method to call at runtime.

    -

    To solve the problem of adding an Integer and a Fraction in Java - we will overload both the constructor and the add method. We will - overload the constructor so that if it only receives a single - Integer it will convert the Integer into a Fraction. We will - also overload the add method so that if it receives an Integer as a - parameter it will first construct a Fraction from that integer and then - add the two Fractions together. The new methods that accomplish this - task are as follows:

    - - + + + +

    + The addition takes place by multiplying each numerator by the opposite denominator before adding. + This procedure ensures that we are adding two fractions with common denominators. + Using this approach the denominator is computed by multiplying the two denominators. + The greatest common divisor method, gcd, is used to find a common divisor to simplify the numerator and denominator in the result. +

    + +

    + Finally on line 6 a new Fraction is returned as the result of the computation. + The value that is returned by the return statement must match the value that is specified as part of the declaration. + So, in this case the return value on line 8 must match the declared value on line 1. +

    + + + + Method Signatures and Overloading + +

    + Our specification for this project said that we need to be able to add a Fraction to an Integer. + In Python we can do this by checking the type of the parameter using the isinstance function at runtime. + Recall that isinstance(1,int) returns True to indicate that 1 is indeed an instance of the int class. + See the __add__ and toFract methods in the Python version of the Fraction class to see how our Python implementation fulfills this requirement. +

    + +

    + In Java we can do runtime type checking, but the compiler will not allow us to pass an Integer to the add method since the parameter has been declared to be a Fraction. + The way that we solve this problem is by writing another add method with a different set of parameters. + In Java this practice is legal and common we call this practice method overloading. +

    + +

    + This idea of method overloading raises a very important difference between Python and Java. + In Python a method is known by its name only. + In Java a method is known by its signature. + The signature of a method includes its name, and the types of all of its parameters. + The name and the types of the parameters are enough information for the Java compiler to decide which method to call at runtime. +

    + +

    + To solve the problem of adding an Integer and a Fraction in Java we will overload both the constructor and the add method. + We will overload the constructor so that if it only receives a single Integer it will convert the Integer into a Fraction. + We will also overload the add method so that if it receives an Integer as a parameter it will first construct a Fraction from that integer and then add the two Fractions together. + The new methods that accomplish this task are as follows: +

    + + + + public Fraction(Integer num) { this.numerator = num; this.denominator = 1; } - public Fraction add(Integer other) { return add(new Fraction(other)); } - - -

    Notice that the overloading approach can provide us with a certain - elegance to our code. Rather than utilizing if statements to check the - types of parameters we just overload methods ahead of time which - allows us to call the method we want and allow the compiler to make the - decisions for us. This way of thinking about programming takes some - practice.

    -

    Our full Fraction class to this point would look like the following. You - should compile and run the program to see what happens.

    - - -public class Fraction { + + +

    + Notice that the overloading approach can provide us with a certain elegance to our code. + Rather than utilizing if statements to check the types of parameters we just overload methods ahead of time which allows us to call the method we want and allow the compiler to make the decisions for us. + This way of thinking about programming takes some practice. +

    + +

    + Our full Fraction class to this point would look like the following. + You should compile and run the program to see what happens. +

    + + + + +public class Fraction { private Integer numerator; private Integer denominator; - public Fraction(Integer num, Integer den) { this.numerator = num; this.denominator = den; } - public Fraction(Integer num) { this.numerator = num; this.denominator = 1; } - public Integer getNumerator() { return numerator; } - public Integer getDenominator() { return denominator; } - public Fraction add(Fraction other) { Integer newNum = other.getDenominator()*this.numerator + this.denominator*other.getNumerator(); Integer newDen = this.denominator * other.getDenominator(); Integer common = gcd(newNum,newDen); return new Fraction(newNum/common, newDen/common ); } - public Fraction add(Integer other) { return add(new Fraction(other)); } - private static Integer gcd(Integer m, Integer n) { while (m % n != 0) { Integer oldm = m; @@ -337,125 +386,154 @@ public class Fraction { } return n; } - public static void main(String[] args) { Fraction f1 = new Fraction(1,2); - System.out.println(f1.add(1)); } - } - - - - - - -
    -
    -
    - Inheritance -

    If you ran the program above you probably noticed that the output is not - very satisfying. Chances are your output looked something like this:

    - - + + + +
    + +
    + Inheritance + +

    + If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like this: +

    + + + + Fraction@6ff3c5b5 - - -

    The reason is that we have not yet provided a friendly string - representation for our Fraction objects. Just like in - Python, whenever an object is printed by the println method it must - be converted to string format. In Python you can control how that looks - by writing an __str__ method for your class. If you do not then you - will get the default, which looks something like the above.

    - - The <c>Object</c> Class -

    In Java, the equivalent of __str__ is the toString method. Every - object in Java already has a toString method defined for it because - every class in Java automatically inherits from the Object class. The - Object class provides default implementations for the following - methods.

    -

    -

      -
    • -

      - clone -

      -
    • -
    • -

      - equals -

      -
    • -
    • -

      - finalize -

      -
    • -
    • + + + +

      + The reason is that we have not yet provided a friendly string representation for our Fraction objects. + Just like in Python, whenever an object is printed by the println method it must be converted to string format. + In Python you can control how that looks by writing an __str__ method for your class. + If you do not then you will get the default, which looks something like the above. +

      + + + + The <c>Object</c> Class +

      - getClass + In Java, the equivalent of __str__ is the toString method. + Every object in Java already has a toString method defined for it because every class in Java automatically inherits from the Object class. + The Object class provides default implementations for the following methods.

      -
    • -
    • +

      - hashCode +

        +
      • +

        + clone +

        +
      • + +
      • +

        + equals +

        +
      • + +
      • +

        + finalize +

        +
      • + +
      • +

        + getClass +

        +
      • + +
      • +

        + hashCode +

        +
      • + +
      • +

        + notify +

        +
      • + +
      • +

        + notifyAll +

        +
      • + +
      • +

        + toString +

        +
      • + +
      • +

        + wait +

        +
      • +

      -
    • -
    • +

      - notify + We are not interested in most of the methods on that list, and many Java programmers live happy and productive lives without knowing much about most of the methods on that list. + However, to make our output nicer we will implement the toString method for the Fraction class. + A simple version of the method is provided below.

      -
    • -
    • + + + + +public String toString() { + return numerator.toString() + "/" + denominator.toString(); +} + + +

      - notifyAll + The other important class for us to implement from the list of methods inherited from Object is the equals method. + In Java, when two objects are compared using the == operator they are tested to see if they are exactly the same object (that is, do the two objects occupy the same exact space in the computer’s memory?). + This is also the default behavior of the equals method provided by Object. + The equals method allows us to decide if two objects are equal by looking at their instance variables. + However it is important to remember that since Java does not have operator overloading if you want to use your equals method you must call it directly. + Therefore once you write your own equals method:

      -
    • -
    • + + + + +object1 == object2 + + +

      - toString + is NOT the same as

      -
    • -
    • + + + + +object1.equals(object2) + + +

      - wait + Here is an equals method for the Fraction class:

      -
    • -
    -

    -

    We are not interested in most of the methods on that list, and many - Java programmers live happy and productive lives without knowing much - about most of the methods on that list. However, to make our output - nicer we will implement the toString method for the Fraction - class. A simple version of the method is provided below.

    - - -public String toString() { - return numerator.toString() + "/" + denominator.toString(); -} - - -

    The other important class for us to implement from the list of methods - inherited from Object is the equals method. In Java, when two objects are compared using the == operator they are tested to see if they are exactly the same object (that is, do the two objects occupy the same - exact space in the computer’s memory?). This is also the default behavior of the equals method provided by Object. The equals method allows us to - decide if two objects are equal by looking at their instance variables. - However it is important to remember that since Java does not have - operator overloading if you want to use your equals method you must call it directly. Therefore once you write your own equals method:

    - - -object1 == object2 - - -

    is NOT the same as

    - - -object1.equals(object2) - - -

    Here is an equals method for the Fraction class:

    - - + + + + public boolean equals(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); @@ -464,220 +542,250 @@ public boolean equals(Fraction other) { else return false; } - - -

    One important thing to remember about equals is that it only checks - to see if two objects are equal – it does not have any notion of less than - or greater than. We’ll see more about that shortly.

    - - - Abstract Classes and Methods -

    If we want to make our Fraction class behave like Integer, Double, and - the other numeric classes in Java then we need to make a couple of additional - modifications to the class. The first thing we will do is plug - Fraction into the Java class hierarchy at the same place as Integer - and its siblings. If you look at the documentation for Integer you will - see that Integer’s parent class is Number. Number is an abstract - class that specifies several methods that all of its children must - implement. In Java an abstract class is more than just a placeholder for - common methods. In Java an abstract class has the power to specify - certain methods that all of its children must implement. You can - trace this power back to the strong typing nature of Java.

    -

    Here is code that makes the Fraction class a child of Number:

    - - + + + +

    + One important thing to remember about equals is that it only checks to see if two objects are equal – it does not have any notion of less than or greater than. + We’ll see more about that shortly. +

    +
    + + + + Abstract Classes and Methods + +

    + If we want to make our Fraction class behave like Integer, Double, and the other numeric classes in Java then we need to make a couple of additional modifications to the class. + The first thing we will do is plug Fraction into the Java class hierarchy at the same place as Integer and its siblings. + If you look at the documentation for Integer you will see that Integer’s parent class is Number. + Number is an abstract class that specifies several methods that all of its children must implement. + In Java an abstract class is more than just a placeholder for common methods. + In Java an abstract class has the power to specify certain methods that all of its children must implement. + You can trace this power back to the strong typing nature of Java. +

    + +

    + Here is code that makes the Fraction class a child of Number: +

    + + + + public class Fraction extends Number { ... } - - -

    The keyword extends tells the compiler that the class Fraction - extends, or adds new functionality to the Number class. A child - class always extends its parent.

    -

    The methods we must implement if Fraction is going to be a child of - Number are:

    -

    -

      -
    • + + +

      - longValue + The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. + A child class always extends its parent.

      -
    • -
    • +

      - intValue + The methods we must implement if Fraction is going to be a child of Number are:

      -
    • -
    • +

      - floatValue +

        +
      • +

        + longValue +

        +
      • + +
      • +

        + intValue +

        +
      • + +
      • +

        + floatValue +

        +
      • + +
      • +

        + doubleValue +

        +
      • +

      -
    • -
    • +

      - doubleValue + This really isn’t much work for us to implement these methods, as all we have to do is some type conversion and some division:

      -
    • -
    -

    -

    This really isn’t much work for us to implement these methods, as all - we have to do is some type conversion and some division:

    - - + + + + public double doubleValue() { return numerator.doubleValue() / denominator.doubleValue(); } - - public float floatValue() { return numerator.floatValue() / denominator.floatValue(); } - - public int intValue() { return numerator.intValue() / denominator.intValue(); } - - public long longValue() { return numerator.longValue() / denominator.longValue(); } - - -

    By having the Fraction class extend the Number class we can now - pass a Fraction to any Java method that specifies it can receive a - Number as one of its parameters. For example many Java user - interface methods accept any object that is a subclass of Number as - a parameter. In Java the class hierarchy and the “is-a” relationships are - very important. Whereas in Python you can pass any kind of object as a - parameter to any method or function, the strong typing of Java makes sure that you - only pass an object as a parameter that is of the type specified in the - method signature, or one of the children of the type specified. When you see a - parameter of type Number it’s important to remember that an - Integer is-a Number and a Double is-a Number and a - Fraction is-a Number, because these classes are children of Number.

    -

    However, and this is a big however, it is important to remember - that if you specify Number as the type of a particular parameter - then the Java compiler will only let you use the methods of a - Number: longValue, intValue, floatValue, and - doubleValue.

    -

    Suppose you try to define a method as follows:

    - - + + + +

    + By having the Fraction class extend the Number class we can now pass a Fraction to any Java method that specifies it can receive a Number as one of its parameters. + For example many Java user interface methods accept any object that is a subclass of Number as a parameter. + In Java the class hierarchy and the “is-a” relationships are very important. + Whereas in Python you can pass any kind of object as a parameter to any method or function, the strong typing of Java makes sure that you only pass an object as a parameter that is of the type specified in the method signature, or one of the children of the type specified. + When you see a parameter of type Number it’s important to remember that an Integer is-a Number and a Double is-a Number and a Fraction is-a Number, because these classes are children of Number. +

    + +

    + However, and this is a big however, it is important to remember that if you specify Number as the type of a particular parameter then the Java compiler will only let you use the methods of a Number: longValue, intValue, floatValue, and doubleValue. +

    + +

    + Suppose you try to define a method as follows: +

    + + + + public void test(Number a, Number b) { a.add(b); } - - -

    The Java compiler would give an error because add is not a defined - method of the Number class. You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add).

    - -
    -
    - Interfaces -

    Lets turn our attention to making a list of fractions sortable by the - standard Java sorting method Collections.sort. In Python, we would just need to implement the __cmp__ method. But in Java we - cannot be that informal. In Java, things that are sortable must be - Comparable. Your first thought might be that Comparable is - superclass of Number, but that is actually not the case. Java only supports single inheritance, that is, a class can - have only one parent. Although it would be possible to add an additional - layer to the class hierarchy it would also complicate things - dramatically, because not only are Numbers comparable, but Strings are - also Comparable as would many other types. For example, we might have a - Student class and we want to be able to sort students by their GPA. - But Student might already extends the class Person for which there would be no natural comparison method.

    -

    Java’s answer to this problem is the Interface mechanism. Interfaces - are like a combination of “inheritance” and “contracts” all rolled into one. - An interface is a specification that says any object that claims it - implements this interface must provide the following methods. It sounds - a little bit like an abstract class, however it is outside the - inheritance mechanism. You can never create an instance of - Comparable. Many objects, however, do implement the Comparable - interface. What does the Comparable interface specify?

    -

    The Comparable interface says that any object that claims to be - Comparable must implement the compareTo method. Here is an excerpt from the official documentation for the compareTo method as specified by the Comparable interface.

    - - -int compareTo(T o) + + +

    + The Java compiler would give an error because add is not a defined method of the Number class. + You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add). +

    + +
    + +
    + Interfaces + +

    + Lets turn our attention to making a list of fractions sortable by the standard Java sorting method Collections.sort. + In Python, we would just need to implement the __cmp__ method. + But in Java we cannot be that informal. + In Java, things that are sortable must be Comparable. + Your first thought might be that Comparable is superclass of Number, but that is actually not the case. + Java only supports single inheritance, that is, a class can have only one parent. + Although it would be possible to add an additional layer to the class hierarchy it would also complicate things dramatically, because not only are Numbers comparable, but Strings are also Comparable as would many other types. + For example, we might have a Student class and we want to be able to sort students by their GPA. + But Student might already extends the class Person for which there would be no natural comparison method. +

    + +

    + Java’s answer to this problem is the Interface mechanism. + Interfaces are like a combination of “inheritance” and “contracts” all rolled into one. + An interface is a specification that says any object that claims it implements this interface must provide the following methods. + It sounds a little bit like an abstract class, however it is outside the inheritance mechanism. + You can never create an instance of Comparable. + Many objects, however, do implement the Comparable interface. + What does the Comparable interface specify? +

    + +

    + The Comparable interface says that any object that claims to be Comparable must implement the compareTo method. + Here is an excerpt from the official documentation for the compareTo method as specified by the Comparable interface. +

    + + + + +int compareTo(T o) Compares this object with the specified object for order. Returns a negative integer, zero, or a positive integer as this object is less than, equal to, or greater than the specified object. The implementor must ensure sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception iff y.compareTo(x) throws an exception.) - ... - - -

    To make our Fraction class Comparable we must modify the class - declaration line as follows:

    - - + + + +

    + To make our Fraction class Comparable we must modify the class declaration line as follows: +

    + + + + public class Fraction extends Number implements Comparable<Fraction> { ... } - - -

    The specification Comparable<Fraction> makes it clear that Fraction - is only comparable with another Fraction. The compareTo method could - be implemented as follows:

    - - + + + +

    + The specification Comparable<Fraction> makes it clear that Fraction is only comparable with another Fraction. + The compareTo method could be implemented as follows: +

    + + + + public int compareTo(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); return num1 - num2; } - - -
    -
    - Static member variables -

    Suppose that you wanted to write a Student class so that the class could - keep track of the number of students it had created. Although you could - do this with a global counter variable that is an ugly solution. The - right way to do it is to use a static variable. In Python we could do - this as follows:

    - - + + +
    + +
    + Static member variables + +

    + Suppose that you wanted to write a Student class so that the class could keep track of the number of students it had created. + Although you could do this with a global counter variable that is an ugly solution. + The right way to do it is to use a static variable. + In Python we could do this as follows: +

    + + + + class Student: numStudents = 0 - def __init__(self, id, name): self.id = id self.name = name - Student.numStudents = Student.numStudents + 1 - def main(): for i in range(10): s = Student(i,"Student-"+str(i)) print('Number of students:', Student.numStudents) - main() - - +
    + + +

    + In Java we would write this same example using a static declaration. +

    - - -

    In Java we would write this same example using a static declaration.

    - - + + public class Student { public static Integer numStudents = 0; - private int id; private String name; - public Student(Integer id, String name) { this.id = id; this.name = name; - numStudents = numStudents + 1; } - public static void main(String[] args) { for(Integer i = 0; i < 10; i++) { Student s = new Student(i,"Student"+i.toString()); @@ -685,28 +793,24 @@ public class Student { System.out.println("Number of students: "+Student.numStudents.toString()); } } - - - - - - -

    In this example notice that we create a static member variable by using - the static modifier on the variable declaration. Once a variable has - been declared static in Java it can be accessed from inside the class - without prefixing the name of the class as we had to do in Python.

    -
    -
    - Static Methods -

    We have already discussed the most common static method of all, - main. However in our Fraction class we also implemented a method to - calculate the greatest common divisor for two fractions (gdc). There - is no reason for this method to be a member method since it takes two - Integer values as its parameters. Therefore we declare the method to - be a static method of the class. Furthermore, since we are only going to - use this gcd method for our own purposes we can make it private.

    - - + + + +

    + In this example notice that we create a static member variable by using the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python. +

    +
    + +
    + Static Methods + +

    + We have already discussed the most common static method of all, main. However in our Fraction class we also implemented a method to calculate the greatest common divisor for two fractions (gdc). There is no reason for this method to be a member method since it takes two Integer values as its parameters. Therefore we declare the method to be a static method of the class. Furthermore, since we are only going to use this gcd method for our own purposes we can make it private. +

    + + + + private static Integer gcd(Integer m, Integer n) { while (m % n != 0) { Integer oldm = m; @@ -716,64 +820,58 @@ private static Integer gcd(Integer m, Integer n) { } return n; } - - -
    -
    - Full Implementation of the Fraction Class -

    Here is a final version of the Fraction class in Java, which includes all the features we discussed:

    - - + + +
    + +
    + Full Implementation of the Fraction Class + +

    + Here is a final version of the Fraction class in Java, which includes all the features we discussed: +

    + + + + import java.util.ArrayList; import java.util.Collections; - public class Fraction extends Number implements Comparable<Fraction> { - private Integer numerator; private Integer denominator; - /** Creates a new instance of Fraction */ public Fraction(Integer num, Integer den) { this.numerator = num; this.denominator = den; } - public Fraction(Integer num) { this.numerator = num; this.denominator = 1; } - public Fraction add(Fraction other) { Integer newNum = other.getDenominator()*this.numerator + this.denominator*other.getNumerator(); Integer newDen = this.denominator * other.getDenominator(); Integer common = gcd(newNum,newDen); return new Fraction(newNum/common, newDen/common); } - public Fraction add(Integer other) { return add(new Fraction(other)); } - public Integer getNumerator() { return numerator; } - public void setNumerator(Integer numerator) { this.numerator = numerator; } - public Integer getDenominator() { return denominator; } - public void setDenominator(Integer denominator) { this.denominator = denominator; } - public String toString() { return numerator.toString() + "/" + denominator.toString(); } - public boolean equals(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); @@ -782,29 +880,23 @@ public class Fraction extends Number implements Comparable<Fraction> { else return false; } - public double doubleValue() { return numerator.doubleValue() / denominator.doubleValue(); } - public float floatValue() { return numerator.floatValue() / denominator.floatValue(); } - public int intValue() { return numerator.intValue() / denominator.intValue(); } - public long longValue() { return numerator.longValue() / denominator.longValue(); } - public int compareTo(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); return num1 - num2; } - private static Integer gcd(Integer m, Integer n) { while (m % n != 0) { Integer oldm = m; @@ -814,34 +906,25 @@ public class Fraction extends Number implements Comparable<Fraction> { } return n; } - public static void main(String[] args) { Fraction f1 = new Fraction(1,2); Fraction f2 = new Fraction(2,3); Fraction f3 = new Fraction(1,4); - System.out.println("Adding: " + f1.add(1)); System.out.println("Calling intValue(): " + f1.intValue()); System.out.println("Calling doubleValue(): " + f1.doubleValue()); - ArrayList<Fraction> myFracs = new ArrayList<Fraction>(); myFracs.add(f1); myFracs.add(f2); myFracs.add(f3); Collections.sort(myFracs); - System.out.println("Sorted fractions:"); for(Fraction f : myFracs) { System.out.println(f); } } - } - - - - - - -
    - +
    + +
    +
    \ No newline at end of file diff --git a/source/ch_8_namingconventions.ptx b/source/ch_8_namingconventions.ptx index b47ba36..08b90f9 100644 --- a/source/ch_8_namingconventions.ptx +++ b/source/ch_8_namingconventions.ptx @@ -1,25 +1,41 @@ + - Naming Conventions -

    Java has some very handy naming conventions.

    -

    -

      -
    • -

      Class names always start with an upper case letter. For example, - Scanner, System, Hello

      -
    • -
    • -

      Method names always start with a lower case letter, and use camelCase - to represent multiword method names. for example nextInt()

      -
    • -
    • -

      Instance variables of a class start with a lower case letter and use - camelCase

      -
    • -
    • -

      Constants are in all upper case letters. for example Math.MAXINT

      -
    • -
    -

    -
    + Naming Conventions + +

    + Java has some very handy naming conventions. +

    + +

    +

      +
    • +

      + Class names always start with an upper case letter. + For example, Scanner, System, Hello +

      +
    • + +
    • +

      + Method names always start with a lower case letter, and use camelCase to represent multiword method names. + for example nextInt() +

      +
    • + +
    • +

      + Instance variables of a class start with a lower case letter and use camelCase +

      +
    • + +
    • +

      + Constants are in all upper case letters. + for example Math.MAXINT +

      +
    • +
    +

    + \ No newline at end of file diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 04d24a1..fe7b64e 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -1,49 +1,46 @@ + - Common Mistakes - - - -
    - Forgetting to declare your variables -
    Histo.java:21: cannot find symbol
    -symbol  : variable count
    -location: class Histo
    -    count = new ArrayList<Integer>(10);
    -    ^
    -
    -
    - Not importing a class -
    Histo.java:9: cannot find symbol
    -symbol  : class Scanner
    -location: class Histo
    -    Scanner data = null;
    -    ^
    -
    -
    - Forgetting to use the new keyword to create an object -

    Here’s an example of the error message that occurs when you forget to - use the new keyword. Notice that the message is pretty unhelpful. - Java thinks you are trying to call the Method Scanner, but - there are two problems. First Scanner is not really a method it - is a constructor.:

    -
    Histo.java:14: cannot find symbol
    -symbol  : method Scanner(java.io.File)
    -location: class Histo
    -    data = Scanner(new File("test.dat"));
    -           ^
    -
    -
    - Forgetting a Semicolon -
    Histo.java:19:
    -';' expected
    -    System.exit(0);
    -    ^
    -
    -
    - Forgetting to declare the kind of object in a container -
    Note: Histo.java uses unchecked or unsafe operations. Note:
    -Recompile with -Xlint:unchecked for details.
    -
    -
    + Common Mistakes + + + + +
    + Forgetting to declare your variables + +
    Histo.java:21: cannot find symbol symbol  : variable count location: class Histo count = new ArrayList<Integer>(10); ^
    +
    + +
    + Not importing a class + +
    Histo.java:9: cannot find symbol symbol  : class Scanner location: class Histo Scanner data = null; ^
    +
    + +
    + Forgetting to use the new keyword to create an object + +

    + Here’s an example of the error message that occurs when you forget to use the new keyword. + Notice that the message is pretty unhelpful. + Java thinks you are trying to call the Method Scanner, but there are two problems. + First Scanner is not really a method it is a constructor.: +

    + +
    Histo.java:14: cannot find symbol symbol  : method Scanner(java.io.File) location: class Histo data = Scanner(new File("test.dat")); ^
    +
    + +
    + Forgetting a Semicolon + +
    Histo.java:19: ';' expected System.exit(0); ^
    +
    + +
    + Forgetting to declare the kind of object in a container + +
    Note: Histo.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
    +
    + \ No newline at end of file diff --git a/source/main.ptx b/source/main.ptx index 8231d39..7d8abe0 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -1,20 +1,22 @@ - - - - Java For Python Programmer - The PreTeXt Interactive Edition - - - - - - - - - - - - - - \ No newline at end of file + + + + + Java For Python Programmer + + The PreTeXt Interactive Edition + + + + + + + + + + + + + + \ No newline at end of file diff --git a/source/meta_backmatter.ptx b/source/meta_backmatter.ptx index 6dcf6f9..34e1c60 100644 --- a/source/meta_backmatter.ptx +++ b/source/meta_backmatter.ptx @@ -1,40 +1,36 @@ + - - Appendices - - - -

    I started writing this article in 2006 using Python’s restructured text. - In 2007 I switched to markdown since everything else I was writing used - markdown. In particular I switched to the variant of markdown used by - the excellent pandoc program. - Pandoc does an excellent job of converting markdown to html, latex, pdf, - and other formats. The markdown source for this article is available - here. Finally - the document became so big that I used pandoc to convert it to latex - for preparing the final version. I used The htlatex program to - generate html for the online version of this document.

    + Appendices + + +

    + I started writing this article in 2006 using Python’s restructured text. + In 2007 I switched to markdown since everything else I was writing used markdown. + In particular I switched to the variant of markdown used by the excellent pandoc program. + Pandoc does an excellent job of converting markdown to html, latex, pdf, and other formats. + The markdown source for this article is available here. + Finally the document became so big that I used pandoc to convert it to latex for preparing the final version. + I used The htlatex program to generate html for the online version of this document. +

    - Shameless Plug -

    If you got this far, I would also like to use this space as a shameless - plug for two books. At Luther college we use Python for CS1 and CS2. - When we decided to make the switch to introducing CS with Python we - wanted to provide our students with two semesters of Python. The reason - is that after one semester students are just getting comfortable with - the language and it does not make sense to push them into a brand new - language just as they are getting some comfort. The second reason is - that Python really is a great language for teaching data structures. The - language makes the algorithms evident by clearing away all of the - syntactic clutter. So we (David Ranum and I) wrote a CS2 book called - Problem Solving with Algorithms and Data Structures using - Python. - After we finished the CS2 book we decided to write our own CS1 book as - well. This book will be available for Fall 2008 classes from Jones and - Bartlett publishers. The tentative title is Python in Context. Please - feel free to contact me for more information.

    + Shameless Plug + +

    + If you got this far, I would also like to use this space as a shameless plug for two books. + At Luther college we use Python for CS1 and CS2. + When we decided to make the switch to introducing CS with Python we wanted to provide our students with two semesters of Python. + The reason is that after one semester students are just getting comfortable with the language and it does not make sense to push them into a brand new language just as they are getting some comfort. + The second reason is that Python really is a great language for teaching data structures. + The language makes the algorithms evident by clearing away all of the syntactic clutter. + So we (David Ranum and I) wrote a CS2 book called Problem Solving with Algorithms and Data Structures using Python. + After we finished the CS2 book we decided to write our own CS1 book as well. + This book will be available for Fall 2008 classes from Jones and Bartlett publishers. + The tentative title is Python in Context. + Please feel free to contact me for more information. +

    -
    + \ No newline at end of file diff --git a/source/meta_bookinfo.ptx b/source/meta_bookinfo.ptx index 042aa19..984adc9 100644 --- a/source/meta_bookinfo.ptx +++ b/source/meta_bookinfo.ptx @@ -1,16 +1,5 @@ - - - - -java4py2 - - - - - - - + java4py2 \ No newline at end of file diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index 45541ef..3e0bdcc 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -1,47 +1,46 @@ - - - + - - - Dr. Brad Miller - Computer Science - Luther College - - - + + + Dr. Brad Miller + Computer Science + Luther College + + + + + + + +

    + Welcome to Java for Python Programmers. + This short ebook is an ongoing project to help Computer Science students who have had one or two semesters of Python learn the Java programming language. + If you are not a part of that audience you may still find this a useful way to learn about Java. + This book is written using the build on what you know philosophy. + In order to help you learn Java I will start with a Python example and then implement the example in Java. + Along the way we will examine the strengths, weaknesses and differences between those two languages. +

    +

    + This book does not attempt to replace the many good Java reference books that are available, in fact I use this in my course along with Cay Horstman’s “Core Java” volumes. + Please feel free to use this book for yourself, or if it fits a class you are teaching you are welcome to use this as a resource for your own class. +

    - -

    Welcome to Java for Python Programmers. This short ebook is an ongoing - project to help Computer Science students who have had one or two - semesters of Python learn the Java programming language. If you are not - a part of that audience you may still find this a useful way to learn - about Java. This book is written using the build on what you know - philosophy. In order to help you learn Java I will start with a Python - example and then implement the example in Java. Along the way we will - examine the strengths, weaknesses and differences between those two - languages.

    -

    This book does not attempt to replace the many good Java reference books - that are available, in fact I use this in my course along with - Cay Horstman’s “Core Java” volumes. - Please feel free to use this book for - yourself, or if it fits a class you are teaching you are welcome to use - this as a resource for your own class.

    -

    I have published this article using a Creative Commons license to - encourage you to use it, change it, and modify it for your own purposes. - I would appreciate knowing what you think if you do use this book, and I - would love to see any modifications or additions you make.

    -

    Brad Miller bmiller@luther.edu January, - 2008

    -
    -

    image - This work is licensed under a Creative Commons Attribution 3.0 - United States License. See http://creativecommons.org

    -
    -
    +

    + I have published this article using a Creative Commons license to encourage you to use it, change it, and modify it for your own purposes. + I would appreciate knowing what you think if you do use this book, and I would love to see any modifications or additions you make. +

    -
    +

    + Brad Miller bmiller@luther.edu January, 2008 +

    +
    +

    + image This work is licensed under a Creative Commons Attribution 3.0 United States License. See http://creativecommons.org +

    +
    + + \ No newline at end of file From 3491daab4b57c5b89c1a6abfaec87544666260fb Mon Sep 17 00:00:00 2001 From: moisedk Date: Sun, 6 Jul 2025 06:32:32 -0400 Subject: [PATCH 043/448] Fix title page and section content warning --- source/ch_4_javadatatypes.ptx | 148 ++++++++++++++++---------------- source/ch_7_definingclasses.ptx | 110 ++++++++++++------------ source/meta_frontmatter.ptx | 18 ++-- 3 files changed, 143 insertions(+), 133 deletions(-) diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index 112d315..6d097a7 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -10,78 +10,79 @@
    Numeric -

    - One of the great things about Python is that all of the basic data types are objects. - Integers are objects, floating point numbers are objects, lists are objects, everything. - In Java that is not the case. - In Java, some of the most basic data types like integers and floating point numbers are not objects. - The benefit of having these primitive data types be non-objects is that operations on the primitives are fast. - The problem is that it became difficult for programmers to combine objects and non-objects in the way that we do in Python. - So, eventually all the non-object primitives ended up with Objectified versions. -

    + +

    + One of the great things about Python is that all of the basic data types are objects. + Integers are objects, floating point numbers are objects, lists are objects, everything. + In Java that is not the case. + In Java, some of the most basic data types like integers and floating point numbers are not objects. + The benefit of having these primitive data types be non-objects is that operations on the primitives are fast. + The problem is that it became difficult for programmers to combine objects and non-objects in the way that we do in Python. + So, eventually all the non-object primitives ended up with Objectified versions. +

    - - - - Primitive - Object - +
    + + + Primitive + Object + - - int - Integer - + + int + Integer + - - float - Float - + + float + Float + - - double - Double - + + double + Double + - - char - Char - + + char + Char + - - boolean - Boolean - - -
    + + boolean + Boolean + + + -

    - In older versions of Java, it was the programmers responsibility to convert back and forth from a primitive to an object whenever necessary. - This process of converting a primitive to an object was called “boxing.” The reverse process is called “unboxing.” In Java 5, the compiler became smart enough to know when to convert back and forth and is called “autoboxing.” In this book, we will typically use the Object version of all the numeric data types and let the compiler do its thing. -

    +

    + In older versions of Java, it was the programmers responsibility to convert back and forth from a primitive to an object whenever necessary. + This process of converting a primitive to an object was called “boxing.” The reverse process is called “unboxing.” In Java 5, the compiler became smart enough to know when to convert back and forth and is called “autoboxing.” In this book, we will typically use the Object version of all the numeric data types and let the compiler do its thing. +

    -

    - Let’s look at a simple Python function which converts a Fahrenheit temperature to Celsius. - If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook. -

    +

    + Let’s look at a simple Python function which converts a Fahrenheit temperature to Celsius. + If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook. +

    - - + + def main(): fahr = int(input("Enter the temperature in F: ")) cel = (fahr - 32) * 5.0/9.0 print("the temperature in C is: ", cel) main() - - + + -

    +

    Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook. -

    +

    - - + + import java.util.Scanner; public class TempConv { public static void main(String[] args) { @@ -95,34 +96,35 @@ public class TempConv { System.out.println("The temperature in C is: " + cel); } } - - + + -

    +

    There are several new concepts introduced in this example. We will look at them in the following order: -

    +

    -

    -

      -
    • -

      +

      +

        +
      • +

        Import -

        -
      • +

        + -
      • -

        +

      • +

        Variable Declaration -

        -
      • +

        + -
      • -

        +

      • +

        Input/Output and the Scanner Class -

        -
      • -
      -

      +

      +
    • +
    +

    +
    diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 321dd01..c2bf1ff 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -226,25 +226,26 @@ public Fraction(Integer num, Integer den) {
    Methods -

    - Now we come to one of the major differences between Java and Python. - The Python class definition used the special methods for addition and comparison that have the effect of redefining how the standard operators behave: in Python, __add__ and __lt__ change the behavior of + and <, respectively. - In Java there is no operator overloading. - So we will have to write the method for addition a little differently. -

    + +

    + Now we come to one of the major differences between Java and Python. + The Python class definition used the special methods for addition and comparison that have the effect of redefining how the standard operators behave: in Python, __add__ and __lt__ change the behavior of + and <, respectively. + In Java there is no operator overloading. + So we will have to write the method for addition a little differently. +

    -

    - A point of terminology: Python has both “functions” (def outside a class) and “methods” (def inside a class). - Since Java requires all code to be inside classes, it only has “methods.” Those from a C++ background might refer to methods as “member functions.” -

    +

    + A point of terminology: Python has both “functions” (def outside a class) and “methods” (def inside a class). + Since Java requires all code to be inside classes, it only has “methods.” Those from a C++ background might refer to methods as “member functions.” +

    -

    - Let’s begin by implementing addition in Java: -

    +

    + Let’s begin by implementing addition in Java: +

    - - + + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + this.denominator * otherFrac.getNumerator(); @@ -252,23 +253,23 @@ public Fraction add(Fraction otherFrac) { Integer common = gcd(newNum, newDen); return new Fraction(newNum/common, newDen/common); } - - + + -

    - First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. - The Fraction part means that add will return a fraction as its result. -

    +

    + First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. + The Fraction part means that add will return a fraction as its result. +

    -

    - Second, you will notice that the method makes use of the this variable. - In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. - So this version of the code is equivalent: -

    +

    + Second, you will notice that the method makes use of the this variable. + In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. + So this version of the code is equivalent: +

    - - + + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * numerator + denominator * otherFrac.getNumerator(); @@ -276,21 +277,22 @@ public Fraction add(Fraction otherFrac) { Integer common = gcd(newNum, newDen); return new Fraction(newNum/common, newDen/common); } - - + + -

    - The addition takes place by multiplying each numerator by the opposite denominator before adding. - This procedure ensures that we are adding two fractions with common denominators. - Using this approach the denominator is computed by multiplying the two denominators. - The greatest common divisor method, gcd, is used to find a common divisor to simplify the numerator and denominator in the result. -

    +

    + The addition takes place by multiplying each numerator by the opposite denominator before adding. + This procedure ensures that we are adding two fractions with common denominators. + Using this approach the denominator is computed by multiplying the two denominators. + The greatest common divisor method, gcd, is used to find a common divisor to simplify the numerator and denominator in the result. +

    -

    - Finally on line 6 a new Fraction is returned as the result of the computation. - The value that is returned by the return statement must match the value that is specified as part of the declaration. - So, in this case the return value on line 8 must match the declared value on line 1. -

    +

    + Finally on line 6 a new Fraction is returned as the result of the computation. + The value that is returned by the return statement must match the value that is specified as part of the declaration. + So, in this case the return value on line 8 must match the declared value on line 1. +

    +
    @@ -399,23 +401,25 @@ public class Fraction {
    Inheritance -

    + +

    If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like this: -

    +

    - - + + Fraction@6ff3c5b5 - - + + -

    - The reason is that we have not yet provided a friendly string representation for our Fraction objects. - Just like in Python, whenever an object is printed by the println method it must be converted to string format. - In Python you can control how that looks by writing an __str__ method for your class. - If you do not then you will get the default, which looks something like the above. -

    +

    + The reason is that we have not yet provided a friendly string representation for our Fraction objects. + Just like in Python, whenever an object is printed by the println method it must be converted to string format. + In Python you can control how that looks by writing an __str__ method for your class. + If you do not then you will get the default, which looks something like the above. +

    + diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index 3e0bdcc..99728ea 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -2,14 +2,18 @@ + + + Dr. Brad Miller + Computer Science + Luther College + + + + + - - Dr. Brad Miller - Computer Science - Luther College - - - + From 8ccdcfeaa45d7750ace9a2516aa503a47c69e3cd Mon Sep 17 00:00:00 2001 From: Bradley Miller Date: Sun, 6 Jul 2025 14:47:34 -0500 Subject: [PATCH 044/448] fix xsl requirement --- project.ptx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/project.ptx b/project.ptx index fe71da4..2c49559 100644 --- a/project.ptx +++ b/project.ptx @@ -19,8 +19,7 @@ format="html" platform="runestone" source="main.ptx" - publication="publication-rs-academy.xml" - xsl="xsl/runestone.xsl"> + publication="publication-rs-academy.xml"> From 7d35d3ffe4d4ed21c259cec0a44e83f6d3b7f648 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 9 Jul 2025 15:36:34 -0400 Subject: [PATCH 045/448] I made the error messages in chapter9 cover multiple lines. --- source/ch_9_commonmistakes.ptx | 41 +++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index fe7b64e..9feada0 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -10,13 +10,27 @@
    Forgetting to declare your variables -
    Histo.java:21: cannot find symbol symbol  : variable count location: class Histo count = new ArrayList<Integer>(10); ^
    +
    +            Histo.java:21: cannot find symbol
    +            symbol  : variable count
    +            location: class Histo
    +                count = new ArrayList<Integer>(10);
    +                ^
    +        
    +
    Not importing a class -
    Histo.java:9: cannot find symbol symbol  : class Scanner location: class Histo Scanner data = null; ^
    +
    +            Histo.java:9: cannot find symbol
    +            symbol  : class Scanner
    +            location: class Histo
    +                Scanner data = null;
    +                ^
    +        
    +
    @@ -29,18 +43,35 @@ First Scanner is not really a method it is a constructor.:

    -
    Histo.java:14: cannot find symbol symbol  : method Scanner(java.io.File) location: class Histo data = Scanner(new File("test.dat")); ^
    +
    +            Histo.java:14: cannot find symbol
    +            symbol  : method Scanner(java.io.File)
    +            location: class Histo
    +                data = Scanner(new File("test.dat"));
    +                ^
    +        
    +
    Forgetting a Semicolon -
    Histo.java:19: ';' expected System.exit(0); ^
    +
    +            Histo.java:19:
    +            ';' expected
    +                System.exit(0);
    +                ^
    +        
    +
    Forgetting to declare the kind of object in a container -
    Note: Histo.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
    +
    +            Note: Histo.java uses unchecked or unsafe operations. Note:
    +            Recompile with -Xlint:unchecked for details.
    +        
    +
    \ No newline at end of file From c070e23a26e5ffeb7c741b8039c71eed0c0ad9be Mon Sep 17 00:00:00 2001 From: Austing767 Date: Thu, 10 Jul 2025 12:34:29 -0500 Subject: [PATCH 046/448] Added a new section about Java IDE fixes issue #17 --- source/ch_1_introduction.ptx | 216 ++++++++++++++++++++++++++++++++++- 1 file changed, 215 insertions(+), 1 deletion(-) diff --git a/source/ch_1_introduction.ptx b/source/ch_1_introduction.ptx index 0396762..188c526 100644 --- a/source/ch_1_introduction.ptx +++ b/source/ch_1_introduction.ptx @@ -3,7 +3,7 @@ Introduction - +

    This book assumes that you are already familiar with the Python programming language. We will use Python as a starting point for our journey into Java. @@ -85,4 +85,218 @@ Please note that this book is a work in progress. I will continue to update and post new versions.

    +
    +
    + Java Development Environment + + +

    + The tool that we use to compile a Java source file into a Java class file + is called a compiler. Most programmers use an + Integrated Development Environment (IDE) that has the + compiler built in and helps you write, compile, run, and debug programs. +

    + +

    + You can learn Java by just using the interactive coding panels called + Active Code in this e-book. If you are logged in, the Active + Code will remember your changes and even show you a history of your + changes to the code if you click on Load History. +

    + +

    + However, it’s a good idea to also try a Java IDE to build code outside of + this e-book, especially to try coding with user input which Active Code + cannot do. There are many Java IDEs available. +

    +
    + + + Java IDE Options +

    + There are a lot of online cloud IDEs where you can code online in many + programming languages. Most are free to start, but offer different + features for a price. These are great options if you are using a + Chromebook or you cannot install software on your computer or you want an + easy no-installation option. Some of the Active Code samples in this + e-book also include a link to online IDEs. These projects can be copied to + make your own copy. +

    + +

    Here are some popular online IDEs:

    +

    +

      +
    • +

      + CodeHS (https://codehs.com/) has a free Sandbox online IDE + (https://codehs.com/app/sandbox) + where you can run Java and Java Swing programs. Students can share the links + to their code and the history of their code is saved. CodeHS has free and paid features. + Grading features are in the paid version. +

      +
    • +
    • +

      + PickCode (https://pickcode.io/) is another + online IDE that offers many free and paid features for setting up + classrooms. In the free version, tudents can share links to their code and + the history of their code is saved. Classroom features are in the paid version. +

      +
    • +
    • +

      + Replit (https://replit.com/) an online + IDE which recently switched to only allowing 3 projects at a time + for free. Be aware that Replit has turned on its AI feature for code + completion for all accounts (https://replit.com/ai). Each + user can turn the AI on and off at the bottom of the code window, + and use an AI chat window to ask questions of the AI. +

      +
    • + +
    • +

      + JuiceMind (https://juicemind.com/) is an + online IDE that offers many free and paid features for teachers to + set up classrooms like Coding Rooms. It has a built-in version of + CSAwesome. +

      +
    • +
    +

    +
    + + + Github Classroom and Codespaces +

    + Github provides many free opportunities for students and teachers (https://docs.github.com/en/education/quickstart). + Github Classroom (https://classroom.github.com/) + allows teachers to set up a classroom based on github repositories. Github + and git are both widely used in the computer industry, so learning to use + them is great experience for students. Github now has a cloud IDE called + Codespaces (https://github.com/features/codespaces) + which you can use for 60 hours a month for free or completely free if you + join as a school or get approved as a teacher or student. In Codespaces, + you can start from a blank template or a repo, open a .java file in the + VSCode editor, follow prompts to install the Extension Pack for Java, + click on the Run and Debug (play button), follow the prompts to install + the Java debugger, and see the output of your code in the terminal. You + can also use Copilot (https://github.com/features/copilot), + which is a coding AI based on GPT, for free if you are approved for + educational use. +

    + +

    + Students will need to sign up for a free Github account (https://github.com/signup) if + they don’t already have one in order to use Codespaces. +

    +
    + + + VSCode +

    + VSCode (https://code.visualstudio.com) + is a widely used coding editor which you can download on your local + computers. It has many useful extensions. The code can be run in a + terminal window in the editor. See https://code.visualstudio.com/docs/languages/java + for Java support. This editor is different than Microsoft Visual Studio + which is a very large IDE. +

    +
    + + + Dr. Java +

    + DrJava (from http://DrJava.org) is a free, simple, + easy to install and use development environment. One nice feature is the + interactions pane at the bottom which lets you try out Java code without + having to create a class first. +

    +
    + + + BlueJ +

    + BlueJ (https://www.bluej.org/) is a free + Java IDE designed for beginners. It is built to explore objects and + object-oriented programming and has a teachers’ community as well as a + playlist of videos online https://www.youtube.com/playlist?list=PLYPWr4ErjcnzWB95MVvlKArO6PIfv1fHd + to go with the BlueJ Object-First Java book. +

    +
    + + + jGRASP +

    + jGRASP (https://www.jgrasp.org/) is a free + lightweight development environment, created specifically to provide + automatic generation of software visualizations. jGRASP is implemented in + Java, and runs on all platforms with a Java Virtual Machine (Java version + 1.5 or higher). jGRASP produces Control Structure Diagrams (CSDs) for + Java, C, C++, Objective-C, Python, Ada, and VHDL; Complexity Profile + Graphs (CPGs) for Java and Ada; UML class diagrams for Java; and has + dynamic object viewers and a viewer canvas that work in conjunction with + an integrated debugger and workbench for Java. The site includes both + intro video and PDF tutorials. +

    +
    + + + IntelliJ +

    + IntelliJ (https://www.jetbrains.com/idea/) + is a free Java IDE from JetBrains which many professionals use. It is a + little easier to configure than Eclipse below. Here is a guide on how to + set up IntelliJ: https://www.jetbrains.com/help/idea/install-and-set-up-product.html. +

    +
    + + + Netbeans +

    + Netbeans (https://netbeans.org/) is one of the + original Java IDEs. Here is a tutorial on how to set it up: https://netbeans.org/kb/docs/java/quickstart. +

    +
    + + + Eclipse +

    + Eclipse (https://www.eclipse.org/downloads/packages/installer) + is what many professional Java programmers use. It may be a little complex + for beginners. Here are some installation and configuration instructions + for Eclipse for Java beginners: http://skylit.com/javamethods/faqs/Eclipse.pdf. +

    +
    +
    +
    \ No newline at end of file From a2dfd36fa11c89374f7ebeab2ad1e1ba5fe87de0 Mon Sep 17 00:00:00 2001 From: Austing767 Date: Thu, 10 Jul 2025 15:19:58 -0500 Subject: [PATCH 047/448] partial fix issue #23, Adds deletes colophon adds front matter history of this book --- source/meta_backmatter.ptx | 12 ------------ source/meta_frontmatter.ptx | 13 +++++++++++++ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/source/meta_backmatter.ptx b/source/meta_backmatter.ptx index 34e1c60..66f00aa 100644 --- a/source/meta_backmatter.ptx +++ b/source/meta_backmatter.ptx @@ -4,18 +4,6 @@ Appendices - -

    - I started writing this article in 2006 using Python’s restructured text. - In 2007 I switched to markdown since everything else I was writing used markdown. - In particular I switched to the variant of markdown used by the excellent pandoc program. - Pandoc does an excellent job of converting markdown to html, latex, pdf, and other formats. - The markdown source for this article is available here. - Finally the document became so big that I used pandoc to convert it to latex for preparing the final version. - I used The htlatex program to generate html for the online version of this document. -

    -
    - Shameless Plug diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index 99728ea..cf4f087 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -47,4 +47,17 @@

    + + + History of this Book +

    + I started writing this article in 2006 using Python’s restructured text. + In 2007 I switched to markdown since everything else I was writing used markdown. + In particular I switched to the variant of markdown used by the excellent pandoc program. + Pandoc does an excellent job of converting markdown to html, latex, pdf, and other formats. + The markdown source for this article is available here. + Finally the document became so big that I used pandoc to convert it to latex for preparing the final version. + I used The htlatex program to generate html for the online version of this document. +

    +
    \ No newline at end of file From 6df1351e70ed103edd721da1c34b705f099f3435 Mon Sep 17 00:00:00 2001 From: Austing767 Date: Thu, 10 Jul 2025 15:41:43 -0500 Subject: [PATCH 048/448] Partial fix issue#24, I have added an Acknowledgements page --- source/meta_frontmatter.ptx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index 99728ea..441ac55 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -16,6 +16,19 @@ + + Acknowledgements +

    +

      +
    • Rob Beezer for creating PreTeXt
    • +
    • Moise Dete-Kpinssounon for converting the original version to PreTeXt
    • +
    • Oscar Levin for creating the rst to PreTeXt transition tool that helped Moise's conversion work
    • +
    • Berea College for funding interns and supporting independent studies that facilitated the conversion and improvement of the book
    • +
    • Beryl Hoffman and her impressive work on CSAwsome, which we are leveraging
    • +
    +

    +
    +

    From 2194fc52be978af5986b66afdb05181359c53726 Mon Sep 17 00:00:00 2001 From: Austing767 Date: Fri, 11 Jul 2025 08:31:02 -0500 Subject: [PATCH 049/448] Added index to the main.ptx, have not added terms yet, commit for logan. Fixes issue#20 --- source/main.ptx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/main.ptx b/source/main.ptx index 7d8abe0..bddc8f2 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -18,5 +18,11 @@ + + + Index + + + \ No newline at end of file From 0b4e826d3c02e2a87f88f04a153bb14639485efa Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Mon, 28 Jul 2025 09:56:56 -0400 Subject: [PATCH 050/448] Added a placeholder for the file IO chapter to test adding a new chapter to the book. Added an entry in main.ptx so this new chapter is included in the book. --- source/ch_x_filemanipulation.ptx | 11 +++++++++++ source/main.ptx | 1 + 2 files changed, 12 insertions(+) create mode 100644 source/ch_x_filemanipulation.ptx diff --git a/source/ch_x_filemanipulation.ptx b/source/ch_x_filemanipulation.ptx new file mode 100644 index 0000000..b13f2af --- /dev/null +++ b/source/ch_x_filemanipulation.ptx @@ -0,0 +1,11 @@ + + + + + File IO + +

    + This chapter will cover File IO. +

    + + \ No newline at end of file diff --git a/source/main.ptx b/source/main.ptx index 7d8abe0..1c2123c 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -14,6 +14,7 @@ + From 2a8012819da1129597b970a1e62f616e224c5c7f Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Mon, 28 Jul 2025 10:29:06 -0400 Subject: [PATCH 051/448] partial fix for issue #19 adds a description and corrects the code in ch 9.1. --- source/ch_9_commonmistakes.ptx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 9feada0..eb8721f 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -10,19 +10,22 @@
    Forgetting to declare your variables +

    + This error occurs because the variable count is being used without being declared first. We know that the variable count is causing the issue because the error message has an arrow pointing at it. Java doesn't recognize count as a known variable in the class Histo, so it throws a "cannot find symbol" error. To fix this, you need to declare count with a proper type before assigning a value to it. +

    -            Histo.java:21: cannot find symbol
    -            symbol  : variable count
    -            location: class Histo
    +            Main.java:7: error: cannot find symbol
                     count = new ArrayList<Integer>(10);
                     ^
    +              symbol:   variable count
    +              location: class Main
             
    Not importing a class - +
                 Histo.java:9: cannot find symbol
                 symbol  : class Scanner
    
    From 28b7637614ebe9e84bb0755d19b6bcb02874836b Mon Sep 17 00:00:00 2001
    From: colin flaherty 
    Date: Mon, 28 Jul 2025 10:51:41 -0400
    Subject: [PATCH 052/448] adds a better description for chapter 9.1 after
     recieving feedback. issue #19
    
    ---
     source/ch_9_commonmistakes.ptx | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx
    index eb8721f..30cafbf 100644
    --- a/source/ch_9_commonmistakes.ptx
    +++ b/source/ch_9_commonmistakes.ptx
    @@ -11,7 +11,7 @@
             Forgetting to declare your variables
     
             

    - This error occurs because the variable count is being used without being declared first. We know that the variable count is causing the issue because the error message has an arrow pointing at it. Java doesn't recognize count as a known variable in the class Histo, so it throws a "cannot find symbol" error. To fix this, you need to declare count with a proper type before assigning a value to it. + The 'cannot find symbol' error for the variable count on line 7 indicates that count was used before it was declared within the Histo class. In Java, all variables must be explicitly declared with a data type (e.g., int, String, ArrayList<Integer>) before they can be assigned a value or referenced in any way. The arrow in the error message points to where the undeclared variable count was first encountered. To resolve this, count needs to be declared with its appropriate type (e.g., ArrayList<Integer> count;) before any attempt to initialize or use it.

                 Main.java:7: error: cannot find symbol
    
    From aef76c949c5da205257daaf774f71a68ab7244ad Mon Sep 17 00:00:00 2001
    From: colin flaherty 
    Date: Mon, 28 Jul 2025 11:20:16 -0400
    Subject: [PATCH 053/448] adds a description and fixes the error message in
     9.2. Issue #19
    
    ---
     source/ch_9_commonmistakes.ptx | 9 ++++++---
     1 file changed, 6 insertions(+), 3 deletions(-)
    
    diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx
    index 9feada0..4c8bd9a 100644
    --- a/source/ch_9_commonmistakes.ptx
    +++ b/source/ch_9_commonmistakes.ptx
    @@ -22,13 +22,16 @@
     
         
    Not importing a class +

    + You may Notice that this error message looks similar to the previous one, however it has an entirely diferent cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;. +

    -            Histo.java:9: cannot find symbol
    -            symbol  : class Scanner
    -            location: class Histo
    +            Histo.java:3: error: cannot find symbol
                     Scanner data = null;
                     ^
    +              symbol:   class Scanner
    +              location: class Histo
             
    From b0b30aa8e9b8d15179300e1a2a3885b82bf0aafa Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Mon, 28 Jul 2025 11:23:14 -0400 Subject: [PATCH 054/448] fixed missing code tag --- source/ch_9_commonmistakes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 4c8bd9a..1953056 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -23,7 +23,7 @@
    Not importing a class

    - You may Notice that this error message looks similar to the previous one, however it has an entirely diferent cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;. + You may Notice that this error message looks similar to the previous one, however it has an entirely diferent cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;.

    
    From ee7c7f9dfe9913bf853b5d2ac4bdd036b4e00608 Mon Sep 17 00:00:00 2001
    From: colin flaherty 
    Date: Mon, 28 Jul 2025 11:55:09 -0400
    Subject: [PATCH 055/448] adds description and updates error message in ch9.3.
     fixes issue  #18
    
    ---
     source/ch_9_commonmistakes.ptx | 13 +++++--------
     1 file changed, 5 insertions(+), 8 deletions(-)
    
    diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx
    index 9feada0..4f87040 100644
    --- a/source/ch_9_commonmistakes.ptx
    +++ b/source/ch_9_commonmistakes.ptx
    @@ -37,18 +37,15 @@
             Forgetting to use the new keyword to create an object
     
             

    - Here’s an example of the error message that occurs when you forget to use the new keyword. - Notice that the message is pretty unhelpful. - Java thinks you are trying to call the Method Scanner, but there are two problems. - First Scanner is not really a method it is a constructor.: + This error message occurs when you forget to use the new keyword to instantiate an object. Specifically, on line 8 of Histo.java, data = Scanner(new File("test.dat")); leads to a 'cannot find symbol' error. While the message states 'symbol: method Scanner(File)', this can be misleading. Java incorrectly interprets Scanner() as an attempt to call a static method named Scanner within the Histo class (or an inherited one). However, Scanner is a constructor of the Scanner class, not a standalone method, and therefore requires the new keyword (e.g., data = new Scanner(new File("test.dat"));) to create a new Scanner object.

    -            Histo.java:14: cannot find symbol
    -            symbol  : method Scanner(java.io.File)
    -            location: class Histo
    +            Histo.java:8: error: cannot find symbol
                     data = Scanner(new File("test.dat"));
    -                ^
    +                    ^
    +              symbol:   method Scanner(File)
    +              location: class Histo
             
    From 2bf62eb9563778245671a76cae75eaf432da5c3f Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Mon, 28 Jul 2025 13:22:39 -0400 Subject: [PATCH 056/448] I added typecasting, primitives, variable name, and fixes issue #32 --- source/ch_4_javadatatypes.ptx | 200 ++++++++++++++++++++-------------- 1 file changed, 121 insertions(+), 79 deletions(-) diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index 6d097a7..6992dd8 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -59,6 +59,39 @@ In older versions of Java, it was the programmers responsibility to convert back and forth from a primitive to an object whenever necessary. This process of converting a primitive to an object was called “boxing.” The reverse process is called “unboxing.” In Java 5, the compiler became smart enough to know when to convert back and forth and is called “autoboxing.” In this book, we will typically use the Object version of all the numeric data types and let the compiler do its thing.

    +

    + With that distinction in mind, here are the common types you'll use, most of which are similar to Python's types: +

      +
    • +

      + int: The primitive type for integers (whole numbers), such as 3, 0, and -76. +

      +
    • +
    • +

      + double: The primitive type for floating-point numbers like 6.3 or -0.9. +

      +
    • +
    • +

      + boolean: The primitive type that can only be true or false. +

      +
    • +
    • +

      + char: The primitive type for a single character, like 'a' or 'Z'. It is represented using single quotes. +

      +
    • +
    • +

      + String: An object type that represents a sequence of characters in double quotes, like "Hello". +

      +
    • + +
    + + A data type fundamentally defines a set of values and the operations you can perform on them. For instance, you can do math with int and double values, but not with boolean values. This is simlar to Python, where you can perform arithmetic on integers and floats, but not on booleans or strings. +

    Let’s look at a simple Python function which converts a Fahrenheit temperature to Celsius. @@ -117,11 +150,6 @@ public class TempConv {

    -
  15. -

    - Input/Output and the Scanner Class -

    -
  16. @@ -202,13 +230,19 @@ public class TempConv { - - Declaring Variables + + Variable Declaration

    - Here is where we run into one of the most important differences between Java and Python. Python is a dynamically typed language. In a dynamically typed language a variable can refer to any kind of object at any time. When the variable is used, the interpreter figures out what kind of object it is. Java is a statically typed language. In a statically typed language the association between a variable and the type of object the variable can refer to is determined when the variable is declared. Once the declaration is made it is an error for a variable to refer to an object of any other type. + Here is where we run into one of the most important differences between Java and Python. Python is a dynamically typed language. In a dynamically typed language a variable can refer to any kind of object at any time. When the variable is used, the interpreter figures out what kind of object it is. Java is a statically typed language. In a statically typed language the association between a variable and the type of object the variable can refer to is determined when the variable is declared. Once the declaration is made it is an error for a variable to refer to an object of any other type.

    +

    + A valid variable name in Java can contain letters, digits, and underscores. It must begin with a letter, an underscore, or a dollar sign. It cannot start with a digit and it cannot be a reserved keyword (like class, int, or static). Variable names are case-sensitive, so fahr and Fahr are different variables. The convention is to use lower case for variable names, and to use camel case (where the first word is lowercase and subsequent words are capitalized) for multi-word variable names, such as fahrenheitTemperature. +

    +

    + An important feature of Java is that when you declare a variable of a primitive type (like int or double), the system automatically allocates a fixed amount of memory to store its value directly. This is different from reference types (like String or Scanner), where the variable holds a memory address that points to the actual object data stored elsewhere. This distinction makes operations on primitives very fast. +

    In the example above, lines 5—7 contain variable declarations. Specifically we are saying that fahr and cel are going to reference objects that are of type Double. The variable in will reference a Scanner object. This means that if we were to try an assignment like fahr = "xyz" the compiler would generate an error because "xyz" is a string and fahr is supposed to be a double.

    @@ -223,86 +257,94 @@ public class TempConv {

    - The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. There is much more to say about the static typing of Java, but for now this is enough. + The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. In our temperature converter, the calculation (fahr - 32) * 5.0/9.0 works correctly because 5.0 and 9.0 are treated as double values, preventing the integer division that would occur if we had written 5/9, which would result in 0.

    -
    - - - - Input / Output / Scanner - -

    - In the previous section we created a Scanner object. In Java, Scanner objects make getting input from the user, a file, or even over the network relatively easy. In our case we simply want to ask the user to type in a number at the command line, so in line 9 we construct a Scanner by calling the constructor and passing it the System.in object. Notice that this Scanner object is assigned to the name in, which we declared to be a Scanner on line 7. System.in is similar to System.out except, of course, it is used for input. If you are wondering why we must create a Scanner to read data from System.in when we can write data directly to System.out using println, you are not alone. We will talk about the reasons why this is so later when we talk in-depth about Java streams. You will also see in other examples that we can create a Scanner by passing the Scanner a File object. You can think of a Scanner as a kind of “adapter” that makes low level objects easier to use. -

    - -

    - On line 11 we use the Scanner object to read in a number. Here again we see the implications of Java being a strongly typed language. Notice that we must call the method nextDouble because the variable fahr was declared as a double. So, we must have a function that is guaranteed to return each kind of object we might want to read. In this case, we need to read a Double so we call the function nextDouble. The compiler matches up these assignment statments and if you try to assign the results of a method call to the wrong kind of variable it will be flagged as an error. -

    - -

    - The table below shows some commonly used methods of the Scanner class. There are many more methods supported by this class and we will talk about how to find them in our chapter about . -

    - - - - - Return type - Method name - Description - - - - boolean - hasNext() - returns true if more data is present - + + - - boolean - hasNextInt() - returns true if the next thing to read is an integer - +
    + Typecasting - - boolean - hasNextFloat() - returns true if the next thing to read is a float - +

    + Typecasting is the process of converting a variable from one type to another. In Java, this is often necessary when you want to perform operations that require different data types. For example, if you have an integer and you want to convert it to a double for more precise calculations, you would use typecasting. +

    - - boolean - hasNextDouble() - returns true if the next thing to read is a double - +

    + In Java, typecasting can be done in two ways: implicit and explicit. Implicit typecasting occurs automatically when converting from a smaller data type to a larger one (like int to double), while explicit typecasting requires you to specify the conversion manually (like double to int). +

    - - Integer - nextInt() - returns the next thing to read as an integer - +

    + Implicit typecasting happens automatically when converting a value from a smaller data type to a larger one, as there is no risk of losing information. For example, you can assign an int to a double without any special syntax. +

    +
     
    +        int myInt = 10;
    +        double myDouble = myInt; // Automatic casting from int to double
    +        
    + +

    + Explicit typecasting is required when converting from a larger data type to a smaller one, as you might lose data. You must do this manually by placing the target type in parentheses () before the value. +

    +
    +        double originalDouble = 9.78;
    +        int castedInt = (int) originalDouble; // Explicitly casts double to int. The value of castedInt is now 9.
    +        
    - - Float - nextFloat() - returns the next thing to read as a float - +

    + Besides primitive types, type casting is also a fundamental concept when working with objects, especially within an inheritance hierarchy. This involves converting an object reference from one class type to another, typically between a superclass and a subclass. This is often referred to as upcasting and downcasting. +

    +

    + Let's imagine we have a simple class hierarchy: an Animal superclass and a Dog subclass. +

    +
    +class Animal {
    +    public void makeSound() {
    +        System.out.println("The animal makes a sound.");
    +    }
    +}
     
    -                    
    -                         Double 
    -                         nextDouble() 
    -                         returns the next thing to read as a Double 
    -                    
    +class Dog extends Animal {
    +    public void bark() {
    +        System.out.println("The dog barks!");
    +    }
    +}
    +    
    + +

    + Upcasting (Implicit): Upcasting is casting a subclass instance to a superclass reference type. This is always safe because a subclass object is guaranteed to have all the methods and properties of its superclass. Therefore, upcasting is done implicitly by the compiler. +

    +
    +// A Dog object is created, but the reference is of type Animal.
    +// This is implicit upcasting.
    +Animal myAnimal = new Dog(); 
    +
    +myAnimal.makeSound(); // This is valid, as makeSound() is defined in Animal.
    +
    +// myAnimal.bark(); // This would cause a compile-time error!
    +// The compiler only knows about the methods in the Animal reference type.
    +    
    +

    + Downcasting (Explicit): Downcasting is casting a superclass reference back to its original subclass type. This is potentially unsafe because the superclass reference might not actually point to an object of the target subclass. You must perform an explicit cast. If you cast to the wrong type, Java will throw a ClassCastException at runtime. +

    +

    + To safely downcast, you should first check the object's type using the instanceof operator. +

    +
    +// 'myAnimal' is an Animal reference, but it points to a Dog object.
    +if (myAnimal instanceof Dog) {
    +    // The check passed, so this downcast is safe.
    +    Dog myDog = (Dog) myAnimal;
    +
    +    // Now we can access methods specific to the Dog class.
    +    myDog.bark(); // This is now valid.
    +}
    +    
    - - String - next() - returns the next thing to read as a String - - -
    -
    -
    +

    + In this example, we first create a Dog object and assign it to an Animal reference (upcasting). Then, we check if the Animal reference is actually pointing to a Dog object before downcasting it back to a Dog reference. +

    +
    +
    String From f3f15fef2706bba3527ece5b7ed327cc2cac0c09 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Mon, 28 Jul 2025 13:50:49 -0400 Subject: [PATCH 057/448] Fixing the footnote and the sections in Chapter 2 --- source/ch_2_whylearnjava.ptx | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx index 491d41e..b52c5ee 100644 --- a/source/ch_2_whylearnjava.ptx +++ b/source/ch_2_whylearnjava.ptx @@ -4,6 +4,9 @@ Why Learn another programming Language? +
    + Why Learn another programming Language? +

    Python is a nice language for beginning programming for several reasons. @@ -40,6 +43,7 @@ If you know what is common in languages that is a good place to start.

    +
    Why Learn Java? Why not C or C++? @@ -80,12 +84,17 @@ But for these and other reasons, we’ve decided to use Java for this course. Learning Java will be a good preparation for learning these and other languages!

    - Footnotes + +

    + Footnotes +

    +

    + Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). So native language performance is just one criteria to consider when deciding which language to use for a program. -

    +

    \ No newline at end of file From 5334f44d5968056749d35f12b121d210a53eb99a Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Mon, 28 Jul 2025 13:53:49 -0400 Subject: [PATCH 058/448] adds description to ch 9.4 and updates the error message to match a modern version of Java. Issue #19 --- source/ch_9_commonmistakes.ptx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 9feada0..9431529 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -55,12 +55,13 @@
    Forgetting a Semicolon - +

    + The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon. +

    -            Histo.java:19:
    -            ';' expected
    -                System.exit(0);
    -                ^
    +            Histo.java:7: error: ';' expected
    +                Scanner data = null
    +                                   ^
             
    From 19a82e183851c473268cfeca1ba391b1147a8b9d Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Mon, 28 Jul 2025 14:19:02 -0400 Subject: [PATCH 059/448] Created an introduction and a section covering library imports. For now, this chapter is chapter 8 and is listed as 'ch_x_filemanipulation.ptx' in the source folder and main.ptx. --- source/ch_x_filemanipulation.ptx | 44 +++++++++++++++++++++++++++++--- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/source/ch_x_filemanipulation.ptx b/source/ch_x_filemanipulation.ptx index b13f2af..a2a3be3 100644 --- a/source/ch_x_filemanipulation.ptx +++ b/source/ch_x_filemanipulation.ptx @@ -4,8 +4,46 @@ File IO -

    - This chapter will cover File IO. -

    + +

    + File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files. +

    +
    + + +
    + Class Imports + +

    + Before any code can be written to handle files, the proper classes must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. +

    + + + +import java.io.File; + + + +

    + This class provides a lot of functionality for file hanling, however, the IOException class should also be included and used to handle file operation errors. If this class is not included and a file operation throws an exception, a compile error will occur. +

    + + + +import java.io.IOException; + + + +

    + Next, the Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unneccesary if the program will not be reading any data from a file. +

    + + + +import java.io.IOException; + + + +
    \ No newline at end of file From b8f0ca472632a7bed46a7ac5d2aca4d1d76fdb3b Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Mon, 28 Jul 2025 15:29:17 -0400 Subject: [PATCH 060/448] adds a description and updates the error message in ch9.5 --- source/ch_9_commonmistakes.ptx | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 9431529..1d05194 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -68,10 +68,19 @@
    Forgetting to declare the kind of object in a container - +

    + This is a compiler warning, not an error, indicating a potential type safety issue. It occurs because you are calling the add() method on rawList, which is an ArrayList used as a raw type (i.e., without specifying a generic type like <String> or <Integer>). +

    + +

    + When ArrayList is used as a raw type, the compiler cannot guarantee the type of elements being added or retrieved, leading to "unchecked" operations. The E extends Object part refers to the generic type parameter E that ArrayList should have, which defaults to Object when the type is not specified, making the add() call unchecked. This can lead to ClassCastExceptions at runtime if incompatible types are later retrieved and cast. +

    -            Note: Histo.java uses unchecked or unsafe operations. Note:
    -            Recompile with -Xlint:unchecked for details.
    +            UncheckedWarningDemo.java:8: warning: [unchecked] unchecked call to add(E) as a member of the raw type ArrayList
    +                    rawList.add("Hello");
    +                            ^
    +              where E is a type-variable:
    +                E extends Object declared in class ArrayList
             
    From 3a5ce80c1fa28fddd9333c5ef32cf16726682f14 Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Mon, 28 Jul 2025 15:47:49 -0400 Subject: [PATCH 061/448] Adds a cheatsheet for Java fixes issue #42 --- source/ap-java-cheatsheet.ptx | 227 ++++++++++++++++++++++++++++++++++ source/main.ptx | 3 + 2 files changed, 230 insertions(+) create mode 100644 source/ap-java-cheatsheet.ptx diff --git a/source/ap-java-cheatsheet.ptx b/source/ap-java-cheatsheet.ptx new file mode 100644 index 0000000..f628368 --- /dev/null +++ b/source/ap-java-cheatsheet.ptx @@ -0,0 +1,227 @@ + + +
    + Java Cheat Sheet + + Purpose of this Cheat Sheet +

    +

    +

    + The following is intended to be useful in better understanding Java functions coming from a Python background. +

    +
    + + + + + Python Function + Java Equivalent + Description + + + print() + System.out.println() + Prints output to the console. + + + len() + array.length + Returns the length of an array. + + + range() + for (int i = 0; i < n; i++) + Used in loops to iterate a specific number of times. + + + str() + String.valueOf() + Converts an object to a string. + + + int() + Integer.parseInt() + Converts a string to an integer. + + + float() + Float.parseFloat() + Converts a string to a float. + + + list.append() + ArrayList.add() + Adds an element to the end of a list. + + + list.pop() + ArrayList.remove(index) + Removes and returns the element at the specified index. + + + list.sort() + Collections.sort(list) + Sorts a list in ascending order. + + + list.reverse() + Collections.reverse(list) + Reverses the order of elements in a list. + + + dict.get() + Map.get(key) + Retrieves the value associated with a key in a map. + + + dict.keys() + Map.keySet() + Returns a set of keys in a map. + + + dict.values() + Map.values() + Returns a collection of values in a map. + + + dict.items() + Map.entrySet() + Returns a set of key-value pairs in a map. + + + input() + Scanner.nextLine() + Reads a line of input from the console. + + + open() + FileReader, BufferedReader + Used to read from files. + + + enumerate() + for (int i = 0; i < list.size(); i++) { ... } + Used to iterate over a list with an index. + + +
    + + + + Operator Type + Operator + Description + Example + + + Arithmetic + +, -, *, / + Addition, Subtraction, Multiplication, Division + 5 + 2 + + + Arithmetic + // + Floor Division (rounds down) + 7 // 2 → 3 + + + Arithmetic + % + Modulus (remainder) + 7 % 2 → 1 + + + Arithmetic + ** + Exponent + 2 ** 3 → 8 + + + Comparison + ==, != + Equal to, Not equal to + x == y + + + Comparison + >, <, >=, <= + Greater/Less than, or equal to + x > 5 + + + Logical + and, or, not + Logical AND, OR, NOT + x > 1 and y < 10 + + + Assignment + +=, -=, *=, /= + Adds, subtracts, multiplies, or divides and assigns + x += 1 + + + Bitwise + <<, >>, >>> + Left, right, and unsigned right shift. + x << 2 + + + Ternary + ? : + One-line if-else expression. + condition ? val1 : val2 + + +
    + +

    +

      +
    • +

      + Short-Circuiting: The logical operators && (AND) and || (OR) are efficient. They stop evaluating as soon as the outcome is known. For example, in if (user != null && user.isAdmin()), the code will not attempt to call .isAdmin() if user is null, preventing an error. +

      +
    • +
    • +

      + Streams: Java's Stream API provides a powerful way to process collections of objects. A stream can be used to filter, map, and reduce data in a sequence of steps, similar to Python's list comprehensions but more powerful. +

      +
    • +
    • +

      + The Ternary Operator provides a compact, one-line if-else statement. For instance, result = "Pass" if score >= 60 else "Fail" is much shorter than a full if-else block. +

      +
    • + +
    • +

      + List Comprehension offers a concise and readable way to create new lists based on existing sequences. Instead of a multi-line loop, you can write squares = [i**2 for i in range(10)] to generate a list of squares. +

      +
    • + +
    • +

      + F-Strings (Formatted String Literals) simplify embedding expressions and variables directly inside strings. This makes code like print(f"Hello, {name}!") much cleaner than traditional string concatenation. +

      +
    • + +
    • +

      + Tuple and List Unpacking allows for assigning elements of a sequence to multiple variables in a single line, such as name, age = ["Alice", 30]. This also enables simple variable swapping with a, b = b, a. +

      +
    • + +
    • +

      + Chained Comparisons make range checks more intuitive and mathematical. You can write if 18 <= age < 65: instead of the more verbose if age >= 18 and age < 65:. +

      +
    • +
    +

    + +
    +
    + + + diff --git a/source/main.ptx b/source/main.ptx index 7d8abe0..8c06021 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -18,5 +18,8 @@ + + + \ No newline at end of file From 79803e8e717cb2cc341a6de976752f610721343c Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Mon, 28 Jul 2025 15:50:53 -0400 Subject: [PATCH 062/448] Changed introductions that were problmeatic --- source/ch_1_introduction.ptx | 140 ++++++------ source/ch_2_whylearnjava.ptx | 73 ++++--- source/ch_4_javadatatypes.ptx | 5 - source/ch_5_conditionals.ptx | 7 +- source/ch_6_loopsanditeration.ptx | 10 +- source/ch_7_definingclasses.ptx | 344 +++++++++++++++--------------- 6 files changed, 290 insertions(+), 289 deletions(-) diff --git a/source/ch_1_introduction.ptx b/source/ch_1_introduction.ptx index 0396762..e171633 100644 --- a/source/ch_1_introduction.ptx +++ b/source/ch_1_introduction.ptx @@ -4,85 +4,89 @@ Introduction -

    - This book assumes that you are already familiar with the Python programming language. - We will use Python as a starting point for our journey into Java. - We will begin by looking at a very simple Java program, just to see what the language looks like and how we get a program to run. - Next, we will look at the main constructs that are common to most programming languages: -

    +
    + Introduction to Java for Python Programmers -

    -

      -
    • -

      - Data Types -

      -
    • + This book assumes that you are already familiar with the Python programming language. + We will use Python as a starting point for our journey into Java. + We will begin by looking at a very simple Java program, just to see what the language looks like and how we get a program to run. + Next, we will look at the main constructs that are common to most programming languages: +

      -
    • -

      - Loops -

      -
    • +
      +

      +

        +
      • +

        + Data Types +

        +
      • -
      • -

        - Reading user input -

        -
      • +
      • +

        + Loops +

        +
      • -
      • -

        - Conditionals -

        -
      • -
      -

      -
      +
    • +

      + Reading user input +

      +
    • -

      - Once we have the basics of Java behind us we will move on to look at the features of Java that are both unique and powerful. -

      +
    • +

      + Conditionals +

      +
    • +
    +

    +
    -

    -

      -
    • -

      - Classes -

      -
    • + Once we have the basics of Java behind us we will move on to look at the features of Java that are both unique and powerful. +

      -
    • -

      - Interfaces -

      -
    • +
      +

      +

        +
      • +

        + Classes +

        +
      • -
      • -

        - Collections -

        -
      • +
      • +

        + Interfaces +

        +
      • -
      • -

        - Graphical User Interface Programming -

        -
      • +
      • +

        + Collections +

        +
      • -
      • -

        - Generic Programming -

        -
      • -
      -

      -
      +
    • +

      + Graphical User Interface Programming +

      +
    • -

      - Please note that this book is a work in progress. - I will continue to update and post new versions. -

      +
    • +

      + Generic Programming +

      +
    • +
    +

    +
    + +

    + Please note that this book is a work in progress. + I will continue to update and post new versions. +

    +
    \ No newline at end of file diff --git a/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx index 491d41e..9d95fc5 100644 --- a/source/ch_2_whylearnjava.ptx +++ b/source/ch_2_whylearnjava.ptx @@ -1,45 +1,48 @@ - - Why Learn another programming Language? + + Exploring Other Programming Languages - -

    - Python is a nice language for beginning programming for several reasons. - First the syntax is sparse, and clear. - Second, the underlying model of how objects and variables work is very consistent. - Third, you can write powerful and interesting programs without a lot of work. - However, Python is representative of one kind of language, called a dynamic language. - You might think of Python as being fairly informal. - There are other languages, like Java and C++ that are more formal. -

    +
    + Why Learn another programming Language? -

    - These languages have some advantages of their own. - First, is speed: Java and C++ code will generally give better performance than Python code 1. - Second is their maintainability. - A lot of what makes Python easy to use is that you must remember certain things. - For example if you set variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. - Java and C++ protect you by forcing you to be upfront and formal about the kind of object each variable is going to refer to. -

    +

    + Python is a nice language for beginning programming for several reasons. + First the syntax is sparse, and clear. + Second, the underlying model of how objects and variables work is very consistent. + Third, you can write powerful and interesting programs without a lot of work. + However, Python is representative of one kind of language, called a dynamic language. + You might think of Python as being fairly informal. + There are other languages, like Java and C++ that are more formal. +

    -

    - In one sense Python is representative of a whole class of languages, sometimes referred to as “scripting languages.” Other languages in the same category as Python are Ruby and Perl. - Java is representative of what I will call industrial strength languages. - Industrial strength languages are good for projects with several people working on the project where being formal and careful about what you do may impact lots of other people. - Languages in this category include Rust, C++, C#, and Ada. -

    +

    + These languages have some advantages of their own. + First, is speed: Java and C++ code will generally give better performance than Python code 1. + Second is their maintainability. + A lot of what makes Python easy to use is that you must remember certain things. + For example if you set variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. + Java and C++ protect you by forcing you to be upfront and formal about the kind of object each variable is going to refer to. +

    -

    - Programming languages will always change. - As the field of computer science advances there will be new programming languages and you will need to learn them. - It is important to learn several programming languages so that you know what to expect. - There are certain features that most programming languages have in common; variables, loops, conditionals, functions. - And there are some features that are unique. - If you know what is common in languages that is a good place to start. -

    - +

    + In one sense Python is representative of a whole class of languages, sometimes referred to as “scripting languages.” Other languages in the same category as Python are Ruby and Perl. + Java is representative of what I will call industrial strength languages. + Industrial strength languages are good for projects with several people working on the project where being formal and careful about what you do may impact lots of other people. + Languages in this category include Rust, C++, C#, and Ada. +

    + +

    + Programming languages will always change. + As the field of computer science advances there will be new programming languages and you will need to learn them. + It is important to learn several programming languages so that you know what to expect. + There are certain features that most programming languages have in common; variables, loops, conditionals, functions. + And there are some features that are unique. + If you know what is common in languages that is a good place to start. +

    + +
    Why Learn Java? Why not C or C++? diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index 6d097a7..42405e1 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -4,13 +4,9 @@ Java Data Types - - -
    Numeric -

    One of the great things about Python is that all of the basic data types are objects. Integers are objects, floating point numbers are objects, lists are objects, everything. @@ -124,7 +120,6 @@ public class TempConv {

    -
    diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index a93bb04..a6802a2 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -4,14 +4,13 @@ Conditionals - +
    +

    Conditional statements in Python and Java are very similar. In Python we have three patterns:

    - - -
    + Simple if
    if condition: statement1 statement2 ...
    diff --git a/source/ch_6_loopsanditeration.ptx b/source/ch_6_loopsanditeration.ptx index 628eb8e..36f8b56 100644 --- a/source/ch_6_loopsanditeration.ptx +++ b/source/ch_6_loopsanditeration.ptx @@ -4,15 +4,13 @@ Loops and Iteration - +
    + Definite Loop +

    You have already seen a couple of examples of iteration and looping in Java. - So this section will just serve as a reference for the differences in Syntax. + So this section will just serve as a reference for the differences in syntax.

    - - -
    - Definite Loop

    In Python the easiest way to write a definite loop is using the for loop in conjunction with the range function. diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index c2bf1ff..85cbc0c 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -3,183 +3,185 @@ Defining Classes in Java +

    + Writing Classes in Java + +

    + You have already seen how to define classes in Java. + It’s unavoidable for even the simplest of programs. + In this section we will look at how we define classes to create our own data types. + Lets start by creating a fraction class to extend the set of numeric data types provided by our language. + The requirements for this new data type are as follows: +

    + +

    +

      +
    • +

      + Given a numerator and a denominator create a new Fraction. +

      +
    • + +
    • +

      + When a fraction is printed it should be simplified. +

      +
    • + +
    • +

      + Two fractions can be added or subtracted +

      +
    • + +
    • +

      + Two fractions can be multiplied or divided +

      +
    • + +
    • +

      + Two fractions can be compared +

      +
    • + +
    • +

      + A fraction and an integer can be added together. +

      +
    • + +
    • +

      + Given a list of Fractions that list should be sortable by the default sorting function. +

      +
    • +
    +

    + +

    + Here is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section: +

    + + + + + class Fraction: + def __init__(self, num, den): + """ + :param num: The top of the fraction + :param den: The bottom of the fraction + """ + self.num = num + self.den = den + def __repr__(self): + if self.num > self.den: + retWhole = int(self.num / self.den) + retNum = self.num - (retWhole * self.den) + return str(retWhole) + " " + str(retNum) + "/" + str(self.den) + else: + return str(self.num) + "/" + str(self.den) + def show(self): + print(self.num, "/", self.den) + def __add__(self, other): + # convert to a fraction + other = self.toFract(other) + newnum = self.num * other.den + self.den * other.num + newden = self.den * other.den + common = gcd(newnum, newden) + return Fraction(int(newnum / common), int(newden / common)) + __radd__ = __add__ + def __lt__(self, other): + num1 = self.num * other.den + num2 = self.den * other.num + return num1 < num2 + def toFract(self, n): + if isinstance(n, int): + other = Fraction(n, 1) + elif isinstance(n, float): + wholePart = int(n) + fracPart = n - wholePart + # convert to 100ths??? + fracNum = int(fracPart * 100) + newNum = wholePart * 100 + fracNum + other = Fraction(newNum, 100) + elif isinstance(n, Fraction): + other = n + else: + print("Error: cannot add a fraction to a ", type(n)) + return None + return other + def gcd(m, n): + """ + A helper function for Fraction + """ + while m % n != 0: + oldm = m + oldn = n + m = oldn + n = oldm % oldn + return n + print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) + + + +

    + The instance variables (data members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front. +

    + +

    + The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind the first part of the Fraction class definition is as follows: +

    + + + + + public class Fraction { + private Integer numerator; + private Integer denominator; + } + + - -

    - You have already seen how to define classes in Java. - It’s unavoidable for even the simplest of programs. - In this section we will look at how we define classes to create our own data types. - Lets start by creating a fraction class to extend the set of numeric data types provided by our language. - The requirements for this new data type are as follows: -

    - -

    -

      -
    • -

      - Given a numerator and a denominator create a new Fraction. -

      -
    • - -
    • -

      - When a fraction is printed it should be simplified. -

      -
    • - -
    • -

      - Two fractions can be added or subtracted -

      -
    • - -
    • -

      - Two fractions can be multiplied or divided -

      -
    • - -
    • -

      - Two fractions can be compared -

      -
    • - -
    • -

      - A fraction and an integer can be added together. -

      -
    • - -
    • -

      - Given a list of Fractions that list should be sortable by the default sorting function. -

      -
    • -
    -

    - -

    - Here is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section: -

    - - - - -class Fraction: - def __init__(self, num, den): - """ - :param num: The top of the fraction - :param den: The bottom of the fraction - """ - self.num = num - self.den = den - def __repr__(self): - if self.num > self.den: - retWhole = int(self.num / self.den) - retNum = self.num - (retWhole * self.den) - return str(retWhole) + " " + str(retNum) + "/" + str(self.den) - else: - return str(self.num) + "/" + str(self.den) - def show(self): - print(self.num, "/", self.den) - def __add__(self, other): - # convert to a fraction - other = self.toFract(other) - newnum = self.num * other.den + self.den * other.num - newden = self.den * other.den - common = gcd(newnum, newden) - return Fraction(int(newnum / common), int(newden / common)) - __radd__ = __add__ - def __lt__(self, other): - num1 = self.num * other.den - num2 = self.den * other.num - return num1 < num2 - def toFract(self, n): - if isinstance(n, int): - other = Fraction(n, 1) - elif isinstance(n, float): - wholePart = int(n) - fracPart = n - wholePart - # convert to 100ths??? - fracNum = int(fracPart * 100) - newNum = wholePart * 100 + fracNum - other = Fraction(newNum, 100) - elif isinstance(n, Fraction): - other = n - else: - print("Error: cannot add a fraction to a ", type(n)) - return None - return other -def gcd(m, n): - """ - A helper function for Fraction - """ - while m % n != 0: - oldm = m - oldn = n - m = oldn - n = oldm % oldn - return n -print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) - - - -

    - The instance variables (data members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front. -

    - -

    - The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind the first part of the Fraction class definition is as follows: -

    - - - - -public class Fraction { - private Integer numerator; - private Integer denominator; -} - - - -

    - Notice that we have declared the numerator and denominator to be private. - This means that the compiler will generate an error if another method tries to write code like the following: -

    +

    + Notice that we have declared the numerator and denominator to be private. + This means that the compiler will generate an error if another method tries to write code like the following: +

    - - -Fraction f = new Fraction(1,2); -Integer y = f.numerator * 10; - - + + + Fraction f = new Fraction(1,2); + Integer y = f.numerator * 10; + + -

    - Direct access to instance variables is not allowed. - Therefore if we legitimately want to be able to access information such as the numerator or denominator for a particular fraction we must have getter methods. - It is very common programming practice to provide getter and setter methods for instance variables in Java. -

    +

    + Direct access to instance variables is not allowed. + Therefore if we legitimately want to be able to access information such as the numerator or denominator for a particular fraction we must have getter methods. + It is very common programming practice to provide getter and setter methods for instance variables in Java. +

    - - -public Integer getNumerator() { - return numerator; -} -public void setNumerator(Integer numerator) { - this.numerator = numerator; -} -public Integer getDenominator() { - return denominator; -} -public void setDenominator(Integer denominator) { - this.denominator = denominator; -} - - -
    + + + public Integer getNumerator() { + return numerator; + } + public void setNumerator(Integer numerator) { + this.numerator = numerator; + } + public Integer getDenominator() { + return denominator; + } + public void setDenominator(Integer denominator) { + this.denominator = denominator; + } + + +
    +
    Writing a constructor From 5988c862598b37756d498459646884732becbdf5 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Mon, 28 Jul 2025 16:06:10 -0400 Subject: [PATCH 063/448] Added a second section on creating files. Will have others review section and make changes if needed. --- source/ch_x_filemanipulation.ptx | 153 ++++++++++++++++++++++++++++++- 1 file changed, 149 insertions(+), 4 deletions(-) diff --git a/source/ch_x_filemanipulation.ptx b/source/ch_x_filemanipulation.ptx index a2a3be3..8127811 100644 --- a/source/ch_x_filemanipulation.ptx +++ b/source/ch_x_filemanipulation.ptx @@ -2,7 +2,7 @@ - File IO + File Handling

    @@ -20,7 +20,7 @@ -import java.io.File; + import java.io.File; @@ -30,7 +30,7 @@ import java.io.File; -import java.io.IOException; + import java.io.IOException; @@ -40,10 +40,155 @@ import java.io.IOException; -import java.io.IOException; + import java.util.Scanner;

    +
    + Creating Files + +

    + Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner is not needed for creating files) and create a class. We will call this class CreateFile(). +

    + + + + import java.io.File; + import java.io.IOException; + + public class CreateFile { + public static void main(String[] args) { + + } + } + + + +

    + Next, within the main function, we will create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. +

    + + + + File myFile = new File("myfile.txt"); + + + +
    +            Note: myFile is the name of the object within the program, while "myfile.txt" 
    +            is the name of the file itself and will be the file name if the operation 
    +            that creates the file is successful.
    +        
    + +

    + Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created, or if a file with that file name already exists in the directory. +

    + + + + if (myFile.createNewFile()) { // If the file was created successfully + System.out.println("The file " + myFile.getName() + " was created sucessfully."); + } else { // If a file with the file name chosen already exists + System.out.println("The file " + myFile.getName() + " already exists."); + } + + + +
    +            Note: You may have noticed the use of another mthod from the File class; 
    +            getName(). This method returns a string containing the name of 
    +            the file. 
    +        
    + +

    + The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class. +

    + + + + try { + if (myFile.createNewFile()) { // If the file was created successfully + System.out.println("The file " + myFile.getName() + " was created sucessfully."); + } else { // If a file with the file name chosen already exists + System.out.println("The file " + myFile.getName() + " already exists."); + } + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + + + +

    + You may have noticed the IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions: +

    + + + + An error occurred. + java.io.IOException: Permission denied + at java.base/java.io.File.createNewFile(File.java:1040) + at CreateFile.main(CreateFile.java:7) + + + + +

    + At this point, the program will function correctly. Let's add the try/catch blocks to the foundational code written before to get a complete program: +

    + + + + import java.io.File; + import java.io.IOException; + + public class CreateFile { + public static void main(String[] args) { + try { + if (myFile.createNewFile()) { // If the file was created successfully + System.out.println("The file " + myFile.getName() + " was created sucessfully."); + } else { // If a file with the file name chosen already exists + System.out.println("The file " + myFile.getName() + " already exists."); + } + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + + } + } + + + +

    + You may be wondering; "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first backslash acts as an escape character. So, if you want to save a file to this directory: +

    + +
    +            C:\Users\UserName\Documents
    +        
    + +

    + The line of code that creates a File object will look like this: +

    + + + + File myFile = new File("C:\\Users\\UserName\\Documents\\myfile.txt"); + + + +

    + If you are working in a Linux or Apple environment, you can simply use the file path with single forward slashes: +

    + + + + File myFile = new File("/home/UserName/Documents/myfile.txt"); + + +
    + \ No newline at end of file From 3fe2fd5fb63178ee9da4f4076c5625a87793f389 Mon Sep 17 00:00:00 2001 From: Austing767 Date: Mon, 28 Jul 2025 15:06:21 -0500 Subject: [PATCH 064/448] adds newlines under the pretag fixes issue#27 --- source/ch_4_javadatatypes.ptx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index 6d097a7..72ff68b 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -658,7 +658,18 @@ main() -
     Down, down, down.  Would the fall NEVER come to an end!  'I wonder how many miles I've fallen by this time?' she said aloud. 'I must be getting somewhere near the centre of the earth.  Let me see:  that would be four thousand miles down, I think--' (for, you see, Alice had learnt several things of this sort in her lessons in the schoolroom, and though this was not a VERY good opportunity for showing off her knowledge, as there was no one to listen to her, still it was good practice to say it over) '--yes, that's about the right distance--but then I wonder what Latitude or Longitude I've got to?'  (Alice had no idea what Latitude was, or Longitude either, but thought they were nice grand words to say.) 
    +
     
    +            Down, down, down.  Would the fall NEVER come to an end! 
    +             'I wonder how many miles I've fallen by this time?' she said aloud. 'I must 
    +             be getting somewhere near the centre of the earth.  
    +             Let me see:  that would be four thousand miles down, I think--' 
    +             (for, you see, Alice had learnt several things of this sort in her lessons 
    +             in the schoolroom, and though this was not a VERY good opportunity for 
    +             showing off her knowledge, as there was no one to listen to her, still it 
    +             was good practice to say it over) '--yes, that's about the right distance
    +             --but then I wonder what Latitude or Longitude I've got to?'  
    +             (Alice had no idea what Latitude was, or Longitude either, 
    +             but thought they were nice grand words to say.) 

    Notice that the structure of the program is very similar to the numeric histogram program.

    From 4fc6ea1027173a01d90631376c472c1bff86819a Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 29 Jul 2025 09:28:47 -0400 Subject: [PATCH 065/448] Made some minor code and spelling corrections to x.2. Started adding a section on writing to files. --- source/ch_x_filemanipulation.ptx | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/source/ch_x_filemanipulation.ptx b/source/ch_x_filemanipulation.ptx index 8127811..2106aba 100644 --- a/source/ch_x_filemanipulation.ptx +++ b/source/ch_x_filemanipulation.ptx @@ -25,7 +25,7 @@

    - This class provides a lot of functionality for file hanling, however, the IOException class should also be included and used to handle file operation errors. If this class is not included and a file operation throws an exception, a compile error will occur. + This class provides a lot of functionality for file handling, however, the IOException class should also be included and used to handle file operation errors. If this class is not included and a file operation throws an exception, a compile error will occur.

    @@ -35,7 +35,7 @@

    - Next, the Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unneccesary if the program will not be reading any data from a file. + Next, the Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    @@ -97,7 +97,7 @@
    -            Note: You may have noticed the use of another mthod from the File class; 
    +            Note: You may have noticed the use of another method from the File class; 
                 getName(). This method returns a string containing the name of 
                 the file. 
             
    @@ -147,6 +147,7 @@ public class CreateFile { public static void main(String[] args) { try { + File myFile = new File("myfile.txt"); if (myFile.createNewFile()) { // If the file was created successfully System.out.println("The file " + myFile.getName() + " was created sucessfully."); } else { // If a file with the file name chosen already exists @@ -163,7 +164,7 @@

    - You may be wondering; "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first backslash acts as an escape character. So, if you want to save a file to this directory: + You may be wondering: "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first backslash acts as an escape character. So, if you want to save a file to this directory:

    @@ -191,4 +192,13 @@
             
         
    +
    + Writing to Files + +

    + The createNewFile() method is useful for attempting to create files and reporting if the operation was successful, however, createNewFile() does not write anything to files it creates. In fact, if you use createNewFile() to create a .txt file and then open the file, the file will be blank. +

    + +
    + \ No newline at end of file From 5f70b7edb2d745dac22ae50785fdcf991cfe54f4 Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Tue, 29 Jul 2025 09:29:45 -0400 Subject: [PATCH 066/448] Moves the cheat sheet to the appendix --- source/main.ptx | 1 - source/meta_backmatter.ptx | 6 +++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source/main.ptx b/source/main.ptx index 8c06021..1fc6f4a 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -20,6 +20,5 @@ - \ No newline at end of file diff --git a/source/meta_backmatter.ptx b/source/meta_backmatter.ptx index 34e1c60..316b40f 100644 --- a/source/meta_backmatter.ptx +++ b/source/meta_backmatter.ptx @@ -1,7 +1,7 @@ - + Appendices @@ -16,6 +16,10 @@

    + + Java Cheatsheet + + Shameless Plug From f586edc048a5e72ed1554268a9779313816c0bea Mon Sep 17 00:00:00 2001 From: austing767 Date: Tue, 29 Jul 2025 08:34:26 -0500 Subject: [PATCH 067/448] adds thank you to Beryl Hoffman --- source/ch_1_introduction.ptx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/ch_1_introduction.ptx b/source/ch_1_introduction.ptx index 188c526..1df515d 100644 --- a/source/ch_1_introduction.ptx +++ b/source/ch_1_introduction.ptx @@ -90,6 +90,12 @@ Java Development Environment + +

    + Thank you to Beryl Hoffman for contributing to this section from her CSAwesome: AP Java Programming book. +

    +
    +

    The tool that we use to compile a Java source file into a Java class file is called a compiler. Most programmers use an From 19b3bc712ffcc0def50f0d064a3f667a2811dcd0 Mon Sep 17 00:00:00 2001 From: austing767 Date: Tue, 29 Jul 2025 08:58:01 -0500 Subject: [PATCH 068/448] I have changed the page to a paragraph --- source/meta_frontmatter.ptx | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index 441ac55..f0ad765 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -19,13 +19,7 @@ Acknowledgements

    -

      -
    • Rob Beezer for creating PreTeXt
    • -
    • Moise Dete-Kpinssounon for converting the original version to PreTeXt
    • -
    • Oscar Levin for creating the rst to PreTeXt transition tool that helped Moise's conversion work
    • -
    • Berea College for funding interns and supporting independent studies that facilitated the conversion and improvement of the book
    • -
    • Beryl Hoffman and her impressive work on CSAwsome, which we are leveraging
    • -
    + Thank you to the following people for their hard work and contributions to this book: Dr. Brad Miller for writing the original book; Rob Beezer for creating PreTeXt; Moise Dete-Kpinssounon for converting the original version to PreTeXt; Oscar Levin for developing the reStructuredText-to-PreTeXt transition tool that supported Moise’s conversion work; Berea College for funding interns and supporting independent studies that facilitated the book’s conversion and improvement; and Beryl Hoffman for her impressive work on CSAwesome, which we are leveraging.

    From 1d164ad5f1ae4314873f3c0252929383322efefa Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 11:03:38 -0400 Subject: [PATCH 069/448] update history --- source/meta_frontmatter.ptx | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index cf4f087..8c06d49 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -4,9 +4,7 @@ - Dr. Brad Miller - Computer Science - Luther College + Drs. Brad Miller and Jan Pearce @@ -28,18 +26,15 @@

    - This book does not attempt to replace the many good Java reference books that are available, in fact I use this in my course along with Cay Horstman’s “Core Java” volumes. + This book does not attempt to replace the many good Java reference books that are available, in fact Dr. Miller used to use this in his course along with Cay Horstman’s “Core Java” volumes. Please feel free to use this book for yourself, or if it fits a class you are teaching you are welcome to use this as a resource for your own class.

    - I have published this article using a Creative Commons license to encourage you to use it, change it, and modify it for your own purposes. - I would appreciate knowing what you think if you do use this book, and I would love to see any modifications or additions you make. + We have published this article using a Creative Commons license to encourage you to use it, change it, and modify it for your own purposes. + IWe would appreciate knowing what you think if you do use this book, and we would love to see any modifications or additions you make.

    -

    - Brad Miller bmiller@luther.edu January, 2008 -

    @@ -51,13 +46,16 @@ History of this Book

    - I started writing this article in 2006 using Python’s restructured text. - In 2007 I switched to markdown since everything else I was writing used markdown. - In particular I switched to the variant of markdown used by the excellent pandoc program. + Brad Miller started writing this article in 2006 using Python’s restructured text. + In 2007 I switched to markdown since everything else he was writing used markdown. + In particular he switched to the variant of markdown used by the excellent pandoc program. Pandoc does an excellent job of converting markdown to html, latex, pdf, and other formats. - The markdown source for this article is available here. - Finally the document became so big that I used pandoc to convert it to latex for preparing the final version. - I used The htlatex program to generate html for the online version of this document. + + Finally, the document became so big that Brad used pandoc to convert it to latex for preparing the final version. + He used The htlatex program to generate html for an online version of this document. +

    +

    + Brad Miller founded Runestone Academy in 2011 during a sabbatical from Luther College, and the original versions of this book was written in ReStructuredText.

    \ No newline at end of file From edb54484102e26165ab91dc4005a5b89461de6ba Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 11:05:15 -0400 Subject: [PATCH 070/448] fix typo --- source/meta_frontmatter.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index 8c06d49..3d59c72 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -32,7 +32,7 @@

    We have published this article using a Creative Commons license to encourage you to use it, change it, and modify it for your own purposes. - IWe would appreciate knowing what you think if you do use this book, and we would love to see any modifications or additions you make. + We would appreciate knowing what you think if you do use this book, and we would love to see any modifications or additions you make.

    From 473691129e46617934fe14ce1143a89337047624 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Tue, 29 Jul 2025 11:17:56 -0400 Subject: [PATCH 071/448] Fixing and removing section buttons --- source/ch_7_definingclasses.ptx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index c2bf1ff..062f477 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -4,6 +4,8 @@ Defining Classes in Java +
    + Defining Classes in Java

    You have already seen how to define classes in Java. @@ -180,6 +182,7 @@ public void setDenominator(Integer denominator) { +

    Writing a constructor From 9602068f271f74b48639266743931231874727f9 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Tue, 29 Jul 2025 11:46:06 -0400 Subject: [PATCH 072/448] adds terms to chapter 3 and indexes existing terms. fixes issue #50 --- source/ch_3_firstjavaprogram.ptx | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/source/ch_3_firstjavaprogram.ptx b/source/ch_3_firstjavaprogram.ptx index a925475..b2c3edb 100644 --- a/source/ch_3_firstjavaprogram.ptx +++ b/source/ch_3_firstjavaprogram.ptx @@ -36,6 +36,8 @@ public class Hello {

    + interpreter + compile The first question you probably have about this little program is “How do I run it?” Running a Java program is not as simple as running a Python program. The first thing you need to do with a Java program is compile it. The first big difference between Java and Python is that Python is an interpreted language. We could run our Python programs in the Python interpreter and we were quite happy to do that. Java makes running programs a two step process. First we must type the hello world program into a file and save that file using the name Hello.java The file name must be the same as the public class you define in the file. Once we have saved the file we compile it from the command line as follows:

    @@ -89,7 +91,9 @@ $

    - The job of the compiler is to turn your java code into language that the Java Virtual Machine (JVM) can understand. + JVM + byte code + The job of the compiler is to turn your java code into language that the Java Virtual Machine (JVM) can understand. We call the code that the JVM understands byte code. The JVM interprets the byte code much like the Python interpreter interprets your Python. However since byte code is much closer to the native language of the computer it can run faster. @@ -202,11 +206,14 @@ public static void main(String[] args)

    + public + protected + private The first word, public indicates to the Java compiler that this is a method that anyone can call. - We will see that Java enforces several levels of security on the methods we write, including public, protected, and private methods. + We will see that Java enforces several levels of security on the methods we write, including public, protected, and private methods.

    -

    +

    static The next word, static tells Java that this is a method that is part of the class, but is not a method for any one instance of the class. The kind of methods we typically wrote in Python required an instance in order for the method to be called. With a static method, the object to the left of the . is a class, not an instance of the class. @@ -215,7 +222,7 @@ public static void main(String[] args) You probably evaluated these methods using the names math.cos(90) or math.sin(60).

    -

    +

    void The next word, void tells the Java compiler that the method main will not return a value. This is roughly analogous to omitting the return statement in a Python method. In other words, the method will run to completion and exit but will not return a value that you can use in an assignment statement. @@ -224,7 +231,7 @@ public static void main(String[] args) In this case we use the special type called void which means no type.

    -

    +

    main Next we have the proper name for the method: main. The rules for names in Java are similar to the rules in Python. Names can include letters, numbers, and the _. From d3d3e8b50fb5198addbc0058ffa042ebb5fff88c Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 11:51:08 -0400 Subject: [PATCH 073/448] fix typos --- source/ch_9_commonmistakes.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 1953056..b5caec6 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -23,7 +23,7 @@

    Not importing a class

    - You may Notice that this error message looks similar to the previous one, however it has an entirely diferent cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;. + You may notice that this error message looks similar to the previous one, however, it has an entirely different cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;.

    @@ -43,7 +43,7 @@
                 Here’s an example of the error message that occurs when you forget to use the new keyword.
                 Notice that the message is pretty unhelpful.
                 Java thinks you are trying to call the Method Scanner, but there are two problems.
    -            First Scanner is not really a method it is a constructor.:
    +            First, Scanner is not really a method; rather, it is a constructor.:
             

    @@ -77,4 +77,4 @@
             
    - \ No newline at end of file + From 32823aaa2f49edc7142107da19a50c099c5fa623 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 29 Jul 2025 13:08:42 -0400 Subject: [PATCH 074/448] Added a section on writing to files. Added an additional library import to the libraries section. Updated name of ptx file and made appropriate changes in main.ptx. --- source/ch_x_filehandling.ptx | 393 +++++++++++++++++++++++++++++++++++ source/main.ptx | 2 +- 2 files changed, 394 insertions(+), 1 deletion(-) create mode 100644 source/ch_x_filehandling.ptx diff --git a/source/ch_x_filehandling.ptx b/source/ch_x_filehandling.ptx new file mode 100644 index 0000000..b1dab7e --- /dev/null +++ b/source/ch_x_filehandling.ptx @@ -0,0 +1,393 @@ + + + + + File Handling + + +

    + File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files. +

    +
    + + +
    + Class Imports + +

    + Before any code can be written to handle files, the proper classes must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. +

    + + + + import java.io.File; + + + +

    + This class provides a lot of functionality for file handling, however, the IOException class should also be included and used to handle file operation errors. If this class is not included and a file operation throws an exception, a compile error will occur. +

    + + + + import java.io.IOException; + + + +

    + Next, the Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file. +

    + + + + import java.util.Scanner; + + + +

    + Finally, the FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file. +

    + + + + import java.io.FileWriter; + + + +
    + +
    + Creating Files + +

    + Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner and FileWriter is not needed for a class that creates files and does nothing else) and create a class. We will call this class CreateFile(). +

    + + + + import java.io.File; + import java.io.IOException; + + public class CreateFile { + public static void main(String[] args) { + + } + } + + + +

    + Next, within the main function, we will create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. +

    + + + + File myFile = new File("myfile.txt"); + + + +
    +            Note: myFile is the name of the object within the program, while "myfile.txt" 
    +            is the name of the file itself and will be the file name if the operation 
    +            that creates the file is successful.
    +        
    + +

    + Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created, or if a file with that file name already exists in the directory. +

    + + + + if (myFile.createNewFile()) { // If the file was created successfully + System.out.println("The file " + myFile.getName() + " was created sucessfully."); + } else { // If a file with the file name chosen already exists + System.out.println("The file " + myFile.getName() + " already exists."); + } + + + +
    +            Note: You may have noticed the use of another method from the File class; 
    +            getName(). This method returns a string containing the name of 
    +            the file. 
    +        
    + +

    + The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class. +

    + + + + try { + if (myFile.createNewFile()) { // If the file was created successfully + System.out.println("The file " + myFile.getName() + " was created sucessfully."); + } else { // If a file with the file name chosen already exists + System.out.println("The file " + myFile.getName() + " already exists."); + } + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + + + +

    + You may have noticed the IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions: +

    + + + + An error occurred. + java.io.IOException: Permission denied + at java.base/java.io.File.createNewFile(File.java:1040) + at CreateFile.main(CreateFile.java:7) + + + + +

    + At this point, the program will function correctly. Let's add the try/catch blocks to the foundational code written before to get a complete program: +

    + + + + import java.io.File; + import java.io.IOException; + + public class CreateFile { + public static void main(String[] args) { + try { + File myFile = new File("myfile.txt"); + if (myFile.createNewFile()) { // If the file was created successfully + System.out.println("The file " + myFile.getName() + " was created sucessfully."); + } else { // If a file with the file name chosen already exists + System.out.println("The file " + myFile.getName() + " already exists."); + } + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + + } + } + + + +

    + You may be wondering: "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first backslash acts as an escape character. So, if you want to save a file to this directory: +

    + +
    +            C:\Users\UserName\Documents
    +        
    + +

    + The line of code that creates a File object will look like this: +

    + + + + File myFile = new File("C:\\Users\\UserName\\Documents\\myfile.txt"); + + + +

    + If you are working in a Linux or Apple environment, you can simply use the file path with single forward slashes: +

    + + + + File myFile = new File("/home/UserName/Documents/myfile.txt"); + + +
    + +
    + Writing to Files + +

    + The createNewFile() method is useful for attempting to create files and reporting if the operation was successful, however, createNewFile() does not write anything to files it creates. In fact, if you use createNewFile() to create a .txt file and then open the file, the file will be blank. +

    + +

    + To write to a file, we will need to create a different class. We will do the same setup as the previous section. First, we will import the classes (File and Scanner are not needed) and create the framework for a class that will write to a file. Let's call this class WriteFile: +

    + + + + import java.io.FileWriter; + import java.io.IOException; + + public class WriteFile { + public static void main(String[] args) { + + } + } + + + +

    + Next, we will create a FileWriter object. Let's call it myWriter: +

    + + + + FileWriter myWriter = new FileWriter("myFile.txt"); + + + +

    + In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types: +

    + + + + myWriter.write("File successfully updated!"); + myWriter.close(); + + + +

    + You may have noticed the close() function being used after writing to a file. This is a very important step and must be included when working with files! Without using this method, the file may remain active in system resources even after the program is closed. This can lead file corruption or other terrible problems that are best avoided! +

    + +

    + Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation: +

    + + + + try { + FileWriter myWriter = new FileWriter("myFile.txt"); + myWriter.write("File successfully updated!"); + myWriter.close(); + System.out.println("File successfully written to."); + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + + + +

    + And that's it! We will add our code to the foundational code for a complete program. +

    + + + + import java.io.FileWriter; + import java.io.IOException; + + public class WriteFile { + public static void main(String[] args) { + try { + FileWriter myWriter = new FileWriter("myFile.txt"); + myWriter.write("File successfully updated!"); + myWriter.close(); + System.out.println("File successfully written to."); + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + } + } + + + +

    + Files in a specific directory can be written to using the same technique as the last section in which file paths are specified, with two back slashes used in Windows environments. Something to note is, if a file does not already exist (for example, myfile.txt does not exist), the write() method will create the file. Despite this, it is still a good idea to create separate methods or classes for creating and writing to files. Not only is it good practice to ensure methods only accomplish one thing, but the createNewFile() method avoids overwriting files that already exist. Imagine a file with the name myfile.txt already exists and contains important information. Attempting to create a file using the write() method will delete that data forever. +

    + +

    + Speaking of overwriting data, it is important to know that the write() method will overwrite any text if there is already text in myfile.txt. What if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument: +

    + + + + FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode + + + +

    + Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument: +

    + + + + import java.io.FileWriter; + import java.io.IOException; + + public class WriteFile { + public static void main(String[] args) { + try { + FileWriter myWriter = new FileWriter("myFile.txt", true); // true enables append mode + myWriter.write("File successfully updated!"); + myWriter.close(); + System.out.println("File successfully written to."); + } catch (IOException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + } + } + + + +

    + and then run the program twice, the contents of myfile.txt would be: +

    + + + + File successfully updated!File successfully updated! + + + +

    + This doesn't look very good! There is no space between the first and second sentences! We can make this look a little better by simply adding a space after the exclamation mark in the string: +

    + + + + myWriter.write("File successfully updated! "); // Added space at end + myWriter.close(); + + + +

    + This works fine if you want all text to be on the same line, but what if we want each additional write to appear on a new line? The first answer may be to use the \n newline character: +

    + + + + myWriter.write("File successfully updated!\n"); // Added newline character + myWriter.close(); + + + +

    + This would work fine most of the time, but older Windows programs and operating systems use the \r\n newline character. To ensure the text appears on a new line regardless of what system the code is running on, concatenate the string with the System.lineSeparator() method: +

    + + + + myWriter.write("File successfully updated!" + System.lineseparator()); // Added newline character + myWriter.close(); + + + +

    + Running either variation used for adding new lines twice will result in the following contents in myfile.txt. Notice that an extra blank line that will always appear at the bottom of the text: +

    + + + + File successfully updated! + File successfully updated! + + + + +
    + +
    \ No newline at end of file diff --git a/source/main.ptx b/source/main.ptx index 1c2123c..6c62fed 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -14,7 +14,7 @@ - + From 79fdf13945386d812dbb4ea1d23243d5e8ee53a8 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 13:27:29 -0400 Subject: [PATCH 075/448] Change footnote to note --- source/ch_2_whylearnjava.ptx | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx index b52c5ee..c846a90 100644 --- a/source/ch_2_whylearnjava.ptx +++ b/source/ch_2_whylearnjava.ptx @@ -7,7 +7,6 @@
    Why Learn another programming Language? -

    Python is a nice language for beginning programming for several reasons. First the syntax is sparse, and clear. @@ -20,7 +19,7 @@

    These languages have some advantages of their own. - First, is speed: Java and C++ code will generally give better performance than Python code 1. + First, is speed: Java and C++ code will generally give better performance than Python code. (See .) Second is their maintainability. A lot of what makes Python easy to use is that you must remember certain things. For example if you set variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. @@ -42,7 +41,18 @@ And there are some features that are unique. If you know what is common in languages that is a good place to start.

    -
    + + A Note about Python Performance + + +

    + + Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. + This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). + So native language performance is just one criteria to consider when deciding which language to use for a program. +

    +
    +
    @@ -84,17 +94,7 @@ But for these and other reasons, we’ve decided to use Java for this course. Learning Java will be a good preparation for learning these and other languages!

    - -

    - Footnotes -

    -

    - - Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. - This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). - So native language performance is just one criteria to consider when deciding which language to use for a program. - -

    +
    \ No newline at end of file From baff68b6ebf298911019b1e3c89ee5a27ac56f33 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 14:53:52 -0400 Subject: [PATCH 076/448] add explanatory text --- source/ch_4_javadatatypes.ptx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index 72ff68b..8073e33 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -658,6 +658,10 @@ main() +

    + This program reads the file alice30.txt (which follows), and it then splits it into a list of words. Next it creates a dictionary called count which maps each word to the number of times that word occurs in the text. Finally, it prints out the words in alphabetical order along with their frequency. +

    +
     
                 Down, down, down.  Would the fall NEVER come to an end! 
                  'I wonder how many miles I've fallen by this time?' she said aloud. 'I must 
    
    From 1045a4acfe731c161d1b511384677f0527841a55 Mon Sep 17 00:00:00 2001
    From: austing767 
    Date: Tue, 29 Jul 2025 14:02:56 -0500
    Subject: [PATCH 077/448] Added a note in 4.3 lists to explain null, also added
     it to index, fixes issue #40
    
    ---
     source/ch_4_javadatatypes.ptx | 5 +++++
     1 file changed, 5 insertions(+)
    
    diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx
    index 6d097a7..59ba548 100644
    --- a/source/ch_4_javadatatypes.ptx
    +++ b/source/ch_4_javadatatypes.ptx
    @@ -472,6 +472,11 @@ The code will be executed once for each element in the collection.
     Here is the Java code needed to write the exact same program:
             

    + +

    + The Java code below contains the first mention of the null null literal. Similar to Python’s None object, null in Java is used to indicate that a variable does not currently reference any object in memory. This is often used for variables that have not yet been initialized or for methods that return no object. +

    +
    From 59186ee6fe4d61f2a3ca2a73a4d9263794ae8c2b Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Tue, 29 Jul 2025 15:08:19 -0400 Subject: [PATCH 078/448] Fixes merge conflicts and issue #42 --- source/main.ptx | 1 + source/meta_backmatter.ptx | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/source/main.ptx b/source/main.ptx index a51dd2d..bddc8f2 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -22,6 +22,7 @@ Index + \ No newline at end of file diff --git a/source/meta_backmatter.ptx b/source/meta_backmatter.ptx index cc8e801..d380894 100644 --- a/source/meta_backmatter.ptx +++ b/source/meta_backmatter.ptx @@ -4,6 +4,15 @@ Appendices + + + Java Cheat Sheet +

    This is a quick reference guide for Java syntax and concepts.

    + +
    + + + Shameless Plug From da7cf72d5ee412b2b9eb82171e38920204762f2c Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 15:16:49 -0400 Subject: [PATCH 079/448] simplify ch7 title --- source/ch_7_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 062f477..201af40 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -1,10 +1,10 @@ - - Defining Classes in Java + + Classes in Java -
    +
    Defining Classes in Java

    From 185be526f19494fa025994bad24bef298a6d2cc7 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 29 Jul 2025 15:28:08 -0400 Subject: [PATCH 080/448] Added a section on Reading files. --- source/ch_x_filehandling.ptx | 140 +++++++++++++++++++++++++++++++---- 1 file changed, 127 insertions(+), 13 deletions(-) diff --git a/source/ch_x_filehandling.ptx b/source/ch_x_filehandling.ptx index b1dab7e..e560d5f 100644 --- a/source/ch_x_filehandling.ptx +++ b/source/ch_x_filehandling.ptx @@ -25,32 +25,38 @@

    - This class provides a lot of functionality for file handling, however, the IOException class should also be included and used to handle file operation errors. If this class is not included and a file operation throws an exception, a compile error will occur. + The Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    - import java.io.IOException; + import java.util.Scanner;

    - Next, the Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file. + The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file.

    - import java.util.Scanner; + import java.io.FileWriter;

    - Finally, the FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file. + Finally, these last two classes provide error handling and must be used in tandem with the File class. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files that do not exist.

    - import java.io.FileWriter; + import java.io.IOException; + + + + + + import java.io.FileNotFoundException @@ -131,9 +137,9 @@
    -

    - You may have noticed the IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions: -

    +
    +            Note: The IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions:
    +        
    @@ -210,7 +216,7 @@

    - To write to a file, we will need to create a different class. We will do the same setup as the previous section. First, we will import the classes (File and Scanner are not needed) and create the framework for a class that will write to a file. Let's call this class WriteFile: + To write to a file, we will need to create a different class. We will do the same setup as the previous section. First, we will import the classes (File and Scanner are not needed) and create the framework for a class that will write to a file. Let's call this class WriteFile:

    @@ -247,9 +253,9 @@ -

    - You may have noticed the close() function being used after writing to a file. This is a very important step and must be included when working with files! Without using this method, the file may remain active in system resources even after the program is closed. This can lead file corruption or other terrible problems that are best avoided! -

    +
    +            Note: the close() function being used after writing to a file. This is a very important step and must be included when working with files! Without using this method, the file may remain active in system resources even after the program is closed. This can lead file corruption or other terrible problems that are best avoided!
    +        

    Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation: @@ -387,7 +393,115 @@ +

    + +
    + Reading Files + +

    + Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile: +

    + + + + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner + + public class ReadFile { + public static void main(String[] args) { + + } + } + + + +

    + We will then create both a new File exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader: +

    + + + + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + + + +
    +            Note: The myFile File object we created on the first line was passed to the Scanner object created on the second line.
    +        
    +

    + The next lines consist of a while loop that reads each line of the file passed to the Scanner object and reads them: +

    + + + + while (fileReader.hasNextLine()) { + String data = fileReader.nextLine(); + System.out.println(data); + } + fileReader.close(); + + + +

    + The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it reads the current line. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as the same method discussed in the section on writing to files. +

    + +

    + Alternatively, the following code can be used to store the all lines of myfile.txt to one variable: +

    + + + + String data = ""; + while (fileReader.hasNextLine()) { + data = data + fileReader.nextLine() + System.lineSeparator(); + } + System.out.println(data); + fileReader.close(); + + + +

    + Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a lineSeparator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. +

    + +

    + Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look like this: +

    + + + + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner + + public class ReadFile { + public static void main(String[] args) { + try { + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + String data = ""; + while (fileReader.hasNextLine()) { + data = data + fileReader.nextLine() + System.lineSeparator(); + } + System.out.println(data); + fileReader.close(); + } catch (FileNotFoundException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + } + } + + + +

    + In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt. +

    +
    \ No newline at end of file From 37c0a1c68177b995c3748dcfd8a063afc41e3b24 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 29 Jul 2025 15:30:22 -0400 Subject: [PATCH 081/448] Forgot to save changes for last commit. --- source/ch_x_filehandling.ptx | 2 +- source/ch_x_filemanipulation.ptx | 204 ------------------------------- 2 files changed, 1 insertion(+), 205 deletions(-) delete mode 100644 source/ch_x_filemanipulation.ptx diff --git a/source/ch_x_filehandling.ptx b/source/ch_x_filehandling.ptx index e560d5f..689bda7 100644 --- a/source/ch_x_filehandling.ptx +++ b/source/ch_x_filehandling.ptx @@ -417,7 +417,7 @@

    - We will then create both a new File exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader: + We will then create a new File exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader:

    diff --git a/source/ch_x_filemanipulation.ptx b/source/ch_x_filemanipulation.ptx deleted file mode 100644 index 2106aba..0000000 --- a/source/ch_x_filemanipulation.ptx +++ /dev/null @@ -1,204 +0,0 @@ - - - - - File Handling - - -

    - File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files. -

    -
    - - -
    - Class Imports - -

    - Before any code can be written to handle files, the proper classes must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. -

    - - - - import java.io.File; - - - -

    - This class provides a lot of functionality for file handling, however, the IOException class should also be included and used to handle file operation errors. If this class is not included and a file operation throws an exception, a compile error will occur. -

    - - - - import java.io.IOException; - - - -

    - Next, the Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file. -

    - - - - import java.util.Scanner; - - - -
    - -
    - Creating Files - -

    - Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner is not needed for creating files) and create a class. We will call this class CreateFile(). -

    - - - - import java.io.File; - import java.io.IOException; - - public class CreateFile { - public static void main(String[] args) { - - } - } - - - -

    - Next, within the main function, we will create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. -

    - - - - File myFile = new File("myfile.txt"); - - - -
    -            Note: myFile is the name of the object within the program, while "myfile.txt" 
    -            is the name of the file itself and will be the file name if the operation 
    -            that creates the file is successful.
    -        
    - -

    - Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created, or if a file with that file name already exists in the directory. -

    - - - - if (myFile.createNewFile()) { // If the file was created successfully - System.out.println("The file " + myFile.getName() + " was created sucessfully."); - } else { // If a file with the file name chosen already exists - System.out.println("The file " + myFile.getName() + " already exists."); - } - - - -
    -            Note: You may have noticed the use of another method from the File class; 
    -            getName(). This method returns a string containing the name of 
    -            the file. 
    -        
    - -

    - The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class. -

    - - - - try { - if (myFile.createNewFile()) { // If the file was created successfully - System.out.println("The file " + myFile.getName() + " was created sucessfully."); - } else { // If a file with the file name chosen already exists - System.out.println("The file " + myFile.getName() + " already exists."); - } - } catch (IOException e) { - System.out.println("An error occurred."); - e.printStackTrace(); - } - - - -

    - You may have noticed the IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions: -

    - - - - An error occurred. - java.io.IOException: Permission denied - at java.base/java.io.File.createNewFile(File.java:1040) - at CreateFile.main(CreateFile.java:7) - - - - -

    - At this point, the program will function correctly. Let's add the try/catch blocks to the foundational code written before to get a complete program: -

    - - - - import java.io.File; - import java.io.IOException; - - public class CreateFile { - public static void main(String[] args) { - try { - File myFile = new File("myfile.txt"); - if (myFile.createNewFile()) { // If the file was created successfully - System.out.println("The file " + myFile.getName() + " was created sucessfully."); - } else { // If a file with the file name chosen already exists - System.out.println("The file " + myFile.getName() + " already exists."); - } - } catch (IOException e) { - System.out.println("An error occurred."); - e.printStackTrace(); - } - - } - } - - - -

    - You may be wondering: "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first backslash acts as an escape character. So, if you want to save a file to this directory: -

    - -
    -            C:\Users\UserName\Documents
    -        
    - -

    - The line of code that creates a File object will look like this: -

    - - - - File myFile = new File("C:\\Users\\UserName\\Documents\\myfile.txt"); - - - -

    - If you are working in a Linux or Apple environment, you can simply use the file path with single forward slashes: -

    - - - - File myFile = new File("/home/UserName/Documents/myfile.txt"); - - -
    - -
    - Writing to Files - -

    - The createNewFile() method is useful for attempting to create files and reporting if the operation was successful, however, createNewFile() does not write anything to files it creates. In fact, if you use createNewFile() to create a .txt file and then open the file, the file will be blank. -

    - -
    - -
    \ No newline at end of file From a0410c865a8673c77d06c6aab24df365809468db Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 15:50:08 -0400 Subject: [PATCH 082/448] add code tages to code in note --- source/ch_4_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index 59ba548..9509e31 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -474,7 +474,7 @@ Here is the Java code needed to write the exact same program:

    - The Java code below contains the first mention of the null null literal. Similar to Python’s None object, null in Java is used to indicate that a variable does not currently reference any object in memory. This is often used for variables that have not yet been initialized or for methods that return no object. + The Java code below contains the first mention of the null null literal. Similar to Python’s None object, null in Java is used to indicate that a variable does not currently reference any object in memory. This is often used for variables that have not yet been initialized or for methods that return no object.

    From ae17feb9853796441db4fac6ac9c307747b5a1a4 Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Tue, 29 Jul 2025 15:58:14 -0400 Subject: [PATCH 083/448] Fixes issue #60 adds code --- source/ch_5_conditionals.ptx | 59 ++++++++++++++++++++++++++++++------ 1 file changed, 49 insertions(+), 10 deletions(-) diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index a93bb04..59b1067 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -14,27 +14,66 @@
    Simple if -
    if condition: statement1 statement2 ...

    - In Java this same pattern is simply written as: + In Python the simple if statement is written as:

    -
    if (condition) { statement1 statement2 ... }
    + + +score = 95 +if score >= 90: + print("Excellent work!") + + +

    + In Java, this same pattern requires two changes: the condition must be in parentheses (), and the code block must be enclosed in curly braces {}. +

    + + + public class SimpleIfExample { + public static void main(String[] args) { + int score = 70; + if (score <= 70) { + System.out.println("Needs work!"); + } + } + } + +

    Once again you can see that in Java the curly braces define a block rather than indentation. - In Java the parenthesis around the condition are required because if is technically a function that evaluates to True or False. + In Java the parenthesis around the condition are required because it is technically a function that evaluates to True or False.

    if else -
    if condition: statement1 statement2 ... else: statement1 statement2 ...
    -

    - In Java this is written as: -

    - -
    if (condition) { statement1 statement2 ... } else { statement1 statement2 ... }
    +

    The Java equivalent follows the same syntactical rules as before.

    + + + age = 16 + if age >= 18: + print("You can vote.") + else: + print("You are not yet eligible to vote.") + + + + + + public class IfElseExample { + public static void main(String[] args) { + int age = 16; + if (age >= 18) { + System.out.println("You can vote."); + } else { + System.out.println("You are not yet eligible to vote."); + } + } + } + +
    From f70daa2b50fda941dc9dd61a65efe58f3c6879c5 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 29 Jul 2025 17:10:20 -0400 Subject: [PATCH 084/448] small clarifications --- source/meta_frontmatter.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/meta_frontmatter.ptx b/source/meta_frontmatter.ptx index d99eb24..c743018 100644 --- a/source/meta_frontmatter.ptx +++ b/source/meta_frontmatter.ptx @@ -4,7 +4,7 @@ - Drs. Brad Miller and Jan Pearce + Brad Miller and Jan Pearce @@ -17,7 +17,7 @@ Acknowledgements

    - Thank you to the following people for their hard work and contributions to this book: Dr. Brad Miller for writing the original book; Rob Beezer for creating PreTeXt; Moise Dete-Kpinssounon for converting the original version to PreTeXt; Oscar Levin for developing the reStructuredText-to-PreTeXt transition tool that supported Moise’s conversion work; Berea College for funding interns and supporting independent studies that facilitated the book’s conversion and improvement; and Beryl Hoffman for her impressive work on CSAwesome, which we are leveraging. + Thank you to the following people and organizations for their hard work and contributions to this book: Brad Miller for writing the original version of this book and for creating Runestone Academy; Rob Beezer for creating the PreTeXt language in which this book is authored; Moise Dete-Kpinssounon for converting the original version to PreTeXt; Oscar Levin for developing the reStructuredText-to-PreTeXt transition tool that supported the conversion work from the previous version; Berea College for funding interns and supporting independent studies that facilitated the book’s conversion and improvement; and Beryl Hoffman for her impressive work on CSAwesome, which we are leveraging as a model in several sections that are new to this version.

    From 01246fbdc5aa3d407b15d33db29f28940539fa1d Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Wed, 30 Jul 2025 09:22:57 -0400 Subject: [PATCH 085/448] Added summary and review questions for chapter 2 --- source/ch_2_whylearnjava.ptx | 91 ++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx index 9d95fc5..d9a95ac 100644 --- a/source/ch_2_whylearnjava.ptx +++ b/source/ch_2_whylearnjava.ptx @@ -91,4 +91,95 @@

    +
    + Summary & Reading Questions +

      +
    1. +

      Learning multiple programming languages helps programmers adapt to different styles and environments.

      +
    2. +
    3. +

      Python is a dynamic scripting language that is beginner-friendly, but it is less strict with types and generally slower than compiled languages.

      +
    4. +
    5. +

      Languages like Java and C++ are statically typed and offer better performance and maintainability for large-scale projects.

      +
    6. +
    7. +

      Java has a simpler syntax than C++ and includes automatic garbage collection, which reduces the complexity of memory management.

      +
    8. +
    9. +

      Java’s extensive standard library enables the development of sophisticated programs without relying on external dependencies.

      +
    10. +

    + + + +

    Which of the following best describes Python as a programming language?

    +
    + + +

    Statically typed and high-performance

    +

    No. This better describes languages like Java or C++.

    +
    + +

    Dynamically typed and beginner-friendly

    +

    That’s right! Python is dynamically typed and easy for beginners.

    +
    + +

    Industrial strength and verbose

    +

    No. Python is more informal and concise.

    +
    + +

    Memory-managed and pointer-based

    +

    No. That describes lower-level languages like C or C++.

    +
    +
    +
    + + +

    Why is Java a better language for beginners compared to C++?

    +
    + + +

    It requires more manual memory management

    +

    No. Java manages memory automatically.

    +
    + +

    It has a smaller standard library

    +

    No. Java has a very large standard library.

    +
    + +

    It avoids complex syntax and has automatic garbage collection

    +

    Correct! These features make Java easier for beginners.

    +
    + +

    It supports operator overloading

    +

    No. That's a C++ feature and it adds complexity.

    +
    +
    +
    + + +

    What is a major benefit of learning multiple programming languages?

    +
    + + +

    You will only need to code in Python

    +

    No. Relying on just one language is limiting.

    +
    + +

    You will avoid working on large projects

    +

    No. That’s not related to learning multiple languages.

    +
    + +

    You gain exposure to different language features and paradigms

    +

    Great choice! This helps you become a more adaptable programmer.

    +
    + +

    You will never have to learn new libraries

    +

    No. Libraries are often language-specific and still need to be learned.

    +
    +
    +
    +
    +
    \ No newline at end of file From 9be262e491e1bb1d4015e76d8525e97fed4be52e Mon Sep 17 00:00:00 2001 From: austing767 Date: Wed, 30 Jul 2025 09:39:49 -0500 Subject: [PATCH 086/448] Fixed build error, section 1.1 ending tag encased section 1.2 --- source/ch_1_introduction.ptx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/ch_1_introduction.ptx b/source/ch_1_introduction.ptx index 67ba815..29c52a0 100644 --- a/source/ch_1_introduction.ptx +++ b/source/ch_1_introduction.ptx @@ -75,6 +75,16 @@ Graphical User Interface Programming

    +
  17. +

    + Generic Programming +

    +
  18. + +

    +
    + +
    @@ -296,15 +306,5 @@
    -
  19. -

    - Generic Programming -

    -
  20. - -

    - - -
    \ No newline at end of file From 3b795a35aa55d30295eb8d06b8685f0d9079c614 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 30 Jul 2025 11:11:50 -0400 Subject: [PATCH 087/448] Update .gitignore to exclude more from tracking --- .gitignore | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 129 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index ad2865c..194fce6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,134 @@ +# Boilerplate list of files in a PreTeXt project for git to ignore +# ensure this file is tracked +!.gitignore + +# don't track unpublished builds or stage +output + +# don't track assets generated from source +generated-assets +**/*.pkl + +# don't track the executables.ptx file +executables.ptx + +# don't track node packages +node_modules + +# don't track error logs +.error_schema.log +cli.log +**/cli.log +logs + +# don't track OS related files (windows/macos/linux) +.DS_Store +.DS_Store? +._* +.AppleDouble +.LSOverride +.Spotlight-V100 +.Trashes +Icon +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db +*.stackdump +*.lnk +*.cab +*.msi +*.msix +*.msm +*.msp +[Dd]esktop.ini +.directory +.fuse_hidden* +.Trash-* +.nfs* + +# Don't include VSCode generated files +.vscode +*.code-workspace + +# Don't inlucde SublimeText files +# Cache files for Sublime Text +*.tmlanguage.cache +*.tmPreferences.cache +*.stTheme.cache + +# Workspace files are user-specific +*.sublime-workspace + +# Project files should be checked into the repository, unless a significant +# proportion of contributors will probably not be using Sublime Text +*.sublime-project + +# SFTP configuration file +sftp-config.json +sftp-config-alt*.json + +# Package control specific files +Package Control.last-run +Package Control.ca-list +Package Control.ca-bundle +Package Control.system-ca-bundle +Package Control.cache/ +Package Control.ca-certs/ +Package Control.merged-ca-bundle +Package Control.user-ca-bundle +oscrypto-ca-bundle.crt +bh_unicode_properties.cache + +# Sublime-github package stores a github token in this file +# https://packagecontrol.io/packages/sublime-github +GitHub.sublime-settings + + +# Don't include Dropbox settings and caches +.dropbox +.dropbox.attr +.dropbox.cache + +# Additionals based upon Pretextbook .gitignore +user/* + +script/mjsre/node_modules/ +script/mjsre/package-lock.json +pretext/__pycache__/** + +# any file ending in ~ (backups, usually) +*~ + +build_info +**/_build +**/rsbuild +**/build build/* -.idea/* +published + +# Codespaces set-up +.devcontainer.json + +# ignore temp files +temp-* + +# Ignore the following (from runestone .gitignore): + *.pyc -*.pkl -source/doctrees/* -*~ +__pycache__/ + sphinx-enki-info.txt sphinx_settings.json +pavement.py + +# Don't track codechat config (will be generated automatically) +codechat_config.yaml +# This temporary: pretext insists on adding stuff here +.github/workflows From c00c8aa58f74801f51b0761a7ce43ea2b7e40a35 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 30 Jul 2025 11:13:38 -0400 Subject: [PATCH 088/448] Added a section on deleting files uing Java. --- source/ch_x_filehandling.ptx | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/source/ch_x_filehandling.ptx b/source/ch_x_filehandling.ptx index 689bda7..59eac25 100644 --- a/source/ch_x_filehandling.ptx +++ b/source/ch_x_filehandling.ptx @@ -501,7 +501,35 @@

    In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt.

    +
    + +
    + Deleting Files + +

    + Finally, we will take a look at using Java to delete files. This one is pretty straight-forward and follows the structure used to create files. This time, however, try/catch blocks are not needed for the program to compile. We will call this class DeleteFile. The completed code should look something like this: +

    + + + import java.io.File; + + public class DeleteFile { + public static void main(String[] args) { + File myFile = new File("myfile.txt"); + if (myFile.delete()) { + System.out.println("Deleted " + myFile.getName()); + } else { + System.out.println("File could not be deleted."); + } + } + } + + + +

    + This is almost identical to the code within the try block of the CreateFile class we made earlier. The main difference is the use of the delete() method. This method will delete any file with the name provided when creating the myFile object. Similarly to the createNewFile() method, it will return true if the file existed and could be deleted, and false if the file could not be deleted. +

    \ No newline at end of file From 4c84d99eb0adbd7dd0ee127e18fcc924b521fe96 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 30 Jul 2025 11:37:46 -0400 Subject: [PATCH 089/448] making active code for ch9.4. Issue #19. --- source/ch_9_commonmistakes.ptx | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 17558d7..1449b66 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -65,6 +65,20 @@
    Forgetting a Semicolon + + + // Histo.java + import java.util.Scanner; // Line 1 + // Line 2 + public class Histo { // Line 3 + // Line 4 + public static void main(String[] args) { // Line 5 + Scanner data = null // Line 7: The error will point here + System.out.println("This line will not compile."); // Line 8 + } + } + +

    The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon.

    From 5711d752aa96cb705a723a70ade7d57c9264de8c Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Wed, 30 Jul 2025 11:46:22 -0400 Subject: [PATCH 090/448] Fixes syntax errors and explains a bit more. Still keeps one line loops/conditionals --- source/ap-java-cheatsheet.ptx | 51 +++++++++++++---------------------- 1 file changed, 19 insertions(+), 32 deletions(-) diff --git a/source/ap-java-cheatsheet.ptx b/source/ap-java-cheatsheet.ptx index f628368..a0041b6 100644 --- a/source/ap-java-cheatsheet.ptx +++ b/source/ap-java-cheatsheet.ptx @@ -12,6 +12,7 @@ + Function/Method Equivalents: Python to Java Python Function @@ -25,8 +26,8 @@ len() - array.length - Returns the length of an array. + array.length or list.size() + Returns the length of an array or size of a list. range() @@ -56,7 +57,7 @@ list.pop() ArrayList.remove(index) - Removes and returns the element at the specified index. + Removes and returns the element at an index. Assign the return value to use it. list.sort() @@ -106,6 +107,7 @@
    + Operator Equivalents and Usage Operator Type @@ -121,9 +123,9 @@ Arithmetic - // - Floor Division (rounds down) - 7 // 2 → 3 + / + Integer Division (truncates toward zero) + 7 / 2 → 3 Arithmetic @@ -133,14 +135,14 @@ Arithmetic - ** + Math.pow() Exponent - 2 ** 3 → 8 + Math.pow(2, 3) → 8.0 Comparison ==, != - Equal to, Not equal to + Equal to, Not equal to (use .equals() for objects) x == y @@ -151,9 +153,9 @@ Logical - and, or, not + &&, ||, ! Logical AND, OR, NOT - x > 1 and y < 10 + x > 1 && y < 10 Assignment @@ -161,18 +163,6 @@ Adds, subtracts, multiplies, or divides and assigns x += 1 - - Bitwise - <<, >>, >>> - Left, right, and unsigned right shift. - x << 2 - - - Ternary - ? : - One-line if-else expression. - condition ? val1 : val2 -
    @@ -190,38 +180,35 @@
  21. - The Ternary Operator provides a compact, one-line if-else statement. For instance, result = "Pass" if score >= 60 else "Fail" is much shorter than a full if-else block. + The Ternary Operator provides a compact, one-line if-else statement. For instance, String result = (score >= 60) ? "Pass" : "Fail"; is much shorter than a full if-else block.

  22. - List Comprehension offers a concise and readable way to create new lists based on existing sequences. Instead of a multi-line loop, you can write squares = [i**2 for i in range(10)] to generate a list of squares. + Java's Stream API is the idiomatic alternative to Python's List Comprehension. Instead of a multi-line loop, you can write List<Integer> squares = IntStream.range(0, 10).map(i -> i * i).boxed().collect(Collectors.toList()); to generate a list of squares.

  23. - F-Strings (Formatted String Literals) simplify embedding expressions and variables directly inside strings. This makes code like print(f"Hello, {name}!") much cleaner than traditional string concatenation. + Java uses methods like String.format() or System.out.printf() for embedding expressions in strings, similar to Python's F-Strings. This makes code like String message = String.format("Hello, %s!", name); cleaner than traditional string concatenation.

  24. - Tuple and List Unpacking allows for assigning elements of a sequence to multiple variables in a single line, such as name, age = ["Alice", 30]. This also enables simple variable swapping with a, b = b, a. + Java does not have a direct equivalent to Python's tuple and list unpacking. Assignment must be done one variable at a time, such as String name = "Alice"; int age = 30;.

  25. - Chained Comparisons make range checks more intuitive and mathematical. You can write if 18 <= age < 65: instead of the more verbose if age >= 18 and age < 65:. + Java does not support chained comparisons. Range checks must use logical operators, such as if (age >= 18 && age < 65).

  26. -
    - - - +
    \ No newline at end of file From 67101ee49fc9361d1bc769dcecf43da1c8bf9464 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 30 Jul 2025 13:28:12 -0400 Subject: [PATCH 091/448] added an active code that displays teh error in ch9.1. issue #19 --- source/ch_9_commonmistakes.ptx | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 1449b66..3c3fe97 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -9,17 +9,24 @@
    Forgetting to declare your variables + + + import java.util.ArrayList; // Line 1: Import necessary class + + public class Main { // Line 3: Class declaration + public static void main(String[] args) { // Line 4: Main method declaration + + count = new ArrayList<Integer<(10); // Line 6: Attempt to use 'count' without declaration + + System.out.println("ArrayList created."); // Line 8: This line won't be reached due to the error. + } // Line 10: End of main method + } // Line 11: End of class + +

    - The 'cannot find symbol' error for the variable count on line 7 indicates that count was used before it was declared within the Histo class. In Java, all variables must be explicitly declared with a data type (e.g., int, String, ArrayList<Integer>) before they can be assigned a value or referenced in any way. The arrow in the error message points to where the undeclared variable count was first encountered. To resolve this, count needs to be declared with its appropriate type (e.g., ArrayList<Integer> count;) before any attempt to initialize or use it. + The 'cannot find symbol' error for the variable count on line 6 indicates that count was used before it was declared within the Histo class. In Java, all variables must be explicitly declared with a data type (e.g., int, String, ArrayList<Integer>) before they can be assigned a value or referenced in any way. The arrow in the error message points to where the undeclared variable count was first encountered. To resolve this, count needs to be declared with its appropriate type (e.g., ArrayList<Integer> count;) before any attempt to initialize or use it.

    -
    -            Main.java:7: error: cannot find symbol
    -                count = new ArrayList<Integer>(10);
    -                ^
    -              symbol:   variable count
    -              location: class Main
    -        
    @@ -82,11 +89,6 @@

    The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon.

    -
    -            Histo.java:7: error: ';' expected
    -                Scanner data = null
    -                                   ^
    -        
    From 0f2643005dd58bc81f314a0f68220c95e24130da Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Wed, 30 Jul 2025 13:36:34 -0400 Subject: [PATCH 092/448] Adds some loops and examples ch6 fixes issue #65 --- source/ch_6_loopsanditeration.ptx | 181 +++++++++++++++++++++++++----- 1 file changed, 152 insertions(+), 29 deletions(-) diff --git a/source/ch_6_loopsanditeration.ptx b/source/ch_6_loopsanditeration.ptx index 36f8b56..498d2a5 100644 --- a/source/ch_6_loopsanditeration.ptx +++ b/source/ch_6_loopsanditeration.ptx @@ -1,6 +1,4 @@ - - Loops and Iteration @@ -13,87 +11,212 @@

    - In Python the easiest way to write a definite loop is using the for loop in conjunction with the range function. + In Python the easiest way to write a definite loop is using the for loop in conjunction with the range function. For example:

    -
    for i in range(10): print(i)
    + + +for i in range(10): + print(i) + + +

    - In Java we would write this as: + In Java, we would write this as:

    -
    for (Integer i = 0; i < 10; i++ ) { System.out.println(i); }
    + + +public class DefiniteLoopExample { + public static void main(String[] args) { + for (Integer i = 0; i < 10; i++ ) { + System.out.println(i); + } + } +} + + +

    Recall that the range function provides you with a wide variety of options for controlling the value of the loop variable.

    -
    range(stop) range(start,stop) range(start,stop,step)
    +
    range(stop)
    +range(start,stop)
    +range(start,stop,step)
    +

    - The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. + The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. You can think of it this way:

    -
    for (start clause; stop clause; step clause) { statement1 statement2 ... }
    +
    for (start clause; stop clause; step clause) {
    +    statement1
    +    statement2
    +    ...
    +}
    +

    - If you want to start at 100, stop at 0 and count backward by 5 the Python loop would be written as: + If you want to start at 100, stop at 0 and count backward by 5, the Python loop would be written as:

    -
    for i in range(100,-1,-5): print(i)
    + + +for i in range(100, -1, -5): + print(i) + + +

    In Java we would write this as:

    -
    for (Integer i = 100; i >= 0; i -= 5) System.out.println(i);
    + + +public class DefiniteLoopBackward { + public static void main(String[] args) { + for (Integer i = 100; i >= 0; i -= 5) { + System.out.println(i); + } + } +} + + +

    In Python the for loop can also iterate over any sequence such as a list, a string, or a tuple. - Java also provides a variation of its for loop that provides the same functionality in its so called for each loop. + Java also provides a variation of its for loop that provides the same functionality in its so-called for each loop.

    In Python we can iterate over a list as follows:

    -
    l = [1, 1, 2, 3, 5, 8, 13, 21] for fib in l: print(fib)
    + + +l = [1, 1, 2, 3, 5, 8, 13, 21] +for fib in l: + print(fib) + + +

    - In Java we can iterate over an ArrayList of integers too: + In Java we can iterate over an ArrayList of integers too. Note that this requires importing the ArrayList class.

    -
    ArrayList<Integer> l = new ArrayList<Integer>(); l.add(1); l.add(1); l.add(2); l.add(3); for (Integer i : l) { System.out.println(i) }
    + + +import java.util.ArrayList; + +public class ForEachArrayListExample { + public static void main(String[] args) { + ArrayList<Integer> l = new ArrayList<Integer>(); + l.add(1); + l.add(1); + l.add(2); + l.add(3); + l.add(5); + l.add(8); + l.add(13); + l.add(21); + for (Integer i : l) { + System.out.println(i); + } + } +} + + +

    - This example stretches the imagination a bit, and in fact points out one area where Java’ s primitive arrays are easier to use than an array list. - In fact all primitive arrays can be used in a for each loop. + This example stretches the imagination a bit, and in fact points out one area where Java's primitive arrays are easier to use than an array list. + In fact all primitive arrays can be used in a for each loop.

    -
    int l[] = {1,1,2,3,5,8,13,21}; for(int i : l) { System.out.println(i); }
    + + +public class ForEachArrayExample { + public static void main(String[] args) { + int l[] = {1,1,2,3,5,8,13,21}; + for(int i : l) { + System.out.println(i); + } + } +} + + +

    To iterate over the characters in a string in Java do the following:

    -
    String t = "Hello World"; for (char c : t.toCharArray()) { System.out.println(c); }
    + + +public class StringIterationExample { + public static void main(String[] args) { + String t = "Hello World"; + for (char c : t.toCharArray()) { + System.out.println(c); + } + } +} + + +
    Indefinite Loops

    - Both Python and Java support the while loop. - Recall that in Python the while loop is written as: + Both Python and Java support the while loop. + Here is a simple example in Python that counts down from 5:

    + + +i = 5 +while i > 0: + print(i) + i = i - 1 + + -
    while  condition: statement1 statement2 ...

    - In Java we add parenthesis and curly braces to get: + In Java we add parenthesis and curly braces. Here is the same countdown loop in Java:

    + + +public class WhileLoopExample { + public static void main(String[] args) { + int i = 5; + while (i > 0) { + System.out.println(i); + i = i - 1; + } + } +} + + -
    while (condition) { statement1 statement2 ... }

    - Java adds an additional, if seldom used variation of the while loop called the do loop. - The do loop is very similar to while except that the condition is evaluated at the end of the loop rather than the beginning. + Java adds an additional, if seldom used variation of the while loop called the do-while loop. + The do-while loop is very similar to while except that the condition is evaluated at the end of the loop rather than the beginning. This ensures that a loop will be executed at least one time. Some programmers prefer this loop in some situations because it avoids an additional assignment prior to the loop. - For example: + For example, the following loop will execute once even though the condition is initially false.

    -
    do { statement1 statement2 ... } while (condition);
    + + +public class DoWhileExample { + public static void main(String[] args) { + int i = 10; + do { + System.out.println("This runs once, i = " + i); + } while (i < 5); + } +} + +
    \ No newline at end of file From 7f59274671e841aba46be2b4fdf9b52d17973a17 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 30 Jul 2025 14:01:43 -0400 Subject: [PATCH 093/448] I added a running code block for this section and removed the pretag to improve interactivity and read ability. issue #19 --- source/ch_9_commonmistakes.ptx | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 3c3fe97..706c80a 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -10,7 +10,7 @@
    Forgetting to declare your variables - + import java.util.ArrayList; // Line 1: Import necessary class public class Main { // Line 3: Class declaration @@ -22,7 +22,7 @@ } // Line 10: End of main method } // Line 11: End of class - +

    The 'cannot find symbol' error for the variable count on line 6 indicates that count was used before it was declared within the Histo class. In Java, all variables must be explicitly declared with a data type (e.g., int, String, ArrayList<Integer>) before they can be assigned a value or referenced in any way. The arrow in the error message points to where the undeclared variable count was first encountered. To resolve this, count needs to be declared with its appropriate type (e.g., ArrayList<Integer> count;) before any attempt to initialize or use it. @@ -32,19 +32,23 @@

    Not importing a class + + + // Histo.java + public class Histo { // Line 2: Class declaration + public static void main(String[] args) { // Line 4: Main method declaration + + Scanner data = null; // Line 6: This line will cause the "cannot find symbol" error + + } // Line 8: End of main method + } // Line 9: End of class + +

    You may notice that this error message looks similar to the previous one, however, it has an entirely different cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;.

    -
    -            Histo.java:3: error: cannot find symbol
    -                Scanner data = null;
    -                ^
    -              symbol:   class Scanner
    -              location: class Histo
    -        
    -
    @@ -73,7 +77,7 @@
    Forgetting a Semicolon - + // Histo.java import java.util.Scanner; // Line 1 // Line 2 @@ -84,7 +88,7 @@ System.out.println("This line will not compile."); // Line 8 } } - +

    The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon. From c76ed80fbe0b01679a7d6790013c8a51f042fc9a Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 30 Jul 2025 14:23:37 -0400 Subject: [PATCH 094/448] adds an interactive code block and removes the pre tags to make the section more interactive and readable. issue #19. --- source/ch_9_commonmistakes.ptx | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 706c80a..8877264 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -53,7 +53,22 @@

    Forgetting to use the new keyword to create an object + + + // Histo.java // Line 1: The filename for this example + import java.io.File; // Line 2: Import the File class, needed for file operations + import java.util.Scanner; // Line 3: Import the Scanner class, now correctly imported + + public class Histo { // Line 5: Class declaration + + public static void main(String[] args) { // Line 7: Main method declaration + + Scanner data = Scanner(new File("test.dat")); // Line 9: This Line will cause an error + } // Line 12: End of main method + } // Line 13: End of class + +

    This error message occurs when you forget to use the new keyword to instantiate an object. Specifically, on line 8 of Histo.java, data = Scanner(new File("test.dat")); leads to a 'cannot find symbol' error. @@ -64,14 +79,6 @@

    -
    -            Histo.java:8: error: cannot find symbol
    -                data = Scanner(new File("test.dat"));
    -                    ^
    -              symbol:   method Scanner(File)
    -              location: class Histo
    -        
    -
    From 6311e142a99128667bbc141c45024852a1c5faba Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 30 Jul 2025 14:37:34 -0400 Subject: [PATCH 095/448] The chapter is in a finished state at this point, but will be a draft pull request. Details will be given in the draft PR. --- source/ch_x_filehandling.ptx | 239 +++++++++++++++++++++++++++-------- 1 file changed, 188 insertions(+), 51 deletions(-) diff --git a/source/ch_x_filehandling.ptx b/source/ch_x_filehandling.ptx index 59eac25..17bedca 100644 --- a/source/ch_x_filehandling.ptx +++ b/source/ch_x_filehandling.ptx @@ -6,7 +6,7 @@

    - File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files. + File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files.

    @@ -15,7 +15,7 @@ Class Imports

    - Before any code can be written to handle files, the proper classes must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. + Java has several libraries included for file handling, though, they must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File.

    @@ -25,7 +25,7 @@

    - The Scanner class from the util library will need to be imported if there is any need for the program being written to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file. + The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    @@ -45,7 +45,7 @@

    - Finally, these last two classes provide error handling and must be used in tandem with the File class. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files that do not exist. + Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files.

    @@ -66,7 +66,7 @@ Creating Files

    - Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner and FileWriter is not needed for a class that creates files and does nothing else) and create a class. We will call this class CreateFile(). + Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner and FileWriter are not needed for a class that only creates files) and create a class. We will call this class CreateFile.

    @@ -92,31 +92,61 @@ -
    -            Note: myFile is the name of the object within the program, while "myfile.txt" 
    -            is the name of the file itself and will be the file name if the operation 
    -            that creates the file is successful.
    -        
    + +

    + myFile is the name of the object within the program, while "myfile.txt" is the name of the file itself and will be the file name if the operation that creates the file is successful. +

    +

    Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created, or if a file with that file name already exists in the directory.

    +

    + First, lets look at the equivalent Python code: +

    + + + + import os + + filename = "myfile.txt" + + if not os.path.exists(filename): + with open(filename, 'x') as f: + pass + print(f"The file {filename} was created successfully.") + else: + print(f"The file {filename} already exists.") + + + +

    + Now, let's look at Java code that accomplishes the same task: +

    + - if (myFile.createNewFile()) { // If the file was created successfully - System.out.println("The file " + myFile.getName() + " was created sucessfully."); - } else { // If a file with the file name chosen already exists - System.out.println("The file " + myFile.getName() + " already exists."); + import java.io.File; + import java.io.IOException; + + public class CreateFile { + public static void main(String[] args) { + if (myFile.createNewFile()) { // If the file was created successfully + System.out.println("The file " + myFile.getName() + " was created sucessfully."); + } else { // If a file with the file name chosen already exists + System.out.println("The file " + myFile.getName() + " already exists."); + } + } } -
    -            Note: You may have noticed the use of another method from the File class; 
    -            getName(). This method returns a string containing the name of 
    -            the file. 
    -        
    + +

    + You may have noticed the use of another method from the File class; getName(). This method returns a string containing the name of the file. +

    +

    The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class. @@ -137,22 +167,52 @@ -

    -            Note: The IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions:
    -        
    + +

    + The IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions: +

    +
    - + An error occurred. java.io.IOException: Permission denied at java.base/java.io.File.createNewFile(File.java:1040) at CreateFile.main(CreateFile.java:7) - + + + +

    + At this point, the program will function correctly. Let's add the try/catch blocks to the foundational code written before to get a complete program. +

    + +

    + First, the equivalent Python code: +

    + + + + import os + + filename = "myfile.txt" + + try: + if not os.path.exists(filename): + with open(filename, 'x') as f: + pass # Create the file without writing anything + print(f"The file {filename} was created successfully.") + else: + print(f"The file {filename} already exists.") + except OSError as e: + print("An error occurred.") + import traceback + traceback.print_exc() +

    - At this point, the program will function correctly. Let's add the try/catch blocks to the foundational code written before to get a complete program: + Now, the completed Java code:

    @@ -212,7 +272,7 @@ Writing to Files

    - The createNewFile() method is useful for attempting to create files and reporting if the operation was successful, however, createNewFile() does not write anything to files it creates. In fact, if you use createNewFile() to create a .txt file and then open the file, the file will be blank. + The createNewFile() method is useful for attempting to create files and reporting if the operation was successful, however, createNewFile() does not write anything to files it creates. In fact, if you use createNewFile() to create a .txt file and then open the file, the file will be blank.

    @@ -238,7 +298,7 @@ - FileWriter myWriter = new FileWriter("myFile.txt"); + FileWriter myWriter = new FileWriter("myfile.txt"); @@ -253,18 +313,37 @@ -

    -            Note: the close() function being used after writing to a file. This is a very important step and must be included when working with files! Without using this method, the file may remain active in system resources even after the program is closed. This can lead file corruption or other terrible problems that are best avoided!
    -        
    + +

    + You may have noticed the close() function being used after writing to the file. This is a very important step and must be included when working with files! Without using this method, the file may remain active in system resources even after the program is closed. This can lead file corruption or other terrible problems that are best avoided! +

    +

    - Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation: + Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example: +

    + + + + try: + with open("myfile.txt", "w") as my_writer: + my_writer.write("File successfully updated!") + print("File successfully written to.") + except OSError as e: + print("An error occurred.") + import traceback + traceback.print_exc() + + + +

    + And the equivalent Java code:

    try { - FileWriter myWriter = new FileWriter("myFile.txt"); + FileWriter myWriter = new FileWriter("myfile.txt"); myWriter.write("File successfully updated!"); myWriter.close(); System.out.println("File successfully written to."); @@ -276,7 +355,24 @@

    - And that's it! We will add our code to the foundational code for a complete program. + And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code: +

    + + + + try: + with open("myfile.txt", "w") as my_writer: + my_writer.write("File successfully updated!") + print("File successfully written to.") + except OSError as e: + print("An error occurred.") + import traceback + traceback.print_exc() + + + +

    + The completed Java code:

    @@ -287,7 +383,7 @@ public class WriteFile { public static void main(String[] args) { try { - FileWriter myWriter = new FileWriter("myFile.txt"); + FileWriter myWriter = new FileWriter("myfile.txt"); myWriter.write("File successfully updated!"); myWriter.close(); System.out.println("File successfully written to."); @@ -301,11 +397,17 @@

    - Files in a specific directory can be written to using the same technique as the last section in which file paths are specified, with two back slashes used in Windows environments. Something to note is, if a file does not already exist (for example, myfile.txt does not exist), the write() method will create the file. Despite this, it is still a good idea to create separate methods or classes for creating and writing to files. Not only is it good practice to ensure methods only accomplish one thing, but the createNewFile() method avoids overwriting files that already exist. Imagine a file with the name myfile.txt already exists and contains important information. Attempting to create a file using the write() method will delete that data forever. -

    + Files in a specific directory can be written to using the same technique as the last section in which file paths are specified, with two back slashes used in Windows environments. +

    + + +

    + If a file does not already exist (for example, myfile.txt does not exist), the write() method will create the file. Despite this, it is still a good idea to create separate methods or classes for creating and writing to files. Not only is it good practice to ensure methods only accomplish one thing, but the createNewFile() method avoids overwriting files that already exist. Imagine a file with the name myfile.txt already exists and contains important information. Attempting to create a file using the write() method will delete that data forever. +

    +

    - Speaking of overwriting data, it is important to know that the write() method will overwrite any text if there is already text in myfile.txt. What if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument: + Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument:

    @@ -326,7 +428,7 @@ public class WriteFile { public static void main(String[] args) { try { - FileWriter myWriter = new FileWriter("myFile.txt", true); // true enables append mode + FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode myWriter.write("File successfully updated!"); myWriter.close(); System.out.println("File successfully written to."); @@ -361,7 +463,7 @@

    - This works fine if you want all text to be on the same line, but what if we want each additional write to appear on a new line? The first answer may be to use the \n newline character: + This works fine if you want all text to be on the same line, but what if we want each additional write to appear on a new line? The first solution may be to use the \n newline character:

    @@ -383,14 +485,13 @@

    - Running either variation used for adding new lines twice will result in the following contents in myfile.txt. Notice that an extra blank line that will always appear at the bottom of the text: + Running either variation used for adding new lines twice will result in the following contents in myfile.txt:

    File successfully updated! File successfully updated! -
    @@ -417,7 +518,7 @@

    - We will then create a new File exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader: + We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader:

    @@ -427,12 +528,26 @@
    -
    -            Note: The myFile File object we created on the first line was passed to the Scanner object created on the second line.
    -        
    + +

    + The myFile File object we created on the first line was passed to the Scanner object created on the second line. +

    +
    + +

    + The next lines consist of a while loop that reads each line of the file passed to the Scanner object and reads them. First, a Python code example. A for loop is used instead in the Python example: +

    + + + + with open("filename.txt", "r") as file_reader: + for line in file_reader: + print(line.strip()) + +

    - The next lines consist of a while loop that reads each line of the file passed to the Scanner object and reads them: + The equivalent Java code:

    @@ -446,7 +561,7 @@

    - The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it reads the current line. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as the same method discussed in the section on writing to files. + The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it returns the current line when called. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as in the section on writing to files.

    @@ -464,12 +579,34 @@ + +

    + Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a new line operator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. +

    + +

    - Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a lineSeparator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. + Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code:

    + + + try: + with open("myfile.txt", "r") as file_reader: + data = "" + for line in file_reader: + data += line # line already includes the newline character + print(data) + except FileNotFoundError as e: + print("An error occurred.") + import traceback + traceback.print_exc() + + + +

    - Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look like this: + And the Java equivalent:

    @@ -507,7 +644,7 @@ Deleting Files

    - Finally, we will take a look at using Java to delete files. This one is pretty straight-forward and follows the structure used to create files. This time, however, try/catch blocks are not needed for the program to compile. We will call this class DeleteFile. The completed code should look something like this: + Finally, we will take a look at using Java to delete files. This one is pretty straight-forward and follows the structure used to create files. This time, however, try/catch blocks are not needed for the program to compile. We will call this class DeleteFile. The completed code should look something like this.

    @@ -528,7 +665,7 @@

    - This is almost identical to the code within the try block of the CreateFile class we made earlier. The main difference is the use of the delete() method. This method will delete any file with the name provided when creating the myFile object. Similarly to the createNewFile() method, it will return true if the file existed and could be deleted, and false if the file could not be deleted. + This is almost identical to the code within the try block of the CreateFile class we made earlier. The main difference is the use of the delete() method. This method will delete any file with the name provided when creating the myFile object. Similar to the createNewFile() method, it will return true if the file existed and could be deleted, and false if the file could not be deleted.

    From 8b4a4264e1b76e875a0d8afde063dfb52b97a3e6 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 30 Jul 2025 14:44:12 -0400 Subject: [PATCH 096/448] adds an active code for chapter 9.5 and removes pretags to improve readability. issue #19 --- source/ch_9_commonmistakes.ptx | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 8877264..3fd9d62 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -105,6 +105,25 @@
    Forgetting to declare the kind of object in a container + + + // UncheckedWarningDemo.java + import java.util.ArrayList; // Line 2: Import the ArrayList class + + public class UncheckedWarningDemo { // Line 4: Class declaration + + public static void main(String[] args) { // Line 6: Main method declaration + + // This is where the potential for unchecked operations begins. + ArrayList rawList = new ArrayList();//Line 9 + + rawList.add("Hello");//Line 11: This is the line that will throw an error + + System.out.println("Element added: " + rawList.get(0)); + } // Line 14: End of main method + } // Line 15: End of class + +

    This is a compiler warning, not an error, indicating a potential type safety issue. It occurs because you are calling the add() method on rawList, which is an ArrayList used as a raw type (i.e., without specifying a generic type like <String> or <Integer>).

    @@ -112,13 +131,6 @@

    When ArrayList is used as a raw type, the compiler cannot guarantee the type of elements being added or retrieved, leading to "unchecked" operations. The E extends Object part refers to the generic type parameter E that ArrayList should have, which defaults to Object when the type is not specified, making the add() call unchecked. This can lead to ClassCastExceptions at runtime if incompatible types are later retrieved and cast.

    -
    -            UncheckedWarningDemo.java:8: warning: [unchecked] unchecked call to add(E) as a member of the raw type ArrayList
    -                    rawList.add("Hello");
    -                            ^
    -              where E is a type-variable:
    -                E extends Object declared in class ArrayList
    -        
    From ed627a6b11ea676db61a513612b4824bb773fa8d Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Wed, 30 Jul 2025 14:56:48 -0400 Subject: [PATCH 097/448] Moving content from Chapter 8 to Chapter 7.3 --- source/ch_7_definingclasses.ptx | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 9d22f4f..d5c2f22 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -399,6 +399,44 @@ public class Fraction { + + + Naming Conventions +

    + Java has some very handy naming conventions. +

    + +

    +

      +
    • +

      + Class names always start with an upper case letter. + For example, Scanner, System, Hello +

      +
    • + +
    • +

      + Method names always start with a lower case letter, and use camelCase to represent multiword method names. + for example nextInt() +

      +
    • + +
    • +

      + Instance variables of a class start with a lower case letter and use camelCase +

      +
    • + +
    • +

      + Constants are in all upper case letters. + for example Math.MAXINT +

      +
    • +
    +

    +
    From 3e338631973f81978b1fe766a884ce380e172cb8 Mon Sep 17 00:00:00 2001 From: austing767 Date: Wed, 30 Jul 2025 14:55:43 -0500 Subject: [PATCH 098/448] Added the python code and note about code, rules for java swtich, partial issue #60 --- source/ch_5_conditionals.ptx | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index 156049f..fd908ed 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -138,6 +138,7 @@ We can get even closer to the elif statement by taking advantage of the Java rul

    + public class ElseIf { @@ -165,6 +166,38 @@ public class ElseIf { Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following:

    + +

    + Depending on your knowledge and experience with Python you may already be familar and questioning why we are not using the match statement in our Python examples.The answer is that Unforunately, this book runs its active code examples on Python 3.7, which does not support the match statement. The match statement was introduced in Python 3.10. Below is an example of the match statement simmilar to our grade method. +

    + + Match Case example + + grade = 100 // 10 + def grading(grade): + match grade: + case 10 | 9: + return 'A' + case 8: + return 'B' + case 7: + return 'C' + case 6: + return 'D' + case _: + return 'F' + print(grading(grade)) + + +
    + +

    + The switch statement in Java provides a clean and efficient alternative to chaining multiple if-else conditions, especially when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution. Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs. +

    + + + + From b6432ffa96f862287143c874f104b3068a890bd7 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 30 Jul 2025 18:22:34 -0400 Subject: [PATCH 099/448] enhanced explanations and small fixes --- source/ch_6_loopsanditeration.ptx | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/source/ch_6_loopsanditeration.ptx b/source/ch_6_loopsanditeration.ptx index 498d2a5..a0650f4 100644 --- a/source/ch_6_loopsanditeration.ptx +++ b/source/ch_6_loopsanditeration.ptx @@ -10,8 +10,8 @@ So this section will just serve as a reference for the differences in syntax.

    -

    - In Python the easiest way to write a definite loop is using the for loop in conjunction with the range function. +

    for loop + A definite loop is a loop that is executed a specific or definite number of times. In Python, the easiest way to write a definite loop is using the for loop in conjunction with the range function. For example:

    @@ -47,7 +47,7 @@ range(start,stop) range(start,stop,step)

    - The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. + The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. You can think of it this way:

    @@ -69,7 +69,7 @@ for i in range(100, -1, -5):

    - In Java we would write this as: + In Java, we would write this as:

    @@ -85,12 +85,12 @@ public class DefiniteLoopBackward {

    - In Python the for loop can also iterate over any sequence such as a list, a string, or a tuple. - Java also provides a variation of its for loop that provides the same functionality in its so-called for each loop. + In Python, the for loop can also iterate over any sequence such as a list, a string, or a tuple. + Java also provides a variation of its for loop that provides the same functionality in its so-called for each loop.

    - In Python we can iterate over a list as follows: + In Python, we can iterate over a list as follows:

    @@ -168,8 +168,8 @@ public class StringIterationExample {
    Indefinite Loops -

    - Both Python and Java support the while loop. +

    while loop + Both Python and Java support the while loop, which continues to execute as long as a condition is true. Here is a simple example in Python that counts down from 5:

    @@ -198,8 +198,8 @@ public class WhileLoopExample {
    -

    - Java adds an additional, if seldom used variation of the while loop called the do-while loop. +

    do-while loop + Java adds an additional, if seldom used variation of the while loop called the do-while loop. The do-while loop is very similar to while except that the condition is evaluated at the end of the loop rather than the beginning. This ensures that a loop will be executed at least one time. Some programmers prefer this loop in some situations because it avoids an additional assignment prior to the loop. From e4f39cecb3e84cf8f2fc5d934372609f0b43e37f Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 30 Jul 2025 20:40:42 -0400 Subject: [PATCH 100/448] improve naming conventions --- source/ch_7_definingclasses.ptx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index d5c2f22..bd49eeb 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -403,35 +403,34 @@ public class Fraction { Naming Conventions

    - Java has some very handy naming conventions. + It is worth pointing out that Java has some very handy naming conventions. It is advisable to both use meaningful names and to follow these naming conventions while developing software in Java for good maintenance and readability of code.

    • - Class names always start with an upper case letter. - For example, Scanner, System, Hello + Class names should be nouns that are written in UpperCamelCase, namely with the first letter of each word capitalized including the first. + For example, ArrayList, Scanner, StringBuilder, System, etc.

    • - Method names always start with a lower case letter, and use camelCase to represent multiword method names. - for example nextInt() + Method names use lowerCamelCase which start with a verb that describes the action they perform. This means that method names start with a lower case letter, and use upper case for each internal-word method names. For example, isInt(), nextLine(), getDenominator(), setNumerator(), etc.

    • - Instance variables of a class start with a lower case letter and use camelCase + Instance variables of a class start with a lower case letter and use lowerCamelCase like method names. For example, count, totalAmount, etc.

    • - Constants are in all upper case letters. - for example Math.MAXINT + Constants are in all upper case letters or in upper snake case, which also known as screaming snake case, and which is a naming convention in which each word is written in uppercase letters, separated by underscores. + For example, Math.MAXINT or MAX_INT.

    From 50c44f6a770f10781d49e2c2779abacd8e0b5da3 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 30 Jul 2025 21:15:13 -0400 Subject: [PATCH 101/448] add error introductions --- source/ch_9_commonmistakes.ptx | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 3fd9d62..5a29406 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -9,7 +9,11 @@
    Forgetting to declare your variables - +

    + In Python, you can use a variable without declaring it first, but in Java, you must declare all variables before using them. + If you try to use a variable that has not been declared, the Java compiler will give you an error message like this: +

    + import java.util.ArrayList; // Line 1: Import necessary class @@ -32,7 +36,10 @@
    Not importing a class - + +

    + In Python, many classes are available by default. However, in Java, you must explicitly import most classes from external packages that you want to use. +

    // Histo.java public class Histo { // Line 2: Class declaration @@ -53,7 +60,10 @@
    Forgetting to use the new keyword to create an object - +

    + Unlike Python, where you can create a new object without explicitly using a keyword, Java requires the new keyword to instantiate a new object. +

    + // Histo.java // Line 1: The filename for this example import java.io.File; // Line 2: Import the File class, needed for file operations @@ -83,7 +93,10 @@
    Forgetting a Semicolon - +

    + A common mistake in Java is to forget that every statement must end with a semicolon (;). +

    + // Histo.java import java.util.Scanner; // Line 1 @@ -105,7 +118,10 @@
    Forgetting to declare the kind of object in a container - +

    + Java is a statically typed language, meaning you must specify the type of objects that can be stored in a container like an ArrayList. If you forget to declare the type, the compiler will give you an error. +

    + // UncheckedWarningDemo.java import java.util.ArrayList; // Line 2: Import the ArrayList class From d0235e33dc7217c0ccba3d9290d183fe2049daf5 Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Wed, 30 Jul 2025 22:58:43 -0400 Subject: [PATCH 102/448] Added summary and reading questions in chapter 3 --- source/ch_3_firstjavaprogram.ptx | 109 +++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/source/ch_3_firstjavaprogram.ptx b/source/ch_3_firstjavaprogram.ptx index b2c3edb..e5358d4 100644 --- a/source/ch_3_firstjavaprogram.ptx +++ b/source/ch_3_firstjavaprogram.ptx @@ -329,4 +329,113 @@ Hello World! >>> +
    + Summary & Reading Questions +

      +
    1. +

      Java programs must be compiled before execution, unlike Python which is interpreted directly.

      +
    2. +
    3. +

      Every Java program must define a class, and all code must be inside that class.

      +
    4. +
    5. +

      Each Java program must include a public static void main(String[] args) method as the entry point.

      +
    6. +
    7. +

      Java enforces that every variable and method must have a clearly defined type, including void for methods that return nothing.

      +
    8. +
    9. +

      Statements in Java must end with a semicolon (;), and whitespace is not syntactically meaningful.

      +
    10. +
    11. +

      Java uses dot notation to access class members, such as System.out.println for output.

      +
    12. +
    13. +

      The static keyword indicates that a method belongs to the class itself, rather than to an instance of the class.

      +
    14. +

    + + + +

    Which of the following must be true of every Java program?

    +
    + + +

    It must contain a method called main() with no parameters.

    +

    No. The main method must include a specific parameter: String[] args.

    +
    + +

    It must include a public static void main(String[] args) method inside a class.

    +

    Correct! This is the required entry point for all Java applications.

    +
    + +

    It must be saved with a .exe extension.

    +

    No. Java source files use the .java extension and compile to .class.

    +
    + +

    It must be run using the Python interpreter.

    +

    No. Java uses its own compiler and Java Virtual Machine (JVM).

    +
    +
    +
    + + +

    What is the purpose of the javac command?

    +
    + + +

    To compile Java source code into bytecode

    +

    Exactly! javac compiles .java files into .class files.

    +
    + +

    To run a Python program

    +

    No. Python programs are run with the python or python3 command.

    +
    + +

    To debug Java programs

    +

    No. javac only compiles code. Debugging is a separate process.

    +
    + +

    To edit Java source files

    +

    No. You use a text editor or IDE to edit Java files.

    +
    +
    +
    + + +

    What symbol does Java use to indicate the end of a statement?

    +
    + + +

    #

    +
    + +

    No. # is used for comments in Python, not for statement termination.

    +
    +
    + +

    ;

    +
    + +

    Correct! Java uses semicolons to mark the end of a statement.

    +
    +
    + +

    .

    +
    + +

    No. . is used for dot notation, not to end a statement.

    +
    +
    + +

    }

    +
    + +

    No. } is used to close code blocks.

    +
    +
    +
    +
    +
    +
    \ No newline at end of file From e0da12635f72e4ae87c50e732d79181d124bf33f Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Wed, 30 Jul 2025 23:11:16 -0400 Subject: [PATCH 103/448] Added summary and reading questions in chapter 4 --- source/ch_4_javadatatypes.ptx | 145 ++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index eca5d58..fa591b9 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -722,4 +722,149 @@ public class HistoMap { Improve the program above to remove the punctuation.

    +
    + Summary & Reading Questions +

      +
    1. +

      All variables must be declared with their type before use in Java due to static typing.

      +
    2. +
    3. +

      Java has primitive types (int, float, double, char, boolean) and their corresponding Object wrapper classes (Integer, Float, Double, Character, Boolean) with automatic conversion between them called autoboxing.

      +
    4. +
    5. +

      The import statement in Java allows you to use shortened class names instead of fully qualified names like java.util.Scanner.

      +
    6. +
    7. +

      Scanner objects are used to read input from various sources, including System.in for keyboard input.

      +
    8. +
    9. +

      Java Strings are immutable like Python, but use methods like charAt() and substring() instead of indexing operators.

      +
    10. +
    11. +

      ArrayList is Java's dynamic array implementation that is similar to Python lists, but must declare the type of objects it contains using generics like ArrayList<Integer>.

      +
    12. +
    13. +

      Maps (HashMap and TreeMap) are Java's equivalent to Python dictionaries for storing key-value pairs.

      +
    14. +

    + + + +

    What is the correct way to declare an ArrayList that will hold String objects in Java?

    +
    + + + +

    ArrayList<String> list;

    +
    + +

    Good job!

    +
    +
    + + +

    ArrayList list;

    +
    + +

    No, you must specify the type of objects it will hold using generics.

    +
    +
    + + +

    ArrayList[String] list;

    +
    + +

    No, the syntax for generics uses < > brackets, not [ ].

    +
    +
    + + +

    ArrayList() list;

    +
    + +

    No, this is not a valid declaration.

    +
    +
    +
    +
    + + +

    The process of automatically converting between primitive types and their Object wrapper classes in Java is called:

    +
    + + + +

    Autoboxing

    +
    + +

    Right! Good job!

    +
    +
    + + +

    Casting

    +
    + +

    No, casting is manually converting a type.

    +
    +
    + + +

    Overloading

    +
    + +

    No, overloading refers to methods, not type conversion.

    +
    +
    + + +

    Unboxing

    +
    + +

    No, unboxing is the reverse of autoboxing.

    +
    +
    +
    +
    + + +

    Which method would you use to get the character at position 3 in a Java String called str?

    +
    + + + +

    str.charAt(3)

    +
    + +

    Correct!

    +
    +
    + + +

    str[3]

    +
    + +

    No, Java does not support this type of indexing.

    +
    +
    + + +

    str.get(3)

    +
    + +

    No, this method does not exist in Java.

    +
    +
    + + +

    str.substring(3)

    +
    + +

    No, this will return a substring starting at position 3, not a single character.

    +
    +
    +
    +
    +
    +
    \ No newline at end of file From b5577e10d115cabfe1296fcd99c4cf55078ae07a Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Thu, 31 Jul 2025 09:19:57 -0400 Subject: [PATCH 104/448] Adds a small section for Java vs Python fixes issue #53 --- source/ch_7_definingclasses.ptx | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 9d22f4f..7372acc 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -241,7 +241,29 @@ public Fraction(Integer num, Integer den) { A point of terminology: Python has both “functions” (def outside a class) and “methods” (def inside a class). Since Java requires all code to be inside classes, it only has “methods.” Those from a C++ background might refer to methods as “member functions.”

    - +

    + Before we dive into the add method, it's important to understand how Java passes arguments to methods, as this is a common point of confusion for programmers coming from Python. The terminology is different, but the practical result for objects is effectively identical. +

    +

    +

      +
    • +

      + Java is strictly pass-by-value. For primitive types (like int), a copy of the value is passed. For object types (like our Fraction), a copy of the value of the reference (the memory address) is passed. +

      +
    • +
    • +

      + Python is pass-by-assignment (or pass-by-object-reference). Since everything in Python is an object, the rule is consistent: a copy of the reference to the object is passed. +

      +
    • +
    +

    +

    + What does this mean in practice? For objects, the behavior is the same in both languages. When you pass a Fraction object to the add method, both the original variable outside the method and the parameter inside the method (otherFrac) refer to the exact same object in memory. This allows the method to use the object's getters to read its state. If you were to call a setter method on otherFrac, the change would be reflected in the original object. +

    +

    + However, if you reassign the parameter to a completely new object inside the method (e.g., otherFrac = new Fraction(0,1);), it would not affect the original variable outside the method, because you are only changing the local copy of the reference. +

    Let’s begin by implementing addition in Java:

    From ede1af8b1f879bfacbb7af346f82031229a5c174 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Thu, 31 Jul 2025 09:50:55 -0400 Subject: [PATCH 105/448] fixed commonets on code in chapter 9 and removed line numbers. issue #19 --- source/ch_9_commonmistakes.ptx | 82 ++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 5a29406..beef561 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -15,17 +15,21 @@

    - import java.util.ArrayList; // Line 1: Import necessary class + import java.util.ArrayList; // Import necessary class - public class Main { // Line 3: Class declaration - public static void main(String[] args) { // Line 4: Main method declaration - - count = new ArrayList<Integer<(10); // Line 6: Attempt to use 'count' without declaration + public class Main { // Class declaration + + // Main method declaration + public static void main(String[] args) { - System.out.println("ArrayList created."); // Line 8: This line won't be reached due to the error. + // Attempt to use 'count' without declaration + count = new ArrayList<Integer<(10); - } // Line 10: End of main method - } // Line 11: End of class + // This line won't be reached due to the error. + System.out.println("ArrayList created."); + + } // End of main method + } // End of class

    @@ -42,14 +46,14 @@

    // Histo.java - public class Histo { // Line 2: Class declaration + public class Histo { // Class declaration - public static void main(String[] args) { // Line 4: Main method declaration - - Scanner data = null; // Line 6: This line will cause the "cannot find symbol" error + public static void main(String[] args) { // Main method declaration + // This line will cause the "cannot find symbol" error + Scanner data = null; - } // Line 8: End of main method - } // Line 9: End of class + } // End of main method + } // End of class

    @@ -65,18 +69,18 @@

    - // Histo.java // Line 1: The filename for this example - import java.io.File; // Line 2: Import the File class, needed for file operations - import java.util.Scanner; // Line 3: Import the Scanner class, now correctly imported + // Histo.java // The filename for this example + import java.io.File; // Import the File class, needed for file operations + import java.util.Scanner; // Import the Scanner class, now correctly imported - public class Histo { // Line 5: Class declaration + public class Histo { // Class declaration - public static void main(String[] args) { // Line 7: Main method declaration + public static void main(String[] args) { // Main method declaration - Scanner data = Scanner(new File("test.dat")); // Line 9: This Line will cause an error + Scanner data = Scanner(new File("test.dat")); // This Line will cause an error - } // Line 12: End of main method - } // Line 13: End of class + } // End of main method + } // End of class

    @@ -99,15 +103,15 @@ // Histo.java - import java.util.Scanner; // Line 1 - // Line 2 - public class Histo { // Line 3 - // Line 4 - public static void main(String[] args) { // Line 5 - Scanner data = null // Line 7: The error will point here - System.out.println("This line will not compile."); // Line 8 - } - } + import java.util.Scanner; // Imports Scanner + + public class Histo { // Class declaration + + public static void main(String[] args) { // Main method declaration + Scanner data = null // The error will point here + System.out.println("This line will not compile."); + }// End of main method + }//End of class

    @@ -124,20 +128,20 @@ // UncheckedWarningDemo.java - import java.util.ArrayList; // Line 2: Import the ArrayList class + import java.util.ArrayList; // Import the ArrayList class - public class UncheckedWarningDemo { // Line 4: Class declaration + public class UncheckedWarningDemo { // Class declaration - public static void main(String[] args) { // Line 6: Main method declaration + public static void main(String[] args) { // Main method declaration // This is where the potential for unchecked operations begins. - ArrayList rawList = new ArrayList();//Line 9 - - rawList.add("Hello");//Line 11: This is the line that will throw an error + ArrayList rawList = new ArrayList(); + rawList.add("Hello"); + //This is the line that will throw an error System.out.println("Element added: " + rawList.get(0)); - } // Line 14: End of main method - } // Line 15: End of class + } // End of main method + } // End of class

    From e511940389870f09607a2600dd85c158c0610448 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Thu, 31 Jul 2025 09:55:15 -0400 Subject: [PATCH 106/448] fixed typo in 9.1 code. issue #19 --- source/ch_9_commonmistakes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index beef561..12861c1 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -23,7 +23,7 @@ public static void main(String[] args) { // Attempt to use 'count' without declaration - count = new ArrayList<Integer<(10); + count = new ArrayList<Integer>(10); // This line won't be reached due to the error. System.out.println("ArrayList created."); From 945cc617fb6ba2c9454058981e38e891ae82fd5c Mon Sep 17 00:00:00 2001 From: Austing767 Date: Thu, 31 Jul 2025 09:36:35 -0500 Subject: [PATCH 107/448] Added table in binary, added example and explenation, fixes issue #60 --- source/ch_5_conditionals.ptx | 68 +++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index fd908ed..c6edb1a 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -239,8 +239,74 @@ The switch statement is not used very often, and I recommend you do not u The conditionals used in the if statement can be boolean variables, simple comparisons, and compound boolean expressions.

    +

    +Java also supports the boolean expression using the ternary operator +condition ? trueValue : falseValue. This operator tests a condition as part +of an assignment statement. The following table summarizes how this works: +

    + + + Ternary Operator in Java + + + Component + Description + + + condition + The boolean expression that is evaluated (e.g., a % 2 == 0). + + + ? + This is the ternary operator that separates the condition from the trueValue. + + + trueValue + The value assigned if the condition is true (e.g., a * a). + + + : + This is the ternary operator that separates the trueValue from the falseValue. + + + falseValue + The value assigned if the condition is false (e.g., 3 * x - 1). + + + Example Usage + a = a % 2 == 0 ? a * a : 3 * x - 1 + + + Equivalent if-else Code + Can also be written with a regular if-else statement, but the ternary form is more concise. + + +
    + +

    +Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. +

    + + + class Main { + public static void main(String[] args) { + int a = 4; + int x = 2; + + // Using the ternary operator + a = (a % 2 == 0) ? a * a : 3 * x - 1; + + System.out.println("Result: " + a); + } + } + + + +

    -Java also supports the boolean expression. condition ? trueValue : falseValue This expression can be used to test a condition as part of an assignment statement. For example a = a % 2 == 0 ? a*a : 3*x -1 In the previous assignment statement the expression a%2 ==0 is first checked. If it is true then a is assigned the value a * a if it is false then a is assigned the value of 3*x-1. Of course all of this could have been accomplished using a regular if else statement, but sometimes the convenience of a single statement is too much to resist. + In this example we are using this ternary operator to assign a value to a based on wether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, it should be used reasonably, as it can make code less readable if overused or used in complex expressions.

    + +
    \ No newline at end of file From 9b555983ce8e22bf65b7a2dd39b2c131a7634a8b Mon Sep 17 00:00:00 2001 From: Austing767 Date: Thu, 31 Jul 2025 09:39:21 -0500 Subject: [PATCH 108/448] spelling correction --- source/ch_5_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index c6edb1a..1f2b1df 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -304,7 +304,7 @@ Using this operator can make code shorter and more readable in cases where a sim

    - In this example we are using this ternary operator to assign a value to a based on wether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, it should be used reasonably, as it can make code less readable if overused or used in complex expressions. + In this example we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, it should be used reasonably, as it can make code less readable if overused or used in complex expressions.

    From 0e6b375210eaa49b1335f350b50c4fd08e0241b8 Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Thu, 31 Jul 2025 10:45:15 -0400 Subject: [PATCH 109/448] Adds code blocks, formats, and fixes issue #42 --- source/ap-java-cheatsheet.ptx | 125 ++++++++++++++++------------------ 1 file changed, 58 insertions(+), 67 deletions(-) diff --git a/source/ap-java-cheatsheet.ptx b/source/ap-java-cheatsheet.ptx index a0041b6..46f925f 100644 --- a/source/ap-java-cheatsheet.ptx +++ b/source/ap-java-cheatsheet.ptx @@ -20,88 +20,88 @@ Description - print() - System.out.println() + print() + System.out.println() Prints output to the console. - len() - array.length or list.size() + len() + array.length or list.size() Returns the length of an array or size of a list. - range() - for (int i = 0; i < n; i++) + range() + for (int i = 0; i < n; i++) Used in loops to iterate a specific number of times. - str() - String.valueOf() + str() + String.valueOf() Converts an object to a string. - int() - Integer.parseInt() + int() + Integer.parseInt() Converts a string to an integer. - float() - Float.parseFloat() + float() + Float.parseFloat() Converts a string to a float. - list.append() - ArrayList.add() + list.append() + ArrayList.add() Adds an element to the end of a list. - list.pop() - ArrayList.remove(index) - Removes and returns the element at an index. Assign the return value to use it. + list.pop() + ArrayList.remove(index) + Removes and assign the return value to use it. - list.sort() - Collections.sort(list) + list.sort() + Collections.sort(list) Sorts a list in ascending order. - list.reverse() - Collections.reverse(list) + list.reverse() + Collections.reverse(list) Reverses the order of elements in a list. - dict.get() - Map.get(key) + dict.get() + Map.get(key) Retrieves the value associated with a key in a map. - dict.keys() - Map.keySet() + dict.keys() + Map.keySet() Returns a set of keys in a map. - dict.values() - Map.values() + dict.values() + Map.values() Returns a collection of values in a map. - dict.items() - Map.entrySet() + dict.items() + Map.entrySet() Returns a set of key-value pairs in a map. - input() - Scanner.nextLine() + input() + Scanner.nextLine() Reads a line of input from the console. - open() - FileReader, BufferedReader + open() + FileReader, BufferedReader Used to read from files. - enumerate() - for (int i = 0; i < list.size(); i++) { ... } + enumerate() + for (int i = 0; i < list.size(); i++) { ... } Used to iterate over a list with an index. @@ -117,51 +117,51 @@ Arithmetic - +, -, *, / + +, -, *, / Addition, Subtraction, Multiplication, Division - 5 + 2 + 5 + 2 Arithmetic - / + / Integer Division (truncates toward zero) - 7 / 2 → 3 + 7 / 2 → 3 Arithmetic - % + % Modulus (remainder) - 7 % 2 → 1 + 7 % 2 → 1 Arithmetic - Math.pow() + Math.pow() Exponent - Math.pow(2, 3) → 8.0 + Math.pow(2, 3) → 8.0 Comparison - ==, != - Equal to, Not equal to (use .equals() for objects) - x == y + ==, != + Equal to, Not equal to (use .equals() for objects) + x == y Comparison - >, <, >=, <= + >, <, >=, <= Greater/Less than, or equal to - x > 5 + x > 5 Logical - &&, ||, ! + &&, ||, ! Logical AND, OR, NOT - x > 1 && y < 10 + x > 1 && y < 10 Assignment - +=, -=, *=, /= + +=, -=, *=, /= Adds, subtracts, multiplies, or divides and assigns - x += 1 + x += 1 @@ -170,41 +170,32 @@
    • - Short-Circuiting: The logical operators && (AND) and || (OR) are efficient. They stop evaluating as soon as the outcome is known. For example, in if (user != null && user.isAdmin()), the code will not attempt to call .isAdmin() if user is null, preventing an error. -

      -
    • -
    • -

      - Streams: Java's Stream API provides a powerful way to process collections of objects. A stream can be used to filter, map, and reduce data in a sequence of steps, similar to Python's list comprehensions but more powerful. + Ternary Operator: Provides a compact, one-line if-else statement. For instance, String result = (score >= 60) ? "Pass" : "Fail"; is much shorter than a full if-else block.

    • - The Ternary Operator provides a compact, one-line if-else statement. For instance, String result = (score >= 60) ? "Pass" : "Fail"; is much shorter than a full if-else block. + No Chained Comparisons: Java does not support chained comparisons. Range checks must use logical operators, such as if (age >= 18 && age < 65). In Python, this could be written as if 18 <= age < 65:.

    • -
    • - Java's Stream API is the idiomatic alternative to Python's List Comprehension. Instead of a multi-line loop, you can write List<Integer> squares = IntStream.range(0, 10).map(i -> i * i).boxed().collect(Collectors.toList()); to generate a list of squares. + String Formatting: Java uses methods like String.format() or System.out.printf() for embedding expressions in strings, similar to Python's F-Strings. For example, String message = String.format("Hello, %s!", name); is cleaner than traditional string concatenation.

    • -
    • - Java uses methods like String.format() or System.out.printf() for embedding expressions in strings, similar to Python's F-Strings. This makes code like String message = String.format("Hello, %s!", name); cleaner than traditional string concatenation. + No Tuple or List Unpacking: Java does not have a direct equivalent to Python's tuple and list unpacking. Assignment must be done one variable at a time, such as String name = "Alice"; int age = 30;.

    • -
    • - Java does not have a direct equivalent to Python's tuple and list unpacking. Assignment must be done one variable at a time, such as String name = "Alice"; int age = 30;. + Short-Circuiting: The logical operators && (AND) and || (OR) are efficient. They stop evaluating as soon as the outcome is known. For example, in if (user != null && user.isAdmin()), the code will not attempt to call .isAdmin() if user is null, preventing an error.

    • -
    • - Java does not support chained comparisons. Range checks must use logical operators, such as if (age >= 18 && age < 65). + Streams API: Java's Stream API is the idiomatic alternative to Python's List Comprehensions. It can be used to filter, map, and reduce data in a sequence of steps. For example, to generate a list of squares, instead of a multi-line loop, you can write List<Integer> squares = IntStream.range(0, 10).map(i -> i * i).boxed().collect(Collectors.toList());.

    From 88ba918a8f1fc07021d7cd6ad953d1fb6c4ce496 Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Thu, 31 Jul 2025 11:01:19 -0400 Subject: [PATCH 110/448] I put the pre-existing information for chapter 3 into its own chapter --- source/ch_3_firstjavaprogram.ptx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ch_3_firstjavaprogram.ptx b/source/ch_3_firstjavaprogram.ptx index e5358d4..7d80a61 100644 --- a/source/ch_3_firstjavaprogram.ptx +++ b/source/ch_3_firstjavaprogram.ptx @@ -3,7 +3,8 @@ Lets look at a Java Program - +
    + Lets look at a Java Program

    A time-honored tradition in Computer Science is to write a program called “hello world.” The “hello world” program is simple and easy. There are no logic errors to make, so getting it to run relies only on understanding the syntax. @@ -329,6 +330,7 @@ Hello World! >>> +

    Summary & Reading Questions

      From 9360bda0a2c4a3f6061a47a50b6b6a218a62096d Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Thu, 31 Jul 2025 12:23:25 -0400 Subject: [PATCH 111/448] I made the answers for question 3 for the summary and reading questions section harder --- source/ch_2_whylearnjava.ptx | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/source/ch_2_whylearnjava.ptx b/source/ch_2_whylearnjava.ptx index 2aa3e1c..818117f 100644 --- a/source/ch_2_whylearnjava.ptx +++ b/source/ch_2_whylearnjava.ptx @@ -167,24 +167,24 @@

      What is a major benefit of learning multiple programming languages?

      - - -

      You will only need to code in Python

      -

      No. Relying on just one language is limiting.

      -
      - -

      You will avoid working on large projects

      -

      No. That’s not related to learning multiple languages.

      -
      - -

      You gain exposure to different language features and paradigms

      -

      Great choice! This helps you become a more adaptable programmer.

      -
      - -

      You will never have to learn new libraries

      -

      No. Libraries are often language-specific and still need to be learned.

      -
      -
      + + +

      You can standardize all projects using one universal syntax

      +

      No. Each language has its own syntax and is suited for different tasks.

      +
      + +

      You will minimize runtime errors across all platforms

      +

      No. Runtime errors depend more on logic and environment than the number of languages you know.

      +
      + +

      You gain exposure to different language features and paradigms

      +

      Great choice! This helps you become a more adaptable and well-rounded programmer.

      +
      + +

      You can bypass the need for understanding compilation and interpretation

      +

      No. Understanding how code is executed remains essential regardless of how many languages you know.

      +
      +
    From 6c501b032de4f4f6ddba7943c4f086fa083c5bd1 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Thu, 31 Jul 2025 13:31:36 -0400 Subject: [PATCH 112/448] moved paragraph out of the program tag in ch 9.2. --- source/ch_9_commonmistakes.ptx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/ch_9_commonmistakes.ptx b/source/ch_9_commonmistakes.ptx index 12861c1..9b6b6ed 100644 --- a/source/ch_9_commonmistakes.ptx +++ b/source/ch_9_commonmistakes.ptx @@ -40,10 +40,11 @@
    Not importing a class - -

    +

    In Python, many classes are available by default. However, in Java, you must explicitly import most classes from external packages that you want to use.

    + + // Histo.java public class Histo { // Class declaration From f79fe09c03f0cb8a3cc8b43b187294411120aca5 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Thu, 31 Jul 2025 13:56:03 -0400 Subject: [PATCH 113/448] Made all Python code interactive. --- source/ch_x_filehandling.ptx | 50 ++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/source/ch_x_filehandling.ptx b/source/ch_x_filehandling.ptx index 17bedca..933b24e 100644 --- a/source/ch_x_filehandling.ptx +++ b/source/ch_x_filehandling.ptx @@ -15,7 +15,7 @@ Class Imports

    - Java has several libraries included for file handling, though, they must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. + Java has several libraries included for file handling, though, they must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File.

    @@ -25,7 +25,7 @@

    - The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file. + The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    @@ -35,7 +35,7 @@

    - The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file. + The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file.

    @@ -45,7 +45,7 @@

    - Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files. + Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files.

    @@ -66,7 +66,7 @@ Creating Files

    - Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner and FileWriter are not needed for a class that only creates files) and create a class. We will call this class CreateFile. + Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner and FileWriter are not needed for a class that only creates files) and create a class. We will call this class CreateFile.

    @@ -83,7 +83,7 @@

    - Next, within the main function, we will create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. + Next, within the main function, we will create a File object. It is important to create a meaningful name for the File object. We will call ours myFile.

    @@ -94,19 +94,19 @@

    - myFile is the name of the object within the program, while "myfile.txt" is the name of the file itself and will be the file name if the operation that creates the file is successful. + myFile is the name of the object within the program, while myfile.txt is the name of the file itself and will be the file name if the operation that creates the file is successful.

    - Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created, or if a file with that file name already exists in the directory. + Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created, or if a file with that file name already exists in the directory.

    First, lets look at the equivalent Python code:

    - + import os @@ -149,7 +149,7 @@

    - The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class. + The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class.

    @@ -169,7 +169,7 @@

    - The IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the Operating System due to insufficient permissions: + The IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the operating system due to insufficient permissions:

    @@ -191,7 +191,7 @@ First, the equivalent Python code:

    - + import os @@ -240,7 +240,7 @@

    - You may be wondering: "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first backslash acts as an escape character. So, if you want to save a file to this directory: + You may be wondering: "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first back slash acts as an escape character. So, if you want to save a file to this directory:

    @@ -272,11 +272,11 @@
             Writing to Files
     
             

    - The createNewFile() method is useful for attempting to create files and reporting if the operation was successful, however, createNewFile() does not write anything to files it creates. In fact, if you use createNewFile() to create a .txt file and then open the file, the file will be blank. + The createNewFile() method is useful for attempting to create files and reporting if the operation was successful, however, createNewFile() does not write anything to files it creates. In fact, if you use createNewFile() to create a .txt file and then open the file, the file will be blank.

    - To write to a file, we will need to create a different class. We will do the same setup as the previous section. First, we will import the classes (File and Scanner are not needed) and create the framework for a class that will write to a file. Let's call this class WriteFile: + To write to a file, we will need to create a different class. We will do the same setup as the previous section. First, we will import the classes (File and Scanner are not needed) and create the framework for a class that will write to a file. Let's call this class WriteFile:

    @@ -293,7 +293,7 @@

    - Next, we will create a FileWriter object. Let's call it myWriter: + Next, we will create a FileWriter object. Let's call it myWriter:

    @@ -303,7 +303,7 @@

    - In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types: + In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types:

    @@ -320,10 +320,10 @@

    - Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example: + Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example:

    - + try: with open("myfile.txt", "w") as my_writer: @@ -358,7 +358,7 @@ And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

    - + try: with open("myfile.txt", "w") as my_writer: @@ -402,12 +402,12 @@

    - If a file does not already exist (for example, myfile.txt does not exist), the write() method will create the file. Despite this, it is still a good idea to create separate methods or classes for creating and writing to files. Not only is it good practice to ensure methods only accomplish one thing, but the createNewFile() method avoids overwriting files that already exist. Imagine a file with the name myfile.txt already exists and contains important information. Attempting to create a file using the write() method will delete that data forever. + If a file does not already exist (for example, myfile.txt does not exist), the write() method will create the file. Despite this, it is still a good idea to create separate methods or classes for creating and writing to files. Not only is it good practice to ensure methods only accomplish one thing, but the createNewFile() method avoids overwriting files that already exist. Imagine a file with the name myfile.txt already exists and contains important information. Attempting to create a file using the write() method will delete that data forever.

    - Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument: + Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument:

    @@ -442,7 +442,7 @@

    - and then run the program twice, the contents of myfile.txt would be: + and then run the program twice, the contents of myfile.txt would be:

    @@ -538,7 +538,7 @@ The next lines consist of a while loop that reads each line of the file passed to the Scanner object and reads them. First, a Python code example. A for loop is used instead in the Python example:

    - + with open("filename.txt", "r") as file_reader: for line in file_reader: @@ -589,7 +589,7 @@ Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code:

    - + try: with open("myfile.txt", "r") as file_reader: From 92bc13e1fd68ce27c0f398bcbb9d27ec2819eeff Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Thu, 31 Jul 2025 14:42:51 -0400 Subject: [PATCH 114/448] fix typos & add code and idx tags --- source/ch_5_conditionals.ptx | 52 +++++++++++++++++++----------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/source/ch_5_conditionals.ptx b/source/ch_5_conditionals.ptx index 1f2b1df..6a38a39 100644 --- a/source/ch_5_conditionals.ptx +++ b/source/ch_5_conditionals.ptx @@ -5,16 +5,15 @@ Conditionals
    - -

    + Using the Simple <c>if</c> Statement +

    conditional statements Conditional statements in Python and Java are very similar. In Python we have three patterns:

    - - Simple if +

    - In Python the simple if statement is written as: + In Python the simple if statement is written as:

    @@ -25,7 +24,7 @@ if score >= 90:

    - In Java, this same pattern requires two changes: the condition must be in parentheses (), and the code block must be enclosed in curly braces {}. + In Java, this same pattern requires two changes: the condition must be in parentheses (), and the code block must be enclosed in curly braces {}.

    @@ -41,12 +40,12 @@ if score >= 90:

    Once again you can see that in Java the curly braces define a block rather than indentation. - In Java the parenthesis around the condition are required because it is technically a function that evaluates to True or False. + In Java the parenthesis around the condition are required because it is technically a function that evaluates to True or False.

    - if else + Using the <c>if</c> - <c>else</c> Statement

    The Java equivalent follows the same syntactical rules as before.

    @@ -76,11 +75,11 @@ if score >= 90:
    - elif + Can we use <c>elif</c>? -

    - Java does not have an elif pattern like Python. - In Java you can get the functionality of an elif statement by nesting if and else. +

    elif statement + Java does not have an elif pattern like Python. + In Java you can get the functionality of an elif statement by nesting if and else. Here is a simple example in both Python and Java.

    @@ -102,7 +101,7 @@ else:

    -In Java we have a couple of ways to write this +In Java we have a couple of ways to write this.

    @@ -134,7 +133,7 @@ public class ElseIf {

    -We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else we can get away with the following. +We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else we can get away with the following.

    @@ -160,18 +159,18 @@ public class ElseIf {
    - switch + Using the <c>switch</c> Statement

    -Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following: +Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following:

    - Depending on your knowledge and experience with Python you may already be familar and questioning why we are not using the match statement in our Python examples.The answer is that Unforunately, this book runs its active code examples on Python 3.7, which does not support the match statement. The match statement was introduced in Python 3.10. Below is an example of the match statement simmilar to our grade method. + Depending on your knowledge and experience with Python you may already be familiar and questioning why we are not using the match statement in our Python examples. The answer is that this book currently runs its active code examples on Python 3.7, which does not support the match statement. The match statement was introduced in Python 3.10. Below is an example of the match statement similar to our grade method.

    - Match Case example + Match Case Example grade = 100 // 10 def grading(grade): @@ -191,8 +190,11 @@ Java also supports a switch statement that acts something like the elif s
    -

    - The switch statement in Java provides a clean and efficient alternative to chaining multiple if-else conditions, especially when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution. Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs. +

    switch + The switch statement in Java provides a clean and efficient alternative to chaining multiple if-else conditions, especially when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution. +

    +

    switch expressions + Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs.

    @@ -228,18 +230,18 @@ public class SwitchUp {

    -The switch statement is not used very often, and I recommend you do not use it! First, it is not as powerful as the else if model because the switch variable can only be compared for equality with an integer or enumerated constant. Second it is very easy to forget to put in the break statement. If the break statement is left out then then the next alternative will be automatically executed. For example if the grade was 95 and the break was omitted from the case 9: alternative then the program would print(out both A and B.) +The switch statement is not used very often, and we recommend you do not use it. First, it is not as powerful as the else if model because the switch variable can only be compared for equality with an integer or enumerated constant. Second, it is very easy to forget to put in the break statement, so it is more error-prone. If the break statement is left out then then the next alternative will be automatically executed. For example, if the grade was 95 and the break was omitted from the case 9: alternative then the program would print(out both A and B.)

    Boolean Operators -

    -The conditionals used in the if statement can be boolean variables, simple comparisons, and compound boolean expressions. +

    Boolean operators +The conditionals used in the if statement can be Boolean variables, simple comparisons, and compound Boolean expressions.

    -

    +

    ternary operator Java also supports the boolean expression using the ternary operator condition ? trueValue : falseValue. This operator tests a condition as part of an assignment statement. The following table summarizes how this works: @@ -254,7 +256,7 @@ of an assignment statement. The following table summarizes how this works: condition - The boolean expression that is evaluated (e.g., a % 2 == 0). + The Boolean expression that is evaluated (e.g., a % 2 == 0). ? From d5f94ab3cf10cec9191f82f4fcb804c1075d54e6 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Thu, 31 Jul 2025 14:57:04 -0400 Subject: [PATCH 115/448] Fixed line breaks and formatting for chapter 4. --- source/ch_4_javadatatypes.ptx | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/source/ch_4_javadatatypes.ptx b/source/ch_4_javadatatypes.ptx index fa591b9..7d833fc 100644 --- a/source/ch_4_javadatatypes.ptx +++ b/source/ch_4_javadatatypes.ptx @@ -212,7 +212,20 @@ public class TempConv { For Python programmers, the following error is likely to be even more common. Suppose we forgot the declaration for cel and instead left line 6 blank. What would happen when we type javac TempConv.java on the command line?

    -
    TempConv.java:13: cannot find symbol symbol  : variable cel location: class TempConv cel = (fahr - 32) * 5.0/9.0; ^ TempConv.java:14: cannot find symbol symbol  : variable cel location: class TempConv System.out.println("The temperature in C is: " + cel); ^ 2 errors
    +
    +            TempConv.java:13: cannot find symbol 
    +            symbol  : variable cel 
    +            location: class TempConv 
    +            cel = (fahr - 32) * 5.0/9.0; 
    +            ^ 
    +            TempConv.java:14: cannot find symbol 
    +            symbol  : variable cel 
    +            location: class TempConv 
    +            System.out.println("The temperature in C is: " + cel); 
    +            ^ 
    +            2 errors
    +            
    +

    When you see the first kind of error, where the symbol is on the left side of the equals sign, it usually means that you have not declared the variable. If you have ever tried to use a Python variable that you have not initialized the second error message will be familiar to you. The difference here is that we see the message before we ever try to test our program. More common error messages are discussed in the section .

    @@ -522,7 +535,11 @@ public class Histo { Technically, you don’t have to declare what is going to be in an array list. The compiler will allow you to leave the <``*Type*>`` off the declaration. If you don’t tell Java what kind of object is going to be on the list Java will give you a warning message like this:

    -
    Note: Histo.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
    +
    +        Note: Histo.java uses unchecked or unsafe operations. 
    +        Note: Recompile with -Xlint:unchecked for details.
    +        
    +

    Without the <Integer> part of the declaration Java simply assumes that any object can be on the list. However, without resorting to an ugly notation called casting, you cannot do anything with the objects on a list like this! So, if you forget you will surely see more errors later in your code. (Try it and see what you get)

    @@ -531,7 +548,14 @@ public class Histo { Lines 13—20 are required to open the file. Why so many lines to open a file in Java? The additional code mainly comes from the fact that Java forces you to reckon with the possibility that the file you want to open is not going to be there. If you attempt to open a file that is not there you will get an error. A try/catch construct allows us to try things that are risky, and gracefully recover from an error if one occurs. The following example shows the general structure of a try/catch block.

    -
    try { Put some risky code in here, like opening a file } catch (Exception e) { If an error happens in the try block an exception is thrown. We will catch that exception here! }
    +
    +        try { 
    +            Put some risky code in here, like opening a file 
    +        } catch (Exception e) { 
    +            If an error happens in the try block an exception is thrown. We will catch that exception here! 
    +        }
    +        
    +

    Notice that in line 16 we are catching an IOException. In fact, we will see later that we can have multiple catch blocks to catch different types of exceptions. If we want to be lazy and catch any old exception we can catch an Exception which is the parent of all exceptions. However, catching Exception is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program.

    From f1f0dcdeb68d21a7497bb1b13cf711f4f9f5b10b Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Thu, 31 Jul 2025 15:00:18 -0400 Subject: [PATCH 116/448] Changed the formatting of the pre tags in chapter 6. The content wasn't changed in any way, but I made the code look a little cleaner. --- source/ch_6_loopsanditeration.ptx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/source/ch_6_loopsanditeration.ptx b/source/ch_6_loopsanditeration.ptx index a0650f4..0ca4441 100644 --- a/source/ch_6_loopsanditeration.ptx +++ b/source/ch_6_loopsanditeration.ptx @@ -42,20 +42,24 @@ public class DefiniteLoopExample { Recall that the range function provides you with a wide variety of options for controlling the value of the loop variable.

    -
    range(stop)
    -range(start,stop)
    -range(start,stop,step)
    +
    +        range(stop)
    +        range(start,stop)
    +        range(start,stop,step)
    +        

    The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. You can think of it this way:

    -
    for (start clause; stop clause; step clause) {
    -    statement1
    -    statement2
    -    ...
    -}
    +
    +        for (start clause; stop clause; step clause) {
    +            statement1
    +            statement2
    +        ...
    +        }
    +        

    If you want to start at 100, stop at 0 and count backward by 5, the Python loop would be written as: From 85ed8f3e2be10752267ef2912b8f9bf61c53fd10 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Fri, 1 Aug 2025 09:17:04 -0400 Subject: [PATCH 117/448] Merging Chapter 1 and 2 into an Overview --- ...h_1_introduction.ptx => ch_1_overview.ptx} | 188 +++++++++++++++++- source/main.ptx | 3 +- 2 files changed, 187 insertions(+), 4 deletions(-) rename source/{ch_1_introduction.ptx => ch_1_overview.ptx} (55%) diff --git a/source/ch_1_introduction.ptx b/source/ch_1_overview.ptx similarity index 55% rename from source/ch_1_introduction.ptx rename to source/ch_1_overview.ptx index 29c52a0..d781f7c 100644 --- a/source/ch_1_introduction.ptx +++ b/source/ch_1_overview.ptx @@ -1,8 +1,8 @@ - - Introduction + + Overview

    @@ -306,5 +306,189 @@
    +
    + Why Learn another programming Language? + +

    + Python is a nice language for beginning programming for several reasons. + First the syntax is sparse, and clear. + Second, the underlying model of how objects and variables work is very consistent. + Third, you can write powerful and interesting programs without a lot of work. + However, Python is representative of one kind of language, called a dynamic language. + You might think of Python as being fairly informal. + There are other languages, like Java and C++ that are more formal. +

    + +

    + These languages have some advantages of their own. + First, is speed: Java and C++ code will generally give better performance than Python code. (See .) + Second is their maintainability. + A lot of what makes Python easy to use is that you must remember certain things. + For example if you set variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. + Java and C++ protect you by forcing you to be upfront and formal about the kind of object each variable is going to refer to. +

    + +

    + In one sense Python is representative of a whole class of languages, sometimes referred to as “scripting languages.” Other languages in the same category as Python are Ruby and Perl. + Java is representative of what I will call industrial strength languages. + Industrial strength languages are good for projects with several people working on the project where being formal and careful about what you do may impact lots of other people. + Languages in this category include Rust, C++, C#, and Ada. +

    + +

    + Programming languages will always change. + As the field of computer science advances there will be new programming languages and you will need to learn them. + It is important to learn several programming languages so that you know what to expect. + There are certain features that most programming languages have in common; variables, loops, conditionals, functions. + And there are some features that are unique. + If you know what is common in languages that is a good place to start. +

    + + A Note about Python Performance + + +

    + + Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. + This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). + So native language performance is just one criteria to consider when deciding which language to use for a program. +

    +
    + +
    + +
    + Why Learn Java? Why not C or C++? + +

    + It is easier to learn to create interesting programs in Java than in C or C++, for several reasons: +

    + +

    +

      +
    • +

      + Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. + Java has over 4,000 different classes included in the Java 14 Standard Edition. + We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester. +

      +
    • + +
    • +

      + Java incorporates automatic garbage collection of memory, whereas C and C++ programs typically include some degree of manual memory management. + This makes programming in those languages more challenging. +

      +
    • + +
    • +

      + C++’s syntax is more complicated than Java’s, making it more difficult to learn. + For example, C++ supports a feature called operator overloading, which makes it possible to change the behavior of operators like +. + This can make it more difficult to understand what a C++ program is doing. +

      +
    • +
    +

    + +

    + Certainly, C and C++ are important languages, and are worth learning. + But for these and other reasons, we’ve decided to use Java for this course. + Learning Java will be a good preparation for learning these and other languages! +

    + + +
    +
    + Summary & Reading Questions +

      +
    1. +

      Learning multiple programming languages helps programmers adapt to different styles and environments.

      +
    2. +
    3. +

      Python is a dynamic scripting language that is beginner-friendly, but it is less strict with types and generally slower than compiled languages.

      +
    4. +
    5. +

      Languages like Java and C++ are statically typed and offer better performance and maintainability for large-scale projects.

      +
    6. +
    7. +

      Java has a simpler syntax than C++ and includes automatic garbage collection, which reduces the complexity of memory management.

      +
    8. +
    9. +

      Java’s extensive standard library enables the development of sophisticated programs without relying on external dependencies.

      +
    10. +

    + + + +

    Which of the following best describes Python as a programming language?

    +
    + + +

    Statically typed and high-performance

    +

    No. This better describes languages like Java or C++.

    +
    + +

    Dynamically typed and beginner-friendly

    +

    That’s right! Python is dynamically typed and easy for beginners.

    +
    + +

    Industrial strength and verbose

    +

    No. Python is more informal and concise.

    +
    + +

    Memory-managed and pointer-based

    +

    No. That describes lower-level languages like C or C++.

    +
    +
    +
    + + +

    Why is Java a better language for beginners compared to C++?

    +
    + + +

    It requires more manual memory management

    +

    No. Java manages memory automatically.

    +
    + +

    It has a smaller standard library

    +

    No. Java has a very large standard library.

    +
    + +

    It avoids complex syntax and has automatic garbage collection

    +

    Correct! These features make Java easier for beginners.

    +
    + +

    It supports operator overloading

    +

    No. That's a C++ feature and it adds complexity.

    +
    +
    +
    + + +

    What is a major benefit of learning multiple programming languages?

    +
    + + +

    You can standardize all projects using one universal syntax

    +

    No. Each language has its own syntax and is suited for different tasks.

    +
    + +

    You will minimize runtime errors across all platforms

    +

    No. Runtime errors depend more on logic and environment than the number of languages you know.

    +
    + +

    You gain exposure to different language features and paradigms

    +

    Great choice! This helps you become a more adaptable and well-rounded programmer.

    +
    + +

    You can bypass the need for understanding compilation and interpretation

    +

    No. Understanding how code is executed remains essential regardless of how many languages you know.

    +
    +
    +
    +
    +
    \ No newline at end of file diff --git a/source/main.ptx b/source/main.ptx index bddc8f2..50caef7 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -7,8 +7,7 @@ The PreTeXt Interactive Edition - - + From 3127c70bce401fe577b9c302868a1f7adaa85e4d Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Fri, 1 Aug 2025 09:49:14 -0400 Subject: [PATCH 118/448] Added a index terms for 7.1, 7.2, and part of 7.3. --- source/ch_7_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index c867871..f101f00 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -128,7 +128,7 @@

    - The instance variables (data members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front. + The instance variables (data membersdata members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front.

    @@ -146,7 +146,7 @@

    - Notice that we have declared the numerator and denominator to be private. + Notice that we have declared the numerator and denominator to be privateprivate. This means that the compiler will generate an error if another method tries to write code like the following:

    @@ -161,7 +161,7 @@

    Direct access to instance variables is not allowed. Therefore if we legitimately want to be able to access information such as the numerator or denominator for a particular fraction we must have getter methods. - It is very common programming practice to provide getter and setter methods for instance variables in Java. + It is very common programming practice to provide getget and setset methods for instance variables in Java.

    From df5ff3908df931dc0f73a4832d1195d04e984e40 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Fri, 1 Aug 2025 09:50:24 -0400 Subject: [PATCH 119/448] Forgot to save my work in the last commit. --- source/ch_7_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index f101f00..7bf18b3 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -189,7 +189,7 @@ public void setDenominator(Integer denominator) {

    Once you have identified the instance variables for your class the next thing to consider is the constructor. - In Java, constructors have the same name as the class and are declared public. + In Java, constructorsconstructors have the same name as the class and are declared public. They are declared without a return type. So any method that is named the same as the class and has no return type is a constructor. Our constructor will take two parameters: the numerator and the denominator. @@ -210,7 +210,7 @@ public Fraction(Integer top, Integer bottom) { First, you will notice that the constructor does not have a self parameter. You will also notice that we can simply refer to the instance variables by name without the self prefix, because they have already been declared. This allows the Java compiler to do the work of dereferencing the current Java object. - Java does provide a special variable called this that works like the self variable. + Java does provide a special variable called thisthis that works like the self variable. In Java, this is typically only used when it is needed to differentiate between a parameter or local variable and an instance variable. For example this alternate definition of the the Fraction constructor uses this to differentiate between parameters and instance variables.

    From 3d14e42e581ba4756ed05c6915f5a3923d0d14c9 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Fri, 1 Aug 2025 10:45:37 -0400 Subject: [PATCH 120/448] Added index terms for 7.3 --- source/ch_7_definingclasses.ptx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 7bf18b3..8109bff 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -233,7 +233,7 @@ public Fraction(Integer num, Integer den) {

    Now we come to one of the major differences between Java and Python. The Python class definition used the special methods for addition and comparison that have the effect of redefining how the standard operators behave: in Python, __add__ and __lt__ change the behavior of + and <, respectively. - In Java there is no operator overloading. + In Java there is no operator overloading. So we will have to write the method for addition a little differently.

    @@ -248,12 +248,12 @@ public Fraction(Integer num, Integer den) {
    • - Java is strictly pass-by-value. For primitive types (like int), a copy of the value is passed. For object types (like our Fraction), a copy of the value of the reference (the memory address) is passed. + pass-by-valueJava is strictly pass-by-value. For primitive types (like int), a copy of the value is passed. For object types (like our Fraction), a copy of the value of the referencevalue of the reference (the memory address) is passed.

    • - Python is pass-by-assignment (or pass-by-object-reference). Since everything in Python is an object, the rule is consistent: a copy of the reference to the object is passed. + pass-by-assignmentPython is pass-by-assignment (or pass-by-object-reference). Since everything in Python is an object, the rule is consistent: a copy of the reference to the object is passed.

    @@ -282,7 +282,7 @@ public Fraction add(Fraction otherFrac) {

    - First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. + First you will notice that the add method is declared as public Fraction The publicpublic part means that any other method may call the add method. The Fraction part means that add will return a fraction as its result.

    @@ -333,14 +333,14 @@ public Fraction add(Fraction otherFrac) {

    In Java we can do runtime type checking, but the compiler will not allow us to pass an Integer to the add method since the parameter has been declared to be a Fraction. The way that we solve this problem is by writing another add method with a different set of parameters. - In Java this practice is legal and common we call this practice method overloading. + In Java this practice is legal and common we call this practice method overloadingmethod overloading.

    This idea of method overloading raises a very important difference between Python and Java. In Python a method is known by its name only. In Java a method is known by its signature. - The signature of a method includes its name, and the types of all of its parameters. + The signaturesignature of a method includes its name, and the types of all of its parameters. The name and the types of the parameters are enough information for the Java compiler to decide which method to call at runtime.

    From cf0979b6c4f83b09da53f52e668c6133393b6ca0 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Fri, 1 Aug 2025 11:18:14 -0400 Subject: [PATCH 121/448] added index terms for 7.4. --- source/ch_7_definingclasses.ptx | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 8109bff..c89dd3b 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -128,7 +128,7 @@

    - The instance variables (data membersdata members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front. + The instance variables (data membersdata members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front.

    @@ -488,7 +488,8 @@ Fraction@6ff3c5b5 The <c>Object</c> Class

    - In Java, the equivalent of __str__ is the toString method. + Object class + In Java, the equivalent of __str__ is the toStringtoString method. Every object in Java already has a toString method defined for it because every class in Java automatically inherits from the Object class. The Object class provides default implementations for the following methods.

    @@ -625,7 +626,7 @@ public boolean equals(Fraction other) { If we want to make our Fraction class behave like Integer, Double, and the other numeric classes in Java then we need to make a couple of additional modifications to the class. The first thing we will do is plug Fraction into the Java class hierarchy at the same place as Integer and its siblings. If you look at the documentation for Integer you will see that Integer’s parent class is Number. - Number is an abstract class that specifies several methods that all of its children must implement. + Number is an abstract classabstract class that specifies several methods that all of its children must implement. In Java an abstract class is more than just a placeholder for common methods. In Java an abstract class has the power to specify certain methods that all of its children must implement. You can trace this power back to the strong typing nature of Java. @@ -645,7 +646,7 @@ public class Fraction extends Number {

    - The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. + The keyword extendsextends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. A child class always extends its parent.

    @@ -706,7 +707,7 @@ public long longValue() {

    By having the Fraction class extend the Number class we can now pass a Fraction to any Java method that specifies it can receive a Number as one of its parameters. For example many Java user interface methods accept any object that is a subclass of Number as a parameter. - In Java the class hierarchy and the “is-a” relationships are very important. + In Java the class hierarchy and the “is-ais-a” relationships are very important. Whereas in Python you can pass any kind of object as a parameter to any method or function, the strong typing of Java makes sure that you only pass an object as a parameter that is of the type specified in the method signature, or one of the children of the type specified. When you see a parameter of type Number it’s important to remember that an Integer is-a Number and a Double is-a Number and a Fraction is-a Number, because these classes are children of Number.

    From 7e587670e4155f060432572efad076fcce037fc0 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Fri, 1 Aug 2025 11:24:59 -0400 Subject: [PATCH 122/448] Added index terms for 7.5. --- source/ch_7_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index c89dd3b..04456ed 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -743,16 +743,16 @@ public void test(Number a, Number b) { Lets turn our attention to making a list of fractions sortable by the standard Java sorting method Collections.sort. In Python, we would just need to implement the __cmp__ method. But in Java we cannot be that informal. - In Java, things that are sortable must be Comparable. + In Java, things that are sortable must be ComparableComparable. Your first thought might be that Comparable is superclass of Number, but that is actually not the case. - Java only supports single inheritance, that is, a class can have only one parent. + Java only supports single inheritancesingle inheritance, that is, a class can have only one parent. Although it would be possible to add an additional layer to the class hierarchy it would also complicate things dramatically, because not only are Numbers comparable, but Strings are also Comparable as would many other types. For example, we might have a Student class and we want to be able to sort students by their GPA. But Student might already extends the class Person for which there would be no natural comparison method.

    - Java’s answer to this problem is the Interface mechanism. + Java’s answer to this problem is the InterfaceInterface mechanism. Interfaces are like a combination of “inheritance” and “contracts” all rolled into one. An interface is a specification that says any object that claims it implements this interface must provide the following methods. It sounds a little bit like an abstract class, however it is outside the inheritance mechanism. From 96ed98a198966aef6a011624a5c755c88411efeb Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Fri, 1 Aug 2025 11:28:50 -0400 Subject: [PATCH 123/448] Added an index term for 7.6. --- source/ch_7_definingclasses.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 04456ed..36f73b3 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -864,7 +864,7 @@ public class Student {

    - In this example notice that we create a static member variable by using the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python. + In this example notice that we create a static member variablestatic member variable by using the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python.

    From d953ea86ab680ea798d90a5c1a8c20c740633acb Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Fri, 1 Aug 2025 11:58:44 -0400 Subject: [PATCH 124/448] Removed duplicate indexes. Moved all idx tags to beginning of paragraphs. Encased some terms that are code in c tags. Fixed errors. --- source/ch_7_definingclasses.ptx | 56 ++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 19 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 36f73b3..c58e11f 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -128,7 +128,8 @@

    - The instance variables (data membersdata members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front. + data members + The instance variables (data members) we will need for our fraction class are the numerator and denominator. Of course in Python we can add instance variables to a class at any time by simply assigning a value to objectReference.variableName, whereas in Java all data members must be declared up front.

    @@ -146,7 +147,7 @@

    - Notice that we have declared the numerator and denominator to be privateprivate. + Notice that we have declared the numerator and denominator to be private. This means that the compiler will generate an error if another method tries to write code like the following:

    @@ -159,9 +160,11 @@

    + get + set Direct access to instance variables is not allowed. Therefore if we legitimately want to be able to access information such as the numerator or denominator for a particular fraction we must have getter methods. - It is very common programming practice to provide getget and setset methods for instance variables in Java. + It is very common programming practice to provide get and set methods for instance variables in Java.

    @@ -188,8 +191,9 @@ public void setDenominator(Integer denominator) { Writing a constructor

    + constructors Once you have identified the instance variables for your class the next thing to consider is the constructor. - In Java, constructorsconstructors have the same name as the class and are declared public. + In Java, constructors have the same name as the class and are declared public. They are declared without a return type. So any method that is named the same as the class and has no return type is a constructor. Our constructor will take two parameters: the numerator and the denominator. @@ -206,11 +210,12 @@ public Fraction(Integer top, Integer bottom) {

    + this There are a couple of important things to notice here. First, you will notice that the constructor does not have a self parameter. You will also notice that we can simply refer to the instance variables by name without the self prefix, because they have already been declared. This allows the Java compiler to do the work of dereferencing the current Java object. - Java does provide a special variable called thisthis that works like the self variable. + Java does provide a special variable called this that works like the self variable. In Java, this is typically only used when it is needed to differentiate between a parameter or local variable and an instance variable. For example this alternate definition of the the Fraction constructor uses this to differentiate between parameters and instance variables.

    @@ -248,12 +253,15 @@ public Fraction(Integer num, Integer den) {
    • - pass-by-valueJava is strictly pass-by-value. For primitive types (like int), a copy of the value is passed. For object types (like our Fraction), a copy of the value of the referencevalue of the reference (the memory address) is passed. + pass-by-value + value of the reference + Java is strictly pass-by-value. For primitive types (like int), a copy of the value is passed. For object types (like our Fraction), a copy of the value of the reference (the memory address) is passed.

    • - pass-by-assignmentPython is pass-by-assignment (or pass-by-object-reference). Since everything in Python is an object, the rule is consistent: a copy of the reference to the object is passed. + pass-by-assignment + Python is pass-by-assignment (or pass-by-object-reference). Since everything in Python is an object, the rule is consistent: a copy of the reference to the object is passed.

    @@ -282,7 +290,7 @@ public Fraction add(Fraction otherFrac) {

    - First you will notice that the add method is declared as public Fraction The publicpublic part means that any other method may call the add method. + First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. The Fraction part means that add will return a fraction as its result.

    @@ -331,16 +339,18 @@ public Fraction add(Fraction otherFrac) {

    + method overloading In Java we can do runtime type checking, but the compiler will not allow us to pass an Integer to the add method since the parameter has been declared to be a Fraction. The way that we solve this problem is by writing another add method with a different set of parameters. - In Java this practice is legal and common we call this practice method overloadingmethod overloading. + In Java this practice is legal and common we call this practice method overloading.

    + signature This idea of method overloading raises a very important difference between Python and Java. In Python a method is known by its name only. In Java a method is known by its signature. - The signaturesignature of a method includes its name, and the types of all of its parameters. + The signature of a method includes its name, and the types of all of its parameters. The name and the types of the parameters are enough information for the Java compiler to decide which method to call at runtime.

    @@ -488,8 +498,9 @@ Fraction@6ff3c5b5 The <c>Object</c> Class

    - Object class - In Java, the equivalent of __str__ is the toStringtoString method. + object class + toString + In Java, the equivalent of __str__ is the toString method. Every object in Java already has a toString method defined for it because every class in Java automatically inherits from the Object class. The Object class provides default implementations for the following methods.

    @@ -623,10 +634,11 @@ public boolean equals(Fraction other) { Abstract Classes and Methods

    + abstract class If we want to make our Fraction class behave like Integer, Double, and the other numeric classes in Java then we need to make a couple of additional modifications to the class. The first thing we will do is plug Fraction into the Java class hierarchy at the same place as Integer and its siblings. If you look at the documentation for Integer you will see that Integer’s parent class is Number. - Number is an abstract classabstract class that specifies several methods that all of its children must implement. + Number is an abstract class that specifies several methods that all of its children must implement. In Java an abstract class is more than just a placeholder for common methods. In Java an abstract class has the power to specify certain methods that all of its children must implement. You can trace this power back to the strong typing nature of Java. @@ -646,7 +658,8 @@ public class Fraction extends Number {

    - The keyword extendsextends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. + extends + The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. A child class always extends its parent.

    @@ -705,9 +718,10 @@ public long longValue() {

    + is-a By having the Fraction class extend the Number class we can now pass a Fraction to any Java method that specifies it can receive a Number as one of its parameters. For example many Java user interface methods accept any object that is a subclass of Number as a parameter. - In Java the class hierarchy and the “is-ais-a” relationships are very important. + In Java the class hierarchy and the “is-a” relationships are very important. Whereas in Python you can pass any kind of object as a parameter to any method or function, the strong typing of Java makes sure that you only pass an object as a parameter that is of the type specified in the method signature, or one of the children of the type specified. When you see a parameter of type Number it’s important to remember that an Integer is-a Number and a Double is-a Number and a Fraction is-a Number, because these classes are children of Number.

    @@ -740,19 +754,22 @@ public void test(Number a, Number b) { Interfaces

    + Comparable + single inheritance Lets turn our attention to making a list of fractions sortable by the standard Java sorting method Collections.sort. In Python, we would just need to implement the __cmp__ method. But in Java we cannot be that informal. - In Java, things that are sortable must be ComparableComparable. + In Java, things that are sortable must be Comparable. Your first thought might be that Comparable is superclass of Number, but that is actually not the case. - Java only supports single inheritancesingle inheritance, that is, a class can have only one parent. + Java only supports single inheritance, that is, a class can have only one parent. Although it would be possible to add an additional layer to the class hierarchy it would also complicate things dramatically, because not only are Numbers comparable, but Strings are also Comparable as would many other types. For example, we might have a Student class and we want to be able to sort students by their GPA. But Student might already extends the class Person for which there would be no natural comparison method.

    - Java’s answer to this problem is the InterfaceInterface mechanism. + Interface + Java’s answer to this problem is the Interface mechanism. Interfaces are like a combination of “inheritance” and “contracts” all rolled into one. An interface is a specification that says any object that claims it implements this interface must provide the following methods. It sounds a little bit like an abstract class, however it is outside the inheritance mechanism. @@ -864,7 +881,8 @@ public class Student {

    - In this example notice that we create a static member variablestatic member variable by using the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python. + static member variable + In this example notice that we create a static member variable by using the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python.

    From 9905a08883ab5bfd82e4304bf68d41691e9a8b47 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Sun, 3 Aug 2025 13:14:36 -0400 Subject: [PATCH 125/448] add .cache folder to .gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 194fce6..341f520 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,9 @@ # don't track unpublished builds or stage output +# don't track .cache directory +.cache/* + # don't track assets generated from source generated-assets **/*.pkl From 189ef9b12ccb41349c49f254122aad9b731328b8 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Sun, 3 Aug 2025 13:31:42 -0400 Subject: [PATCH 126/448] fix introduced pretext warnings --- source/ch_7_definingclasses.ptx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index c58e11f..6bd0ea5 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -215,7 +215,7 @@ public Fraction(Integer top, Integer bottom) { First, you will notice that the constructor does not have a self parameter. You will also notice that we can simply refer to the instance variables by name without the self prefix, because they have already been declared. This allows the Java compiler to do the work of dereferencing the current Java object. - Java does provide a special variable called this that works like the self variable. + Java does provide a special variable called this that works like the self variable. In Java, this is typically only used when it is needed to differentiate between a parameter or local variable and an instance variable. For example this alternate definition of the the Fraction constructor uses this to differentiate between parameters and instance variables.

    @@ -290,7 +290,7 @@ public Fraction add(Fraction otherFrac) {

    - First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. + First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. The Fraction part means that add will return a fraction as its result.

    @@ -500,7 +500,7 @@ Fraction@6ff3c5b5

    object class toString - In Java, the equivalent of __str__ is the toString method. + In Java, the equivalent of __str__ is the toString method. Every object in Java already has a toString method defined for it because every class in Java automatically inherits from the Object class. The Object class provides default implementations for the following methods.

    @@ -659,7 +659,7 @@ public class Fraction extends Number {

    extends - The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. + The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. A child class always extends its parent.

    @@ -759,7 +759,7 @@ public void test(Number a, Number b) { Lets turn our attention to making a list of fractions sortable by the standard Java sorting method Collections.sort. In Python, we would just need to implement the __cmp__ method. But in Java we cannot be that informal. - In Java, things that are sortable must be Comparable. + In Java, things that are sortable must be Comparable. Your first thought might be that Comparable is superclass of Number, but that is actually not the case. Java only supports single inheritance, that is, a class can have only one parent. Although it would be possible to add an additional layer to the class hierarchy it would also complicate things dramatically, because not only are Numbers comparable, but Strings are also Comparable as would many other types. @@ -769,7 +769,7 @@ public void test(Number a, Number b) {

    Interface - Java’s answer to this problem is the Interface mechanism. + Java’s answer to this problem is the Interface mechanism. Interfaces are like a combination of “inheritance” and “contracts” all rolled into one. An interface is a specification that says any object that claims it implements this interface must provide the following methods. It sounds a little bit like an abstract class, however it is outside the inheritance mechanism. From a23e698122c041e0c5b8abd3ff61bfa80f74bd22 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Sun, 3 Aug 2025 13:40:22 -0400 Subject: [PATCH 127/448] correct introduced errors --- source/ch_7_definingclasses.ptx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/ch_7_definingclasses.ptx b/source/ch_7_definingclasses.ptx index 6bd0ea5..7a95433 100644 --- a/source/ch_7_definingclasses.ptx +++ b/source/ch_7_definingclasses.ptx @@ -160,11 +160,11 @@

    - get - set - Direct access to instance variables is not allowed. - Therefore if we legitimately want to be able to access information such as the numerator or denominator for a particular fraction we must have getter methods. - It is very common programming practice to provide get and set methods for instance variables in Java. + getter method + setter method + Direct access to instance variables is not allowed in Java. + Therefore if we legitimately want to be able to access information such as the numerator or the denominator for a particular fraction we must have a getter method that returns the needed value. + Hence, it is a very common programming practice to both provide getter methods and setter methods when needed for instance variables in Java.

    From 3acbf412a11b6e2ac752787e946b98b80a178f04 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Sun, 3 Aug 2025 18:39:02 -0400 Subject: [PATCH 128/448] restructure chapters --- ...ntation.ptx => ch10_moredocumentation.ptx} | 0 .../{ch_1_overview.ptx => ch1_overview.ptx} | 0 ..._whylearnjava.ptx => ch2_whylearnjava.ptx} | 0 ...vaprogram.ptx => ch3_firstjavaprogram.ptx} | 2 +- ...avadatatypes.ptx => ch4_javadatatypes.ptx} | 0 ..._conditionals.ptx => ch5_conditionals.ptx} | 0 ...teration.ptx => ch6_loopsanditeration.ptx} | 0 ...ingclasses.ptx => ch7_definingclasses.ptx} | 0 ..._filehandling.ptx => ch8_filehandling.ptx} | 0 ...ventions.ptx => ch8_namingconventions.ptx} | 0 ...monmistakes.ptx => ch9_commonmistakes.ptx} | 0 source/main.ptx | 19 +++++++++---------- 12 files changed, 10 insertions(+), 11 deletions(-) rename source/{ch_10_moredocumentation.ptx => ch10_moredocumentation.ptx} (100%) rename source/{ch_1_overview.ptx => ch1_overview.ptx} (100%) rename source/{ch_2_whylearnjava.ptx => ch2_whylearnjava.ptx} (100%) rename source/{ch_3_firstjavaprogram.ptx => ch3_firstjavaprogram.ptx} (99%) rename source/{ch_4_javadatatypes.ptx => ch4_javadatatypes.ptx} (100%) rename source/{ch_5_conditionals.ptx => ch5_conditionals.ptx} (100%) rename source/{ch_6_loopsanditeration.ptx => ch6_loopsanditeration.ptx} (100%) rename source/{ch_7_definingclasses.ptx => ch7_definingclasses.ptx} (100%) rename source/{ch_x_filehandling.ptx => ch8_filehandling.ptx} (100%) rename source/{ch_8_namingconventions.ptx => ch8_namingconventions.ptx} (100%) rename source/{ch_9_commonmistakes.ptx => ch9_commonmistakes.ptx} (100%) diff --git a/source/ch_10_moredocumentation.ptx b/source/ch10_moredocumentation.ptx similarity index 100% rename from source/ch_10_moredocumentation.ptx rename to source/ch10_moredocumentation.ptx diff --git a/source/ch_1_overview.ptx b/source/ch1_overview.ptx similarity index 100% rename from source/ch_1_overview.ptx rename to source/ch1_overview.ptx diff --git a/source/ch_2_whylearnjava.ptx b/source/ch2_whylearnjava.ptx similarity index 100% rename from source/ch_2_whylearnjava.ptx rename to source/ch2_whylearnjava.ptx diff --git a/source/ch_3_firstjavaprogram.ptx b/source/ch3_firstjavaprogram.ptx similarity index 99% rename from source/ch_3_firstjavaprogram.ptx rename to source/ch3_firstjavaprogram.ptx index 7d80a61..a485e61 100644 --- a/source/ch_3_firstjavaprogram.ptx +++ b/source/ch3_firstjavaprogram.ptx @@ -33,7 +33,7 @@ public class Hello {

    - What we see is that at the core there are a few similarities, such as a main and the string “Hello World”. However, there is a lot more stuff around the edges that make it harder to see the core of the program. Do not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them. One thing that will help you is to learn a little bit about Java . + What we see is that at the core there are a few similarities, such as a main and the string “Hello World”. However, there is a lot more stuff around the edges that make it harder to see the core of the program. Do not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them.

    diff --git a/source/ch_4_javadatatypes.ptx b/source/ch4_javadatatypes.ptx similarity index 100% rename from source/ch_4_javadatatypes.ptx rename to source/ch4_javadatatypes.ptx diff --git a/source/ch_5_conditionals.ptx b/source/ch5_conditionals.ptx similarity index 100% rename from source/ch_5_conditionals.ptx rename to source/ch5_conditionals.ptx diff --git a/source/ch_6_loopsanditeration.ptx b/source/ch6_loopsanditeration.ptx similarity index 100% rename from source/ch_6_loopsanditeration.ptx rename to source/ch6_loopsanditeration.ptx diff --git a/source/ch_7_definingclasses.ptx b/source/ch7_definingclasses.ptx similarity index 100% rename from source/ch_7_definingclasses.ptx rename to source/ch7_definingclasses.ptx diff --git a/source/ch_x_filehandling.ptx b/source/ch8_filehandling.ptx similarity index 100% rename from source/ch_x_filehandling.ptx rename to source/ch8_filehandling.ptx diff --git a/source/ch_8_namingconventions.ptx b/source/ch8_namingconventions.ptx similarity index 100% rename from source/ch_8_namingconventions.ptx rename to source/ch8_namingconventions.ptx diff --git a/source/ch_9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx similarity index 100% rename from source/ch_9_commonmistakes.ptx rename to source/ch9_commonmistakes.ptx diff --git a/source/main.ptx b/source/main.ptx index 2d2899a..3b05012 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -7,16 +7,15 @@ The PreTeXt Interactive Edition - - - - - - - - - - + + + + + + + + + From bc27ab40ba8b33ed9fed77c3471274bf6bd09366 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 4 Aug 2025 10:06:03 -0400 Subject: [PATCH 129/448] remove extra namingconventions file --- source/ch8_namingconventions.ptx | 41 -------------------------------- 1 file changed, 41 deletions(-) delete mode 100644 source/ch8_namingconventions.ptx diff --git a/source/ch8_namingconventions.ptx b/source/ch8_namingconventions.ptx deleted file mode 100644 index 08b90f9..0000000 --- a/source/ch8_namingconventions.ptx +++ /dev/null @@ -1,41 +0,0 @@ - - - - - Naming Conventions - -

    - Java has some very handy naming conventions. -

    - -

    -

      -
    • -

      - Class names always start with an upper case letter. - For example, Scanner, System, Hello -

      -
    • - -
    • -

      - Method names always start with a lower case letter, and use camelCase to represent multiword method names. - for example nextInt() -

      -
    • - -
    • -

      - Instance variables of a class start with a lower case letter and use camelCase -

      -
    • - -
    • -

      - Constants are in all upper case letters. - for example Math.MAXINT -

      -
    • -
    -

    - \ No newline at end of file From 44a21e1197ddcd289384885ceb22b81ce28beda5 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 4 Aug 2025 10:39:31 -0400 Subject: [PATCH 130/448] add missing chapters --- source/ch_10_moredocumentation.ptx | 77 +++++++++ source/chx_recursion.ptx | 250 +++++++++++++++++++++++++++++ source/main.ptx | 1 + 3 files changed, 328 insertions(+) create mode 100644 source/ch_10_moredocumentation.ptx create mode 100644 source/chx_recursion.ptx diff --git a/source/ch_10_moredocumentation.ptx b/source/ch_10_moredocumentation.ptx new file mode 100644 index 0000000..942fd2d --- /dev/null +++ b/source/ch_10_moredocumentation.ptx @@ -0,0 +1,77 @@ + + + + + Java Documentation + +

    + All Java class libraries are documented and available online. + Here are two good resources for you to use: +

    + +

    +

      +
    • +

      + JavaDoc The Javadoconline website provides a nice searchable interface. Search for a classname and you will get the documentation you are looking for. +

      +
    • + +
    • +

      + JavaAPI contains the same information but in a browsable format. If you don’t know the class name exactly this is a good way to see what is close. +

      +
    • +
    +

    + +

    + In general the Javadoc page for any class contains information about: +

    + +

    +

      +
    • +

      + Where this class falls in the class hierarchy. + What classes are its parents and what classes are its decendents. +

      +
    • + +
    • +

      + A summary and some examples of using the class. +

      +
    • + +
    • +

      + A summary listing of instance variables +

      +
    • + +
    • +

      + A summary listing of Constructors +

      +
    • + +
    • +

      + A summary listing of Methods +

      +
    • + +
    • +

      + Detailed documentation on constructors and methods. +

      +
    • +
    +

    + +

    + Typically the Javadoc pages are constructed from the source code where the class is implemented. + This encourages Java programmers to do a good job of documenting their code, while providing a user friendly way to read the documentation without looking at the code directly. +

    +
    \ No newline at end of file diff --git a/source/chx_recursion.ptx b/source/chx_recursion.ptx new file mode 100644 index 0000000..4304a89 --- /dev/null +++ b/source/chx_recursion.ptx @@ -0,0 +1,250 @@ + + + Recursion in Java + + +
    + Basic Recursion +

    + In this chapter, we will explore how to translate your recursive logic from Python to Java. While the core concepts of recursion remain the same, the syntax and structure of your code will change somewhat. +

    +

    recursion + As you may know from Python, recursion is a powerful problem-solving technique involving base cases and recursive steps in which a function or method calls itself. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax. +

    +

    + Let's take the familiar factorial function (which calculates the factorial of a number, namely the product of all positive integers from 1 to n). The logical steps in the code are the same, but the implementation details change. +

    +

    + Here is the standard implementation in Python: +

    + + + class MathTools: + """A utility class for mathematical operations.""" + def factorial(n: int) -> int: + """Calculates the factorial of n using recursion.""" + # A check for negative numbers is good practice. + if n < 0: + raise ValueError("Factorial is not defined for negative numbers.") # Base Case: 0! or 1! is 1 + if n <= 1: + return 1 # Recursive Step: n * (n-1)! + # The call is now to the method within the class. + return n * MathTools.factorial(n - 1)# This block shows how to use the class method. + if __name__ == "__main__": + number = 5 + result = MathTools.factorial(number) # Call the method on the class + print(f"{number}! is {result}") + + +

    + The Java version follows the same recursive logic but requires three key syntax changes: the method must be inside a class, you must declare the parameter and return types (int n and int return), and you use public static to make it callable from main. The base case and recursive step remain conceptually identical. +

    +

    + Here is the equivalent Java code: +

    + + + public class MathTools { /** + * Calculates the factorial of n using recursion. + * This is a static method, like Python's @staticmethod. + * @param n The non-negative integer. + * @return The factorial of n as a long to prevent overflow for larger numbers. + */ + public static int factorial(int n) { + // A check for negative numbers is good practice. + if (n < 0) { + throw new IllegalArgumentException("Factorial is not defined for negative numbers."); + } // Base Case: 0! or 1! is 1 + if (n <= 1) { + return 1; + } // Recursive Step: n * (n-1)! + return n * factorial(n - 1); + } /** + * The main entry point for the application. + * This is the Java equivalent of Python's 'if __name__ == "__main__":' + */ + public static void main(String[] args) { + int number = 5; + // The static method is called directly on the class. + long result = MathTools.factorial(number); System.out.println(number + "! is " + result); + } + } + + +

    + Notice the key differences: instead of def, the method signature public static int declares its scope, that it belongs to the class rather than an object, and that it returns an int. All logic is contained within curly braces {}. +

    +
    +
    + Common Recursive Patterns + +

    + In many recursive algorithms, the recursive calls need extra information that the original caller shouldn't have to provide. For example, to recursively process an array, you need to keep track of the current position (index). To traverse a tree, you need to know the current node. This extra information clutters the public-facing method signature. +

    +

    + A common pattern to solve this is using a private helper method. This pattern lets you create a clean, simple public method that users will call, while the private helper method handles the complex details of the recursion. The public method typically makes the initial call to the private helper, providing the necessary starting values for the extra parameters. +

    +

    + Let's see this pattern in action with an example that calculates the sum of all elements in an integer array. The public sum method only takes the array, but the private sumHelper method also takes an index to track its progress through the array. +

    + +

    + You're likely familiar with how some recursive algorithms, like the naive Fibonacci implementation, + are elegant but inefficient, due to branching recursive calls filling the call stack. A common pattern to solve + this is using a private helper method. +

    +

    + The following example demonstrates this pattern. The public fib method provides a simple entry point, while the private fibHelper method performs the efficient recursion by carrying its state (the previous two numbers) in its parameters. +

    +

    + The following Java code demonstrates a similar pattern. +

    + + + + public class FibonacciExample { + public int fib(int n) { + if (n < 0) { + throw new IllegalArgumentException("Input cannot be negative."); + } + // Initial call to the recursive helper with depth 0. + return this._fibHelper(n, 0, 1, 0); + } + private int _fibHelper(int count, int a, int b, int depth) { + // Create an indent string based on the recursion depth. + String indent = " ".repeat(depth); + // Print when the method is entered (pushed onto the stack). + System.out.printf("%s[>>] ENTERING _fibHelper(count=%d, a=%d, b=%d)%n", indent, count, a, b); + // Base Case: When the count reaches 0, 'a' holds the result. + if (count == 0) { + System.out.printf("%s[<<] EXITING (Base Case) -> returns %d%n", indent, a); + return a; + } + // Recursive Step. + int result = this._fibHelper(count - 1, b, a + b, depth + 1); + // Print when the method exits (popped from the stack). + System.out.printf("%s[<<] EXITING (Recursive Step) -> passing %d%n", indent, result); + return result; + } + public static void main(String[] args) { + FibonacciExample calculator = new FibonacciExample(); + int n = 4; // Let's calculate the 4th Fibonacci number. + System.out.printf("--- Calculating fib(%d) ---%n", n); + int result = calculator.fib(n); + System.out.println("--------------------------"); + System.out.printf("The %dth Fibonacci number is: %d%n", n, result); + } + } + + +

    + This helper method approach is significantly more efficient in terms of time than the classic branching recursion (where fib(n) calls fib(n-1) and fib(n-2)). The branching model has an exponential time complexity of roughly O(2^n) because it re-calculates the same values many times. In contrast, our helper method has a linear time complexity of O(n), as it avoids re-computation by carrying the previous two results (a and b) forward into the next call. +

    +

    + However, regarding memory efficiency, the comparison is different. The maximum depth of the call stack for both the naive and the helper method is proportional to n, giving them both a space complexity of O(n). This means that while the helper method is much faster, it is equally vulnerable to a StackOverflowError for very large values of n. Because Java does not perform tail-call optimization, any recursive solution that goes too deep will exhaust the stack memory, regardless of its time efficiency. For true memory efficiency (O(1) space), an iterative loop-based solution is superior. +

    +

    + The following Python code demonstrates the same pattern, using a public method to initiate the calculation and a private helper method to perform the recursion. +

    + + + class FibonacciExample: + def fib(self, n: int) -> int: + """ + Public method to start the Fibonacci calculation. + """ + if n < 0: + raise ValueError("Input cannot be negative.") + # Initial call to the recursive helper with depth 0. + return self._fib_helper(n, 0, 1, 0) + + def _fib_helper(self, count: int, a: int, b: int, depth: int) -> int: + """ + Private helper that performs the tail recursion to find the number. + """ + # Create an indent string based on the recursion depth. + indent = " " * depth + # Print when the method is entered (pushed onto the stack). + print(f"{indent}[>>] ENTERING _fib_helper(count={count}, a={a}, b={b})") + + # Base Case: When the count reaches 0, 'a' holds the result. + if count == 0: + print(f"{indent}[<<] EXITING (Base Case) -> returns {a}") + return a + + # Recursive Step. + result = self._fib_helper(count - 1, b, a + b, depth + 1) + # Print when the method exits (popped from the stack). + print(f"{indent}[<<] EXITING (Recursive Step) -> passing {result}") + return result + + # The standard Python entry point, equivalent to Java's `main` method. + if __name__ == "__main__": + calculator = FibonacciExample() + n = 4 # Let's calculate the 4th Fibonacci number. + print(f"--- Calculating fib({n}) ---") + result = calculator.fib(n) + print("--------------------------") + print(f"The {n}th Fibonacci number is: {result}") + + +
    +
    + Recursion Limits: Python vs. Java +

    + The consequence of deep recursion, running out of stack space, is a concept you've already encountered in Python. Java handles this in a very similar way, throwing an error when the call stack depth is exceeded. +

    +

    + The key difference is the name of the error: +

    +
      +
    • In Python, this raises a RecursionError.
    • +
    • In Java, this throws a StackOverflowError.
    • +
    +

    + Neither language supports tail call optimization tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative (loop-based) approach is the preferred solution in both Python and Java. +

    +

    + The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to aRecursionError. +

    + + + def cause_recursion_error(): + """ + This function calls itself without a base case, guaranteeing an error. + """ + cause_recursion_error() + + # Standard Python entry point + if __name__ == "__main__": + print("Calling the recursive function... this will end in an error!") + + # This line starts the infinite recursion. + # Python will stop it and raise a RecursionError automatically. + cause_recursion_error() + + + +

    + The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError. +

    + + + public class Crash { + public static void causeStackOverflow() { + // This method calls itself endlessly without a stopping condition (a base case). + // Each call adds a new layer to the program's call stack. + // Eventually, the stack runs out of space, causing the error. + causeStackOverflow(); + } + // A main method is required to run the program. + public static void main(String[] args) { + System.out.println("Calling the recursive method... this will end in an error!"); + // This line starts the infinite recursion. + causeStackOverflow(); + } + } + + +
    +
    \ No newline at end of file diff --git a/source/main.ptx b/source/main.ptx index 3b05012..fd70e99 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -13,6 +13,7 @@ + From e7b05619a07cee74f0f59f9389d1768ea5566b0d Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Mon, 4 Aug 2025 11:53:16 -0400 Subject: [PATCH 131/448] Updating Section 1.4 and Removing Chapter 2 file --- source/ch1_overview.ptx | 2 +- source/ch2_whylearnjava.ptx | 191 ------------------------------------ 2 files changed, 1 insertion(+), 192 deletions(-) delete mode 100644 source/ch2_whylearnjava.ptx diff --git a/source/ch1_overview.ptx b/source/ch1_overview.ptx index d781f7c..7c1da79 100644 --- a/source/ch1_overview.ptx +++ b/source/ch1_overview.ptx @@ -369,7 +369,7 @@
  27. Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. - Java has over 4,000 different classes included in the Java 14 Standard Edition. + The Java Standard Edition contains thousands of built-in classes that support tasks like file input/output, networking, data structures, and graphical interfaces. We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester.

  28. diff --git a/source/ch2_whylearnjava.ptx b/source/ch2_whylearnjava.ptx deleted file mode 100644 index 818117f..0000000 --- a/source/ch2_whylearnjava.ptx +++ /dev/null @@ -1,191 +0,0 @@ - - - - - Exploring Other Programming Languages - -
    - Why Learn another programming Language? - -

    - Python is a nice language for beginning programming for several reasons. - First the syntax is sparse, and clear. - Second, the underlying model of how objects and variables work is very consistent. - Third, you can write powerful and interesting programs without a lot of work. - However, Python is representative of one kind of language, called a dynamic language. - You might think of Python as being fairly informal. - There are other languages, like Java and C++ that are more formal. -

    - -

    - These languages have some advantages of their own. - First, is speed: Java and C++ code will generally give better performance than Python code. (See .) - Second is their maintainability. - A lot of what makes Python easy to use is that you must remember certain things. - For example if you set variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. - Java and C++ protect you by forcing you to be upfront and formal about the kind of object each variable is going to refer to. -

    - -

    - In one sense Python is representative of a whole class of languages, sometimes referred to as “scripting languages.” Other languages in the same category as Python are Ruby and Perl. - Java is representative of what I will call industrial strength languages. - Industrial strength languages are good for projects with several people working on the project where being formal and careful about what you do may impact lots of other people. - Languages in this category include Rust, C++, C#, and Ada. -

    - -

    - Programming languages will always change. - As the field of computer science advances there will be new programming languages and you will need to learn them. - It is important to learn several programming languages so that you know what to expect. - There are certain features that most programming languages have in common; variables, loops, conditionals, functions. - And there are some features that are unique. - If you know what is common in languages that is a good place to start. -

    - - A Note about Python Performance - - -

    - - Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. - This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). - So native language performance is just one criteria to consider when deciding which language to use for a program. -

    -
    - -
    - -
    - Why Learn Java? Why not C or C++? - -

    - It is easier to learn to create interesting programs in Java than in C or C++, for several reasons: -

    - -

    -

      -
    • -

      - Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. - Java has over 4,000 different classes included in the Java 14 Standard Edition. - We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester. -

      -
    • - -
    • -

      - Java incorporates automatic garbage collection of memory, whereas C and C++ programs typically include some degree of manual memory management. - This makes programming in those languages more challenging. -

      -
    • - -
    • -

      - C++’s syntax is more complicated than Java’s, making it more difficult to learn. - For example, C++ supports a feature called operator overloading, which makes it possible to change the behavior of operators like +. - This can make it more difficult to understand what a C++ program is doing. -

      -
    • -
    -

    - -

    - Certainly, C and C++ are important languages, and are worth learning. - But for these and other reasons, we’ve decided to use Java for this course. - Learning Java will be a good preparation for learning these and other languages! -

    - - -
    -
    - Summary & Reading Questions -

      -
    1. -

      Learning multiple programming languages helps programmers adapt to different styles and environments.

      -
    2. -
    3. -

      Python is a dynamic scripting language that is beginner-friendly, but it is less strict with types and generally slower than compiled languages.

      -
    4. -
    5. -

      Languages like Java and C++ are statically typed and offer better performance and maintainability for large-scale projects.

      -
    6. -
    7. -

      Java has a simpler syntax than C++ and includes automatic garbage collection, which reduces the complexity of memory management.

      -
    8. -
    9. -

      Java’s extensive standard library enables the development of sophisticated programs without relying on external dependencies.

      -
    10. -

    - - - -

    Which of the following best describes Python as a programming language?

    -
    - - -

    Statically typed and high-performance

    -

    No. This better describes languages like Java or C++.

    -
    - -

    Dynamically typed and beginner-friendly

    -

    That’s right! Python is dynamically typed and easy for beginners.

    -
    - -

    Industrial strength and verbose

    -

    No. Python is more informal and concise.

    -
    - -

    Memory-managed and pointer-based

    -

    No. That describes lower-level languages like C or C++.

    -
    -
    -
    - - -

    Why is Java a better language for beginners compared to C++?

    -
    - - -

    It requires more manual memory management

    -

    No. Java manages memory automatically.

    -
    - -

    It has a smaller standard library

    -

    No. Java has a very large standard library.

    -
    - -

    It avoids complex syntax and has automatic garbage collection

    -

    Correct! These features make Java easier for beginners.

    -
    - -

    It supports operator overloading

    -

    No. That's a C++ feature and it adds complexity.

    -
    -
    -
    - - -

    What is a major benefit of learning multiple programming languages?

    -
    - - -

    You can standardize all projects using one universal syntax

    -

    No. Each language has its own syntax and is suited for different tasks.

    -
    - -

    You will minimize runtime errors across all platforms

    -

    No. Runtime errors depend more on logic and environment than the number of languages you know.

    -
    - -

    You gain exposure to different language features and paradigms

    -

    Great choice! This helps you become a more adaptable and well-rounded programmer.

    -
    - -

    You can bypass the need for understanding compilation and interpretation

    -

    No. Understanding how code is executed remains essential regardless of how many languages you know.

    -
    -
    -
    -
    -
    -
    \ No newline at end of file From 9dff49d50c21b53ce2b1a7cc4e438a9047d1462b Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Mon, 4 Aug 2025 16:04:40 -0400 Subject: [PATCH 132/448] Formats chapter syntax and makes one liner easier for cheatsheet --- source/ap-java-cheatsheet.ptx | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/ap-java-cheatsheet.ptx b/source/ap-java-cheatsheet.ptx index 46f925f..f272981 100644 --- a/source/ap-java-cheatsheet.ptx +++ b/source/ap-java-cheatsheet.ptx @@ -119,49 +119,49 @@ Arithmetic +, -, *, / Addition, Subtraction, Multiplication, Division - 5 + 2 + 5 + 2 7 Arithmetic / Integer Division (truncates toward zero) - 7 / 2 → 3 + 7 / 2 3 Arithmetic % Modulus (remainder) - 7 % 2 → 1 + 7 % 2 1 Arithmetic Math.pow() Exponent - Math.pow(2, 3) → 8.0 + Math.pow(2, 3) 8.0 + + + Assignment + +=, -=, *=, /= + Adds, subtracts, multiplies, or divides and assigns + x += 1x = x + 1 Comparison ==, != Equal to, Not equal to (use .equals() for objects) - x == y + x == yTrue or False Comparison >, <, >=, <= Greater/Less than, or equal to - x > 5 + x > 5True or False Logical &&, ||, ! Logical AND, OR, NOT - x > 1 && y < 10 - - - Assignment - +=, -=, *=, /= - Adds, subtracts, multiplies, or divides and assigns - x += 1 + x > 1 && y < 10True or False @@ -195,7 +195,7 @@
  29. - Streams API: Java's Stream API is the idiomatic alternative to Python's List Comprehensions. It can be used to filter, map, and reduce data in a sequence of steps. For example, to generate a list of squares, instead of a multi-line loop, you can write List<Integer> squares = IntStream.range(0, 10).map(i -> i * i).boxed().collect(Collectors.toList());. + Streams API: Java's Stream API is the idiomatic alternative to Python's List Comprehensions. It can be used to filter, map, and reduce data in a sequence of steps. For a simpler example, to generate a basic list of numbers, instead of a multi-line loop, you can write List<Integer> numbers = IntStream.range(0, 5).boxed().toList(); This single line creates a stream of numbers from 0 to 4, prepares them for the list with the `.boxed()` method, and collects them into the final result.

  30. From bfca746fc03de0e3e2e90f9b62d51db95816edfc Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Mon, 4 Aug 2025 16:05:07 -0400 Subject: [PATCH 133/448] Added Summary and Reading Questions section to Chapter 5 --- source/ch6_loopsanditeration.ptx | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) diff --git a/source/ch6_loopsanditeration.ptx b/source/ch6_loopsanditeration.ptx index 0ca4441..fd10c12 100644 --- a/source/ch6_loopsanditeration.ptx +++ b/source/ch6_loopsanditeration.ptx @@ -223,4 +223,105 @@ public class DoWhileExample {
    +
    + Summary & Reading Questions +

    +

      +
    1. +

      Java’s for loop syntax allows you to control loop initialization, condition, and update in one line using the format for (init; condition; update).

      +
    2. +
    3. +

      To loop over lists or arrays in Java, the enhanced for-each loop uses the syntax for (type var : collection), which is similar to Python’s for item in list.

      +
    4. +
    5. +

      Python’s range() function supports start, stop, and step, which directly maps to the three components of a Java for loop.

      +
    6. +
    7. +

      Java also supports the while loop, which executes a block of code while a condition is true, similar to Python’s while loop.

      +
    8. +
    9. +

      Java’s do-while loop guarantees the loop body executes at least once, because the condition is evaluated after the loop body.

      +
    10. +
    11. +

      To iterate through characters in a Java String, use toCharArray() along with a for-each loop.

      +
    12. +
    +

    + + + + + +

    Which of the following is the correct format for a definite loop in Java that runs 10 times?

    +
    + + +

    for i in range(10):

    +

    No, that is Python syntax.

    +
    + +

    for (int i = 0; i < 10; i++)

    +

    Correct! That’s the proper Java syntax for a definite loop.

    +
    + +

    loop i from 0 to 10

    +

    No, this is not valid syntax in Java.

    +
    + +

    for (i < 10; i++)

    +

    No, the initialization part is missing in this Java loop.

    +
    +
    +
    + + + +

    Which loop correctly iterates through all elements in a Java array of integers?

    +
    + + +

    for (int i : array)

    +

    Yes! This is Java's enhanced for-each loop for arrays.

    +
    + +

    for (i in array)

    +

    No, that's closer to Python syntax.

    +
    + +

    for (int i = 0; i < array; i++)

    +

    No, array is not a valid condition; use array.length.

    +
    + +

    foreach i in array:

    +

    No, this is not valid Java syntax.

    +
    +
    +
    + + + +

    What is a unique characteristic of the Java do-while loop compared to the while loop?

    +
    + + +

    It checks the condition before the loop body runs.

    +

    No, that describes a regular while loop.

    +
    + +

    It always runs infinitely.

    +

    No, a do-while loop will stop when its condition becomes false.

    +
    + +

    It guarantees the loop body runs at least once.

    +

    Correct! The do-while loop checks the condition after running the loop body.

    +
    + +

    It is not supported in Java.

    +

    No, Java does support do-while loops.

    +
    +
    +
    + +
    +
    \ No newline at end of file From 2fb17535ff2728e88f987909f3493d47c7f7b8d1 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 4 Aug 2025 21:16:20 -0400 Subject: [PATCH 134/448] renumber early chapters --- ...3_firstjavaprogram.ptx => ch2_firstjavaprogram.ptx} | 0 .../{ch4_javadatatypes.ptx => ch3_javadatatypes.ptx} | 0 source/{ch5_conditionals.ptx => ch4_conditionals.ptx} | 0 ...loopsanditeration.ptx => ch5_loopsanditeration.ptx} | 0 ...ch7_definingclasses.ptx => ch6_definingclasses.ptx} | 0 source/main.ptx | 10 +++++----- 6 files changed, 5 insertions(+), 5 deletions(-) rename source/{ch3_firstjavaprogram.ptx => ch2_firstjavaprogram.ptx} (100%) rename source/{ch4_javadatatypes.ptx => ch3_javadatatypes.ptx} (100%) rename source/{ch5_conditionals.ptx => ch4_conditionals.ptx} (100%) rename source/{ch6_loopsanditeration.ptx => ch5_loopsanditeration.ptx} (100%) rename source/{ch7_definingclasses.ptx => ch6_definingclasses.ptx} (100%) diff --git a/source/ch3_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx similarity index 100% rename from source/ch3_firstjavaprogram.ptx rename to source/ch2_firstjavaprogram.ptx diff --git a/source/ch4_javadatatypes.ptx b/source/ch3_javadatatypes.ptx similarity index 100% rename from source/ch4_javadatatypes.ptx rename to source/ch3_javadatatypes.ptx diff --git a/source/ch5_conditionals.ptx b/source/ch4_conditionals.ptx similarity index 100% rename from source/ch5_conditionals.ptx rename to source/ch4_conditionals.ptx diff --git a/source/ch6_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx similarity index 100% rename from source/ch6_loopsanditeration.ptx rename to source/ch5_loopsanditeration.ptx diff --git a/source/ch7_definingclasses.ptx b/source/ch6_definingclasses.ptx similarity index 100% rename from source/ch7_definingclasses.ptx rename to source/ch6_definingclasses.ptx diff --git a/source/main.ptx b/source/main.ptx index fd70e99..6a3df61 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -8,11 +8,11 @@ The PreTeXt Interactive Edition - - - - - + + + git + + From a11cbe4aac672d49b553ae18322567f31e0bc23c Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 5 Aug 2025 08:30:32 -0400 Subject: [PATCH 135/448] remove extra file --- source/ch_10_moredocumentation.ptx | 77 ------------------------------ 1 file changed, 77 deletions(-) delete mode 100644 source/ch_10_moredocumentation.ptx diff --git a/source/ch_10_moredocumentation.ptx b/source/ch_10_moredocumentation.ptx deleted file mode 100644 index 942fd2d..0000000 --- a/source/ch_10_moredocumentation.ptx +++ /dev/null @@ -1,77 +0,0 @@ - - - - - Java Documentation - -

    - All Java class libraries are documented and available online. - Here are two good resources for you to use: -

    - -

    -

      -
    • -

      - JavaDoc The Javadoconline website provides a nice searchable interface. Search for a classname and you will get the documentation you are looking for. -

      -
    • - -
    • -

      - JavaAPI contains the same information but in a browsable format. If you don’t know the class name exactly this is a good way to see what is close. -

      -
    • -
    -

    - -

    - In general the Javadoc page for any class contains information about: -

    - -

    -

      -
    • -

      - Where this class falls in the class hierarchy. - What classes are its parents and what classes are its decendents. -

      -
    • - -
    • -

      - A summary and some examples of using the class. -

      -
    • - -
    • -

      - A summary listing of instance variables -

      -
    • - -
    • -

      - A summary listing of Constructors -

      -
    • - -
    • -

      - A summary listing of Methods -

      -
    • - -
    • -

      - Detailed documentation on constructors and methods. -

      -
    • -
    -

    - -

    - Typically the Javadoc pages are constructed from the source code where the class is implemented. - This encourages Java programmers to do a good job of documenting their code, while providing a user friendly way to read the documentation without looking at the code directly. -

    -
    \ No newline at end of file From 843d4703ccb274e41b57d53c1346167a58417823 Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Tue, 5 Aug 2025 11:29:23 -0400 Subject: [PATCH 136/448] Fixes formatting to read better and fixes grammar mistakes. --- source/ch8_filehandling.ptx | 370 ++++++++++++++++-------------------- 1 file changed, 167 insertions(+), 203 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 933b24e..242c1d9 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -21,7 +21,7 @@ import java.io.File; - +

    @@ -31,7 +31,7 @@ import java.util.Scanner; - +

    @@ -41,7 +41,7 @@ import java.io.FileWriter; - +

    @@ -51,45 +51,166 @@ import java.io.IOException; - + import java.io.FileNotFoundException - +

    -
    - Creating Files - +
    + Reading Files +

    - Before we can write code that creates a file, we must first import the necessary classes mentioned in the previous section (Scanner and FileWriter are not needed for a class that only creates files) and create a class. We will call this class CreateFile. + Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile:

    import java.io.File; - import java.io.IOException; + import java.io.FileNotFoundException; + import java.util.Scanner - public class CreateFile { + public class ReadFile { public static void main(String[] args) { } } - +

    - Next, within the main function, we will create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. + We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader:

    File myFile = new File("myfile.txt"); - + Scanner fileReader = new Scanner(myFile); + + + +

    + The next lines consists of a Python code examplethat reads each line of the file passed to the Scanner object.: +

    + + + + with open("filename.txt", "r") as file_reader: + for line in file_reader: + print(line.strip()) + + + +

    + The equivalent Java code: +

    + + + + while (fileReader.hasNextLine()) { + String data = fileReader.nextLine(); + System.out.println(data); + } + fileReader.close(); + + + +

    + The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it returns the current line when called. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as in the section on writing to files. +

    + +

    + Alternatively, the following code can be used to store the all lines of myfile.txt to one variable: +

    + + + + String data = ""; + while (fileReader.hasNextLine()) { + data = data + fileReader.nextLine() + System.lineSeparator(); + } + System.out.println(data); + fileReader.close(); + + + + +

    + Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a new line operator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. +

    +
    + +

    + Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code: +

    + + + + try: + with open("myfile.txt", "r") as file_reader: + data = "" + for line in file_reader: + data += line # line already includes the newline character + print(data) + except FileNotFoundError as e: + print("An error occurred.") + import traceback + traceback.print_exc() + + + + +

    + And the Java equivalent: +

    + + + + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner + + public class ReadFile { + public static void main(String[] args) { + try { + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + String data = ""; + while (fileReader.hasNextLine()) { + data = data + fileReader.nextLine() + System.lineSeparator(); + } + System.out.println(data); + fileReader.close(); + } catch (FileNotFoundException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + } + } + + + +

    + In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt. +

    +
    + +
    + Creating Files + +

    + We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. +

    + + + + File myFile = new File("myfile.txt"); + @@ -118,7 +239,7 @@ print(f"The file {filename} was created successfully.") else: print(f"The file {filename} already exists.") - +

    @@ -139,7 +260,7 @@ } } } - + @@ -164,7 +285,7 @@ System.out.println("An error occurred."); e.printStackTrace(); } - + @@ -208,7 +329,7 @@ print("An error occurred.") import traceback traceback.print_exc() - +

    @@ -236,7 +357,7 @@ } } - +

    @@ -254,7 +375,7 @@ File myFile = new File("C:\\Users\\UserName\\Documents\\myfile.txt"); - +

    @@ -264,7 +385,7 @@ File myFile = new File("/home/UserName/Documents/myfile.txt"); - +

    @@ -276,7 +397,7 @@

    - To write to a file, we will need to create a different class. We will do the same setup as the previous section. First, we will import the classes (File and Scanner are not needed) and create the framework for a class that will write to a file. Let's call this class WriteFile: + Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    @@ -289,7 +410,7 @@ } } - +

    @@ -299,7 +420,7 @@ FileWriter myWriter = new FileWriter("myfile.txt"); - +

    @@ -310,7 +431,7 @@ myWriter.write("File successfully updated!"); myWriter.close(); - + @@ -325,14 +446,12 @@ - try: - with open("myfile.txt", "w") as my_writer: - my_writer.write("File successfully updated!") - print("File successfully written to.") - except OSError as e: - print("An error occurred.") - import traceback - traceback.print_exc() + with open("filename.txt", "r") as file_reader: + while True: + line = file_reader.readline() + if not line: # End of file + break + print(line.strip()) @@ -351,7 +470,7 @@ System.out.println("An error occurred."); e.printStackTrace(); } - +

    @@ -368,7 +487,7 @@ print("An error occurred.") import traceback traceback.print_exc() - +

    @@ -393,7 +512,7 @@ } } } - +

    @@ -413,7 +532,7 @@ FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode - +

    @@ -438,206 +557,51 @@ } } } - +

    - and then run the program twice, the contents of myfile.txt would be: + Then if we run the program twice, the contents of myfile.txt would be:

    File successfully updated!File successfully updated! - - - -

    - This doesn't look very good! There is no space between the first and second sentences! We can make this look a little better by simply adding a space after the exclamation mark in the string: -

    - - - - myWriter.write("File successfully updated! "); // Added space at end - myWriter.close(); - +

    - This works fine if you want all text to be on the same line, but what if we want each additional write to appear on a new line? The first solution may be to use the \n newline character: + This doesn't look very good! If we want each additional write to appear on a new line? The first solution may be to use the \n newline character:

    myWriter.write("File successfully updated!\n"); // Added newline character myWriter.close(); - + - +

    - This would work fine most of the time, but older Windows programs and operating systems use the \r\n newline character. To ensure the text appears on a new line regardless of what system the code is running on, concatenate the string with the System.lineSeparator() method: + The System.lineseseparator() method is a better solution. This method returns the system's default line separator, which is platform-dependent. For example, on Windows, it returns \n, while on Linux and macOS, it returns \n. Using this method ensures that your code works correctly across different operating systems:

    myWriter.write("File successfully updated!" + System.lineseparator()); // Added newline character myWriter.close(); - +

    - Running either variation used for adding new lines twice will result in the following contents in myfile.txt: + Running it twice will result in the following contents in myfile.txt:

    File successfully updated! File successfully updated! - - -
    - -
    - Reading Files - -

    - Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile: -

    - - - - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner - - public class ReadFile { - public static void main(String[] args) { - - } - } - - - -

    - We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader: -

    - - - - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - - - - -

    - The myFile File object we created on the first line was passed to the Scanner object created on the second line. -

    -
    - -

    - The next lines consist of a while loop that reads each line of the file passed to the Scanner object and reads them. First, a Python code example. A for loop is used instead in the Python example: -

    - - - - with open("filename.txt", "r") as file_reader: - for line in file_reader: - print(line.strip()) - + - -

    - The equivalent Java code: -

    - - - - while (fileReader.hasNextLine()) { - String data = fileReader.nextLine(); - System.out.println(data); - } - fileReader.close(); - - - -

    - The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it returns the current line when called. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as in the section on writing to files. -

    - -

    - Alternatively, the following code can be used to store the all lines of myfile.txt to one variable: -

    - - - - String data = ""; - while (fileReader.hasNextLine()) { - data = data + fileReader.nextLine() + System.lineSeparator(); - } - System.out.println(data); - fileReader.close(); - - - - -

    - Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a new line operator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. -

    -
    - -

    - Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code: -

    - - - - try: - with open("myfile.txt", "r") as file_reader: - data = "" - for line in file_reader: - data += line # line already includes the newline character - print(data) - except FileNotFoundError as e: - print("An error occurred.") - import traceback - traceback.print_exc() - - - - -

    - And the Java equivalent: -

    - - - - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner - - public class ReadFile { - public static void main(String[] args) { - try { - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - String data = ""; - while (fileReader.hasNextLine()) { - data = data + fileReader.nextLine() + System.lineSeparator(); - } - System.out.println(data); - fileReader.close(); - } catch (FileNotFoundException e) { - System.out.println("An error occurred."); - e.printStackTrace(); - } - } - } - - - -

    - In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt. -

    @@ -661,7 +625,7 @@ } } } - +

    From 3cd5d5a8f7e24d5b7e0535b7ffb7990d53891db2 Mon Sep 17 00:00:00 2001 From: Tristan-Raz Date: Tue, 5 Aug 2025 11:33:47 -0400 Subject: [PATCH 137/448] Moved the section too far previous push, fixing it to infront of writing files --- source/ch8_filehandling.ptx | 276 ++++++++++++++++++------------------ 1 file changed, 138 insertions(+), 138 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 242c1d9..c0f2e91 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -62,144 +62,6 @@

    -
    - Reading Files - -

    - Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile: -

    - - - - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner - - public class ReadFile { - public static void main(String[] args) { - - } - } - - - -

    - We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader: -

    - - - - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - - - -

    - The next lines consists of a Python code examplethat reads each line of the file passed to the Scanner object.: -

    - - - - with open("filename.txt", "r") as file_reader: - for line in file_reader: - print(line.strip()) - - - -

    - The equivalent Java code: -

    - - - - while (fileReader.hasNextLine()) { - String data = fileReader.nextLine(); - System.out.println(data); - } - fileReader.close(); - - - -

    - The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it returns the current line when called. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as in the section on writing to files. -

    - -

    - Alternatively, the following code can be used to store the all lines of myfile.txt to one variable: -

    - - - - String data = ""; - while (fileReader.hasNextLine()) { - data = data + fileReader.nextLine() + System.lineSeparator(); - } - System.out.println(data); - fileReader.close(); - - - - -

    - Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a new line operator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. -

    -
    - -

    - Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code: -

    - - - - try: - with open("myfile.txt", "r") as file_reader: - data = "" - for line in file_reader: - data += line # line already includes the newline character - print(data) - except FileNotFoundError as e: - print("An error occurred.") - import traceback - traceback.print_exc() - - - - -

    - And the Java equivalent: -

    - - - - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner - - public class ReadFile { - public static void main(String[] args) { - try { - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - String data = ""; - while (fileReader.hasNextLine()) { - data = data + fileReader.nextLine() + System.lineSeparator(); - } - System.out.println(data); - fileReader.close(); - } catch (FileNotFoundException e) { - System.out.println("An error occurred."); - e.printStackTrace(); - } - } - } - - - -

    - In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt. -

    -
    -
    Creating Files @@ -389,6 +251,144 @@
    +
    + Reading Files + +

    + Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile: +

    + + + + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner + + public class ReadFile { + public static void main(String[] args) { + + } + } + + + +

    + We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader: +

    + + + + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + + + +

    + The next lines consists of a Python code examplethat reads each line of the file passed to the Scanner object.: +

    + + + + with open("filename.txt", "r") as file_reader: + for line in file_reader: + print(line.strip()) + + + +

    + The equivalent Java code: +

    + + + + while (fileReader.hasNextLine()) { + String data = fileReader.nextLine(); + System.out.println(data); + } + fileReader.close(); + + + +

    + The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it returns the current line when called. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as in the section on writing to files. +

    + +

    + Alternatively, the following code can be used to store the all lines of myfile.txt to one variable: +

    + + + + String data = ""; + while (fileReader.hasNextLine()) { + data = data + fileReader.nextLine() + System.lineSeparator(); + } + System.out.println(data); + fileReader.close(); + + + + +

    + Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a new line operator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. +

    +
    + +

    + Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code: +

    + + + + try: + with open("myfile.txt", "r") as file_reader: + data = "" + for line in file_reader: + data += line # line already includes the newline character + print(data) + except FileNotFoundError as e: + print("An error occurred.") + import traceback + traceback.print_exc() + + + + +

    + And the Java equivalent: +

    + + + + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner + + public class ReadFile { + public static void main(String[] args) { + try { + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + String data = ""; + while (fileReader.hasNextLine()) { + data = data + fileReader.nextLine() + System.lineSeparator(); + } + System.out.println(data); + fileReader.close(); + } catch (FileNotFoundException e) { + System.out.println("An error occurred."); + e.printStackTrace(); + } + } + } + + + +

    + In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt. +

    +
    +
    Writing to Files From 915ba01504af4877d3abf900f824e28adc95f676 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Tue, 5 Aug 2025 13:20:33 -0400 Subject: [PATCH 138/448] Adding Summary and Reading Questions Section on Chapter 9 --- source/ch9_commonmistakes.ptx | 141 ++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 9b6b6ed..81a25f0 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -154,4 +154,145 @@

    + +
    + Summary & Reading Questions +

      +
    1. +

      In Java, every variable must be declared with its type before use; undeclared variables cause compilation errors.

      +
    2. +
    3. +

      Java requires explicit import statements for classes from external packages (e.g., java.util.Scanner); otherwise, you get "cannot find symbol" errors.

      +
    4. +
    5. +

      The new keyword is mandatory when creating new objects; forgetting it leads to errors as Java treats the constructor call incorrectly.

      +
    6. +
    7. +

      Every Java statement must end with a semicolon (;); missing semicolons cause syntax errors.

      +
    8. +
    9. +

      Java uses generics for type safety in containers like ArrayList; forgetting to specify the contained type leads to compiler warnings about unchecked operations.

      +
    10. +
    11. +

      Compiler error messages may sometimes be misleading; understanding common mistakes helps quickly identify the root cause.

      +
    12. +

    + + + +

    What happens if you use a variable in Java without declaring it first?

    +
    + + +

    The compiler gives an error indicating the variable cannot be found.

    +

    Correct! Java requires all variables to be declared before use.

    +
    + +

    The variable is automatically declared as type Object.

    +

    No. Java does not implicitly declare variables.

    +
    + +

    The program compiles but throws an error at runtime.

    +

    No. This is a compile-time error.

    +
    + +

    Java ignores the variable and continues compiling.

    +

    No. Java will stop compiling with an error.

    +
    +
    +
    + + +

    Why must you include import statements for classes like Scanner?

    +
    + + +

    Because these classes belong to external packages and are not automatically available.

    +

    Correct! Java requires explicit imports for external classes.

    +
    + +

    Because Java does not support standard input without imports.

    +

    No. Standard input is supported but needs the Scanner class explicitly imported.

    +
    + +

    Because the classes are only available in Python, not Java.

    +

    No. This is a Java-specific requirement.

    +
    + +

    Because the compiler ignores unknown classes without imports.

    +

    No. It causes a compile error instead.

    +
    +
    +
    + + +

    What is the correct way to instantiate a new object of class Scanner?

    +
    + + +

    new Scanner(...)

    +

    Correct! The new keyword must be used to create new objects.

    +
    + +

    Scanner(...) without new

    +

    No. Omitting new causes errors.

    +
    + +

    Scanner.create(...)

    +

    No. This method does not exist for object creation.

    +
    + +

    Scanner = new Scanner()

    +

    No. The syntax is incorrect; the variable name must be assigned the new object.

    +
    +
    +
    + + +

    What causes a "';' expected" error in Java?

    +
    + + +

    A missing semicolon at the end of a statement.

    +

    Correct! Java statements must end with a semicolon.

    +
    + +

    Using too many semicolons in a line.

    +

    No. Extra semicolons do not cause this error.

    +
    + +

    Missing braces {}.

    +

    No. This error specifically refers to missing semicolons.

    +
    + +

    Using single quotes instead of double quotes.

    +

    No. This is unrelated to semicolon errors.

    +
    +
    +
    + + +

    What warning occurs when you use an ArrayList without specifying a type?

    +
    + + +

    An "unchecked" warning indicating potential type safety issues.

    +

    Correct! Using raw types disables generic type checks.

    +
    + +

    A syntax error.

    +

    No. This is a compiler warning, not an error.

    +
    + +

    A runtime exception.

    +

    No. It only warns about possible runtime errors.

    +
    + +

    A logical error in the program.

    +

    No. The warning points out type safety concerns.

    +
    +
    +
    +
    +
    From 08e3325b24c30e8ecc9fd7ab0318817d199f08ef Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Tue, 5 Aug 2025 13:26:06 -0400 Subject: [PATCH 139/448] making file reading activecode run. Issue #102 --- source/ch8_filehandling.ptx | 47 +++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index c0f2e91..51d1db0 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -256,17 +256,30 @@

    Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile: -

    - - +

    + +
    +                    1
    +                    2
    +                    3
    +                    4
    +                    5
    +                    6
    +                    7
    +                    8
    +                
    +
    + + + import java.io.File; import java.io.FileNotFoundException; - import java.util.Scanner + import java.util.Scanner; public class ReadFile { public static void main(String[] args) { - + } } @@ -280,6 +293,8 @@ File myFile = new File("myfile.txt"); Scanner fileReader = new Scanner(myFile); + + @@ -299,13 +314,25 @@ The equivalent Java code:

    - + - while (fileReader.hasNextLine()) { - String data = fileReader.nextLine(); - System.out.println(data); + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner; + + public class ReadFile { + public static void main(String[] args) { + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + + while (fileReader.hasNextLine()) { + String data = fileReader.nextLine(); + System.out.println(data); + } + fileReader.close(); + + } } - fileReader.close(); From 4fa8d7e076781cd23ddd5511bfcfbe0d49e12095 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 5 Aug 2025 13:30:50 -0400 Subject: [PATCH 140/448] improve section 1 of the new recursion chapter --- source/chx_recursion.ptx | 160 +++++++++++++++++++++++---------------- 1 file changed, 93 insertions(+), 67 deletions(-) diff --git a/source/chx_recursion.ptx b/source/chx_recursion.ptx index 4304a89..4f3601e 100644 --- a/source/chx_recursion.ptx +++ b/source/chx_recursion.ptx @@ -3,78 +3,104 @@ Recursion in Java -
    + +
    Basic Recursion

    In this chapter, we will explore how to translate your recursive logic from Python to Java. While the core concepts of recursion remain the same, the syntax and structure of your code will change somewhat.

    -

    recursion - As you may know from Python, recursion is a powerful problem-solving technique involving base cases and recursive steps in which a function or method calls itself. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax. -

    -

    - Let's take the familiar factorial function (which calculates the factorial of a number, namely the product of all positive integers from 1 to n). The logical steps in the code are the same, but the implementation details change. -

    -

    - Here is the standard implementation in Python: -

    - - - class MathTools: - """A utility class for mathematical operations.""" - def factorial(n: int) -> int: - """Calculates the factorial of n using recursion.""" - # A check for negative numbers is good practice. - if n < 0: - raise ValueError("Factorial is not defined for negative numbers.") # Base Case: 0! or 1! is 1 - if n <= 1: - return 1 # Recursive Step: n * (n-1)! - # The call is now to the method within the class. - return n * MathTools.factorial(n - 1)# This block shows how to use the class method. - if __name__ == "__main__": - number = 5 - result = MathTools.factorial(number) # Call the method on the class - print(f"{number}! is {result}") - - -

    - The Java version follows the same recursive logic but requires three key syntax changes: the method must be inside a class, you must declare the parameter and return types (int n and int return), and you use public static to make it callable from main. The base case and recursive step remain conceptually identical. -

    -

    - Here is the equivalent Java code: -

    - - - public class MathTools { /** - * Calculates the factorial of n using recursion. - * This is a static method, like Python's @staticmethod. - * @param n The non-negative integer. - * @return The factorial of n as a long to prevent overflow for larger numbers. - */ - public static int factorial(int n) { - // A check for negative numbers is good practice. - if (n < 0) { - throw new IllegalArgumentException("Factorial is not defined for negative numbers."); - } // Base Case: 0! or 1! is 1 - if (n <= 1) { - return 1; - } // Recursive Step: n * (n-1)! - return n * factorial(n - 1); - } /** - * The main entry point for the application. - * This is the Java equivalent of Python's 'if __name__ == "__main__":' - */ - public static void main(String[] args) { - int number = 5; - // The static method is called directly on the class. - long result = MathTools.factorial(number); System.out.println(number + "! is " + result); - } - } - - -

    - Notice the key differences: instead of def, the method signature public static int declares its scope, that it belongs to the class rather than an object, and that it returns an int. All logic is contained within curly braces {}. -

    +

    recursion + As you may know from Python, recursion is a powerful problem-solving technique involving base cases and recursive steps in which a function or method calls itself. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax. +

    +

    + Let's take the familiar factorial function (which calculates the factorial of a number, namely the product of all positive integers from 1 to n). The logical steps in the code are the same, but the implementation details change. +

    +

    + Here is a simple Python function implementation: +

    + + +def factorial(n): + # Check for negative numbers + if n < 0: + print("Factorials are only defined on non-negative integers.") + return + # Base Case: 0! or 1! is 1 + if n <= 1: + return 1 + # Recursive Step: n * (n-1)! + return n * factorial(n - 1) + +def main(): + number = 5 + print(str(number) + "! is " + str(factorial(number))) + +main() + + + +

    + Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method. Then you need to create an instance of the class to call the method. There we create the class MathTools with a method factorial, and we call it from the main function. +

    + + +class MathTools: + def factorial(self, n): + # Check for negative numbers + if n < 0: + print("Factorials are only defined on non-negative integers.") + return + # Base Case: 0! or 1! is 1 + if n <= 1: + return 1 + # Recursive Step: n * (n-1)! + return n * self.factorial(n - 1) + +def main(): + # Create an instance of the class and call the method + math_tools = MathTools() + number = 5 + print(str(number) + "! is " + str(math_tools.factorial(number))) + +main() + + + +

    + See if you can spot the differences in the Java version below. +

    +

    + Here is the equivalent Java code: +

    + + +public class MathTools { + public static int factorial(int n) { + // Check for negative numbers + if (n < 0) { + System.out.println("Factorials are only defined on non-negative integers."); + return -1; // Return -1 to indicate error + } + // Base Case: 0! or 1! is 1 + if (n <= 1) { + return 1; + } + // Recursive Step: n * (n-1)! + return n * factorial(n - 1); + } + + public static void main(String[] args) { + int number = 5; + System.out.println(number + "! is " + factorial(number)); + } +} + + +

    + Notice the key differences from Python: instead of def factorial(n):, Java uses public static int factorial(int n) which declares the method's visibility as public, that it belongs to the class rather than an instance (hence, static), the return type as integer, and the parameter type also as integer. The recursive logic—base case and recursive step—remains identical to Python, but all code blocks use curly braces {} instead of indentation. +

    +
    Common Recursive Patterns From 5c8f5fbcb207393708f9aac8c29ccba8cb723e05 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Tue, 5 Aug 2025 14:46:32 -0400 Subject: [PATCH 141/448] Removed question 3 and 4 --- source/ch9_commonmistakes.ptx | 46 ----------------------------------- 1 file changed, 46 deletions(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 81a25f0..0bbd78a 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -225,52 +225,6 @@ - -

    What is the correct way to instantiate a new object of class Scanner?

    -
    - - -

    new Scanner(...)

    -

    Correct! The new keyword must be used to create new objects.

    -
    - -

    Scanner(...) without new

    -

    No. Omitting new causes errors.

    -
    - -

    Scanner.create(...)

    -

    No. This method does not exist for object creation.

    -
    - -

    Scanner = new Scanner()

    -

    No. The syntax is incorrect; the variable name must be assigned the new object.

    -
    -
    -
    - - -

    What causes a "';' expected" error in Java?

    -
    - - -

    A missing semicolon at the end of a statement.

    -

    Correct! Java statements must end with a semicolon.

    -
    - -

    Using too many semicolons in a line.

    -

    No. Extra semicolons do not cause this error.

    -
    - -

    Missing braces {}.

    -

    No. This error specifically refers to missing semicolons.

    -
    - -

    Using single quotes instead of double quotes.

    -

    No. This is unrelated to semicolon errors.

    -
    -
    -
    -

    What warning occurs when you use an ArrayList without specifying a type?

    From c7cffd62b3b0bcfad777c3a110d8872c70b84ba2 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Tue, 5 Aug 2025 15:18:54 -0400 Subject: [PATCH 142/448] commiting running code for the file reading section. Issue #102 --- source/ch8_filehandling.ptx | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 51d1db0..4609482 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -318,19 +318,21 @@ import java.io.File; import java.io.FileNotFoundException; - import java.util.Scanner; - - public class ReadFile { + import java.util.Scanner;public class Main { public static void main(String[] args) { - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - - while (fileReader.hasNextLine()) { - String data = fileReader.nextLine(); - System.out.println(data); + try { + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + System.out.println("Reading from file: " + myFile.getName()); + while (fileReader.hasNextLine()) { + String data = fileReader.nextLine(); + System.out.println(data); + } + fileReader.close(); // Close the scanner to release the file + } catch (FileNotFoundException e) { + System.out.println("An error occurred: The file was not found."); + e.printStackTrace(); } - fileReader.close(); - } } From f96da7f1b5d310e62f2c50b53195ca03ab3c5e2a Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Tue, 5 Aug 2025 15:35:12 -0400 Subject: [PATCH 143/448] Added Summary and Reading Questions section to Chapter 6 --- source/ch6_definingclasses.ptx | 147 +++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 7a95433..2d97e94 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -1012,4 +1012,151 @@ public class Fraction extends Number implements Comparable<Fraction> {
    + +
    + Summary & Reading Questions +

      +
    1. +

      In Java, instance variables must be declared at the top of the class, unlike Python which allows dynamic creation of instance variables anywhere.

      +
    2. +
    3. +

      Java uses access modifiers like private to enforce encapsulation, encouraging data hiding and controlled access through getter and setter methods.

      +
    4. +
    5. +

      Java requires a separate constructor method to initialize objects, using the class name and defining parameters explicitly, whereas Python uses the __init__ method.

      +
    6. +
    7. +

      Every Java class inherits from the Object class, which provides default methods like toString() and equals(). Overriding toString() allows for more meaningful output when printing objects (similar to Python’s __str__).

      +
    8. +
    9. +

      Java’s equals() method checks object equivalence based on memory reference by default. To compare objects based on content (like Fraction values), you must override equals() and use it directly — object1.equals(object2) is not the same as object1 == object2.

      +
    10. +
    11. +

      Java supports inheritance through abstract classes like Number, which require subclasses (like Fraction) to implement specific methods such as intValue(), doubleValue(), etc., allowing Fraction to be used where a Number is expected.

      +
    12. +

    + + + + +

    How must instance variables be declared in Java compared to Python?

    +
    + + +

    They can be created dynamically anywhere in the class like Python.

    +

    No, Java does not allow dynamic creation of instance variables.

    +
    + +

    Instance variables are declared inside methods only.

    +

    No, instance variables belong to the class and are declared outside methods.

    +
    + +

    They must be declared at the top of the class before use.

    +

    Correct! Java requires upfront declaration of instance variables.

    +
    + +

    Java does not use instance variables.

    +

    No, instance variables are fundamental in Java classes.

    +
    +
    +
    + + + +

    What Java feature encourages encapsulation and controlled access to instance variables?

    +
    + + +

    Declaring all variables as public.

    +

    No, that would expose data and reduce encapsulation.

    +
    + +

    Using access modifiers like private and providing getter/setter methods.

    +

    Right! This is how Java enforces encapsulation.

    +
    + +

    Using global variables.

    +

    No, Java does not support global variables and this reduces encapsulation.

    +
    + +

    Avoiding the use of classes altogether.

    +

    No, encapsulation is a class-based concept in Java.

    +
    +
    +
    + + + +

    How does Java initialize objects differently than Python?

    +
    + + +

    Java uses a constructor method named after the class with explicit parameters.

    +

    Correct! Unlike Python's __init__, Java constructors share the class name.

    +
    + +

    Java uses the __init__ method like Python.

    +

    No, Java does not have __init__.

    +
    + +

    Java initializes objects automatically without constructors.

    +

    No, Java requires constructors for explicit initialization.

    +
    + +

    Java uses global initialization functions instead of constructors.

    +

    No, Java uses constructors, not global functions, for object initialization.

    +
    +
    +
    + + + +

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    +
    + + +

    Use == for content comparison and no need to override toString().

    +

    No, == compares memory references, not content.

    +
    + +

    Only override toString() and use == for equality.

    +

    No, you should override equals() to compare content correctly.

    +
    + +

    Java automatically handles content comparison without overrides.

    +

    No, default equals() compares references, not content.

    +
    + +

    Override toString() for printing and override equals() to compare object contents.

    +

    Yes! This improves output and content-based comparison.

    +
    +
    +
    + + + +

    Why does the Fraction class extend the abstract Number class in Java?

    +
    + + +

    To require implementation of methods like intValue() and allow Fraction to be used wherever Number is expected.

    +

    Correct! This integrates Fraction into Java’s numeric hierarchy.

    +
    + +

    Because Number implements operator overloading for Fraction.

    +

    No, Java does not support operator overloading.

    +
    + +

    To avoid writing constructors.

    +

    No, constructors are still needed in subclasses.

    +
    + +

    Because Number provides default sorting methods.

    +

    No, sorting is handled by interfaces like Comparable, not Number.

    +
    +
    +
    +
    +
    + \ No newline at end of file From 758bf7908bad15acca86597a2a052793cc143763 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Tue, 5 Aug 2025 15:42:47 -0400 Subject: [PATCH 144/448] fixes the second code block in 8.3. issue #102 --- source/ch8_filehandling.ptx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 4609482..e89021f 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -291,10 +291,25 @@ - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner;// Code generated on: 2025-08-05 + public class Main { + public static void main(String[] args) { + // This 'try-with-resources' statement handles opening the file + // and guarantees it is closed automatically, which is best practice. + try (Scanner fileReader = new Scanner(new File("myfile.txt"))) { - + // If this line is reached, the file was opened successfully. + System.out.println("Success! The file 'myfile.txt' is now open."); + + } catch (FileNotFoundException e) { + + // This block runs only if 'myfile.txt' does not exist. + System.out.println("Error: The file 'myfile.txt' could not be found."); + } + } + } From 892048e4990bca1e857e6965f969bd02b337c98e Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Tue, 5 Aug 2025 15:49:19 -0400 Subject: [PATCH 145/448] Adds a working active code for the first code block. Issue #102 --- source/ch8_filehandling.ptx | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index e89021f..3378995 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -275,11 +275,22 @@ import java.io.File; import java.io.FileNotFoundException; - import java.util.Scanner; + import java.util.Scanner;// Code generated on: 2025-08-05 + public class Main { + public static void main(String[] args) { - public class ReadFile { - public static void main(String[] args) { - + // This 'try-with-resources' statement handles opening the file + // and guarantees it is closed automatically, which is best practice. + try (Scanner fileReader = new Scanner(new File("myfile.txt"))) { + + // If this line is reached, the file was opened successfully. + System.out.println("Success! The file 'myfile.txt' is now open."); + + } catch (FileNotFoundException e) { + + // This block runs only if 'myfile.txt' does not exist. + System.out.println("Error: The file 'myfile.txt' could not be found."); + } } } @@ -314,7 +325,7 @@

    - The next lines consists of a Python code examplethat reads each line of the file passed to the Scanner object.: + The next lines consists of a Python code example that reads each line of the file passed to the Scanner object.:

    @@ -406,7 +417,7 @@ import java.io.File; import java.io.FileNotFoundException; - import java.util.Scanner + import java.util.Scanner; public class ReadFile { public static void main(String[] args) { From aaa5fc18783c4b70bd437cedec24ede946272cac Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Tue, 5 Aug 2025 15:50:05 -0400 Subject: [PATCH 146/448] Added Summary and Reading Questions section to Chapter 4 --- source/ch3_javadatatypes.ptx | 4 +- source/ch4_conditionals.ptx | 138 +++++++++++++++++++++++++++++++++++ 2 files changed, 140 insertions(+), 2 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index ab3a790..b0b41ec 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -788,7 +788,7 @@ public class HistoMap { Improve the program above to remove the punctuation.

    -
    +
    Summary & Reading Questions

    1. @@ -813,7 +813,7 @@ public class HistoMap {

      Maps (HashMap and TreeMap) are Java's equivalent to Python dictionaries for storing key-value pairs.

    - +

    What is the correct way to declare an ArrayList that will hold String objects in Java?

    diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 6a38a39..6066ee1 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -310,5 +310,143 @@ Using this operator can make code shorter and more readable in cases where a sim

    +
    +
    + Summary & Reading Questions +

      +
    1. +

      Java requires parentheses around the condition and curly braces for code blocks in if statements, unlike Python which uses indentation alone.

      +
    2. +
    3. +

      Java uses else if instead of Python's elif, and allows optional curly braces for single-line blocks.

      +
    4. +
    5. +

      Java includes a switch statement for checking equality against constant values, which can replace long if-else chains for specific scenarios.

      +
    6. +
    7. +

      + Java uses the boolean data type to represent logical values true or false, commonly used in conditionals and control flow. +

      +
    8. +

    + + + +

    Which is a correct Java if statement syntax?

    +
    + + + +

    if (x > 0) { System.out.println("Positive"); }

    +
    + +

    Correct! Java requires parentheses and curly braces.

    +
    +
    + + +

    if x > 0: print("Positive")

    +
    + +

    No, that's Python syntax, not Java.

    +
    +
    + + +

    if x > 0 { System.out.println("Positive"); }

    +
    + +

    No, Java requires parentheses around the condition.

    +
    +
    + + +

    if (x > 0) print("Positive");

    +
    + +

    No, print is not a valid method in Java. Use System.out.println.

    +
    +
    +
    +
    + + +

    How do you write Python’s elif equivalent in Java?

    +
    + + + +

    elif (score > 90)

    +
    + +

    No, elif is used in Python, not Java.

    +
    +
    + + +

    else: if (score > 90)

    +
    + +

    Incorrect syntax; no colon in Java and not the right structure.

    +
    +
    + + +

    else if (score > 90)

    +
    + +

    Right! Java uses else if.

    +
    +
    + + +

    ifelse (score > 90)

    +
    + +

    No, ifelse is not a valid construct in Java.

    +
    +
    +
    +
    + + +

    What is one limitation of Java's switch statement?

    +
    + + + +

    It allows complex boolean expressions in case statements.

    +
    + +

    No, switch does not support complex expressions like if does.

    +
    +
    + + +

    It can be used with any type of object, including null.

    +
    + +

    No, using null in switch causes a runtime error.

    +
    +
    + + +

    It supports dynamic pattern matching by default.

    +
    + +

    No, Java switch supports limited pattern matching starting only in later versions.

    +
    +
    + + +

    It can only compare a variable to constant values using equality.

    +
    + +

    Correct! switch is limited to constant comparisons only.

    +
    +
    +
    +
    +
    \ No newline at end of file From 0173e451ab9fdd1ca226b102fa02dc59db7c0e59 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Tue, 5 Aug 2025 15:57:40 -0400 Subject: [PATCH 147/448] fixes all code in 8.3.fixed mistake due to not being able to build. issue #102 --- source/ch8_filehandling.ptx | 67 ++++++++++++++++++++----------------- 1 file changed, 37 insertions(+), 30 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 3378995..7de97b2 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -275,21 +275,20 @@ import java.io.File; import java.io.FileNotFoundException; - import java.util.Scanner;// Code generated on: 2025-08-05 - public class Main { - public static void main(String[] args) { - - // This 'try-with-resources' statement handles opening the file - // and guarantees it is closed automatically, which is best practice. - try (Scanner fileReader = new Scanner(new File("myfile.txt"))) { - - // If this line is reached, the file was opened successfully. - System.out.println("Success! The file 'myfile.txt' is now open."); - - } catch (FileNotFoundException e) { - - // This block runs only if 'myfile.txt' does not exist. - System.out.println("Error: The file 'myfile.txt' could not be found."); + import java.util.Scanner;public class Main { + public static void main(String[] args) { + try { + File myFile = new File("myfile.txt"); + Scanner fileReader = new Scanner(myFile); + System.out.println("Reading from file: " + myFile.getName()); + while (fileReader.hasNextLine()) { + String data = fileReader.nextLine(); + System.out.println(data); + } + fileReader.close(); // Close the scanner to release the file + } catch (FileNotFoundException e) { + System.out.println("An error occurred: The file was not found."); + e.printStackTrace(); } } } @@ -304,7 +303,7 @@ import java.io.File; import java.io.FileNotFoundException; - import java.util.Scanner;// Code generated on: 2025-08-05 + import java.util.Scanner; public class Main { public static void main(String[] args) { // This 'try-with-resources' statement handles opening the file @@ -346,18 +345,15 @@ import java.io.FileNotFoundException; import java.util.Scanner;public class Main { public static void main(String[] args) { - try { - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - System.out.println("Reading from file: " + myFile.getName()); + String filename = "myfile.txt"; + try (Scanner fileReader = new Scanner(new File(filename))) { while (fileReader.hasNextLine()) { String data = fileReader.nextLine(); System.out.println(data); } - fileReader.close(); // Close the scanner to release the file - } catch (FileNotFoundException e) { - System.out.println("An error occurred: The file was not found."); - e.printStackTrace(); + } + catch (FileNotFoundException e) { + System.out.println("Error: The file '" + filename + "' was not found."); } } } @@ -374,12 +370,23 @@ - String data = ""; - while (fileReader.hasNextLine()) { - data = data + fileReader.nextLine() + System.lineSeparator(); - } - System.out.println(data); - fileReader.close(); + import java.io.File; + import java.io.FileNotFoundException; + import java.util.Scanner;public class Main { + public static void main(String[] args) { + String filename = "myfile.txt"; + try (Scanner fileReader = new Scanner(new File(filename))) { + String data = ""; + while (fileReader.hasNextLine()) { + data = data + fileReader.nextLine() + System.lineSeparator(); + } + System.out.println(data); + } + catch (FileNotFoundException e) { + System.out.println("Error: The file '" + filename + "' was not found."); + } + } + } From cfc4bef3eab1496a2e98e693935137b06db2d5de Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 09:52:40 -0400 Subject: [PATCH 148/448] improve summary and questions --- source/ch6_definingclasses.ptx | 269 +++++++++++++++------------------ 1 file changed, 124 insertions(+), 145 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 2d97e94..77547dc 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -1013,150 +1013,129 @@ public class Fraction extends Number implements Comparable<Fraction> {
    -
    - Summary & Reading Questions -

      -
    1. -

      In Java, instance variables must be declared at the top of the class, unlike Python which allows dynamic creation of instance variables anywhere.

      -
    2. -
    3. -

      Java uses access modifiers like private to enforce encapsulation, encouraging data hiding and controlled access through getter and setter methods.

      -
    4. -
    5. -

      Java requires a separate constructor method to initialize objects, using the class name and defining parameters explicitly, whereas Python uses the __init__ method.

      -
    6. -
    7. -

      Every Java class inherits from the Object class, which provides default methods like toString() and equals(). Overriding toString() allows for more meaningful output when printing objects (similar to Python’s __str__).

      -
    8. -
    9. -

      Java’s equals() method checks object equivalence based on memory reference by default. To compare objects based on content (like Fraction values), you must override equals() and use it directly — object1.equals(object2) is not the same as object1 == object2.

      -
    10. -
    11. -

      Java supports inheritance through abstract classes like Number, which require subclasses (like Fraction) to implement specific methods such as intValue(), doubleValue(), etc., allowing Fraction to be used where a Number is expected.

      -
    12. -

    - - - - -

    How must instance variables be declared in Java compared to Python?

    -
    - - -

    They can be created dynamically anywhere in the class like Python.

    -

    No, Java does not allow dynamic creation of instance variables.

    -
    - -

    Instance variables are declared inside methods only.

    -

    No, instance variables belong to the class and are declared outside methods.

    -
    - -

    They must be declared at the top of the class before use.

    -

    Correct! Java requires upfront declaration of instance variables.

    -
    - -

    Java does not use instance variables.

    -

    No, instance variables are fundamental in Java classes.

    -
    -
    -
    - - - -

    What Java feature encourages encapsulation and controlled access to instance variables?

    -
    - - -

    Declaring all variables as public.

    -

    No, that would expose data and reduce encapsulation.

    -
    - -

    Using access modifiers like private and providing getter/setter methods.

    -

    Right! This is how Java enforces encapsulation.

    -
    - -

    Using global variables.

    -

    No, Java does not support global variables and this reduces encapsulation.

    -
    - -

    Avoiding the use of classes altogether.

    -

    No, encapsulation is a class-based concept in Java.

    -
    -
    -
    - - - -

    How does Java initialize objects differently than Python?

    -
    - - -

    Java uses a constructor method named after the class with explicit parameters.

    -

    Correct! Unlike Python's __init__, Java constructors share the class name.

    -
    - -

    Java uses the __init__ method like Python.

    -

    No, Java does not have __init__.

    -
    - -

    Java initializes objects automatically without constructors.

    -

    No, Java requires constructors for explicit initialization.

    -
    - -

    Java uses global initialization functions instead of constructors.

    -

    No, Java uses constructors, not global functions, for object initialization.

    -
    -
    -
    - - - -

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    -
    - - -

    Use == for content comparison and no need to override toString().

    -

    No, == compares memory references, not content.

    -
    - -

    Only override toString() and use == for equality.

    -

    No, you should override equals() to compare content correctly.

    -
    - -

    Java automatically handles content comparison without overrides.

    -

    No, default equals() compares references, not content.

    -
    - -

    Override toString() for printing and override equals() to compare object contents.

    -

    Yes! This improves output and content-based comparison.

    -
    -
    -
    - - - -

    Why does the Fraction class extend the abstract Number class in Java?

    -
    - - -

    To require implementation of methods like intValue() and allow Fraction to be used wherever Number is expected.

    -

    Correct! This integrates Fraction into Java’s numeric hierarchy.

    -
    - -

    Because Number implements operator overloading for Fraction.

    -

    No, Java does not support operator overloading.

    -
    - -

    To avoid writing constructors.

    -

    No, constructors are still needed in subclasses.

    -
    - -

    Because Number provides default sorting methods.

    -

    No, sorting is handled by interfaces like Comparable, not Number.

    -
    -
    -
    -
    -
    +
    + Summary & Reading Questions +

      +
    1. +

      In Java, instance variables (fields) must be declared in the class body before they are used. Unlike Python, you cannot dynamically add new instance variables to an object at runtime.

      +
    2. +
    3. +

      Java uses access modifiers like private to enforce encapsulation, encouraging data hiding and controlled access through getter and setter methods.

      +
    4. +
    5. +

      Java requires a constructor method to initialize objects. A constructor has the same name as the class and defines its parameters explicitly, whereas Python uses the __init__ method.

      +
    6. +
    7. +

      Every Java class inherits from the Object class, which provides default methods like toString() and equals(). Overriding toString() gives more meaningful output when printing objects (similar to Python’s __str__).

      +
    8. +
    9. +

      By default, Java’s equals() method checks reference equality, just like == for objects. To compare objects based on content (like Fraction values), you must override equals() and call it explicitly.

      +
    10. +
    11. +

      Java supports inheritance through abstract classes (like Number) and interfaces. Extending an abstract class requires implementing its abstract methods, allowing objects like Fraction to be used where a Number is expected.

      +
    12. +

    + + + + + +

    How are instance variables declared in Java compared to Python?

    +
    + + +

    They can be created dynamically anywhere in the class like Python.

    +

    No, Java does not allow dynamic creation of instance variables at runtime.

    +
    + +

    Instance variables are declared inside methods only.

    +

    No, instance variables are declared in the class body, not in methods.

    +
    + +

    They must be declared in the class body before use.

    +

    Correct! Java requires instance variables (fields) to be declared in the class body.

    +
    + +

    Java does not use instance variables.

    +

    No, instance variables are fundamental in Java classes.

    +
    +
    +
    + + + +

    What Java feature encourages encapsulation and controlled access to instance variables?

    +
    + + +

    Declaring all variables as public.

    +

    No, that would expose data and reduce encapsulation.

    +
    + +

    Using access modifiers like private and providing getter/setter methods.

    +

    Right! This is how Java enforces encapsulation.

    +
    + +

    Using global variables.

    +

    No, Java does not support global variables and this reduces encapsulation.

    +
    + +

    Avoiding the use of classes altogether.

    +

    No, encapsulation is a class-based concept in Java.

    +
    +
    +
    + + + +

    How does Java initialize objects differently than Python?

    +
    + + +

    Java uses a constructor method named after the class with explicit parameters.

    +

    Correct! Unlike Python's __init__, Java constructors share the class name.

    +
    + +

    Java uses the __init__ method like Python.

    +

    No, Java does not have __init__.

    +
    + +

    Java initializes objects automatically without constructors.

    +

    No, Java requires constructors for explicit initialization.

    +
    + +

    Java uses global initialization functions instead of constructors.

    +

    No, Java uses constructors, not global functions, for object initialization.

    +
    +
    +
    + + + +

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    +
    + + +

    Use == for content comparison and no need to override toString().

    +

    No, == compares memory references, not content.

    +
    + +

    Only override toString() and use == for equality.

    +

    No, you should override equals() to compare content correctly.

    +
    + +

    Java automatically handles content comparison without overrides.

    +

    No, default equals() compares references, not content.

    +
    + +

    Override toString() for printing and override equals() to compare object contents.

    +

    Yes! This improves output and content-based comparison.

    +
    +
    +
    + +
    +
    + \ No newline at end of file From e45a743a33259c1d970fce98cd4066121f433898 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 09:55:51 -0400 Subject: [PATCH 149/448] clarify question --- source/ch6_definingclasses.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 77547dc..78d27f0 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -1112,7 +1112,7 @@ public class Fraction extends Number implements Comparable<Fraction> { -

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    +

    What must you do in Java to print objects in a readable way and compare two objects based on their contents rather than their memory references?

    From 09056ac14c64b09542b84328248d7f23805abbe3 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 11:28:24 -0400 Subject: [PATCH 150/448] adds working code block in 8.1 and partial fix for 8.2. Issue #102 --- source/ch8_filehandling.ptx | 99 +++++++++++++++++-------------------- 1 file changed, 46 insertions(+), 53 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 7de97b2..0fd0e4e 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -17,10 +17,20 @@

    Java has several libraries included for file handling, though, they must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File.

    - import java.io.File; + import java.io.IOException;public class Main { + public static void main(String[] args) { + try { + File myFile = new File("newfile.txt"); + myFile.createNewFile(); + System.out.println("File Made."); + } catch (IOException e) { + System.out.println("An error occurred."); + } + } + } @@ -28,37 +38,29 @@ The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    - - - import java.util.Scanner; - - +
    +            import java.util.Scanner; 
    +        

    The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file.

    - - +
                 import java.io.FileWriter;
    -             
    -        
    +        

    Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files.

    - - +
                 import java.io.IOException;
    -             
    -        
    +        
    - - - import java.io.FileNotFoundException - - +
    +            import java.io.FileNotFoundException 
    +        
    @@ -68,10 +70,19 @@

    We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile.

    - + +
    +                    empty file
    +                
    +
    - File myFile = new File("myfile.txt"); + import java.io.File;public class Main { + public static void main(String[] args) { + File myFile = new File("myfile.txt"); + System.out.println(myFile); + } + } @@ -88,19 +99,22 @@

    First, lets look at the equivalent Python code:

    - + +
    +                    empty file
    +                
    +
    - import os - - filename = "myfile.txt" - - if not os.path.exists(filename): - with open(filename, 'x') as f: - pass - print(f"The file {filename} was created successfully.") - else: - print(f"The file {filename} already exists.") + filename = "newfile.txt" + print(f"Attempting to write to '{filename}' using 'w' mode...") + try: + with open(filename, 'w') as f: + f.write("This file was created using 'w' mode.") + print(f"SUCCESS: The file '{filename}' was created or overwritten.") + except Exception as e: + # This would only catch other unexpected errors + print(f"An unexpected error occurred during write: {e}") @@ -135,27 +149,6 @@ The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class.

    - - - try { - if (myFile.createNewFile()) { // If the file was created successfully - System.out.println("The file " + myFile.getName() + " was created sucessfully."); - } else { // If a file with the file name chosen already exists - System.out.println("The file " + myFile.getName() + " already exists."); - } - } catch (IOException e) { - System.out.println("An error occurred."); - e.printStackTrace(); - } - - - - -

    - The IOException e part in the parenthesis next to the catch. This creates a variable called e that refers to an IOException object. In other words, e refers to the error created if the try block fails. The line e.printStackTrace(); prints the stack trace to the console. This is what the console may output if the program tries to create a file, but is blocked by the operating system due to insufficient permissions: -

    -
    - An error occurred. From e6bc43a1244798a5ac97e0f128a9964c7b5a8dcb Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 11:33:40 -0400 Subject: [PATCH 151/448] Added a class definition. Will add interactive code that uses this class to create an object. --- source/ch2_firstjavaprogram.ptx | 62 +++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index a485e61..e53fb37 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -3,6 +3,68 @@ Lets look at a Java Program + +
    + Classes and Objects + +

    + Depending on how deep your knowledge is of Python and programming in general, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. +

    + +

    + Objects in the context of programming are instances of classes. Objects contain attributes, which are details that describe the object, and methods, which are things the object can do. +

    + +

    + Classes can be thought of as being similar to blueprints or a recipe; they hold details of how to create an instance of an object. Classes contain a special method called a constructor that is used to create an instance of an object. Once the object is created, it will use the class definition to define its attributes and call methods. +

    + +

    + The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python: +

    + + + + class Dog: + def __init__(self, name, breed, fur_color): + self.name = name + self.breed = breed + self.fur_color = fur_color + self.trained = False + + def bark(self): + print(f"{self.name} says woof!") + + def sit(self): + if self.trained: + print(f"{self.name} sits") + else: + print(f"{self.name} has not been trained.") + + def train(self): + self.trained = True + + + +

    + Let's unpack what is going on in this code. The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is not defined and is initialized as False. +

    + +

    + The next three blocks of code are the class's methods. These include bark(self), sit(self), and train(self). As you can see, the class defines attributes (the variables in the __init__ method) and methods for instances of the Dog class. +

    + +

    + Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog: +

    + + + + + + + +
    Lets look at a Java Program

    From 3b1ecd23ffeaf579ed77334f43b669cbea9d43f4 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 11:49:31 -0400 Subject: [PATCH 152/448] finnished adding code to 8.2, but it still needs tested. added some to 8.4 as well. Issue #102 --- source/ch8_filehandling.ptx | 58 ++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 0fd0e4e..d913675 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -457,12 +457,28 @@ + import java.io.File; import java.io.FileWriter; import java.io.IOException; - - public class WriteFile { + import java.util.Scanner; + public class Main { public static void main(String[] args) { - + String filename = "test_file.txt"; + try (FileWriter writer = new FileWriter(filename)) { + writer.write("This line was written by the program."); + System.out.println("Successfully wrote to the file."); + } + catch (IOException e) { + System.out.println("An error occurred during writing."); + } System.out.println("--- Reading file back ---"); + try (Scanner reader = new Scanner(new File(filename))) { + while (reader.hasNextLine()) { + System.out.println(reader.nextLine()); + } + } + catch (IOException e) { + System.out.println("An error occurred during reading."); + } } } @@ -472,22 +488,18 @@ Next, we will create a FileWriter object. Let's call it myWriter:

    - - +
                 FileWriter myWriter = new FileWriter("myfile.txt");
    -             
    -        
    +        

    In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types:

    - - +
                 myWriter.write("File successfully updated!");
                 myWriter.close();
    -             
    -        
    +        

    @@ -501,7 +513,7 @@ - with open("filename.txt", "r") as file_reader: + with open("myfile.txt", "r") as file_reader: while True: line = file_reader.readline() if not line: # End of file @@ -516,14 +528,20 @@ - try { - FileWriter myWriter = new FileWriter("myfile.txt"); - myWriter.write("File successfully updated!"); - myWriter.close(); - System.out.println("File successfully written to."); - } catch (IOException e) { - System.out.println("An error occurred."); - e.printStackTrace(); + import java.io.File; + import java.io.IOException; + import java.util.Scanner;public class Main { + public static void main(String[] args) { + String filename = "myfile.txt"; + try (Scanner reader = new Scanner(new File(filename))) { + while (reader.hasNextLine()) { + String line = reader.nextLine(); + System.out.println(line.trim()); + } + } catch (IOException e) { + System.out.println("An error occurred."); + } + } } From c799d3f49b7f2db818c084ce316dd9b66871d892 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 11:50:22 -0400 Subject: [PATCH 153/448] unsaved changes --- source/ch8_filehandling.ptx | 105 +++--------------------------------- 1 file changed, 6 insertions(+), 99 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index d913675..16911b6 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -121,7 +121,11 @@

    Now, let's look at Java code that accomplishes the same task:

    - + +
    +                    empty file
    +                
    +
    import java.io.File; @@ -145,104 +149,7 @@

    -

    - The code may seem complete at this point, but if you remember from the previous section, error handling using the IOException is required for program to compile. Let's utilize best practices and add in try/catch blocks to handle exceptions thrown by the IOException class. -

    - - - - An error occurred. - java.io.IOException: Permission denied - at java.base/java.io.File.createNewFile(File.java:1040) - at CreateFile.main(CreateFile.java:7) - - - - -

    - At this point, the program will function correctly. Let's add the try/catch blocks to the foundational code written before to get a complete program. -

    - -

    - First, the equivalent Python code: -

    - - - - import os - - filename = "myfile.txt" - - try: - if not os.path.exists(filename): - with open(filename, 'x') as f: - pass # Create the file without writing anything - print(f"The file {filename} was created successfully.") - else: - print(f"The file {filename} already exists.") - except OSError as e: - print("An error occurred.") - import traceback - traceback.print_exc() - - - -

    - Now, the completed Java code: -

    - - - - import java.io.File; - import java.io.IOException; - - public class CreateFile { - public static void main(String[] args) { - try { - File myFile = new File("myfile.txt"); - if (myFile.createNewFile()) { // If the file was created successfully - System.out.println("The file " + myFile.getName() + " was created sucessfully."); - } else { // If a file with the file name chosen already exists - System.out.println("The file " + myFile.getName() + " already exists."); - } - } catch (IOException e) { - System.out.println("An error occurred."); - e.printStackTrace(); - } - - } - } - - - -

    - You may be wondering: "What if I don't want to create a file in the current working directory?" Good question! In Windows environments, you can specify the file path using two back slashes for each back slash in the file path. For each pair of back slashes, the first back slash acts as an escape character. So, if you want to save a file to this directory: -

    - -
    -            C:\Users\UserName\Documents
    -        
    - -

    - The line of code that creates a File object will look like this: -

    - - - - File myFile = new File("C:\\Users\\UserName\\Documents\\myfile.txt"); - - - -

    - If you are working in a Linux or Apple environment, you can simply use the file path with single forward slashes: -

    - - - - File myFile = new File("/home/UserName/Documents/myfile.txt"); - - -
    +
    Reading Files From 207cc7e6892f564b6b0d992bebf79ce40d8de7ae Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 11:52:19 -0400 Subject: [PATCH 154/448] fixed typo --- source/ch8_filehandling.ptx | 1 - 1 file changed, 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 16911b6..bae5ae7 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -345,7 +345,6 @@ } -

    In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt.

    From 486579e19dcc047981b2ebf34b7d82431dab80c1 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 11:57:12 -0400 Subject: [PATCH 155/448] adds datafiles to the first three codeblocks in 8.3. Issue #102 --- source/ch8_filehandling.ptx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index bae5ae7..78d4f6d 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -360,7 +360,11 @@

    Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    - + +
    +                    
    +                
    +
    import java.io.File; @@ -416,7 +420,11 @@

    Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example:

    - + +
    +                    
    +                
    +
    with open("myfile.txt", "r") as file_reader: @@ -431,7 +439,11 @@

    And the equivalent Java code:

    - + +
    +                    
    +                
    +
    import java.io.File; From 0c4d2d5c191ceb2d6fc6bca77d6676fa9b941e98 Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Tue, 5 Aug 2025 15:35:12 -0400 Subject: [PATCH 156/448] Added Summary and Reading Questions section to Chapter 6 --- source/ch6_definingclasses.ptx | 147 +++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 7a95433..2d97e94 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -1012,4 +1012,151 @@ public class Fraction extends Number implements Comparable<Fraction> {
    + +
    + Summary & Reading Questions +

      +
    1. +

      In Java, instance variables must be declared at the top of the class, unlike Python which allows dynamic creation of instance variables anywhere.

      +
    2. +
    3. +

      Java uses access modifiers like private to enforce encapsulation, encouraging data hiding and controlled access through getter and setter methods.

      +
    4. +
    5. +

      Java requires a separate constructor method to initialize objects, using the class name and defining parameters explicitly, whereas Python uses the __init__ method.

      +
    6. +
    7. +

      Every Java class inherits from the Object class, which provides default methods like toString() and equals(). Overriding toString() allows for more meaningful output when printing objects (similar to Python’s __str__).

      +
    8. +
    9. +

      Java’s equals() method checks object equivalence based on memory reference by default. To compare objects based on content (like Fraction values), you must override equals() and use it directly — object1.equals(object2) is not the same as object1 == object2.

      +
    10. +
    11. +

      Java supports inheritance through abstract classes like Number, which require subclasses (like Fraction) to implement specific methods such as intValue(), doubleValue(), etc., allowing Fraction to be used where a Number is expected.

      +
    12. +

    + + + + +

    How must instance variables be declared in Java compared to Python?

    +
    + + +

    They can be created dynamically anywhere in the class like Python.

    +

    No, Java does not allow dynamic creation of instance variables.

    +
    + +

    Instance variables are declared inside methods only.

    +

    No, instance variables belong to the class and are declared outside methods.

    +
    + +

    They must be declared at the top of the class before use.

    +

    Correct! Java requires upfront declaration of instance variables.

    +
    + +

    Java does not use instance variables.

    +

    No, instance variables are fundamental in Java classes.

    +
    +
    +
    + + + +

    What Java feature encourages encapsulation and controlled access to instance variables?

    +
    + + +

    Declaring all variables as public.

    +

    No, that would expose data and reduce encapsulation.

    +
    + +

    Using access modifiers like private and providing getter/setter methods.

    +

    Right! This is how Java enforces encapsulation.

    +
    + +

    Using global variables.

    +

    No, Java does not support global variables and this reduces encapsulation.

    +
    + +

    Avoiding the use of classes altogether.

    +

    No, encapsulation is a class-based concept in Java.

    +
    +
    +
    + + + +

    How does Java initialize objects differently than Python?

    +
    + + +

    Java uses a constructor method named after the class with explicit parameters.

    +

    Correct! Unlike Python's __init__, Java constructors share the class name.

    +
    + +

    Java uses the __init__ method like Python.

    +

    No, Java does not have __init__.

    +
    + +

    Java initializes objects automatically without constructors.

    +

    No, Java requires constructors for explicit initialization.

    +
    + +

    Java uses global initialization functions instead of constructors.

    +

    No, Java uses constructors, not global functions, for object initialization.

    +
    +
    +
    + + + +

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    +
    + + +

    Use == for content comparison and no need to override toString().

    +

    No, == compares memory references, not content.

    +
    + +

    Only override toString() and use == for equality.

    +

    No, you should override equals() to compare content correctly.

    +
    + +

    Java automatically handles content comparison without overrides.

    +

    No, default equals() compares references, not content.

    +
    + +

    Override toString() for printing and override equals() to compare object contents.

    +

    Yes! This improves output and content-based comparison.

    +
    +
    +
    + + + +

    Why does the Fraction class extend the abstract Number class in Java?

    +
    + + +

    To require implementation of methods like intValue() and allow Fraction to be used wherever Number is expected.

    +

    Correct! This integrates Fraction into Java’s numeric hierarchy.

    +
    + +

    Because Number implements operator overloading for Fraction.

    +

    No, Java does not support operator overloading.

    +
    + +

    To avoid writing constructors.

    +

    No, constructors are still needed in subclasses.

    +
    + +

    Because Number provides default sorting methods.

    +

    No, sorting is handled by interfaces like Comparable, not Number.

    +
    +
    +
    +
    +
    +
    \ No newline at end of file From 789a1c41e7119efa3db8e3c1cadf21851935517f Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 09:52:40 -0400 Subject: [PATCH 157/448] improve summary and questions --- source/ch6_definingclasses.ptx | 269 +++++++++++++++------------------ 1 file changed, 124 insertions(+), 145 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 2d97e94..77547dc 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -1013,150 +1013,129 @@ public class Fraction extends Number implements Comparable<Fraction> {
    -
    - Summary & Reading Questions -

      -
    1. -

      In Java, instance variables must be declared at the top of the class, unlike Python which allows dynamic creation of instance variables anywhere.

      -
    2. -
    3. -

      Java uses access modifiers like private to enforce encapsulation, encouraging data hiding and controlled access through getter and setter methods.

      -
    4. -
    5. -

      Java requires a separate constructor method to initialize objects, using the class name and defining parameters explicitly, whereas Python uses the __init__ method.

      -
    6. -
    7. -

      Every Java class inherits from the Object class, which provides default methods like toString() and equals(). Overriding toString() allows for more meaningful output when printing objects (similar to Python’s __str__).

      -
    8. -
    9. -

      Java’s equals() method checks object equivalence based on memory reference by default. To compare objects based on content (like Fraction values), you must override equals() and use it directly — object1.equals(object2) is not the same as object1 == object2.

      -
    10. -
    11. -

      Java supports inheritance through abstract classes like Number, which require subclasses (like Fraction) to implement specific methods such as intValue(), doubleValue(), etc., allowing Fraction to be used where a Number is expected.

      -
    12. -

    - - - - -

    How must instance variables be declared in Java compared to Python?

    -
    - - -

    They can be created dynamically anywhere in the class like Python.

    -

    No, Java does not allow dynamic creation of instance variables.

    -
    - -

    Instance variables are declared inside methods only.

    -

    No, instance variables belong to the class and are declared outside methods.

    -
    - -

    They must be declared at the top of the class before use.

    -

    Correct! Java requires upfront declaration of instance variables.

    -
    - -

    Java does not use instance variables.

    -

    No, instance variables are fundamental in Java classes.

    -
    -
    -
    - - - -

    What Java feature encourages encapsulation and controlled access to instance variables?

    -
    - - -

    Declaring all variables as public.

    -

    No, that would expose data and reduce encapsulation.

    -
    - -

    Using access modifiers like private and providing getter/setter methods.

    -

    Right! This is how Java enforces encapsulation.

    -
    - -

    Using global variables.

    -

    No, Java does not support global variables and this reduces encapsulation.

    -
    - -

    Avoiding the use of classes altogether.

    -

    No, encapsulation is a class-based concept in Java.

    -
    -
    -
    - - - -

    How does Java initialize objects differently than Python?

    -
    - - -

    Java uses a constructor method named after the class with explicit parameters.

    -

    Correct! Unlike Python's __init__, Java constructors share the class name.

    -
    - -

    Java uses the __init__ method like Python.

    -

    No, Java does not have __init__.

    -
    - -

    Java initializes objects automatically without constructors.

    -

    No, Java requires constructors for explicit initialization.

    -
    - -

    Java uses global initialization functions instead of constructors.

    -

    No, Java uses constructors, not global functions, for object initialization.

    -
    -
    -
    - - - -

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    -
    - - -

    Use == for content comparison and no need to override toString().

    -

    No, == compares memory references, not content.

    -
    - -

    Only override toString() and use == for equality.

    -

    No, you should override equals() to compare content correctly.

    -
    - -

    Java automatically handles content comparison without overrides.

    -

    No, default equals() compares references, not content.

    -
    - -

    Override toString() for printing and override equals() to compare object contents.

    -

    Yes! This improves output and content-based comparison.

    -
    -
    -
    - - - -

    Why does the Fraction class extend the abstract Number class in Java?

    -
    - - -

    To require implementation of methods like intValue() and allow Fraction to be used wherever Number is expected.

    -

    Correct! This integrates Fraction into Java’s numeric hierarchy.

    -
    - -

    Because Number implements operator overloading for Fraction.

    -

    No, Java does not support operator overloading.

    -
    - -

    To avoid writing constructors.

    -

    No, constructors are still needed in subclasses.

    -
    - -

    Because Number provides default sorting methods.

    -

    No, sorting is handled by interfaces like Comparable, not Number.

    -
    -
    -
    -
    -
    +
    + Summary & Reading Questions +

      +
    1. +

      In Java, instance variables (fields) must be declared in the class body before they are used. Unlike Python, you cannot dynamically add new instance variables to an object at runtime.

      +
    2. +
    3. +

      Java uses access modifiers like private to enforce encapsulation, encouraging data hiding and controlled access through getter and setter methods.

      +
    4. +
    5. +

      Java requires a constructor method to initialize objects. A constructor has the same name as the class and defines its parameters explicitly, whereas Python uses the __init__ method.

      +
    6. +
    7. +

      Every Java class inherits from the Object class, which provides default methods like toString() and equals(). Overriding toString() gives more meaningful output when printing objects (similar to Python’s __str__).

      +
    8. +
    9. +

      By default, Java’s equals() method checks reference equality, just like == for objects. To compare objects based on content (like Fraction values), you must override equals() and call it explicitly.

      +
    10. +
    11. +

      Java supports inheritance through abstract classes (like Number) and interfaces. Extending an abstract class requires implementing its abstract methods, allowing objects like Fraction to be used where a Number is expected.

      +
    12. +

    + + + + + +

    How are instance variables declared in Java compared to Python?

    +
    + + +

    They can be created dynamically anywhere in the class like Python.

    +

    No, Java does not allow dynamic creation of instance variables at runtime.

    +
    + +

    Instance variables are declared inside methods only.

    +

    No, instance variables are declared in the class body, not in methods.

    +
    + +

    They must be declared in the class body before use.

    +

    Correct! Java requires instance variables (fields) to be declared in the class body.

    +
    + +

    Java does not use instance variables.

    +

    No, instance variables are fundamental in Java classes.

    +
    +
    +
    + + + +

    What Java feature encourages encapsulation and controlled access to instance variables?

    +
    + + +

    Declaring all variables as public.

    +

    No, that would expose data and reduce encapsulation.

    +
    + +

    Using access modifiers like private and providing getter/setter methods.

    +

    Right! This is how Java enforces encapsulation.

    +
    + +

    Using global variables.

    +

    No, Java does not support global variables and this reduces encapsulation.

    +
    + +

    Avoiding the use of classes altogether.

    +

    No, encapsulation is a class-based concept in Java.

    +
    +
    +
    + + + +

    How does Java initialize objects differently than Python?

    +
    + + +

    Java uses a constructor method named after the class with explicit parameters.

    +

    Correct! Unlike Python's __init__, Java constructors share the class name.

    +
    + +

    Java uses the __init__ method like Python.

    +

    No, Java does not have __init__.

    +
    + +

    Java initializes objects automatically without constructors.

    +

    No, Java requires constructors for explicit initialization.

    +
    + +

    Java uses global initialization functions instead of constructors.

    +

    No, Java uses constructors, not global functions, for object initialization.

    +
    +
    +
    + + + +

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    +
    + + +

    Use == for content comparison and no need to override toString().

    +

    No, == compares memory references, not content.

    +
    + +

    Only override toString() and use == for equality.

    +

    No, you should override equals() to compare content correctly.

    +
    + +

    Java automatically handles content comparison without overrides.

    +

    No, default equals() compares references, not content.

    +
    + +

    Override toString() for printing and override equals() to compare object contents.

    +

    Yes! This improves output and content-based comparison.

    +
    +
    +
    + +
    +
    + \ No newline at end of file From b43db0835831e608b90d9f21913076085339dfa8 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 09:55:51 -0400 Subject: [PATCH 158/448] clarify question --- source/ch6_definingclasses.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 77547dc..78d27f0 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -1112,7 +1112,7 @@ public class Fraction extends Number implements Comparable<Fraction> { -

    What must you do to get meaningful printed output and proper equality comparison for Java objects?

    +

    What must you do in Java to print objects in a readable way and compare two objects based on their contents rather than their memory references?

    From 83f88dd8bbe200551b26039809170c6c81c20510 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 13:12:59 -0400 Subject: [PATCH 159/448] The section on classes and objects is in a draft form at this point. Will make some necessary changes. --- source/ch2_firstjavaprogram.ptx | 111 ++++++++++++++++++++++++++------ 1 file changed, 91 insertions(+), 20 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index e53fb37..b805db6 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -23,31 +23,32 @@ The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python:

    - + class Dog: - def __init__(self, name, breed, fur_color): - self.name = name - self.breed = breed - self.fur_color = fur_color - self.trained = False - - def bark(self): - print(f"{self.name} says woof!") - - def sit(self): - if self.trained: - print(f"{self.name} sits") - else: - print(f"{self.name} has not been trained.") + def __init__(self, name, breed, fur_color): + self.name = name + self.breed = breed + self.fur_color = fur_color + self.trained = False + print("Dog named " + self.name + " created!") + + def bark(self): + print(self.name + " says woof!") - def train(self): - self.trained = True + def sit(self): + if self.trained: + print(self.name + " sits.") + else: + print(self.name + " has not been trained.") + + def train(self): + self.trained = True

    - Let's unpack what is going on in this code. The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is not defined and is initialized as False. + Let's unpack what is going on in this code. The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is not defined and is initialized as False. We can also have the __init__ method run any code, such as a print statement informing us that a Dog object was created.

    @@ -58,11 +59,81 @@ Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog:

    - + - + class Dog: + def __init__(self, name, breed, fur_color): + self.name = name + self.breed = breed + self.fur_color = fur_color + self.trained = False + print("Dog named " + self.name + " created!") + + def bark(self): + print(self.name + " says woof!") + + def sit(self): + if self.trained: + print(self.name + " sits.") + else: + print(self.name + " has not been trained.") + + def train(self): + self.trained = True + + + my_dog = Dog("Rex", "pug", "tan") + + + +

    + In the final line of code, we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to tan. +

    + +

    + Now that we have created a Dog object using the class we defined, we can utilize the class's methods: +

    + + + + class Dog: + def __init__(self, name, breed, fur_color): + self.name = name + self.breed = breed + self.fur_color = fur_color + self.trained = False + print("Dog named " + self.name + " created!") + + def bark(self): + print(self.name + " says woof!") + + def sit(self): + if self.trained: + print(self.name + " sits.") + else: + print(self.name + " has not been trained.") + + def train(self): + self.trained = True + + + my_dog = Dog("Rex", "pug", "tan") + my_dog.bark() + my_dog.sit() + + +

    + When running the code above, the line Rex has not ben trained. will appear in the output when calling the sit() method. Try adding a one or more lines of code so that Rex sits. appears in the output! +

    +
    + +

    + Now, we have a full class definition and have utilized its methods. Class definitions in Java will be covered in chapter 6. For now, it is important to know that Python programs can be entirely written without using classes at all. Java, on the other hand, requires all code to reside in a class. This will be discussed in the next section. +

    + +
    From c3e89a2001c7d07841aee8ba66c15572c3a31ffb Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 13:14:18 -0400 Subject: [PATCH 160/448] added missing end tag to section --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 78d4f6d..a70c0b2 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -148,7 +148,7 @@ You may have noticed the use of another method from the File class; getName(). This method returns a string containing the name of the file.

    - +
    From 7bcec04662dec32e9faa3326c3556b2263e97c7e Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 13:36:21 -0400 Subject: [PATCH 161/448] Made some minor changes and added a paragraph on the use of self in Python classes. --- source/ch2_firstjavaprogram.ptx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index b805db6..1c19e14 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -8,11 +8,11 @@ Classes and Objects

    - Depending on how deep your knowledge is of Python and programming in general, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. + Depending on how deep your knowledge of Python and programming in general is, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. If you already have a good understanding of classes and objects in Python, this section may be skipped.

    - Objects in the context of programming are instances of classes. Objects contain attributes, which are details that describe the object, and methods, which are things the object can do. + Objects in the context of programming are instances of classes. Objects contain attributes, which are data that describe the object or are associated with the object, and methods, which are special functions used by the object. Methods are typically actions the object can perform, or can be used to make changes to the object's attributes.

    @@ -48,13 +48,17 @@

    - Let's unpack what is going on in this code. The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is not defined and is initialized as False. We can also have the __init__ method run any code, such as a print statement informing us that a Dog object was created. + Let's unpack what is going on in this code. The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is defined within the constructor and is initialized as False. We can also have the __init__ method run any code, such as the print statement informing us that a Dog object was created.

    The next three blocks of code are the class's methods. These include bark(self), sit(self), and train(self). As you can see, the class defines attributes (the variables in the __init__ method) and methods for instances of the Dog class.

    +

    + Within each method, and for each attribute, you will notice the use of self. This is required in Python. self simply indicates that an attribute or method is being used for a specific instance of an object created with a class. +

    +

    Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog:

    @@ -82,12 +86,12 @@ self.trained = True - my_dog = Dog("Rex", "pug", "tan") + my_dog = Dog("Rex", "pug", "brown")

    - In the final line of code, we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to tan. + In the final line of code, we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to brown.

    @@ -117,7 +121,7 @@ self.trained = True - my_dog = Dog("Rex", "pug", "tan") + my_dog = Dog("Rex", "pug", "brown") my_dog.bark() my_dog.sit() @@ -130,7 +134,7 @@

    - Now, we have a full class definition and have utilized its methods. Class definitions in Java will be covered in chapter 6. For now, it is important to know that Python programs can be entirely written without using classes at all. Java, on the other hand, requires all code to reside in a class. This will be discussed in the next section. + Now, we have a full class definition and have utilized its methods. Class definitions in Java will be covered thoroughly in chapter 6. For now, it is important to know that Python programs can be written without using classes at all. Java, on the other hand, requires all code to reside in a class. This will be discussed in the next section.

    From b35295faa8e5b42e5e8bad3332ae78792167c626 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 13:37:25 -0400 Subject: [PATCH 162/448] 8.4 all codeblocks work in an ide, and added data files to each code block. --- source/ch8_filehandling.ptx | 50 +++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index a70c0b2..bf778c0 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -467,7 +467,11 @@

    And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

    - + +
    +                    
    +                
    +
    try: @@ -484,7 +488,11 @@

    The completed Java code:

    - + +
    +                    
    +                
    +
    import java.io.FileWriter; @@ -520,16 +528,18 @@ Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument:

    - - +
                 FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode
    -             
    -        
    +        

    Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument:

    - + +
    +                    
    +                
    +
    import java.io.FileWriter; @@ -555,44 +565,36 @@ Then if we run the program twice, the contents of myfile.txt would be:

    - - +
                 File successfully updated!File successfully updated!
    -             
    -        
    +        

    This doesn't look very good! If we want each additional write to appear on a new line? The first solution may be to use the \n newline character:

    - - +
                 myWriter.write("File successfully updated!\n"); // Added newline character 
    -            myWriter.close();
    -             
    -        
    +            myWriter.close(); 
    +        

    The System.lineseseparator() method is a better solution. This method returns the system's default line separator, which is platform-dependent. For example, on Windows, it returns \n, while on Linux and macOS, it returns \n. Using this method ensures that your code works correctly across different operating systems:

    - - +
                 myWriter.write("File successfully updated!" + System.lineseparator()); // Added newline character 
                 myWriter.close();
    -             
    -        
    +        

    Running it twice will result in the following contents in myfile.txt:

    - - +
                 File successfully updated!
                 File successfully updated!
    -             
    -        
    +        
    From 16a6c782cda6a5f55e7ecd940cd8a798e55c8dbb Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 13:55:24 -0400 Subject: [PATCH 163/448] fixed missbehaving python block --- source/ch8_filehandling.ptx | 38 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index bf778c0..cea1792 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -360,11 +360,7 @@

    Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    - -
    -                    
    -                
    -
    + import java.io.File; @@ -420,37 +416,39 @@

    Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example:

    - +
    -                    
    +                    1
    +                    2
    +                    3
                     
    - + - with open("myfile.txt", "r") as file_reader: - while True: - line = file_reader.readline() - if not line: # End of file - break - print(line.strip()) + with open("myfile8-4-2.txt", "r") as file_reader: + while True: + line = file_reader.readline() + if not line: # End of file + break + print(line.strip())

    And the equivalent Java code:

    - +
                         
                     
    - + import java.io.File; import java.io.IOException; import java.util.Scanner;public class Main { public static void main(String[] args) { - String filename = "myfile.txt"; + String filename = "myfile8-4-3.txt"; try (Scanner reader = new Scanner(new File(filename))) { while (reader.hasNextLine()) { String line = reader.nextLine(); @@ -472,7 +470,7 @@
    - + try: with open("myfile.txt", "w") as my_writer: @@ -493,7 +491,7 @@
    - + import java.io.FileWriter; import java.io.IOException; @@ -540,7 +538,7 @@ - + import java.io.FileWriter; import java.io.IOException; From d93f2ae293172c582d60498f2fa726aae06e00a2 Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Wed, 6 Aug 2025 14:00:50 -0400 Subject: [PATCH 164/448] Made the answers for Question 3 harder --- source/ch4_conditionals.ptx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 6066ee1..256595f 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -415,26 +415,26 @@ Using this operator can make code shorter and more readable in cases where a sim -

    It allows complex boolean expressions in case statements.

    +

    It cannot evaluate relational expressions like greater than or less than.

    -

    No, switch does not support complex expressions like if does.

    +

    No, while switch can compare values, it does not support relational expressions like > or <.

    -

    It can be used with any type of object, including null.

    +

    It cannot handle more than five case labels.

    -

    No, using null in switch causes a runtime error.

    +

    No, there is no such limit. You can have many case labels in a switch statement.

    -

    It supports dynamic pattern matching by default.

    +

    It allows fall-through behavior when break is omitted.

    -

    No, Java switch supports limited pattern matching starting only in later versions.

    +

    Incorrect. This is actually a feature of switch, not a limitation.

    @@ -442,7 +442,7 @@ Using this operator can make code shorter and more readable in cases where a sim

    It can only compare a variable to constant values using equality.

    -

    Correct! switch is limited to constant comparisons only.

    +

    Correct! Java's switch is limited to constant comparisons using equality.

    From 3c546399d6241578a408a81247e0dd80064f8808 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 14:26:14 -0400 Subject: [PATCH 165/448] Added index terms to the new section 2.1 and removed duplicates from chapter 6. --- source/ch2_firstjavaprogram.ptx | 40 ++++++++++++++++++++------------- source/ch6_definingclasses.ptx | 2 -- 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 1c19e14..12d4b68 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -8,15 +8,22 @@ Classes and Objects

    - Depending on how deep your knowledge of Python and programming in general is, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. If you already have a good understanding of classes and objects in Python, this section may be skipped. + Object-Oriented Programming (OOP) + Depending on how deep your knowledge of Python and programming in general is, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. If you already have a good understanding of classes and objects in Python, this section may be skipped.

    - Objects in the context of programming are instances of classes. Objects contain attributes, which are data that describe the object or are associated with the object, and methods, which are special functions used by the object. Methods are typically actions the object can perform, or can be used to make changes to the object's attributes. + object + attribute + instance variable + method + Objects in the context of programming are instances of classes. Objects contain attributes (also referred to as instance variables), which are data that describe the object or are associated with the object, and methods, which are special functions used by the object. Methods are typically actions the object can perform, or can be used to make changes to the object's attributes.

    - Classes can be thought of as being similar to blueprints or a recipe; they hold details of how to create an instance of an object. Classes contain a special method called a constructor that is used to create an instance of an object. Once the object is created, it will use the class definition to define its attributes and call methods. + class + constructor + Classes can be thought of as being similar to blueprints or a recipe; they hold details of how to create an instance of an object. Classes contain a special method called a constructor that is used to create an instance of an object. Once the object is created, it will use the class definition to define its attributes and call methods.

    @@ -31,16 +38,16 @@ self.breed = breed self.fur_color = fur_color self.trained = False - print("Dog named " + self.name + " created!") + print(f"Dog named {self.name} created!") def bark(self): - print(self.name + " says woof!") + print(f"{self.name} says woof!") def sit(self): if self.trained: - print(self.name + " sits.") + print(f"{self.name} sits.") else: - print(self.name + " has not been trained.") + print(f"{self.name} has not been trained.") def train(self): self.trained = True @@ -56,7 +63,8 @@

    - Within each method, and for each attribute, you will notice the use of self. This is required in Python. self simply indicates that an attribute or method is being used for a specific instance of an object created with a class. + self + Within each method, and for each attribute, you will notice the use of self. This is required in Python. self simply indicates that an attribute or method is being used for a specific instance of an object created with a class.

    @@ -71,16 +79,16 @@ self.breed = breed self.fur_color = fur_color self.trained = False - print("Dog named " + self.name + " created!") + print(f"Dog named {self.name} created!") def bark(self): - print(self.name + " says woof!") + print(f"{self.name} says woof!") def sit(self): if self.trained: - print(self.name + " sits.") + print(f"{self.name} sits.") else: - print(self.name + " has not been trained.") + print(f"{self.name} has not been trained.") def train(self): self.trained = True @@ -106,16 +114,16 @@ self.breed = breed self.fur_color = fur_color self.trained = False - print("Dog named " + self.name + " created!") + print(f"Dog named {self.name} created!") def bark(self): - print(self.name + " says woof!") + print(f"{self.name} says woof!") def sit(self): if self.trained: - print(self.name + " sits.") + print(f"{self.name} sits.") else: - print(self.name + " has not been trained.") + print(f"{self.name} has not been trained.") def train(self): self.trained = True diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 7a95433..45e2d8c 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -191,7 +191,6 @@ public void setDenominator(Integer denominator) { Writing a constructor

    - constructors Once you have identified the instance variables for your class the next thing to consider is the constructor. In Java, constructors have the same name as the class and are declared public. They are declared without a return type. @@ -498,7 +497,6 @@ Fraction@6ff3c5b5 The <c>Object</c> Class

    - object class toString In Java, the equivalent of __str__ is the toString method. Every object in Java already has a toString method defined for it because every class in Java automatically inherits from the Object class. From a96e7d7a826bc8f89c985b5eaf9d6d9531990031 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 14:56:50 -0400 Subject: [PATCH 166/448] Added xml ids to each code block. --- source/ch2_firstjavaprogram.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 12d4b68..4b3da63 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -30,7 +30,7 @@ The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -71,7 +71,7 @@ Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -106,7 +106,7 @@ Now that we have created a Dog object using the class we defined, we can utilize the class's methods:

    - + class Dog: def __init__(self, name, breed, fur_color): From be3d9f7f8e744440869c2af60e5b6883123c2c8d Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 15:30:27 -0400 Subject: [PATCH 167/448] correct older Java statements --- source/ch4_conditionals.ptx | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 256595f..1f2a59b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -318,10 +318,13 @@ Using this operator can make code shorter and more readable in cases where a sim

    Java requires parentheses around the condition and curly braces for code blocks in if statements, unlike Python which uses indentation alone.

  31. -

    Java uses else if instead of Python's elif, and allows optional curly braces for single-line blocks.

    +

    Java uses else if instead of Python's elif, and allows optional curly braces for single-line blocks. However, it is considered good practice to use curly braces even for single-line blocks to improve readability.

  32. -

    Java includes a switch statement for checking equality against constant values, which can replace long if-else chains for specific scenarios.

    +

    + Java's switch statement is similar to Python's match statement, but it only supports equality checks against constant values and does not evaluate relational expressions like greater than or less than. +

    +
  33. @@ -408,9 +411,9 @@ Using this operator can make code shorter and more readable in cases where a sim - + -

    What is one limitation of Java's switch statement?

    +

    What is one limitation of Java's switch statement, including in its modern versions?

    @@ -418,7 +421,7 @@ Using this operator can make code shorter and more readable in cases where a sim

    It cannot evaluate relational expressions like greater than or less than.

    -

    No, while switch can compare values, it does not support relational expressions like > or <.

    +

    No, while switch can compare values, it does not support relational expressions like > or <, even with modern enhancements of Java 14+

    @@ -431,10 +434,10 @@ Using this operator can make code shorter and more readable in cases where a sim -

    It allows fall-through behavior when break is omitted.

    +

    It always requires a break statement.

    -

    Incorrect. This is actually a feature of switch, not a limitation.

    +

    Incorrect. The break statement is actually an optional feature of switch, not a limitation.

    From d929770b140fa8fb4364c3f8ad2b10c1d8535338 Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Wed, 6 Aug 2025 15:33:17 -0400 Subject: [PATCH 168/448] Added Summary and Reanding Questions section to chapter 8 --- source/ch8_filehandling.ptx | 140 ++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index cea1792..fa5aa72 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -624,4 +624,144 @@

  34. +
    + Summary & Reading Questions +

      +
    1. +

      To work with files in Java, you must import specific classes like java.io.File, java.io.FileWriter, and handle exceptions such as IOException.

      +
    2. +
    3. +

      You can create a new file using File.createNewFile(), which returns true if the file is created and false if it already exists.

      +
    4. +
    5. +

      Reading from files is done using a Scanner attached to a File, often with a loop using hasNextLine() and nextLine().

      +
    6. +
    7. +

      To write to a file, use a FileWriter object and call methods like write() and close() to save and finish the output.

      +
    8. +
    9. +

      You can delete a file using the delete() method on a File object, which returns true if successful.

      +
    10. +

    + + + +

    Which import is needed to create and manipulate files in Java?

    +
    + + + +

    import java.util.File;

    +
    + +

    No, File is part of the java.io package, not java.util.

    +
    +
    + + +

    import java.io.File;

    +
    + +

    Correct! File is found in the java.io package.

    +
    +
    + + +

    import java.file.Input;

    +
    + +

    No, this is not a valid import for file operations.

    +
    +
    + + +

    import java.system.io.*;

    +
    + +

    No, there is no such package in Java.

    +
    +
    +
    +
    + + +

    What does myFile.createNewFile() return if the file already exists?

    +
    + + + +

    It throws an exception.

    +
    + +

    No, it only throws an exception for access errors, not for existing files.

    +
    +
    + + +

    false

    +
    + +

    Correct! It returns false if the file already exists.

    +
    +
    + + +

    true

    +
    + +

    No, true is returned only when the file is successfully created.

    +
    +
    + + +

    null

    +
    + +

    No, null is not a valid return value for this method.

    +
    +
    +
    +
    + + +

    Which method checks if a file has more lines to read using a Scanner?

    +
    + + + +

    nextLine()

    +
    + +

    No, nextLine() retrieves the next line, but does not check for availability.

    +
    +
    + + +

    hasMore()

    +
    + +

    No, this is not a method of Scanner.

    +
    +
    + + +

    hasNextLine()

    +
    + +

    Correct! This checks if there is another line available to read.

    +
    +
    + + +

    canReadLine()

    +
    + +

    No, this is not a standard method in the Scanner class.

    +
    +
    +
    +
    +
    +
    + \ No newline at end of file From da8bf06300044bfde35bbf088f5425d0e6220e39 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 15:36:26 -0400 Subject: [PATCH 169/448] Added an empty section on Exception Handling to get started. --- source/ch4_conditionals.ptx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 6a38a39..2ec26a8 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -234,6 +234,11 @@ The switch statement is not used very often, and we recommend you do not

    +
    + Exception Handling + +
    +
    Boolean Operators From ce966dbc4744f36012bb31ebe3a3a80750839a3a Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 15:36:59 -0400 Subject: [PATCH 170/448] 8.1 adds python example of importing and a java comparison. Also added xml ids and joined the last two pretags --- source/ch8_filehandling.ptx | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index cea1792..e2036c9 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -13,11 +13,38 @@
    Class Imports +

    + In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following. +

    +

    + Python: +

    + + + import math + print(math.sqrt(25)) + + + +

    + Java: +

    + + + import java.lang.Math; + + public class Main { + public static void main(String[] args) { + System.out.println(Math.sqrt(25)); + } + } + +

    Java has several libraries included for file handling, though, they must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File.

    - + import java.io.File; import java.io.IOException;public class Main { @@ -56,10 +83,7 @@
                 import java.io.IOException;
    -        
    - -
    -            import java.io.FileNotFoundException 
    +            import java.io.FileNotFoundException;
             
    From f83eb6c17e1a7a492f6b722c7b29d9635f0d20e9 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 15:38:21 -0400 Subject: [PATCH 171/448] Added an empty section on Exception Handling to get started. --- source/ch4_conditionals.ptx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 2ec26a8..aedb61b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -237,6 +237,10 @@ The switch statement is not used very often, and we recommend you do not
    Exception Handling +

    + +

    +
    From cc539f31e016c70cf1d77a9b14666390bc61fed1 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 15:40:37 -0400 Subject: [PATCH 172/448] Changed outdated input tags to code tags. --- source/ch2_firstjavaprogram.ptx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 4b3da63..289eeee 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -31,7 +31,7 @@

    - + class Dog: def __init__(self, name, breed, fur_color): self.name = name @@ -51,7 +51,7 @@ def train(self): self.trained = True - +

    @@ -72,7 +72,7 @@

    - + class Dog: def __init__(self, name, breed, fur_color): self.name = name @@ -95,7 +95,7 @@ my_dog = Dog("Rex", "pug", "brown") - +

    @@ -107,7 +107,7 @@

    - + class Dog: def __init__(self, name, breed, fur_color): self.name = name @@ -132,7 +132,7 @@ my_dog = Dog("Rex", "pug", "brown") my_dog.bark() my_dog.sit() - + From ab0d429b2db26822362918d9c84096a9ea63f741 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 15:44:03 -0400 Subject: [PATCH 173/448] Changed print statements so they use more beginner-friendly formatting. --- source/ch2_firstjavaprogram.ptx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 289eeee..a156fcc 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -38,16 +38,16 @@ self.breed = breed self.fur_color = fur_color self.trained = False - print(f"Dog named {self.name} created!") + print("Dog named " + self.name + " created!") def bark(self): - print(f"{self.name} says woof!") + print(self.name + " says woof!") def sit(self): if self.trained: - print(f"{self.name} sits.") + print(self.name + " sits.") else: - print(f"{self.name} has not been trained.") + print(self.name + " has not been trained.") def train(self): self.trained = True @@ -79,16 +79,16 @@ self.breed = breed self.fur_color = fur_color self.trained = False - print(f"Dog named {self.name} created!") + print("Dog named " + self.name + " created!") def bark(self): - print(f"{self.name} says woof!") + print(self.name + " says woof!") def sit(self): if self.trained: - print(f"{self.name} sits.") + print(self.name + " sits.") else: - print(f"{self.name} has not been trained.") + print(self.name + " has not been trained.") def train(self): self.trained = True @@ -114,16 +114,16 @@ self.breed = breed self.fur_color = fur_color self.trained = False - print(f"Dog named {self.name} created!") + print("Dog named " + self.name + " created!") def bark(self): - print(f"{self.name} says woof!") + print(self.name + " says woof!") def sit(self): if self.trained: - print(f"{self.name} sits.") + print(self.name + " sits.") else: - print(f"{self.name} has not been trained.") + print(self.name + " has not been trained.") def train(self): self.trained = True From c7b894553c71952ad5774ebbac5e94b72c73c3a0 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 6 Aug 2025 15:47:19 -0400 Subject: [PATCH 174/448] Changed chapter title and xml id to java programs. --- source/ch2_firstjavaprogram.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index a156fcc..f233cc0 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -1,8 +1,8 @@ - - Lets look at a Java Program + + Java Programs
    Classes and Objects From c58cd4e9e41443cdc5348960b6962a829f6a0f19 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 15:47:53 -0400 Subject: [PATCH 175/448] add transition between codeblocks --- source/ch8_filehandling.ptx | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index e2036c9..082b069 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -16,9 +16,6 @@

    In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following.

    -

    - Python: -

    import math @@ -27,7 +24,7 @@

    - Java: + The same program in Java would look like this:

    From a2f429e2e0a8db20655d7c062e8ceb8a155ae314 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 15:51:08 -0400 Subject: [PATCH 176/448] add statement about imports in Java --- source/ch8_filehandling.ptx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 082b069..d87b7e5 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -37,6 +37,9 @@ } +

    + Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit imports for most libraries, including the Math class and many different classes for file handling. +

    Java has several libraries included for file handling, though, they must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. From bf84c8ca25f635f44819c4fac815af3c8df1ed1f Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Wed, 6 Aug 2025 15:52:55 -0400 Subject: [PATCH 177/448] remove redundency --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index d87b7e5..6664838 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -42,7 +42,7 @@

    - Java has several libraries included for file handling, though, they must be imported. Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. + Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File.

    From 63256d44c1ef964729a51b0b801dc0db214ea7a6 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Wed, 6 Aug 2025 16:12:13 -0400 Subject: [PATCH 178/448] Restructing the sections in Chapter 9 --- source/ch9_commonmistakes.ptx | 50 +++++++++++++++++------------------ 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 0bbd78a..c8ef187 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -7,6 +7,31 @@ +
    + Forgetting a Semicolon +

    + A common mistake in Java is to forget that every statement must end with a semicolon (;). +

    + + + // Histo.java + import java.util.Scanner; // Imports Scanner + + public class Histo { // Class declaration + + public static void main(String[] args) { // Main method declaration + Scanner data = null // The error will point here + System.out.println("This line will not compile."); + }// End of main method + }//End of class + + +

    + The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon. +

    + +
    +
    Forgetting to declare your variables

    @@ -96,31 +121,6 @@

    -
    - Forgetting a Semicolon -

    - A common mistake in Java is to forget that every statement must end with a semicolon (;). -

    - - - // Histo.java - import java.util.Scanner; // Imports Scanner - - public class Histo { // Class declaration - - public static void main(String[] args) { // Main method declaration - Scanner data = null // The error will point here - System.out.println("This line will not compile."); - }// End of main method - }//End of class - - -

    - The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon. -

    - -
    -
    Forgetting to declare the kind of object in a container

    From 97e32a3aa29ad417c33364b99a523b05dd9ba043 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Wed, 6 Aug 2025 15:56:45 -0400 Subject: [PATCH 179/448] storing changes before pulling from main --- source/ch8_filehandling.ptx | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 49bf932..f5aac3b 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -44,7 +44,7 @@

    Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File.

    - + import java.io.File; import java.io.IOException;public class Main { @@ -94,14 +94,15 @@

    We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile.

    - +
                         empty file
                     
    - + - import java.io.File;public class Main { + import java.io.File; + public class Main { public static void main(String[] args) { File myFile = new File("myfile.txt"); System.out.println(myFile); @@ -123,12 +124,12 @@

    First, lets look at the equivalent Python code:

    - +
                         empty file
                     
    - + filename = "newfile.txt" print(f"Attempting to write to '{filename}' using 'w' mode...") @@ -145,12 +146,12 @@

    Now, let's look at Java code that accomplishes the same task:

    - +
                         empty file
                     
    - + import java.io.File; import java.io.IOException; @@ -181,7 +182,7 @@

    Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile:

    - +
                         1
                         2
    
    From b4a029351c0d067af8a8960559a51d900ae3a47d Mon Sep 17 00:00:00 2001
    From: colin flaherty 
    Date: Thu, 7 Aug 2025 09:41:25 -0400
    Subject: [PATCH 180/448] added files to 8.3 and finished 8.2. commiting before
     updating branch.
    
    ---
     source/ch8_filehandling.ptx | 10 +++-------
     1 file changed, 3 insertions(+), 7 deletions(-)
    
    diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx
    index f5aac3b..8cca43d 100644
    --- a/source/ch8_filehandling.ptx
    +++ b/source/ch8_filehandling.ptx
    @@ -124,11 +124,7 @@
             

    First, lets look at the equivalent Python code:

    - -
    -                    empty file
    -                
    -
    + filename = "newfile.txt" @@ -293,7 +289,7 @@ Alternatively, the following code can be used to store the all lines of myfile.txt to one variable:

    - + import java.io.File; import java.io.FileNotFoundException; @@ -345,7 +341,7 @@ And the Java equivalent:

    - + import java.io.File; import java.io.FileNotFoundException; From 97dc160da29942c461032669d18963f459fcaacf Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Thu, 7 Aug 2025 09:52:31 -0400 Subject: [PATCH 181/448] fixed python block in 8.3 --- source/ch8_filehandling.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 8cca43d..87a4f29 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -125,7 +125,7 @@ First, lets look at the equivalent Python code:

    - + filename = "newfile.txt" print(f"Attempting to write to '{filename}' using 'w' mode...") @@ -248,9 +248,9 @@ The next lines consists of a Python code example that reads each line of the file passed to the Scanner object.:

    - + - with open("filename.txt", "r") as file_reader: + with open("myfile.txt", "r") as file_reader: for line in file_reader: print(line.strip()) From 370f9d8511172904de9b5f935ad42a1ba6eff5b7 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Thu, 7 Aug 2025 10:03:13 -0400 Subject: [PATCH 182/448] added xmlids to all of the code blocks from 8.1-8.4 --- source/ch8_filehandling.ptx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 87a4f29..a202942 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -192,7 +192,7 @@ - + import java.io.File; import java.io.FileNotFoundException; @@ -220,7 +220,7 @@ We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader:

    - + import java.io.File; import java.io.FileNotFoundException; @@ -248,7 +248,7 @@ The next lines consists of a Python code example that reads each line of the file passed to the Scanner object.:

    - + with open("myfile.txt", "r") as file_reader: for line in file_reader: @@ -260,7 +260,7 @@ The equivalent Java code:

    - + import java.io.File; import java.io.FileNotFoundException; @@ -289,7 +289,7 @@ Alternatively, the following code can be used to store the all lines of myfile.txt to one variable:

    - + import java.io.File; import java.io.FileNotFoundException; @@ -321,7 +321,7 @@ Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code:

    - + try: with open("myfile.txt", "r") as file_reader: @@ -341,7 +341,7 @@ And the Java equivalent:

    - + import java.io.File; import java.io.FileNotFoundException; @@ -382,7 +382,7 @@ Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    - + import java.io.File; import java.io.FileWriter; @@ -444,7 +444,7 @@ 3
    - + with open("myfile8-4-2.txt", "r") as file_reader: while True: @@ -463,7 +463,7 @@
    - + import java.io.File; import java.io.IOException; @@ -491,7 +491,7 @@
    - + try: with open("myfile.txt", "w") as my_writer: @@ -512,7 +512,7 @@
    - + import java.io.FileWriter; import java.io.IOException; @@ -559,7 +559,7 @@
    - + import java.io.FileWriter; import java.io.IOException; From 18a2305602c497cd40f9fe0d374b0e5d56f5e07a Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Thu, 7 Aug 2025 11:29:22 -0400 Subject: [PATCH 183/448] simplify helper method section --- source/ch7_recursion.ptx | 319 +++++++++++++++++++++++++++++++++++++++ source/chx_recursion.ptx | 276 --------------------------------- source/main.ptx | 2 +- 3 files changed, 320 insertions(+), 277 deletions(-) create mode 100644 source/ch7_recursion.ptx delete mode 100644 source/chx_recursion.ptx diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx new file mode 100644 index 0000000..08afdc4 --- /dev/null +++ b/source/ch7_recursion.ptx @@ -0,0 +1,319 @@ + + + Recursion in Java + + + +
    + Basic Recursion +

    + In this chapter, we will explore how to translate your recursive logic from Python to Java. While the core concepts of recursion remain the same, the syntax and structure of your code will change somewhat. +

    +

    recursion + As you may know from Python, recursion is a powerful problem-solving technique involving base cases and recursive steps in which a function or method calls itself. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax. +

    +

    + Let's take the familiar factorial function (which calculates the factorial of a number, namely the product of all positive integers from 1 to n). The logical steps in the code are the same, but the implementation details change. +

    +

    + Here is a Python implementation using functions: +

    + + +def factorial(n): + # Check for negative numbers + if n < 0: + print("Factorials are only defined on non-negative integers.") + return + # Base Case: 0! or 1! is 1 + if n <= 1: + return 1 + # Recursive Step: n * (n-1)! + return n * factorial(n - 1) + +def main(): + number = 5 + print(str(number) + "! is " + str(factorial(number))) + +main() + + + +

    + Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method. Then you need to create an instance of the class to call the method. There we create the class MathTools with a method factorial, and we call it from the main function. +

    + + +class MathTools: + def factorial(self, n): + # Check for negative numbers + if n < 0: + print("Factorials are only defined on non-negative integers.") + return + # Base Case: 0! or 1! is 1 + if n <= 1: + return 1 + # Recursive Step: n * (n-1)! + return n * self.factorial(n - 1) + +def main(): + # Create an instance of the class and call the method + math_tools = MathTools() + number = 5 + print(str(number) + "! is " + str(math_tools.factorial(number))) + +main() + + + +

    + See if you can spot the differences in the Java version below. +

    +

    + Here is the equivalent Java code: +

    + + +public class MathTools { + public static int factorial(int n) { + // Check for negative numbers + if (n < 0) { + System.out.println("Factorials are only defined on non-negative integers."); + return -1; // Return -1 to indicate error + } + // Base Case: 0! or 1! is 1 + if (n <= 1) { + return 1; + } + // Recursive Step: n * (n-1)! + return n * factorial(n - 1); + } + + public static void main(String[] args) { + int number = 5; + System.out.println(number + "! is " + factorial(number)); + } +} + + +

    + Notice the key differences from Python: instead of def factorial(n):, Java uses public static int factorial(int n) which declares the method's visibility as public, that it belongs to the class rather than an instance (hence, static), the return type as integer, and the parameter type also as integer. The recursive logic—base case and recursive step—remains identical to Python, but all code blocks use curly braces {} instead of indentation. +

    +
    + +
    + Using Helper Methods + +

    + In many recursive algorithms, the recursive calls need extra information that the original caller shouldn't have to provide. For example, to recursively process an array, you need to keep track of the current position (index). This extra information clutters the public-facing method signature and forces users to provide implementation details they shouldn't need to know about. +

    +

    helper method pattern in recursion + A common pattern to solve this is using a helper method. This pattern lets you create a clean, simple public method that users will call, while the private helper method handles the complex details of the recursion. The public method typically makes the initial call to the private helper, providing the necessary starting values for the extra parameters. +

    +

    + Let's see this pattern in action with an example that calculates the sum of all elements in an integer array. Notice how the public method only requires the array, but the recursive logic needs to track the current index position. +

    + +

    + First, let's see what happens if we try to write a recursive array sum function without using a helper method. In this approach, the user must provide the starting index, which is awkward and exposes implementation details: +

    + + +class ArrayProcessor: + def sum_array(self, arr, index): + """ + This version forces users to provide the index parameter. + This is inconvenient and exposes implementation details. + """ + # Base case: we've processed all elements + if index >= len(arr): + return 0 + + # Recursive step: current element + sum of remaining elements + return arr[index] + self.sum_array(arr, index + 1) + +def main(): + processor = ArrayProcessor() + numbers = [1, 2, 3, 4, 5] + # Users must remember to start at index 0 - this is confusing! + result = processor.sum_array(numbers, 0) + print("The sum of " + str(numbers) + " is " + str(result)) + +main() + + + +

    + This approach has several problems: users must remember to start with index 0, the method signature is cluttered with implementation details, and it's easy to make mistakes by passing the wrong starting index. The same awkward pattern appears in Java: +

    + + +public class ArrayProcessor { + public static int sumArray(int[] arr, int index) { + // Base case: we've processed all elements + if (index >= arr.length) { + return 0; + } + + // Recursive step: current element + sum of remaining elements + return arr[index] + sumArray(arr, index + 1); + } + + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + // Users must remember to start at index 0 - this is confusing! + int result = sumArray(numbers, 0); + System.out.println("The sum of [1, 2, 3, 4, 5] is " + result); + } +} + + + +

    + Both versions force users to understand and provide implementation details they shouldn't need to know about. Now let's see how helper methods solve this problem by providing a clean, user-friendly interface. +

    + +

    + Here's the improved Python version using a helper method: +

    + + +class ArrayProcessor: + def sum_array(self, arr): + """ + Public method that provides a clean interface for summing array elements. + Users only need to provide the array - no implementation details required. + """ + if not arr: # Handle empty array + return 0 + # Start the recursion at index 0 + return self._sum_helper(arr, 0) + + def _sum_helper(self, arr, index): + """ + Private helper method that does the actual recursive work. + Tracks the current index position through the array. + """ + # Base case: we've processed all elements + if index >= len(arr): + return 0 + + # Recursive step: current element + sum of remaining elements + return arr[index] + self._sum_helper(arr, index + 1) + +def main(): + processor = ArrayProcessor() + numbers = [1, 2, 3, 4, 5] + result = processor.sum_array(numbers) + print("The sum of " + str(numbers) + " is " + str(result)) + +main() + + + +

    separation of concerns + The key insight here is called the separation of concerns. The public sum_array method provides a user-friendly interface—callers just pass an array and get the sum. They don't need to know about indexes or how the recursion works internally. The private _sum_helper method handles the recursive logic with the extra parameter needed to track progress through the array. +

    + +

    + Now let's see the improved Java version using a helper method: +

    + + +public class ArrayProcessor { + public static int sumArray(int[] arr) { + // Handle empty array + if (arr.length == 0) { + return 0; + } + // Start the recursion at index 0 + return sumHelper(arr, 0); + } + + private static int sumHelper(int[] arr, int index) { + // Base case: we've processed all elements + if (index >= arr.length) { + return 0; + } + + // Recursive step: current element + sum of remaining elements + return arr[index] + sumHelper(arr, index + 1); + } + + public static void main(String[] args) { + int[] numbers = {1, 2, 3, 4, 5}; + int result = sumArray(numbers); + System.out.println("The sum of [1, 2, 3, 4, 5] is " + result); + } +} + + + +

    + Compare these improved versions with the earlier problematic ones. Notice how much cleaner the method calls become: processor.sum_array(numbers) in Python and sumArray(numbers) in Java. Users no longer need to worry about providing the correct starting index or understanding the internal mechanics of the recursion. The helper method pattern creates a clear separation between what users need to know (just pass an array) and the implementation details (tracking the index through recursion). +

    + +

    + This helper method pattern is essential when your recursive algorithm needs to track additional state (like array positions, accumulated values, or depth counters) that the original caller shouldn't need to provide. It's a fundamental technique you'll use frequently in recursive problem solving. +

    +
    + +
    + Recursion Limits: Python vs. Java +

    + The consequence of deep recursion, running out of stack space, is a concept you've already encountered in Python. Java handles this in a very similar way, throwing an error when the call stack depth is exceeded. +

    +

    + The key difference is the name of the error: +

    +
      +
    • In Python, this raises a RecursionError.
    • +
    • In Java, this throws a StackOverflowError.
    • +
    +

    + Neither language supports tail call optimization tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative (loop-based) approach is the preferred solution in both Python and Java. +

    +

    + The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to aRecursionError. +

    + + + def cause_recursion_error(): + """ + This function calls itself without a base case, guaranteeing an error. + """ + cause_recursion_error() + + # Standard Python entry point + if __name__ == "__main__": + print("Calling the recursive function... this will end in an error!") + + # This line starts the infinite recursion. + # Python will stop it and raise a RecursionError automatically. + cause_recursion_error() + + + +

    + The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError. +

    + + + public class Crash { + public static void causeStackOverflow() { + // This method calls itself endlessly without a stopping condition (a base case). + // Each call adds a new layer to the program's call stack. + // Eventually, the stack runs out of space, causing the error. + causeStackOverflow(); + } + // A main method is required to run the program. + public static void main(String[] args) { + System.out.println("Calling the recursive method... this will end in an error!"); + // This line starts the infinite recursion. + causeStackOverflow(); + } + } + + +
    +
    \ No newline at end of file diff --git a/source/chx_recursion.ptx b/source/chx_recursion.ptx deleted file mode 100644 index 4f3601e..0000000 --- a/source/chx_recursion.ptx +++ /dev/null @@ -1,276 +0,0 @@ - - - Recursion in Java - - - -
    - Basic Recursion -

    - In this chapter, we will explore how to translate your recursive logic from Python to Java. While the core concepts of recursion remain the same, the syntax and structure of your code will change somewhat. -

    -

    recursion - As you may know from Python, recursion is a powerful problem-solving technique involving base cases and recursive steps in which a function or method calls itself. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax. -

    -

    - Let's take the familiar factorial function (which calculates the factorial of a number, namely the product of all positive integers from 1 to n). The logical steps in the code are the same, but the implementation details change. -

    -

    - Here is a simple Python function implementation: -

    - - -def factorial(n): - # Check for negative numbers - if n < 0: - print("Factorials are only defined on non-negative integers.") - return - # Base Case: 0! or 1! is 1 - if n <= 1: - return 1 - # Recursive Step: n * (n-1)! - return n * factorial(n - 1) - -def main(): - number = 5 - print(str(number) + "! is " + str(factorial(number))) - -main() - - - -

    - Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method. Then you need to create an instance of the class to call the method. There we create the class MathTools with a method factorial, and we call it from the main function. -

    - - -class MathTools: - def factorial(self, n): - # Check for negative numbers - if n < 0: - print("Factorials are only defined on non-negative integers.") - return - # Base Case: 0! or 1! is 1 - if n <= 1: - return 1 - # Recursive Step: n * (n-1)! - return n * self.factorial(n - 1) - -def main(): - # Create an instance of the class and call the method - math_tools = MathTools() - number = 5 - print(str(number) + "! is " + str(math_tools.factorial(number))) - -main() - - - -

    - See if you can spot the differences in the Java version below. -

    -

    - Here is the equivalent Java code: -

    - - -public class MathTools { - public static int factorial(int n) { - // Check for negative numbers - if (n < 0) { - System.out.println("Factorials are only defined on non-negative integers."); - return -1; // Return -1 to indicate error - } - // Base Case: 0! or 1! is 1 - if (n <= 1) { - return 1; - } - // Recursive Step: n * (n-1)! - return n * factorial(n - 1); - } - - public static void main(String[] args) { - int number = 5; - System.out.println(number + "! is " + factorial(number)); - } -} - - -

    - Notice the key differences from Python: instead of def factorial(n):, Java uses public static int factorial(int n) which declares the method's visibility as public, that it belongs to the class rather than an instance (hence, static), the return type as integer, and the parameter type also as integer. The recursive logic—base case and recursive step—remains identical to Python, but all code blocks use curly braces {} instead of indentation. -

    -
    - -
    - Common Recursive Patterns - -

    - In many recursive algorithms, the recursive calls need extra information that the original caller shouldn't have to provide. For example, to recursively process an array, you need to keep track of the current position (index). To traverse a tree, you need to know the current node. This extra information clutters the public-facing method signature. -

    -

    - A common pattern to solve this is using a private helper method. This pattern lets you create a clean, simple public method that users will call, while the private helper method handles the complex details of the recursion. The public method typically makes the initial call to the private helper, providing the necessary starting values for the extra parameters. -

    -

    - Let's see this pattern in action with an example that calculates the sum of all elements in an integer array. The public sum method only takes the array, but the private sumHelper method also takes an index to track its progress through the array. -

    - -

    - You're likely familiar with how some recursive algorithms, like the naive Fibonacci implementation, - are elegant but inefficient, due to branching recursive calls filling the call stack. A common pattern to solve - this is using a private helper method. -

    -

    - The following example demonstrates this pattern. The public fib method provides a simple entry point, while the private fibHelper method performs the efficient recursion by carrying its state (the previous two numbers) in its parameters. -

    -

    - The following Java code demonstrates a similar pattern. -

    - - - - public class FibonacciExample { - public int fib(int n) { - if (n < 0) { - throw new IllegalArgumentException("Input cannot be negative."); - } - // Initial call to the recursive helper with depth 0. - return this._fibHelper(n, 0, 1, 0); - } - private int _fibHelper(int count, int a, int b, int depth) { - // Create an indent string based on the recursion depth. - String indent = " ".repeat(depth); - // Print when the method is entered (pushed onto the stack). - System.out.printf("%s[>>] ENTERING _fibHelper(count=%d, a=%d, b=%d)%n", indent, count, a, b); - // Base Case: When the count reaches 0, 'a' holds the result. - if (count == 0) { - System.out.printf("%s[<<] EXITING (Base Case) -> returns %d%n", indent, a); - return a; - } - // Recursive Step. - int result = this._fibHelper(count - 1, b, a + b, depth + 1); - // Print when the method exits (popped from the stack). - System.out.printf("%s[<<] EXITING (Recursive Step) -> passing %d%n", indent, result); - return result; - } - public static void main(String[] args) { - FibonacciExample calculator = new FibonacciExample(); - int n = 4; // Let's calculate the 4th Fibonacci number. - System.out.printf("--- Calculating fib(%d) ---%n", n); - int result = calculator.fib(n); - System.out.println("--------------------------"); - System.out.printf("The %dth Fibonacci number is: %d%n", n, result); - } - } - - -

    - This helper method approach is significantly more efficient in terms of time than the classic branching recursion (where fib(n) calls fib(n-1) and fib(n-2)). The branching model has an exponential time complexity of roughly O(2^n) because it re-calculates the same values many times. In contrast, our helper method has a linear time complexity of O(n), as it avoids re-computation by carrying the previous two results (a and b) forward into the next call. -

    -

    - However, regarding memory efficiency, the comparison is different. The maximum depth of the call stack for both the naive and the helper method is proportional to n, giving them both a space complexity of O(n). This means that while the helper method is much faster, it is equally vulnerable to a StackOverflowError for very large values of n. Because Java does not perform tail-call optimization, any recursive solution that goes too deep will exhaust the stack memory, regardless of its time efficiency. For true memory efficiency (O(1) space), an iterative loop-based solution is superior. -

    -

    - The following Python code demonstrates the same pattern, using a public method to initiate the calculation and a private helper method to perform the recursion. -

    - - - class FibonacciExample: - def fib(self, n: int) -> int: - """ - Public method to start the Fibonacci calculation. - """ - if n < 0: - raise ValueError("Input cannot be negative.") - # Initial call to the recursive helper with depth 0. - return self._fib_helper(n, 0, 1, 0) - - def _fib_helper(self, count: int, a: int, b: int, depth: int) -> int: - """ - Private helper that performs the tail recursion to find the number. - """ - # Create an indent string based on the recursion depth. - indent = " " * depth - # Print when the method is entered (pushed onto the stack). - print(f"{indent}[>>] ENTERING _fib_helper(count={count}, a={a}, b={b})") - - # Base Case: When the count reaches 0, 'a' holds the result. - if count == 0: - print(f"{indent}[<<] EXITING (Base Case) -> returns {a}") - return a - - # Recursive Step. - result = self._fib_helper(count - 1, b, a + b, depth + 1) - # Print when the method exits (popped from the stack). - print(f"{indent}[<<] EXITING (Recursive Step) -> passing {result}") - return result - - # The standard Python entry point, equivalent to Java's `main` method. - if __name__ == "__main__": - calculator = FibonacciExample() - n = 4 # Let's calculate the 4th Fibonacci number. - print(f"--- Calculating fib({n}) ---") - result = calculator.fib(n) - print("--------------------------") - print(f"The {n}th Fibonacci number is: {result}") - - -
    -
    - Recursion Limits: Python vs. Java -

    - The consequence of deep recursion, running out of stack space, is a concept you've already encountered in Python. Java handles this in a very similar way, throwing an error when the call stack depth is exceeded. -

    -

    - The key difference is the name of the error: -

    -
      -
    • In Python, this raises a RecursionError.
    • -
    • In Java, this throws a StackOverflowError.
    • -
    -

    - Neither language supports tail call optimization tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative (loop-based) approach is the preferred solution in both Python and Java. -

    -

    - The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to aRecursionError. -

    - - - def cause_recursion_error(): - """ - This function calls itself without a base case, guaranteeing an error. - """ - cause_recursion_error() - - # Standard Python entry point - if __name__ == "__main__": - print("Calling the recursive function... this will end in an error!") - - # This line starts the infinite recursion. - # Python will stop it and raise a RecursionError automatically. - cause_recursion_error() - - - -

    - The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError. -

    - - - public class Crash { - public static void causeStackOverflow() { - // This method calls itself endlessly without a stopping condition (a base case). - // Each call adds a new layer to the program's call stack. - // Eventually, the stack runs out of space, causing the error. - causeStackOverflow(); - } - // A main method is required to run the program. - public static void main(String[] args) { - System.out.println("Calling the recursive method... this will end in an error!"); - // This line starts the infinite recursion. - causeStackOverflow(); - } - } - - -
    -
    \ No newline at end of file diff --git a/source/main.ptx b/source/main.ptx index 6a3df61..ec616d0 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -13,7 +13,7 @@ git - + From 849982dc486d1869f4655eadc0b26e98159d0fc5 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Thu, 7 Aug 2025 11:33:15 -0400 Subject: [PATCH 184/448] fix title --- source/main.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/main.ptx b/source/main.ptx index ec616d0..6f4f823 100644 --- a/source/main.ptx +++ b/source/main.ptx @@ -3,9 +3,9 @@ - Java For Python Programmer + Java For Python Programmers - The PreTeXt Interactive Edition + Edition 2 From 5ab0d747d64303fb67965a25e40db99bcbd1913b Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Thu, 7 Aug 2025 11:57:27 -0400 Subject: [PATCH 185/448] Removed the work completed in the last commit as it did not include Python code. All Code blocks are completed. Need to add explanation of Java code. --- source/ch4_conditionals.ptx | 91 ++++++++++++++++++++++++++++--------- 1 file changed, 69 insertions(+), 22 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index abc77ae..8b53c5b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -163,7 +163,17 @@ public class ElseIf {

    Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following: -

    +

    while True: + + try: + + x = int(input("Please enter a whole number: ")) + + break + + except ValueError: + + print("Oops! That was no valid number. Try again...")

    @@ -234,48 +244,85 @@ The switch statement is not used very often, and we recommend you do not

    -
    +
    Exception Handling

    - Errors and bugs when writing programs are nearly impossible to avoid. As a programmer, you may have spent a considerable amount of time debugging code. Sometimes, even when we have done everything right and ensured a program will function as it is intended to, errors are still unavoidable especially when user input is necessary. + In Python, if you want a program to continue running when an error has occurred, you can use try/except blocks to handle exceptions. If you wanted to write a program that asks the user to enter a whole number and then squares that number, you could use the following code to do so:

    + + + number = int(input("Please enter a whole number: ")) + squared = number ** 2 + print("Your number squared is " + str(squared)) + + +

    - Let's look at an example of code that may lead to user error. This Java program will ask the user to input the year they were born. It will then tell them how old they will be in the year 2050. We will use the Scanner class from the util library to ask the user for input. + The Java code that would perform the same task is a little more complex and utilizes the Scanner class for input.

    - + import java.util.Scanner; - public class Main - { + public class SquareNumber { public static void main(String[] args) { + Scanner user_input = new Scanner(System.in); - // Update to current year if needed - int current_year = 2025; - - // Scanner object is created to get input - Scanner userInput = new Scanner(System.in); - System.out.println("Enter your age: "); - - // Reads user input - int age = Integer.parseInt(userInput.nextLine()); + System.out.print("Please enter a whole number: "); + int number = user_input.nextInt(); + int squared = number * number; - // Arithmatic to find age in 2050 - int birth_year = current_year - age; - int age_in_2050 = 2050 - birth_year; - - System.out.println("Your age in 2050 will be " + age_in_2050); + System.out.println("Your number squared is " + squared); } }

    - This program seems to work pretty well. The user can enter their age and get the desired result. Large numbers such as 10,000 and negative numbers such as -75 work fine with this program, meaning we have accommodated both vampires and time travelers! Despite this, our program can still run into issues. You may have noticed that the age variable is an integer. What happens if a user takes into account that their birthday was six months ago and types 20.5 into the console? What happens if the user spells out their age and types twelve instead of 12? Try these two inputs and see what happens! + This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try/except (Python) or try/catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try/except blocks and a while loop will look something like this:

    + + + + while True: + try: + number = int(input("Please enter a whole number: ")) + squared = number ** 2 + print("Your number squared is " + str(squared)) + break + except ValueError: + print("That was not a valid number. Please try again: ") + + + + + + import java.util.Scanner; + import java.util.InputMismatchException; + + public class SquareNumberWithValidation { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + + while (true) { + try { + System.out.print("Please enter a whole number: "); + int number = scanner.nextInt(); + int squared = number * number; + System.out.println("Your number squared is " + squared); + break; + } catch (InputMismatchException e) { + System.out.println("That was not a valid number. Please try again: "); + scanner.nextLine(); // Clear the invalid input + } + } + } + } + +
    From 5cde97ef742ba27ea87594bbeb247a983643f8f6 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Thu, 7 Aug 2025 12:15:47 -0400 Subject: [PATCH 186/448] add xml:ids to codeblocks and improve clarity --- source/ch7_recursion.ptx | 61 +++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 23 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 08afdc4..156f9a3 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -12,13 +12,31 @@

    recursion As you may know from Python, recursion is a powerful problem-solving technique involving base cases and recursive steps in which a function or method calls itself. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax.

    + +

    + Let's take the familiar factorial function, which calculates n! (read as "n factorial"), so for example 5! = 5 × 4 × 3 × 2 × 1 = 120. Factorial is a classic example of recursion, where the function calls itself with a smaller value until it reaches a base case. + In general, n! = n \times (n-1) \times (n-2) \times \cdots \times 2 \times 1, + or recursively defined as n! = n \times (n-1)! with base cases 0! = 1 and 1! = 1. +

    +

    + You may recall mathematical notation using the symbol \sum (Greek letter sigma) + to represent "sum." For example, when we sum all elements in an array, we write + \sum_{i=0}^{n-1} a_i, where i=0 below the symbol indicates we start at index 0, + n-1 above it means we end at index n-1, and a_i represents the array + element at each index i. Similarly, \sum_{i=1}^{n} i means "sum all integers + i from 1 to n." +

    +

    + Factorial involves multiplication rather than addition, so we use the product symbol + \prod (Greek letter pi): n! = \prod_{i=1}^{n} i, which means "multiply + all integers i from 1 to n." Both summation and factorial can be expressed + recursively—summation as the first element plus the sum of remaining elements, and factorial + as n \times (n-1)!. +

    - Let's take the familiar factorial function (which calculates the factorial of a number, namely the product of all positive integers from 1 to n). The logical steps in the code are the same, but the implementation details change. -

    -

    - Here is a Python implementation using functions: + Here is a Python implementation of factorial using functions:

    - + def factorial(n): # Check for negative numbers @@ -42,7 +60,7 @@ main()

    Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method. Then you need to create an instance of the class to call the method. There we create the class MathTools with a method factorial, and we call it from the main function.

    - + class MathTools: def factorial(self, n): @@ -72,7 +90,7 @@ main()

    Here is the equivalent Java code:

    - + public class MathTools { public static int factorial(int n) { @@ -105,19 +123,17 @@ public class MathTools { Using Helper Methods

    - In many recursive algorithms, the recursive calls need extra information that the original caller shouldn't have to provide. For example, to recursively process an array, you need to keep track of the current position (index). This extra information clutters the public-facing method signature and forces users to provide implementation details they shouldn't need to know about. + In many recursive algorithms, the recursive calls need extra information that the original caller shouldn't have to provide. For example, to recursively process an array, you need to keep track of the index of the current position. This extra information clutters the public-facing signature by forcing users to provide implementation details they shouldn't actually need to know about.

    helper method pattern in recursion - A common pattern to solve this is using a helper method. This pattern lets you create a clean, simple public method that users will call, while the private helper method handles the complex details of the recursion. The public method typically makes the initial call to the private helper, providing the necessary starting values for the extra parameters. -

    -

    - Let's see this pattern in action with an example that calculates the sum of all elements in an integer array. Notice how the public method only requires the array, but the recursive logic needs to track the current index position. + A common pattern to solve this problem is by using a helper method. This pattern lets you create a clean, simple function or public method that users can call, while the private helper function or method handles the complex details of the recursion. The function or public method typically makes an initial call to the private helper method or function, providing the necessary starting values for the extra parameters.

    +

    First, let's see what happens if we try to write a recursive array sum function without using a helper method. In this approach, the user must provide the starting index, which is awkward and exposes implementation details:

    - + class ArrayProcessor: def sum_array(self, arr, index): @@ -144,9 +160,9 @@ main()

    - This approach has several problems: users must remember to start with index 0, the method signature is cluttered with implementation details, and it's easy to make mistakes by passing the wrong starting index. The same awkward pattern appears in Java: + This approach has a significant problem, namely that users must remember to start with index 0. Hence, the method signature is cluttered with an implementation detail, and it's easy to make a mistake by passing the wrong starting index. The same awkward pattern appears in Java:

    - + public class ArrayProcessor { public static int sumArray(int[] arr, int index) { @@ -170,13 +186,12 @@ public class ArrayProcessor {

    - Both versions force users to understand and provide implementation details they shouldn't need to know about. Now let's see how helper methods solve this problem by providing a clean, user-friendly interface. + Both versions force users to understand and provide implementation details they shouldn't need to know about. Now let's see how helper methods solve this problem by providing a clean, user-friendly interface. Notice how the public method only requires the array itself, and the hidden recursive logic tracks the current index position.

    -

    Here's the improved Python version using a helper method:

    - + class ArrayProcessor: def sum_array(self, arr): @@ -212,13 +227,13 @@ main()

    separation of concerns - The key insight here is called the separation of concerns. The public sum_array method provides a user-friendly interface—callers just pass an array and get the sum. They don't need to know about indexes or how the recursion works internally. The private _sum_helper method handles the recursive logic with the extra parameter needed to track progress through the array. + The key insight here is called the separation of concerns. The public sum_array method provides a user-friendly interface—callers just pass an array and get the sum. Users don't need to know about indexes or how the recursion works internally. The private _sum_helper method handles the recursive logic with the extra parameter needed to track progress through the array.

    Now let's see the improved Java version using a helper method:

    - + public class ArrayProcessor { public static int sumArray(int[] arr) { @@ -254,7 +269,7 @@ public class ArrayProcessor {

    - This helper method pattern is essential when your recursive algorithm needs to track additional state (like array positions, accumulated values, or depth counters) that the original caller shouldn't need to provide. It's a fundamental technique you'll use frequently in recursive problem solving. + This helper method pattern is essential when your recursive algorithm needs to track additional state (like array positions, accumulated values, or depth counters) that the original caller shouldn't need to provide or care about. It's a fundamental pattern and technique you'll likely use frequently in recursive problem solving.

    @@ -276,7 +291,7 @@ public class ArrayProcessor {

    The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to aRecursionError.

    - + def cause_recursion_error(): """ @@ -297,7 +312,7 @@ public class ArrayProcessor {

    The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError.

    - + public class Crash { public static void causeStackOverflow() { From a14e85d2b460c51e3a48129bc2970992fee6b563 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Thu, 7 Aug 2025 12:57:25 -0400 Subject: [PATCH 187/448] fix early xml:ids --- source/ch1_overview.ptx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/ch1_overview.ptx b/source/ch1_overview.ptx index 7c1da79..4a589a9 100644 --- a/source/ch1_overview.ptx +++ b/source/ch1_overview.ptx @@ -5,8 +5,8 @@ Overview -
    - Introduction to Java for Python Programmers +
    + Prerequisites

    This book assumes that you are already familiar with the Python programming language. @@ -87,7 +87,7 @@

    -
    +
    Java Development Environment @@ -306,8 +306,8 @@
    -
    - Why Learn another programming Language? +
    + Why Another Programming Language?

    Python is a nice language for beginning programming for several reasons. @@ -357,7 +357,7 @@

    -
    +
    Why Learn Java? Why not C or C++?

    @@ -399,9 +399,9 @@

    -
    +
    Summary & Reading Questions -

      +

      1. Learning multiple programming languages helps programmers adapt to different styles and environments.

      2. From c090273ce85b51e8ec724e76e6aeaa4f3d38c9f0 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Thu, 7 Aug 2025 13:21:37 -0400 Subject: [PATCH 188/448] fixed remaining issues after testing, and removed sourcecode for data files. --- source/ch8_filehandling.ptx | 41 ++++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index a202942..8d804f7 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -118,7 +118,7 @@

        - Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created, or if a file with that file name already exists in the directory. + Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an try/catch structure to determine if the file was created, or catch the error if a file with that file name already exists in the directory.

        @@ -142,22 +142,25 @@

        Now, let's look at Java code that accomplishes the same task:

        - -
        -                    empty file
        -                
        -
        - + + import java.io.File; import java.io.IOException; public class CreateFile { public static void main(String[] args) { - if (myFile.createNewFile()) { // If the file was created successfully - System.out.println("The file " + myFile.getName() + " was created sucessfully."); - } else { // If a file with the file name chosen already exists - System.out.println("The file " + myFile.getName() + " already exists."); + File myFile = new File("newfile.txt"); + try { + if (myFile.createNewFile()) { + System.out.println("The file " + myFile.getName() + " was created successfully."); + } else { + System.out.println("The file " + myFile.getName() + " already exists."); + } + } catch (IOException e) { + // This code runs if an IOException occurs + System.out.println("An error occurred while creating the file."); + e.printStackTrace(); // This prints the stack trace for more detailed error info } } } @@ -220,7 +223,7 @@ We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader:

        - + import java.io.File; import java.io.FileNotFoundException; @@ -329,7 +332,7 @@ for line in file_reader: data += line # line already includes the newline character print(data) - except FileNotFoundError as e: + except FileNotFoundError: print("An error occurred.") import traceback traceback.print_exc() @@ -341,7 +344,7 @@ And the Java equivalent:

        - + import java.io.File; import java.io.FileNotFoundException; @@ -437,7 +440,7 @@

        Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example:

        - +
                             1
                             2
        @@ -458,7 +461,7 @@
                 

        And the equivalent Java code:

        - +
                             
                         
        @@ -486,7 +489,7 @@

        And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

        - +
                             
                         
        @@ -507,7 +510,7 @@

        The completed Java code:

        - +
                             
                         
        @@ -554,7 +557,7 @@

        Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument:

        - +
                             
                         
        From e950f9765882b01cb122c61b2b036cca04fa2cd2 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Thu, 7 Aug 2025 14:49:05 -0400 Subject: [PATCH 189/448] fixes file not found errors in 8.4 --- source/ch8_filehandling.ptx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 8d804f7..3169b36 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -489,7 +489,11 @@

        And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

        +<<<<<<< HEAD +======= + +>>>>>>> 0633649 (fixes file not found errors in 8.4)
                             
                         
        @@ -500,7 +504,7 @@ with open("myfile.txt", "w") as my_writer: my_writer.write("File successfully updated!") print("File successfully written to.") - except OSError as e: + except OSError: print("An error occurred.") import traceback traceback.print_exc() @@ -510,12 +514,16 @@

        The completed Java code:

        +<<<<<<< HEAD
                             
                         
        +======= + +>>>>>>> 0633649 (fixes file not found errors in 8.4) import java.io.FileWriter; import java.io.IOException; @@ -523,7 +531,7 @@ public class WriteFile { public static void main(String[] args) { try { - FileWriter myWriter = new FileWriter("myfile.txt"); + FileWriter myWriter = new FileWriter("newfile.txt"); myWriter.write("File successfully updated!"); myWriter.close(); System.out.println("File successfully written to."); @@ -557,12 +565,17 @@

        Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument:

        +<<<<<<< HEAD
                             
                         
        +======= + + +>>>>>>> 0633649 (fixes file not found errors in 8.4) import java.io.FileWriter; import java.io.IOException; @@ -570,7 +583,7 @@ public class WriteFile { public static void main(String[] args) { try { - FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode + FileWriter myWriter = new FileWriter("newfile.txt", true); // true enables append mode myWriter.write("File successfully updated!"); myWriter.close(); System.out.println("File successfully written to."); From 1186f640889c59e662f8e2c6d316f4f4c044c47d Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Thu, 7 Aug 2025 15:20:26 -0400 Subject: [PATCH 190/448] Finished adding content. Awaiting review before making addtional changes. --- source/ch4_conditionals.ptx | 81 +++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 3 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 8b53c5b..1a8eb5e 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -282,7 +282,7 @@ The switch statement is not used very often, and we recommend you do not

        - This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try/except (Python) or try/catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try/except blocks and a while loop will look something like this: + This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try/except (Python) or try/catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try/except blocks and a while loop to the Python code will look something like this:

        @@ -298,6 +298,10 @@ The switch statement is not used very often, and we recommend you do not
        +

        + Now that we have Python code that will continuously prompt the user until they enter a whole number, let's look at Java code that accomplishes the same task. Like most other equivalent Java code blocks, this code has a lot of extra bits that are necessary to get working code. +

        + import java.util.Scanner; @@ -316,14 +320,85 @@ The switch statement is not used very often, and we recommend you do not break; } catch (InputMismatchException e) { System.out.println("That was not a valid number. Please try again: "); - scanner.nextLine(); // Clear the invalid input + scanner.nextLine(); } } } } - + +

        + Firstly, let's talk about the extra import alongside the Scanner import. In Java, any exception that isn't part of the java.lang class or is a checked exception must be explicitly imported to be used with try/catch blocks. If you ran the previous Java codeblock without try/catch blocks and entered an erroneous input, you would have got an InputMismatchException exception despite not having imported this class. That being said, removing the explicit import of this library for the try/catch code block above will lead to compilation errors. +

        + +

        + checked exception + unchecked exception + Exceptions in Java fall under two categories: checked and unchecked. Checked exceptions must be explicitly imported and declared along with try/catch blocks for a program to compile. Unchecked exceptions do not need to be imported unless try/catch blocks are implemented for them (except for java.lang exceptions). InputMismatchException is an unchecked exception that is not part of the java.lang library, so it is only included if try/catch blocks declare it. Here are some common exceptions used with try/catch blocks: +

        + + + Exceptions + + + Exception + Package + Description + + + IOException + java.io + Thrown when an I/O operation fails (e.g., reading or writing a file). + + + FileNotFoundException + java.io + Thrown when an attempt to open a file denoted by a pathname has failed. + + + ParseException + java.text + Thrown when parsing a string into a date, number, etc. fails (e.g., wrong format). + + + NoSuchMethodException + java.lang + Thrown when a particular method cannot be found via reflection. + + + InputMismatchException + java.util + Thrown when Scanner input doesn’t match the expected data type. + + + SQLException + java.sql + Thrown when a database access error occurs (e.g., invalid SQL query, bad connection). + + + InstantiationException + java.lang + Thrown when trying to create an instance of an abstract class or interface. + + + IllegalAccessException + java.lang + Thrown when a reflection operation tries to access a field or method it doesn't have permission for. + + +
        + +

        + Next, we will look into the try/catch blocks themselves. As with most other structures in Java, the blocks must be encased with braces {}. The most important part of this code is, after catch, there is a set of parenthesis with an exception type and a variable name catch (InputMismatchException e). This is where we declare a InputMismatchException exception and name it with the variable name e. It is common practice to name exception variables e in this manner. +

        + + +

        + Typically, Java is more "strict" than Python. Variable data types must be declared along with the variable, braces must be used, etc. A notable exception occurs in print statements as seen in the code in this section. In Python, strings can only be concatenated with other strings, but in Java, strings can be concatenated with other data types. +

        +
        +
    From 282c172e2f69ed9e80667612c804eb919d864b83 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Thu, 7 Aug 2025 15:24:57 -0400 Subject: [PATCH 191/448] Removed an unnecessary note at the end of the new section. --- source/ch4_conditionals.ptx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 1a8eb5e..3c3ae12 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -393,12 +393,6 @@ The switch statement is not used very often, and we recommend you do not Next, we will look into the try/catch blocks themselves. As with most other structures in Java, the blocks must be encased with braces {}. The most important part of this code is, after catch, there is a set of parenthesis with an exception type and a variable name catch (InputMismatchException e). This is where we declare a InputMismatchException exception and name it with the variable name e. It is common practice to name exception variables e in this manner.

    - -

    - Typically, Java is more "strict" than Python. Variable data types must be declared along with the variable, braces must be used, etc. A notable exception occurs in print statements as seen in the code in this section. In Python, strings can only be concatenated with other strings, but in Java, strings can be concatenated with other data types. -

    -
    -
    From e8798bc750455749ffae2075b8506a9d9e5aa568 Mon Sep 17 00:00:00 2001 From: flahertyc <122467714+coco3427@users.noreply.github.com> Date: Thu, 7 Aug 2025 16:35:37 -0400 Subject: [PATCH 192/448] removing conflicts --- source/ch8_filehandling.ptx | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 3169b36..05a8ca7 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -489,11 +489,7 @@

    And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

    -<<<<<<< HEAD -======= - ->>>>>>> 0633649 (fixes file not found errors in 8.4)
                         
                     
    @@ -514,16 +510,12 @@

    The completed Java code:

    -<<<<<<< HEAD
                         
                     
    -======= - ->>>>>>> 0633649 (fixes file not found errors in 8.4) import java.io.FileWriter; import java.io.IOException; @@ -565,17 +557,12 @@

    Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument:

    -<<<<<<< HEAD
                         
                     
    -======= - - ->>>>>>> 0633649 (fixes file not found errors in 8.4) import java.io.FileWriter; import java.io.IOException; @@ -801,4 +788,4 @@
    - \ No newline at end of file + From dea854bbb197772f55bbe48827464f14a51de43f Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Thu, 7 Aug 2025 19:09:26 -0400 Subject: [PATCH 193/448] Adding Introduction and Debugging Section in Chapter 9 --- source/ch9_commonmistakes.ptx | 39 +++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index c8ef187..4d22f7f 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -7,6 +7,45 @@ +
    + How to Avoid Making Mistakes +

    + Making mistakes is a natural part of learning Java—or any programming language. The good news is that most errors happen for just a few common reasons, and once you recognize the patterns, they become much easier to fix. This chapter focuses on those typical mistakes and how to understand and correct them. +

    +

    + One of the best ways to avoid these errors is to slow down and test your code in small pieces. Write a few lines, compile, and check the output before moving on. If something goes wrong, read the error message carefully and focus on fixing one problem at a time. Often, solving the first error helps fix others that follow. +

    +

    + A simple debugging technique is to use System.out.println() to print out variable values and program flow. If you're not sure whether a part of your code is running or what a variable contains, print it out. This helps you check your assumptions and narrow down where something is going wrong. +

    + + + // DebugExample.java + public class DebugExample { + + public static void main(String[] args) { + int number = 10; + int result = multiplyByTwo(number); + // Debugging: print the result to verify the method worked + System.out.println("Result after multiplying: " + result); + } + + public static int multiplyByTwo(int value) { + // Debugging: print the input value to check it's being passed correctly + System.out.println("multiplyByTwo received: " + value); + return value * 2; + } + }//End of class + + +

    + In the example above, System.out.println() is used inside both main and multiplyByTwo() to trace what values are being passed and returned. This kind of print-based debugging can quickly reveal logic errors, unexpected behavior, or whether a method is even being called. +

    +

    + Above all, be patient with yourself. Every mistake you make is an opportunity to understand Java more deeply. +

    +
    +
    Forgetting a Semicolon

    From 9f0ab256ea13b2afa5352a602b687ecceb025d65 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Fri, 8 Aug 2025 08:46:34 -0400 Subject: [PATCH 194/448] change section title and mention debugging tools --- source/ch9_commonmistakes.ptx | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 4d22f7f..1a041b9 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -7,16 +7,23 @@ -

    - How to Avoid Making Mistakes +
    + Mistakes Happen!

    - Making mistakes is a natural part of learning Java—or any programming language. The good news is that most errors happen for just a few common reasons, and once you recognize the patterns, they become much easier to fix. This chapter focuses on those typical mistakes and how to understand and correct them. + Making mistakes is a very natural part of learning Java—or any other programming language. In fact, mistakes are an absolutely essential part of the learning process! So, try not to feel discouraged when you encounter errors in your code. Instead, view each mistake as an opportunity to deepen your understanding. Every programmer, no matter how experienced, encounters errors in their code. The key is to learn how to identify and correct these errors while also learning from them.

    - One of the best ways to avoid these errors is to slow down and test your code in small pieces. Write a few lines, compile, and check the output before moving on. If something goes wrong, read the error message carefully and focus on fixing one problem at a time. Often, solving the first error helps fix others that follow. + The good news is that most errors happen for just a few common reasons, and once you recognize the patterns, they become much easier to fix. This chapter focuses on those typical mistakes and how to understand and correct them.

    - A simple debugging technique is to use System.out.println() to print out variable values and program flow. If you're not sure whether a part of your code is running or what a variable contains, print it out. This helps you check your assumptions and narrow down where something is going wrong. + One of the best ways to correct these errors is to slow down and test your code in small pieces. Write a few lines, compile, and check the output before moving on. If something goes wrong, read the first error message very carefully, and focus on fixing one problem at a time. Often, solving the first error helps fix others that follow. +

    +

    + A simple debugging technique is to use System.out.println() to print out variable values. If you're not sure whether a part of your code is running correctly or what a variable contains, you can print it out. This can help you to check your assumptions and narrow down where something is going wrong. +

    + +

    + Consider the following example where we have a method that multiplies a number by two. We can add print statements to help us debug the code:

    @@ -39,10 +46,13 @@

    - In the example above, System.out.println() is used inside both main and multiplyByTwo() to trace what values are being passed and returned. This kind of print-based debugging can quickly reveal logic errors, unexpected behavior, or whether a method is even being called. + In the example above, System.out.println() is used inside both main and multiplyByTwo() to trace what values are being passed and returned. This kind of print-based debugging can quickly reveal logic errors, unexpected behavior, or whether a method is even being called. However, overuse of this technique will often take more time than using the debugging tools that are built into your IDE. +

    +

    + Useful tools in the built-in Java debugger can help you step through your code, inspect variables, and evaluate expressions at runtime. Familiarizing yourself with these tools can greatly enhance your debugging efficiency.

    - Above all, be patient with yourself. Every mistake you make is an opportunity to understand Java more deeply. + Above all, when you encounter an error, be patient with yourself. Every mistake you make is an opportunity to learn.

    From 14a208a5b832ea4e566c9d7261aba27fe6bdc870 Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Fri, 8 Aug 2025 10:15:24 -0400 Subject: [PATCH 195/448] moved the introduction to 8.1 and added a section describes the code in the third code block. --- source/ch8_filehandling.ptx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 05a8ca7..e2b96b4 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -4,17 +4,10 @@ File Handling - -

    - File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files. -

    -
    - -
    Class Imports

    - In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following. + File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following.

    @@ -42,12 +35,13 @@

    - Java includes a class called File in the io library. The class can be imported with the following line. Be sure to capitalize File. + Much like the Math class, in order for your program to work with files you need to import classes from libraries. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods. the following code imports the File class and creates a File object called myFile. for now focus on how the class is imported and used in the program; We will cover the IOException class and createNewFile method later.

    import java.io.File; - import java.io.IOException;public class Main { + import java.io.IOException; + public class Main { public static void main(String[] args) { try { File myFile = new File("newfile.txt"); From 6e2388a0c0835fda1eb27214d29c762c99332fb7 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Fri, 8 Aug 2025 10:35:27 -0400 Subject: [PATCH 196/448] remove stray code and some minor fixes --- source/ch4_conditionals.ptx | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 3c3ae12..3d1459a 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -163,27 +163,18 @@ public class ElseIf {

    Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following: -

    while True: - - try: - - x = int(input("Please enter a whole number: ")) - - break - - except ValueError: - - print("Oops! That was no valid number. Try again...") +

    - Depending on your knowledge and experience with Python you may already be familiar and questioning why we are not using the match statement in our Python examples. The answer is that this book currently runs its active code examples on Python 3.7, which does not support the match statement. The match statement was introduced in Python 3.10. Below is an example of the match statement similar to our grade method. + Depending on your knowledge and experience with Python you may already be familiar and questioning why we are not using the match statement in our Python examples. The answer is that this book currently runs its active code examples using Python 3.7, which does not support the match statement which was introduced in Python 3.10. Below is an example of the match statement similar to our grade method.

    Match Case Example - grade = 100 // 10 - def grading(grade): + grade = 85 + tempgrade = grade // 10 + def grading(tempgrade): match grade: case 10 | 9: return 'A' @@ -195,7 +186,7 @@ Java also supports a switch statement that acts something like the eli return 'D' case _: return 'F' - print(grading(grade)) + print(grading(tempgrade))
    @@ -248,7 +239,7 @@ The switch statement is not used very often, and we recommend you do not Exception Handling

    - In Python, if you want a program to continue running when an error has occurred, you can use try/except blocks to handle exceptions. If you wanted to write a program that asks the user to enter a whole number and then squares that number, you could use the following code to do so: + In Python, if you want a program to continue running when an error has occurred, you can use try-except blocks to handle exceptions. If you wanted to write a program that asks the user to enter a whole number and then squares that number, you could use the following code to do so:

    @@ -282,7 +273,7 @@ The switch statement is not used very often, and we recommend you do not

    - This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try/except (Python) or try/catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try/except blocks and a while loop to the Python code will look something like this: + This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try-except (Python) or try-catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try-except blocks and a while loop to the Python code will look something like this:

    @@ -320,7 +311,7 @@ The switch statement is not used very often, and we recommend you do not break; } catch (InputMismatchException e) { System.out.println("That was not a valid number. Please try again: "); - scanner.nextLine(); + scanner.nextLine(); // Clear the invalid input from the scanner } } } @@ -329,13 +320,13 @@ The switch statement is not used very often, and we recommend you do not

    - Firstly, let's talk about the extra import alongside the Scanner import. In Java, any exception that isn't part of the java.lang class or is a checked exception must be explicitly imported to be used with try/catch blocks. If you ran the previous Java codeblock without try/catch blocks and entered an erroneous input, you would have got an InputMismatchException exception despite not having imported this class. That being said, removing the explicit import of this library for the try/catch code block above will lead to compilation errors. + Firstly, let's talk about the extra import alongside the Scanner import. In Java, we need to import InputMismatchException because it's not automatically available like basic exceptions. This is different from Python where most exceptions are readily accessible. If you ran the previous Java codeblock without try-catch blocks and entered an erroneous input, you would have got an InputMismatchException exception despite not having imported this class. That being said, removing the explicit import of this library for the try-catch code block above will lead to compilation errors.

    checked exception unchecked exception - Exceptions in Java fall under two categories: checked and unchecked. Checked exceptions must be explicitly imported and declared along with try/catch blocks for a program to compile. Unchecked exceptions do not need to be imported unless try/catch blocks are implemented for them (except for java.lang exceptions). InputMismatchException is an unchecked exception that is not part of the java.lang library, so it is only included if try/catch blocks declare it. Here are some common exceptions used with try/catch blocks: + Exceptions in Java fall under two categories: checked and unchecked. Checked exceptions must be explicitly imported and declared along with try-catch blocks for a program to compile. Unchecked exceptions do not need to be imported unless try-catch blocks are implemented for them (except for java.lang exceptions). InputMismatchException is an unchecked exception that is not part of the java.lang library, so it is only included if try-catch blocks declare it. Here are some common exceptions used with try-catch blocks:

    @@ -390,7 +381,7 @@ The switch statement is not used very often, and we recommend you do not

    - Next, we will look into the try/catch blocks themselves. As with most other structures in Java, the blocks must be encased with braces {}. The most important part of this code is, after catch, there is a set of parenthesis with an exception type and a variable name catch (InputMismatchException e). This is where we declare a InputMismatchException exception and name it with the variable name e. It is common practice to name exception variables e in this manner. + Next, we will look into the try-catch blocks themselves. As with most other structures in Java, the blocks must be encased with braces {}. The most important part of this code is, after catch, there is a set of parenthesis with an exception type and a variable name catch (InputMismatchException e). This is where we declare a InputMismatchException exception and name it with the variable name e. It is common practice to name exception variables e in this manner.

    From 24ba63b4183f2f5bc3b3c6c503ab301605cb16f0 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Fri, 8 Aug 2025 10:38:57 -0400 Subject: [PATCH 197/448] clarification --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 3d1459a..7d1ed00 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -381,7 +381,7 @@ The switch statement is not used very often, and we recommend you do not

    - Next, we will look into the try-catch blocks themselves. As with most other structures in Java, the blocks must be encased with braces {}. The most important part of this code is, after catch, there is a set of parenthesis with an exception type and a variable name catch (InputMismatchException e). This is where we declare a InputMismatchException exception and name it with the variable name e. It is common practice to name exception variables e in this manner. + Note that as with other structures in Java, try-catch blocks blocks must be encased with braces {}. The most important part of this code is, after catch, there is a set of parenthesis with an exception type and a variable name catch (InputMismatchException e). This is where we declare a InputMismatchException exception and name it with the variable name e. It is common practice, though not a requirement, to name exception variables e in this manner.

    From c085b2d12efc87bc451eac440aee0d6aed0030a8 Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Fri, 8 Aug 2025 11:00:07 -0400 Subject: [PATCH 198/448] I made regular print statements and replaced the previous ones that used f --- source/ch8_filehandling.ptx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 05a8ca7..73ed7d1 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -128,14 +128,15 @@ filename = "newfile.txt" - print(f"Attempting to write to '{filename}' using 'w' mode...") + print("Attempting to write to '" + filename + "' using 'w' mode...") try: with open(filename, 'w') as f: f.write("This file was created using 'w' mode.") - print(f"SUCCESS: The file '{filename}' was created or overwritten.") + print("SUCCESS: The file '" + filename + "' was created or overwritten.") except Exception as e: # This would only catch other unexpected errors - print(f"An unexpected error occurred during write: {e}") + print("An unexpected error occurred during write: " + str(e)) + From 7ae8b3f02d3a51a6d71286843fae7a30bd90a4c5 Mon Sep 17 00:00:00 2001 From: Elijah Babayemi Date: Fri, 8 Aug 2025 14:34:45 -0400 Subject: [PATCH 199/448] Added more indices to important concepts and terminology --- source/ch2_firstjavaprogram.ptx | 4 ++-- source/ch4_conditionals.ptx | 4 ++-- source/ch5_loopsanditeration.ptx | 3 +-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index f233cc0..d911d4b 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -8,8 +8,8 @@ Classes and Objects

    - Object-Oriented Programming (OOP) - Depending on how deep your knowledge of Python and programming in general is, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. If you already have a good understanding of classes and objects in Python, this section may be skipped. + object-oriented programming OOP + Depending on how deep your knowledge of Python and programming in general is, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. If you already have a good understanding of classes and objects in Python, this section may be skipped.

    diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 7d1ed00..d7af30c 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -389,8 +389,8 @@ The switch statement is not used very often, and we recommend you do not

    Boolean Operators -

    Boolean operators -The conditionals used in the if statement can be Boolean variables, simple comparisons, and compound Boolean expressions. +

    boolean operators simple comparisons compound boolean expressions +The conditionals used in the if statement can be boolean variables, simple comparisons, and compound boolean expressions.

    ternary operator diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index fd10c12..7907dcc 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -173,7 +173,7 @@ public class StringIterationExample { Indefinite Loops

    while loop - Both Python and Java support the while loop, which continues to execute as long as a condition is true. + Both Python and Java support the while loop, which continues to execute as long as a condition is true. Here is a simple example in Python that counts down from 5:

    @@ -321,7 +321,6 @@ public class DoWhileExample { -
    \ No newline at end of file From ccdbe277698313d6d8bdfbb4ba2eeb7a3a3c4afd Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Fri, 8 Aug 2025 14:43:12 -0400 Subject: [PATCH 200/448] made a new ch8.3 that is smaller and uses better examples. --- source/ch8_filehandling.ptx | 176 +++++------------------------------- 1 file changed, 21 insertions(+), 155 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index ae8e80e..af0fc29 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -167,16 +167,18 @@ You may have noticed the use of another method from the File class; getName(). This method returns a string containing the name of the file.

    -
    - +
    Reading Files

    - Let's take a look at how we can use Java to read file contents. We'll start again with library imports and building a class, this time importing the Scanner and FileNotFoundException classes. We will call this class ReadFile: -

    - + Let’s take a look at how we can use Python to understand how read file contents in Java.In order to read files generally you iterate through each line in the file and read its content. In Java you read files in a very similar way, however in java we will use a Scanner object in order to iterate through lines. +

    +

    + The next lines consists of a Python code example that reads each line of the file and prints it to the console. +

    +
                         1
                         2
    @@ -188,77 +190,27 @@
                         8
                     
    - - - - - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner;public class Main { - public static void main(String[] args) { - try { - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - System.out.println("Reading from file: " + myFile.getName()); - while (fileReader.hasNextLine()) { - String data = fileReader.nextLine(); - System.out.println(data); - } - fileReader.close(); // Close the scanner to release the file - } catch (FileNotFoundException e) { - System.out.println("An error occurred: The file was not found."); - e.printStackTrace(); - } - } - } - - - -

    - We will then create a new File object exactly the same as the one from the section on creating files. Additionally, we will create a Scanner object. The Scanner object is the object that does the file reading. We will call this scanner fileReader: -

    - + - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner; - public class Main { - public static void main(String[] args) { - // This 'try-with-resources' statement handles opening the file - // and guarantees it is closed automatically, which is best practice. - try (Scanner fileReader = new Scanner(new File("myfile.txt"))) { - - // If this line is reached, the file was opened successfully. - System.out.println("Success! The file 'myfile.txt' is now open."); - - } catch (FileNotFoundException e) { - - // This block runs only if 'myfile.txt' does not exist. - System.out.println("Error: The file 'myfile.txt' could not be found."); - } - } - } - - - -

    - The next lines consists of a Python code example that reads each line of the file passed to the Scanner object.: -

    - - - - with open("myfile.txt", "r") as file_reader: - for line in file_reader: - print(line.strip()) + filename = "myfile.txt" + try: + # Attempt to open the file in read mode ('r') + with open(filename, "r") as file_reader: + # Iterate over each line in the file + for line in file_reader: + print(line.strip()) + except: + #catches if the file doesn't exist or can't be written to + print("file could not be opened")

    - The equivalent Java code: + The following Java code functions very similarly to the previous Python. The main difference here is that unlike Python, In Java we use the Scanner object to iterate through and read lines in the file. You will notice that the structure of the Java code is still similar to the Python; Both use a try and catch statement to read the file and catch any errors.

    - + import java.io.File; import java.io.FileNotFoundException; @@ -278,94 +230,8 @@ } - -

    - The hasNextLine() method checks checks if the line below the current line has any data. This will evaluate to true even if the next line only contains blank spaces. Within the while loop, a string variable called data is used to store the current line that the Scanner object is pointing to. The nextLine() method does two things. Firstly, it returns the current line when called. Secondly, it moves the Scanner's position to the next line. In other words, for each iteration of the while loop, each line in the text is read, stored temporarily in the data variable, and printed to the console. Finally, the close() method accomplishes and holds the same importance as in the section on writing to files. -

    - -

    - Alternatively, the following code can be used to store the all lines of myfile.txt to one variable: -

    - - - - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner;public class Main { - public static void main(String[] args) { - String filename = "myfile.txt"; - try (Scanner fileReader = new Scanner(new File(filename))) { - String data = ""; - while (fileReader.hasNextLine()) { - data = data + fileReader.nextLine() + System.lineSeparator(); - } - System.out.println(data); - } - catch (FileNotFoundException e) { - System.out.println("Error: The file '" + filename + "' was not found."); - } - } - } - - - - -

    - Pay close attention to the details of this code. data must be declared using an empty string or it may not work correctly within the while loop. Additionally, care must be given to reassigning data in the while loop. data is concatinated (to ensure all lines are included) with fileReader.nextLine() and a new line operator. Each step of this process ensures what is stored in data matches exactly what is in myfile.txt. -

    -
    - -

    - Using the second method of storing all file contents to one file, the resulting full code including try/catch blocks (this time using FileNotFoundException instead of IOException) will look something like this. First, the Python code: -

    - - - - try: - with open("myfile.txt", "r") as file_reader: - data = "" - for line in file_reader: - data += line # line already includes the newline character - print(data) - except FileNotFoundError: - print("An error occurred.") - import traceback - traceback.print_exc() - - - - -

    - And the Java equivalent: -

    - - - - import java.io.File; - import java.io.FileNotFoundException; - import java.util.Scanner; - - public class ReadFile { - public static void main(String[] args) { - try { - File myFile = new File("myfile.txt"); - Scanner fileReader = new Scanner(myFile); - String data = ""; - while (fileReader.hasNextLine()) { - data = data + fileReader.nextLine() + System.lineSeparator(); - } - System.out.println(data); - fileReader.close(); - } catch (FileNotFoundException e) { - System.out.println("An error occurred."); - e.printStackTrace(); - } - } - } - -

    - In this code, we simply print the contents of the file to the console, but it is easy to imagine how the data variable could be used in conjunction with the write class created in the previous section to create a copy of myfile.txt. + You may have noticed that there are some new methods you haven't seen yet. The hasNextLine() method checks if there is a next line in the file, and returns false if there isn't. This method allows us to iterate over every line till there is no next line. The nextLine() method of the Scanner object returns the next line in the file as a string.

    From be3a60d7f75dd3ef8eee11a7bf1fa16b3f758f8e Mon Sep 17 00:00:00 2001 From: colin flaherty Date: Fri, 8 Aug 2025 15:58:11 -0400 Subject: [PATCH 201/448] changes 8.2's introduction and uses a new opening paragraph --- source/ch8_filehandling.ptx | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index ae8e80e..d4e65b5 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -84,35 +84,8 @@
    Creating Files - -

    - We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. -

    - -
    -                    empty file
    -                
    -
    - - - import java.io.File; - public class Main { - public static void main(String[] args) { - File myFile = new File("myfile.txt"); - System.out.println(myFile); - } - } - - - - -

    - myFile is the name of the object within the program, while myfile.txt is the name of the file itself and will be the file name if the operation that creates the file is successful. -

    -
    -

    - Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an try/catch structure to determine if the file was created, or catch the error if a file with that file name already exists in the directory. + Now lets learn how to make a file in Java. In Python files can be made using the open() function on a file path that doesn't exist yet. Similarly, in Java you create a file by using the createNewFile() method on a File object. This method actually does the work of creating a file and saving it in the current working directory, and returns a boolean value of either true or false if the file is successfully created. We can use this method's possible return values in tandem with an try/catch structure to determine if the file was created, or catch the error if a file with that file name already exists in the directory.

    From 2b9b26705cb958051aeb497e2f1c2632dfea816c Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Fri, 8 Aug 2025 17:37:45 -0400 Subject: [PATCH 202/448] Fixing the margin for the Data File --- source/ch3_javadatatypes.ptx | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index b0b41ec..ad28a23 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -728,18 +728,28 @@ main() This program reads the file alice30.txt (which follows), and it then splits it into a list of words. Next it creates a dictionary called count which maps each word to the number of times that word occurs in the text. Finally, it prints out the words in alphabetical order along with their frequency.

    -
     
    -            Down, down, down.  Would the fall NEVER come to an end! 
    -             'I wonder how many miles I've fallen by this time?' she said aloud. 'I must 
    -             be getting somewhere near the centre of the earth.  
    -             Let me see:  that would be four thousand miles down, I think--' 
    -             (for, you see, Alice had learnt several things of this sort in her lessons 
    -             in the schoolroom, and though this was not a VERY good opportunity for 
    -             showing off her knowledge, as there was no one to listen to her, still it 
    -             was good practice to say it over) '--yes, that's about the right distance
    -             --but then I wonder what Latitude or Longitude I've got to?'  
    -             (Alice had no idea what Latitude was, or Longitude either, 
    -             but thought they were nice grand words to say.) 
    + +
     
    +            Down, down, down. Would the fall NEVER
    +            come to an end! 'I wonder how many
    +            miles I've fallen by this time?' she
    +            said aloud. 'I must be getting somewhere
    +            near the centre of the earth. Let me see:
    +            that would be four thousand miles down,
    +            I think--' (for, you see, Alice had
    +            learnt several things of this sort in
    +            her lessons in the schoolroom, and though
    +            this was not a VERY good opportunity for
    +            showing off her knowledge, as there was no
    +            one to listen to her, still it was good
    +            practice to say it over) '--yes, that's
    +            about the right distance--but then I
    +            wonder what Latitude or Longitude I've got
    +            to?' (Alice had no idea what Latitude was,
    +            or Longitude either, but thought they were
    +            nice grand words to say.)
    +            
    +

    Notice that the structure of the program is very similar to the numeric histogram program.

    From 5d3dfe4fce2af6fcfecbe06290f13e2cdb26cd68 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Fri, 8 Aug 2025 17:44:58 -0400 Subject: [PATCH 203/448] fix Boolean vs boolean --- source/ch4_conditionals.ptx | 6 +++--- source/ch5_loopsanditeration.ptx | 2 +- source/ch8_filehandling.ptx | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index d7af30c..6b7a86b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -389,8 +389,8 @@ The switch statement is not used very often, and we recommend you do not
    Boolean Operators -

    boolean operators simple comparisons compound boolean expressions -The conditionals used in the if statement can be boolean variables, simple comparisons, and compound boolean expressions. +

    Boolean operators simple comparisons compound Boolean expressions +The conditionals used in the if statement can be Boolean variables, simple comparisons, and compound Boolean expressions.

    ternary operator @@ -408,7 +408,7 @@ of an assignment statement. The following table summarizes how this works: condition - The Boolean expression that is evaluated (e.g., a % 2 == 0). + The boolean expression that is evaluated (e.g., a % 2 == 0). ? diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 7907dcc..07f33c9 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -173,7 +173,7 @@ public class StringIterationExample { Indefinite Loops

    while loop - Both Python and Java support the while loop, which continues to execute as long as a condition is true. + Both Python and Java support the while loop, which continues to execute as long as a condition is true. Here is a simple example in Python that counts down from 5:

    diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index e2b96b4..72e97fb 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -112,7 +112,7 @@

    - Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an try/catch structure to determine if the file was created, or catch the error if a file with that file name already exists in the directory. + Now that we have created a new File object, we can create a file using the createNewFile() method from the File class. While the previous line of code creates an object within the program for the file, this method actually does the work of creating a file and saving it in the current working directory. This method returns a boolean value. If the method returns true, the file was successfully created. If the method returns false, there is already a file using the chosen file name. We can use this method's possible return values in tandem with an try/catch structure to determine if the file was created, or catch the error if a file with that file name already exists in the directory.

    @@ -541,7 +541,7 @@

    - Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument: + Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument:

    @@ -549,7 +549,7 @@
             

    - Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument: + Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument:

    
    From eaa69a45ce0eedb0d52cfddfbae3075a22bac030 Mon Sep 17 00:00:00 2001
    From: Jan Pearce 
    Date: Fri, 8 Aug 2025 19:03:55 -0400
    Subject: [PATCH 204/448] improve ch8 with clarifications
    
    ---
     source/ch8_filehandling.ptx | 36 ++++++++++++++++++------------------
     1 file changed, 18 insertions(+), 18 deletions(-)
    
    diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx
    index af0fc29..f8eb14a 100644
    --- a/source/ch8_filehandling.ptx
    +++ b/source/ch8_filehandling.ptx
    @@ -1,13 +1,13 @@
     
     
     
    -
    +
         File Handling
     
    -    
    +
    Class Imports

    - File handling is an integral part of programming. Most programming languages have the ability to read from, write to, create, delete, move, and copy files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following. + File handling is an integral part of programming. Most programming languages have the ability to create, read from, write to, and delete, files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following.

    @@ -17,7 +17,7 @@

    - The same program in Java would look like this: + Delete the first line that says import math and see what happens. The import math is needed. The same program in Java would look like this:

    @@ -31,11 +31,11 @@

    - Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit imports for most libraries, including the Math class and many different classes for file handling. + Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit import for most libraries, including the Math class and many classes related to file handling.

    - Much like the Math class, in order for your program to work with files you need to import classes from libraries. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods. the following code imports the File class and creates a File object called myFile. for now focus on how the class is imported and used in the program; We will cover the IOException class and createNewFile method later. + Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods. the following code imports the File class and creates a File object called myFile. for now focus on how the class is imported and used in the program; We will cover the IOException class and createNewFile method later.

    @@ -82,18 +82,18 @@
    -
    +
    Creating Files

    We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile.

    - +
                         empty file
                     
    - + import java.io.File; public class Main { @@ -119,7 +119,7 @@ First, lets look at the equivalent Python code:

    - + filename = "newfile.txt" print("Attempting to write to '" + filename + "' using 'w' mode...") @@ -169,16 +169,16 @@
    -
    +
    Reading Files

    - Let’s take a look at how we can use Python to understand how read file contents in Java.In order to read files generally you iterate through each line in the file and read its content. In Java you read files in a very similar way, however in java we will use a Scanner object in order to iterate through lines. + Let’s take a look at how we can use Python to understand how read file contents in Java. In order to read files generally you iterate through each line in the file and read the line's content. In Java, you read files in a very similar way, however in Java we will use the Scanner class in order to iterate through the lines.

    - The next lines consists of a Python code example that reads each line of the file and prints it to the console. + Consider the following Python code example that reads each line of the file and prints it to the console.

    - +
                         1
                         2
    @@ -191,7 +191,7 @@
                     
    - + filename = "myfile.txt" try: @@ -210,7 +210,7 @@ The following Java code functions very similarly to the previous Python. The main difference here is that unlike Python, In Java we use the Scanner object to iterate through and read lines in the file. You will notice that the structure of the Java code is still similar to the Python; Both use a try and catch statement to read the file and catch any errors.

    - + import java.io.File; import java.io.FileNotFoundException; @@ -231,11 +231,11 @@

    - You may have noticed that there are some new methods you haven't seen yet. The hasNextLine() method checks if there is a next line in the file, and returns false if there isn't. This method allows us to iterate over every line till there is no next line. The nextLine() method of the Scanner object returns the next line in the file as a string. + You may have noticed that there are some new methods you haven't seen yet. The hasNextLine() method checks if there is a next line in the file, and returns false if there isn't. This method allows us to iterate over every line till there is no next line. The nextLine() method of the Scanner object returns the next line in the file as a string.

    -
    +
    Writing to Files

    From c15d0d9d4842782d5910b573850e66e404e32475 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Sat, 9 Aug 2025 12:44:30 -0400 Subject: [PATCH 205/448] correct topics in section 1.1 to what is actually covered --- source/ch1_overview.ptx | 53 ++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/source/ch1_overview.ptx b/source/ch1_overview.ptx index 4a589a9..f8e4253 100644 --- a/source/ch1_overview.ptx +++ b/source/ch1_overview.ptx @@ -5,17 +5,17 @@ Overview -

    - Prerequisites +
    + Prerequisites and Trajectory

    This book assumes that you are already familiar with the Python programming language. - We will use Python as a starting point for our journey into Java. + We will use Python as a starting point for our journey into Java. We will begin by looking at a very simple Java program, just to see what the language looks like and how we get a program to run. Next, we will look at the main constructs that are common to most programming languages:

    -
    +

    • @@ -26,63 +26,51 @@
    • - Loops + User input and output

    • - Reading user input + Conditionals and Exception Handling

    • -
    • - Conditionals + Loops and Iteration

    -

    - Once we have the basics of Java behind us we will move on to look at the features of Java that are both unique and powerful. + Once we have the basics of Java behind us we will move on to look at more powerful features of the language.

    -
    +

    • - Classes + Classes and Interfaces

    • -
    • - Interfaces + Recursion

    • -
    • - Collections + File Handling

    • -
    • -

      - Graphical User Interface Programming -

      -
    • -
    • -

      - Generic Programming -

      -

    -
    +

    + Finally, we will look at common errors and how to find the help you need. +

    @@ -91,11 +79,7 @@ Java Development Environment - -

    - Thank you to Beryl Hoffman for contributing to this section from her CSAwesome: AP Java Programming book. -

    -
    +

    The tool that we use to compile a Java source file into a Java class file @@ -304,6 +288,11 @@ visual="http://skylit.com/javamethods/faqs/Eclipse.pdf">http://skylit.com/javamethods/faqs/Eclipse.pdf.

    + +

    + Thank you to Beryl Hoffman for contributing to this section from her CSAwesome: AP Java Programming book. +

    +
    From 99c436c5b857301e72a535fcd9440238389f935f Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Sat, 9 Aug 2025 14:04:05 -0400 Subject: [PATCH 206/448] reorganize section on java IDEs --- source/ch1_overview.ptx | 397 ++++++++++++++++++++-------------------- 1 file changed, 201 insertions(+), 196 deletions(-) diff --git a/source/ch1_overview.ptx b/source/ch1_overview.ptx index f8e4253..be9f0de 100644 --- a/source/ch1_overview.ptx +++ b/source/ch1_overview.ptx @@ -75,224 +75,229 @@
    -
    +
    Java Development Environment - - -

    +

    compilerintegrated development environmentIDE The tool that we use to compile a Java source file into a Java class file is called a compiler. Most programmers use an - Integrated Development Environment (IDE) that has the + integrated development environment (IDE) that has the compiler built in and helps you write, compile, run, and debug programs.

    -

    +

    Active Codeload history You can learn Java by just using the interactive coding panels called Active Code in this e-book. If you are logged in, the Active Code will remember your changes and even show you a history of your - changes to the code if you click on Load History. + changes to the code if you click on Load History.

    - However, it’s a good idea to also try a Java IDE to build code outside of - this e-book, especially to try coding with user input which Active Code - cannot do. There are many Java IDEs available. + However, it's a good idea to also try a Java IDE to build code outside of + this online book. There are many Java IDEs available. If you are enrolled in a course, your instructor will likely recommend one, so you should learn to use that one.

    - - Java IDE Options + + Installing Java +

    JDKJava development kitOracleOpenJDK + Before you can use any Java IDE or compile Java programs, you need to install the Java development kit (JDK) on your computer. The JDK includes the Java compiler, the runtime environment, and essential tools for Java development. You can either download the latest version of the JDK from Oracle's website (https://www.oracle.com/java/technologies/downloads/) or use OpenJDK, which is a free and open-source implementation available at https://openjdk.org/. Most IDEs will help you configure the JDK once it's installed, but you'll need to have it on your system first. To verify your installation works, open a command prompt or terminal and type java -version - you should see version information displayed. +

    +
    + + + Github Classroom and Codespaces +

    GitHubversion controlCodespaces + GitHub is the largest source code repository host in the world, with over 300 million repositories and a global community of more than 100 million developers. Github is widely used for both open-source and private projects, making it a versatile platform for various development needs, and a great place to learn about version control and collaboration in software development. + Github provides many free opportunities for both students and teachers (https://docs.github.com/en/education/quickstart). + Github Classroom (https://classroom.github.com/) + allows teachers to set up a classroom based on Github repositories. Github + and git are both very widely used in the computer industry, so learning to use + them is great experience for students who want to showcase their skills. Github now has a cloud IDE called + Codespaces (https://github.com/features/codespaces) + which you can use for 60 hours a month for free or completely free if you + join as a school or get approved as a teacher or student. In Codespaces, + you can start from a blank template or repository, open a .java file in the + VSCode editor, follow prompts to install the Extension Pack for Java, + click on the Run and Debug (play button), follow the prompts to install + the Java debugger, and see the output of your code in the terminal. You + can also use Copilot (https://github.com/features/copilot), + which is a coding AI based on GPT, for free if you are approved for + educational use. +

    +

    - There are a lot of online cloud IDEs where you can code online in many - programming languages. Most are free to start, but offer different - features for a price. These are great options if you are using a - Chromebook or you cannot install software on your computer or you want an - easy no-installation option. Some of the Active Code samples in this - e-book also include a link to online IDEs. These projects can be copied to - make your own copy. -

    - -

    Here are some popular online IDEs:

    -

    -

      -
    • -

      - CodeHS (https://codehs.com/) has a free Sandbox online IDE - (https://codehs.com/app/sandbox) - where you can run Java and Java Swing programs. Students can share the links - to their code and the history of their code is saved. CodeHS has free and paid features. - Grading features are in the paid version. -

      -
    • -
    • -

      - PickCode (https://pickcode.io/) is another - online IDE that offers many free and paid features for setting up - classrooms. In the free version, tudents can share links to their code and - the history of their code is saved. Classroom features are in the paid version. -

      -
    • -
    • -

      - Replit (https://replit.com/) an online - IDE which recently switched to only allowing 3 projects at a time - for free. Be aware that Replit has turned on its AI feature for code - completion for all accounts (https://replit.com/ai). Each - user can turn the AI on and off at the bottom of the code window, - and use an AI chat window to ask questions of the AI. -

      -
    • + To use Github classroom, students need to sign up for a free Github account (https://github.com/signup) if + they don't already have one in order to use Codespaces. +

      + -
    • -

      - JuiceMind (https://juicemind.com/) is an - online IDE that offers many free and paid features for teachers to - set up classrooms like Coding Rooms. It has a built-in version of - CSAwesome. -

      -
    • -
    -

    -
    - - - Github Classroom and Codespaces -

    - Github provides many free opportunities for students and teachers (https://docs.github.com/en/education/quickstart). - Github Classroom (https://classroom.github.com/) - allows teachers to set up a classroom based on github repositories. Github - and git are both widely used in the computer industry, so learning to use - them is great experience for students. Github now has a cloud IDE called - Codespaces (https://github.com/features/codespaces) - which you can use for 60 hours a month for free or completely free if you - join as a school or get approved as a teacher or student. In Codespaces, - you can start from a blank template or a repo, open a .java file in the - VSCode editor, follow prompts to install the Extension Pack for Java, - click on the Run and Debug (play button), follow the prompts to install - the Java debugger, and see the output of your code in the terminal. You - can also use Copilot (https://github.com/features/copilot), - which is a coding AI based on GPT, for free if you are approved for - educational use. -

    - -

    - Students will need to sign up for a free Github account (https://github.com/signup) if - they don’t already have one in order to use Codespaces. -

    -
    - - - VSCode -

    - VSCode (https://code.visualstudio.com) - is a widely used coding editor which you can download on your local - computers. It has many useful extensions. The code can be run in a - terminal window in the editor. See https://code.visualstudio.com/docs/languages/java - for Java support. This editor is different than Microsoft Visual Studio - which is a very large IDE. -

    + + Desktop IDE Options +

    + To install Java software on your local computer, below are several popular Java IDEs and editors that you can download and install. Please be sure to use the one that is recommended by your instructor if you are enrolled in a course, as they may have specific preferences or requirements. +

    + +

    +

      +
    • +

      + VSCode (https://code.visualstudio.com) is not an IDE per se, but it + is a widely used coding editor which you can download on your local + computer with many useful extensions like debugging tools that for all practical purposes make it behave like an IDE. It is frequently used in combination with Github Classroom. See https://code.visualstudio.com/docs/languages/java + for Java support. Note that the VSCode editor is not the same as the Microsoft Visual Studio IDE which is a very large IDE that is not widely used for Java. +

      +
    • + +
    • +

      + IntelliJ IDEA (https://www.jetbrains.com/idea/) + is a free Java IDE from JetBrains which many professionals use. It is a + little easier to configure than Eclipse. Here is a guide on how to + set up IntelliJ: https://www.jetbrains.com/help/idea/install-and-set-up-product.html. +

      +
    • + +
    • +

      + Eclipse (https://www.eclipse.org/downloads/packages/installer) + is what many professional Java programmers use. It may be a little complex + for beginners. Here are some installation and configuration instructions + for Eclipse for Java beginners: http://skylit.com/javamethods/faqs/Eclipse.pdf. +

      +
    • + +
    • +

      + DrJava (http://DrJava.org) is a free, simple, + easy to install and use development environment. One nice feature is the + interactions pane at the bottom which lets you try out Java code without + having to create a class first. +

      +
    • + +
    • +

      + BlueJ (https://www.bluej.org/) is a free + Java IDE designed for beginners. It is built to explore objects and + object-oriented programming and has a teachers' community as well as a + playlist of videos online https://www.youtube.com/playlist?list=PLYPWr4ErjcnzWB95MVvlKArO6PIfv1fHd + to go with the BlueJ Object-First Java book. +

      +
    • + +
    • +

      + jGRASP (https://www.jgrasp.org/) is a free + lightweight development environment, created specifically to provide + automatic generation of software visualizations. jGRASP is implemented in + Java, and runs on all platforms with a Java Virtual Machine (Java version + 1.5 or higher). jGRASP produces Control Structure Diagrams (CSDs) for + Java, C, C++, Objective-C, Python, Ada, and VHDL; Complexity Profile + Graphs (CPGs) for Java and Ada; UML class diagrams for Java; and has + dynamic object viewers and a viewer canvas that work in conjunction with + an integrated debugger and workbench for Java. The site includes both + intro video and PDF tutorials. +

      +
    • + +
    • +

      + NetBeans (https://netbeans.org/) is one of the + original Java IDEs. Here is a tutorial on how to set it up: https://netbeans.org/kb/docs/java/quickstart. +

      +
    • +
    +

    - - Dr. Java -

    - DrJava (from http://DrJava.org) is a free, simple, - easy to install and use development environment. One nice feature is the - interactions pane at the bottom which lets you try out Java code without - having to create a class first. -

    -
    - - - BlueJ -

    - BlueJ (https://www.bluej.org/) is a free - Java IDE designed for beginners. It is built to explore objects and - object-oriented programming and has a teachers’ community as well as a - playlist of videos online https://www.youtube.com/playlist?list=PLYPWr4ErjcnzWB95MVvlKArO6PIfv1fHd - to go with the BlueJ Object-First Java book. -

    -
    - - - jGRASP -

    - jGRASP (https://www.jgrasp.org/) is a free - lightweight development environment, created specifically to provide - automatic generation of software visualizations. jGRASP is implemented in - Java, and runs on all platforms with a Java Virtual Machine (Java version - 1.5 or higher). jGRASP produces Control Structure Diagrams (CSDs) for - Java, C, C++, Objective-C, Python, Ada, and VHDL; Complexity Profile - Graphs (CPGs) for Java and Ada; UML class diagrams for Java; and has - dynamic object viewers and a viewer canvas that work in conjunction with - an integrated debugger and workbench for Java. The site includes both - intro video and PDF tutorials. -

    -
    - - - IntelliJ -

    - IntelliJ (https://www.jetbrains.com/idea/) - is a free Java IDE from JetBrains which many professionals use. It is a - little easier to configure than Eclipse below. Here is a guide on how to - set up IntelliJ: https://www.jetbrains.com/help/idea/install-and-set-up-product.html. -

    -
    - - - Netbeans -

    - Netbeans (https://netbeans.org/) is one of the - original Java IDEs. Here is a tutorial on how to set it up: https://netbeans.org/kb/docs/java/quickstart. -

    -
    - - - Eclipse -

    - Eclipse (https://www.eclipse.org/downloads/packages/installer) - is what many professional Java programmers use. It may be a little complex - for beginners. Here are some installation and configuration instructions - for Eclipse for Java beginners: http://skylit.com/javamethods/faqs/Eclipse.pdf. -

    -
    - -

    + + Java Online IDE Options +

    + There are also a lot of online cloud IDEs where you can code online in many + programming languages. Most are free to start, but offer different + features for a price. These are great options if you are using a + Chromebook or you cannot install software on your computer or you want an + easy no-installation option. +

    + +

    Here are some popular online IDEs:

    +

    +

      +
    • +

      + CodeHS (https://codehs.com/) has a free Sandbox online IDE + (https://codehs.com/app/sandbox) + where you can run Java and Java Swing programs. Students can share the links + to their code and the history of their code is saved. CodeHS has free and paid features. + Grading features are in the paid version. +

      +
    • +
    • +

      + PickCode (https://pickcode.io/) is another + online IDE that offers many free and paid features for setting up + classrooms. In the free version, students can share links to their code and + the history of their code is saved. Classroom features are in the paid version. +

      +
    • +
    • +

      + Replit (https://replit.com/) an online + IDE which recently switched to only allowing 3 projects at a time + for free. Be aware that Replit has turned on its AI feature for code + completion for all accounts (https://replit.com/ai). Each + user can turn the AI on and off at the bottom of the code window, + and use an AI chat window to ask questions of the AI. +

      +
    • +
    • +

      + JuiceMind (https://juicemind.com/) is an + online IDE that offers many free and paid features for teachers to + set up classrooms like Coding Rooms. It has a built-in version of + CSAwesome. +

      +
    • +
    +

    +
    + + +

    Thank you to Beryl Hoffman for contributing to this section from her CSAwesome: AP Java Programming book. -

    -
    +

    +
    From 95116200cf3295419d0b979d438ad716af38cc39 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Sat, 9 Aug 2025 15:47:44 -0400 Subject: [PATCH 207/448] improve flow in ch1 and add indexing to the chapter --- source/ch1_overview.ptx | 47 +++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/source/ch1_overview.ptx b/source/ch1_overview.ptx index be9f0de..59ce40e 100644 --- a/source/ch1_overview.ptx +++ b/source/ch1_overview.ptx @@ -102,7 +102,7 @@ Installing Java

    JDKJava development kitOracleOpenJDK - Before you can use any Java IDE or compile Java programs, you need to install the Java development kit (JDK) on your computer. The JDK includes the Java compiler, the runtime environment, and essential tools for Java development. You can either download the latest version of the JDK from Oracle's website (https://www.oracle.com/java/technologies/downloads/) or use OpenJDK, which is a free and open-source implementation available at https://openjdk.org/. Most IDEs will help you configure the JDK once it's installed, but you'll need to have it on your system first. To verify your installation works, open a command prompt or terminal and type java -version - you should see version information displayed. + Before you can use any Java IDE or compile Java programs, you need to install the Java development kit (JDK) on your computer. The JDK includes the Java compiler, the Java runtime environment, and many essential tools for Java development. You can either download the latest version of the JDK from Oracle's website (https://www.oracle.com/java/technologies/downloads/) or use OpenJDK, which is a free and open-source implementation available at https://openjdk.org/. Most IDEs will help you configure the JDK once it's installed, but you'll need to have it on your system first. To verify your installation works, you can open a command prompt or terminal and type java -version - you should see version information displayed.

    @@ -303,30 +303,34 @@
    Why Another Programming Language? -

    +

    dynamic languagestatic languages + Python Java Python is a nice language for beginning programming for several reasons. First the syntax is sparse, and clear. Second, the underlying model of how objects and variables work is very consistent. Third, you can write powerful and interesting programs without a lot of work. - However, Python is representative of one kind of language, called a dynamic language. - You might think of Python as being fairly informal. - There are other languages, like Java and C++ that are more formal. + However, Python is representative of one kind of language, called a dynamic language. In dynamic languages like Python, the type of a variable (whether it's a number, string, list, etc.) is determined while the program is running, not when you write the code. +

    + +

    In static languages, all variable types need to be declared upfront. + You might think of Python as being fairly informal about data types. + Java and C++ are more formal about types.

    -

    +

    performance These languages have some advantages of their own. - First, is speed: Java and C++ code will generally give better performance than Python code. (See .) - Second is their maintainability. + First, is speed: Java and C++ code will generally give better performance than Python code. (See .) + Second is their maintainability over time. Maintainability is the ease with which a program can be modified to correct faults, improve performance, or adapt to a changed environment. A lot of what makes Python easy to use is that you must remember certain things. - For example if you set variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. + For example, if you set Python variable x to reference a turtle, and forget later that x is a turtle but try to invoke a string method on it, you will get an error. Java and C++ protect you by forcing you to be upfront and formal about the kind of object each variable is going to refer to.

    -

    - In one sense Python is representative of a whole class of languages, sometimes referred to as “scripting languages.” Other languages in the same category as Python are Ruby and Perl. - Java is representative of what I will call industrial strength languages. - Industrial strength languages are good for projects with several people working on the project where being formal and careful about what you do may impact lots of other people. - Languages in this category include Rust, C++, C#, and Ada. +

    scripting language industrial strength languages + In one sense Python is representative of a whole class of languages, sometimes referred to as scripting languages. Other languages in the same category as Python are JavaScript, Ruby, and Perl. + Java is representative of what we might call industrial strength languages. + Industrial strength languages are good for large projects with multiple programmers, where being formal and careful about code structure is important because changes made by one person can impact many others. + Other industrial strength languages include Rust, C++, C#, and Ada.

    @@ -343,7 +347,7 @@

    - Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. + Although Python code is generally slower than Java and C++ code, in practice Python programs can achieve equivalent performance. Performance can be defined as how efficiently software can accomplish its tasks. This can be done by compiling Python code to C code (see: Cython) or by calling high-performance libraries from Python (e.g., NumPy, scikit-learn, etc.). So native language performance is just one criteria to consider when deciding which language to use for a program.

    @@ -351,7 +355,7 @@
    -
    +
    Why Learn Java? Why not C or C++?

    @@ -361,16 +365,17 @@

    • -

      - Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. +

      standard library + Java includes a larger standard library than C or C++, which means that sophisticated programs can be created in Java without including external dependencies. The Java Standard Edition contains thousands of built-in classes that support tasks like file input/output, networking, data structures, and graphical interfaces. - We could not begin to scratch the surface of these classes even if we devoted all of class time! However, we will cover many useful and powerful features of the Java standard library this semester. + We could not begin to scratch the surface of these classes even if we devoted many more chapters! However, we will cover many useful and powerful features of the Java standard library.

    • -

      - Java incorporates automatic garbage collection of memory, whereas C and C++ programs typically include some degree of manual memory management. +

      garbage collection + Java incorporates automatic garbage collection of memory, which is an automatic memory management process that identifies and removes unused objects from memory, helping to free up space and improve program efficiency. + C and C++ programs typically include some degree of manual memory management. This makes programming in those languages more challenging.

    • From 5baad59b31346905b66229bf5cf7618a9d13d036 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Mon, 11 Aug 2025 15:51:46 -0400 Subject: [PATCH 208/448] Adding a Summary Section and fixing typo in Chapter 7 --- source/ch7_recursion.ptx | 119 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 1 deletion(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 156f9a3..bdc102a 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -289,7 +289,7 @@ public class ArrayProcessor { Neither language supports tail call optimization tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative (loop-based) approach is the preferred solution in both Python and Java.

      - The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to aRecursionError. + The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError.

      @@ -331,4 +331,121 @@ public class ArrayProcessor {
    + +
    + Summary & Reading Questions +

      +
    1. +

      Recursion solves problems by defining a base case and a recursive step; each call reduces the problem size until the base case is reached.

      +
    2. +
    3. +

      Java methods must declare visibility, static/instance context, return type, and parameter types; e.g., public static int factorial(int n).

      +
    4. +
    5. +

      The recursive logic in Java mirrors Python conceptually, but Java uses curly braces {} and explicit types instead of indentation and dynamic typing.

      +
    6. +
    7. +

      The helper-method pattern keeps public APIs clean (e.g., sumArray(int[] arr)) while a private helper (e.g., sumHelper(int[] arr, int index)) carries extra state like the current index.

      +
    8. +
    9. +

      Closing over array bounds and indexes in the helper avoids forcing callers to provide implementation details (like a starting index).

      +
    10. +
    11. +

      Deep or unbounded recursion can exhaust the call stack: Python raises RecursionError; Java throws StackOverflowError.

      +
    12. +
    13. +

      Neither Java nor Python guarantees tail call optimization; prefer iterative solutions for algorithms requiring very deep recursion.

      +
    14. +
    15. +

      Error signaling differs across languages; for example, a Java factorial that receives a negative n might return a sentinel value (e.g., -1) after printing an error message.

      +
    16. +

    + + + +

    Which method signature and behavior best match a typical Java recursive factorial implementation?

    +
    + + +

    public void factorial(int n) that prints each partial product and stops when n reaches zero.

    +

    No. Printing results is fine for testing, but a proper factorial method should return the computed value.

    +
    + +

    public static int factorial(int n) that returns 1 when n <= 1 and otherwise returns n * factorial(n - 1).

    +

    Correct. This matches the standard recursive factorial definition in Java.

    +
    + +

    private static int factorial(double n) that repeatedly multiplies n and decrements it until it reaches 1.

    +

    No. Factorials are for integers, and using double here is unnecessary and can cause rounding issues.

    +
    + +

    public int factorial() that uses a stored class field for n instead of a method parameter.

    +

    No. Relying on a class field hides the input and makes recursion less flexible.

    +
    +
    +
    + + +

    Why use a private helper method (e.g., sumHelper(int[] arr, int index)) behind a public method (e.g., sumArray(int[] arr)) in recursive array processing?

    +
    + + +

    Because it allows Java to automatically optimize the recursion for faster execution.

    +

    No. Java does not automatically optimize recursion just because you use a helper method.

    +
    + +

    To keep the public API simple while encapsulating extra recursion state (such as the current index) inside a private method.

    +

    Correct. This keeps the interface clean while hiding internal details from the caller.

    +
    + +

    Because public methods cannot take more than one parameter in recursive calls.

    +

    No. Public methods can take multiple parameters; this is about interface clarity, not parameter limits.

    +
    + +

    To eliminate the need for a base case by handling termination in the helper method automatically.

    +

    No. The helper method still needs an explicit base case to stop recursion.

    +
    +
    +
    + + +

    Which statement about recursion limits and errors is accurate?

    +
    + + + +

    Java can handle very deep or even infinite recursion if the method body is short and does not perform significant operations.

    +
    + +

    No. Regardless of the method’s complexity, each recursive call consumes stack space, and infinite recursion will always cause a stack overflow.

    +
    +
    + + +

    When the call stack is exhausted, Python raises a RecursionError whereas Java throws a StackOverflowError, and neither language applies automatic tail call optimization.

    +
    + +

    Correct. This difference in exception types and the lack of built-in tail call optimization is a key distinction between the two languages.

    +
    +
    + + +

    Declaring a recursive method as static in Java reduces memory usage per call, allowing more recursive calls before a stack overflow occurs.

    +
    + +

    No. The static modifier changes method context (class vs. instance) but does not meaningfully affect per-call stack memory usage.

    +
    +
    + + +

    Increasing a method’s parameter type from int to long in Java can prevent stack overflows for large input values by storing bigger numbers more efficiently.

    +
    + +

    No. The size of the number type does not influence the maximum recursion depth; stack space usage depends on the number of active calls, not numeric range.

    +
    +
    +
    +
    +
    +
    \ No newline at end of file From af8153123edb8d9bad5983160df2d9bc5bafdfb7 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 11 Aug 2025 19:09:10 -0400 Subject: [PATCH 209/448] small improvements to 7.1 & 7.2 --- source/ch7_recursion.ptx | 28 +++++++++++++--------------- 1 file changed, 13 insertions(+), 15 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index bdc102a..34462f3 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -7,10 +7,10 @@
    Basic Recursion

    - In this chapter, we will explore how to translate your recursive logic from Python to Java. While the core concepts of recursion remain the same, the syntax and structure of your code will change somewhat. + In this chapter, we will explore how to translate your recursive logic from Python to Java. While the core concepts of recursion remain the same, the syntax and a bit of the structure of your code will change somewhat.

    -

    recursion - As you may know from Python, recursion is a powerful problem-solving technique involving base cases and recursive steps in which a function or method calls itself. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax. +

    recursionbase caserecursive step + As you may know from Python, recursion is a powerful problem-solving technique involving one or more base cases and recursive steps in which a function or method calls itself while moving towards a base case. When moving to Java, the core logic you've learned remains identical. The challenge is adapting that logic to Java's statically-typed, class-based syntax.

    @@ -34,7 +34,7 @@ as n \times (n-1)!.

    - Here is a Python implementation of factorial using functions: + Here is a Python implementation of factorial using just one function:

    @@ -49,20 +49,18 @@ def factorial(n): # Recursive Step: n * (n-1)! return n * factorial(n - 1) -def main(): - number = 5 - print(str(number) + "! is " + str(factorial(number))) +number = 5 +print(str(number) + "! is " + str(factorial(number))) -main() - +

    - Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method. Then you need to create an instance of the class to call the method. There we create the class MathTools with a method factorial, and we call it from the main function. + Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method instead of as a function. When this is done, you need to create an instance of the class in order to call the method. Below, we create the class MathTools with a method factorial, and we call it from the main function.

    -class MathTools: +class MTools: def factorial(self, n): # Check for negative numbers if n < 0: @@ -76,9 +74,9 @@ class MathTools: def main(): # Create an instance of the class and call the method - math_tools = MathTools() + mtools_instance = MTools() number = 5 - print(str(number) + "! is " + str(math_tools.factorial(number))) + print(str(number) + "! is " + str(mtools_instance.factorial(number))) main() @@ -92,7 +90,7 @@ main()

    -public class MathTools { +public class MTools { public static int factorial(int n) { // Check for negative numbers if (n < 0) { @@ -115,7 +113,7 @@ public class MathTools {

    - Notice the key differences from Python: instead of def factorial(n):, Java uses public static int factorial(int n) which declares the method's visibility as public, that it belongs to the class rather than an instance (hence, static), the return type as integer, and the parameter type also as integer. The recursive logic—base case and recursive step—remains identical to Python, but all code blocks use curly braces {} instead of indentation. + Notice the key differences from Python: instead of def factorial(n):, Java uses public static int factorial(int n) which declares the method's visibility as public, that it belongs to the class rather than an instance (hence, static), the return type as integer, and the parameter type also as integer. The recursive logic—base case and recursive step—remains identical to Python, and, of course, all code blocks use curly braces {} instead of indentation.

    From 3e78cb02c5ac0c190ddc535fb762b17711e4e723 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 11 Aug 2025 19:31:42 -0400 Subject: [PATCH 210/448] make code in 7.3 more parallel --- source/ch7_recursion.ptx | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 34462f3..2971013 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -256,7 +256,7 @@ public class ArrayProcessor { public static void main(String[] args) { int[] numbers = {1, 2, 3, 4, 5}; int result = sumArray(numbers); - System.out.println("The sum of [1, 2, 3, 4, 5] is " + result); + System.out.println("The sum of " + Arrays.toString(numbers) + " is " + result); } }
    @@ -274,7 +274,7 @@ public class ArrayProcessor {
    Recursion Limits: Python vs. Java

    - The consequence of deep recursion, running out of stack space, is a concept you've already encountered in Python. Java handles this in a very similar way, throwing an error when the call stack depth is exceeded. + The consequence of deep recursion, running out of stack space, is a concept you may have already encountered in Python. Java handles this in a very similar way to Python, throwing an error when the call stack depth is exceeded.

    The key difference is the name of the error: @@ -284,10 +284,10 @@ public class ArrayProcessor {

  35. In Java, this throws a StackOverflowError.
  36. - Neither language supports tail call optimization tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative (loop-based) approach is the preferred solution in both Python and Java. + Neither language supports tail call optimization tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative, loop-based, approach is likely going to be the preferred solution in both Python and Java.

    - The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError. + The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError.

    @@ -297,32 +297,33 @@ public class ArrayProcessor { """ cause_recursion_error() - # Standard Python entry point - if __name__ == "__main__": - print("Calling the recursive function... this will end in an error!") - - # This line starts the infinite recursion. - # Python will stop it and raise a RecursionError automatically. - cause_recursion_error() + print("Calling the recursive function... this will end in an error!") + + # The line below will start the infinite recursion. + # Python will stop it and raise a RecursionError automatically. + # Each call adds a new layer to the program's call stack. + # Eventually, the call stack runs out of space, causing the error. + cause_recursion_error()

    - The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError. + The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError.

    public class Crash { public static void causeStackOverflow() { - // This method calls itself endlessly without a stopping condition (a base case). - // Each call adds a new layer to the program's call stack. - // Eventually, the stack runs out of space, causing the error. + // The line below will start the infinite recursion. + // Java will stop it and raise a StackOverflowError automatically. + // Each call adds a new layer to the program's call stack. + // Eventually, the call stack runs out of space, causing the error. causeStackOverflow(); } - // A main method is required to run the program. + // A main method is required to run the Java program. public static void main(String[] args) { System.out.println("Calling the recursive method... this will end in an error!"); - // This line starts the infinite recursion. + causeStackOverflow(); } } From 5ddc2d5980c3149c60f96fd8180c627559a969d2 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 11 Aug 2025 19:50:55 -0400 Subject: [PATCH 211/448] use meaningful xml:ids --- source/ch6_definingclasses.ptx | 2 +- source/ch7_recursion.ptx | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 3652c74..77f82be 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -1011,7 +1011,7 @@ public class Fraction extends Number implements Comparable<Fraction> {
    -
    +
    Summary & Reading Questions

    1. diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 2971013..1d56783 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -324,14 +324,14 @@ public class ArrayProcessor { public static void main(String[] args) { System.out.println("Calling the recursive method... this will end in an error!"); - causeStackOverflow(); + causeStackOverflow(); } }
    -
    +
    Summary & Reading Questions

    1. @@ -344,23 +344,20 @@ public class ArrayProcessor {

      The recursive logic in Java mirrors Python conceptually, but Java uses curly braces {} and explicit types instead of indentation and dynamic typing.

    2. -

      The helper-method pattern keeps public APIs clean (e.g., sumArray(int[] arr)) while a private helper (e.g., sumHelper(int[] arr, int index)) carries extra state like the current index.

      -
    3. -
    4. -

      Closing over array bounds and indexes in the helper avoids forcing callers to provide implementation details (like a starting index).

      +

      The helper method pattern hides implementation details (like array indices) from callers, providing clean public interfaces while managing recursive state privately.

    5. Deep or unbounded recursion can exhaust the call stack: Python raises RecursionError; Java throws StackOverflowError.

    6. -

      Neither Java nor Python guarantees tail call optimization; prefer iterative solutions for algorithms requiring very deep recursion.

      +

      Neither Java nor Python guarantees tail call optimization, so programmers should use iterative solutions for algorithms that would require very deep recursion.

    7. -

      Error signaling differs across languages; for example, a Java factorial that receives a negative n might return a sentinel value (e.g., -1) after printing an error message.

      +

      Recursive methods in Java must specify return types explicitly, unlike Python's dynamic typing, which affects how you handle error cases and return values.

    - +

    Which method signature and behavior best match a typical Java recursive factorial implementation?

    @@ -383,7 +380,7 @@ public class ArrayProcessor {
    - +

    Why use a private helper method (e.g., sumHelper(int[] arr, int index)) behind a public method (e.g., sumArray(int[] arr)) in recursive array processing?

    @@ -406,7 +403,7 @@ public class ArrayProcessor {
    - +

    Which statement about recursion limits and errors is accurate?

    From ee5d2314d625306e66d915c1a84c318b639771b8 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 11 Aug 2025 20:15:51 -0400 Subject: [PATCH 212/448] improve summary and reading question --- source/ch7_recursion.ptx | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 1d56783..f09149f 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -356,12 +356,16 @@ public class ArrayProcessor {

    Recursive methods in Java must specify return types explicitly, unlike Python's dynamic typing, which affects how you handle error cases and return values.

    Za4j*vs?y!&v<`wrI~NVcIvN4 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�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 gNBs{~ILxwkU*2Bx-aPC2F1UOT@;4r{8-OlOe zRB$FanXnryf}7xG@Pw|1=UfOVnE8GC->d)p+aI(THP$uj`)C4t!~i|U{Jc%A)mhVA zYBXTo-NbLBA2ZFgtT$RhrRn(s)adD6r-AQ7!{gie`4g9i^Ey5?U#_$LGqb_Heb(Tf z@o3RO`6f*QvJ%;kTT8!ZE^?UWvo6GD;g#jQP3Lzyr;ylvEIOFa>1-1y9x7+WLHk%A zS*uxCaCa_&CRs|>4sg$CV?ARrAircve5C(-t9DJ;_$r>~5P77n*P?n^!6VLZP7VAV z&VUhMcGtnTU@klZu(>S(P5UcnJ|_`=!9l}kIWyoAjwvkX#BxvM{wulk*Sgne#C1eG zxTn{lf9v=WaV$n}$h5C>)w*o3Ic6Av^Vi|Eap?8rEe1M+-L%)}5}EDTv92v02_1F4 zdqcQ=rI%m zR<8~khWyx9pi%ICaF>18?ci(RJV}JN!~40e;HNvB9N2|Bo!bCc!xU}_Tm)xjn4h@_ zZc^Xja?Vb8<2C-X-{m9iA4kgtMWUUPb%4g@Ja~XVrhUb{WtZu-b!v&@2}3lFBtORg zFv*fq^ockLDG&8pf*7DQJ*awBO=!H=&K_LDdn8ndhWRVTPma>YR*QI=`P4>p1D7

- +

Which method signature and behavior best match a typical Java recursive factorial implementation?

+ +

public static int factorial(int n) that returns 0 when n <= 0 and otherwise returns n * factorial(n - 1).

+

No. While this handles negative numbers, the base case is incorrect - factorial of 0 should be 1, not 0.

+

public void factorial(int n) that prints each partial product and stops when n reaches zero.

No. Printing results is fine for testing, but a proper factorial method should return the computed value.

@@ -371,12 +375,8 @@ public class ArrayProcessor {

Correct. This matches the standard recursive factorial definition in Java.

-

private static int factorial(double n) that repeatedly multiplies n and decrements it until it reaches 1.

-

No. Factorials are for integers, and using double here is unnecessary and can cause rounding issues.

-
- -

public int factorial() that uses a stored class field for n instead of a method parameter.

-

No. Relying on a class field hides the input and makes recursion less flexible.

+

public static long factorial(int n) that returns 1 when n == 0 and otherwise returns n * factorial(n - 1).

+

No. While this logic is close, it doesn't handle the case when n = 1, and using long as return type when int parameter is used creates inconsistency.

@@ -408,20 +408,20 @@ public class ArrayProcessor {

Which statement about recursion limits and errors is accurate?

- + -

Java can handle very deep or even infinite recursion if the method body is short and does not perform significant operations.

+

When the call stack is exhausted, Python raises a RecursionError whereas Java throws a StackOverflowError, and neither language applies automatic tail call optimization.

-

No. Regardless of the method’s complexity, each recursive call consumes stack space, and infinite recursion will always cause a stack overflow.

+

Correct. This difference in exception types and the lack of built-in tail call optimization is a key distinction between the two languages.

- + -

When the call stack is exhausted, Python raises a RecursionError whereas Java throws a StackOverflowError, and neither language applies automatic tail call optimization.

+

Java automatically applies tail call optimization to recursive methods marked as final, preventing most stack overflows.

-

Correct. This difference in exception types and the lack of built-in tail call optimization is a key distinction between the two languages.

+

No. Java does not perform automatic tail call optimization, regardless of whether methods are marked as final.

@@ -434,10 +434,10 @@ public class ArrayProcessor { -

Increasing a method’s parameter type from int to long in Java can prevent stack overflows for large input values by storing bigger numbers more efficiently.

+

The JVM can detect simple recursive patterns and automatically convert them to iterative loops to prevent stack overflow.

-

No. The size of the number type does not influence the maximum recursion depth; stack space usage depends on the number of active calls, not numeric range.

+

No. The JVM does not automatically convert recursive methods to iterative ones. This optimization must be done manually by the programmer.

From 0fc9cc49283898ffdb9f22a09386e9cb780949bf Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Mon, 11 Aug 2025 20:42:31 -0400 Subject: [PATCH 213/448] Changed class name in first code block in 8.4 from Main to WriteFile --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 82608c1..19ab18f 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -254,7 +254,7 @@ import java.io.FileWriter; import java.io.IOException; import java.util.Scanner; - public class Main { + public class WriteFile { public static void main(String[] args) { String filename = "test_file.txt"; try (FileWriter writer = new FileWriter(filename)) { From 4c9d26c7f39238982aac32c7474d719f2bd8e772 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 09:37:39 -0400 Subject: [PATCH 214/448] Changed the code block about writing to files in section 8.1 to pre tags, and removed all code except for the File class import. This pretag code block and the paragaph preceding it focus exclusively on importing the File class now. --- source/ch8_filehandling.ptx | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 19ab18f..7aaadd6 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -37,24 +37,14 @@

Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods. the following code imports the File class and creates a File object called myFile. for now focus on how the class is imported and used in the program; We will cover the IOException class and createNewFile method later.

- - - import java.io.File; - import java.io.IOException; - public class Main { - public static void main(String[] args) { - try { - File myFile = new File("newfile.txt"); - myFile.createNewFile(); - System.out.println("File Made."); - } catch (IOException e) { - System.out.println("An error occurred."); - } - } - } - - +

+ Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods. +

+ +
+        import java.io.File;
+        

The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

From 2059e315fea1c446ecb6bc80a7d38f5f27c4cb14 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 09:44:42 -0400 Subject: [PATCH 215/448] Removed the data file form 8.2. Running the Python code in this section appears to work fine without it. I am unable to test the Java code. --- source/ch8_filehandling.ptx | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 7aaadd6..3678712 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -79,11 +79,7 @@

We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile.

- -
-                    empty file
-                
-
+ import java.io.File; From 0e6bf21789338bdf26ecd587d756e47e8c2a29f8 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 10:17:36 -0400 Subject: [PATCH 216/448] Gave meaningful class names to all classes in chapter. --- source/ch8_filehandling.ptx | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 3678712..b59f5aa 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -23,7 +23,7 @@ import java.lang.Math; - public class Main { + public class SquareRoot { public static void main(String[] args) { System.out.println(Math.sqrt(25)); } @@ -77,13 +77,13 @@

- We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. + We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. We will also call our class CreateFile

import java.io.File; - public class Main { + public class CreateFile { public static void main(String[] args) { File myFile = new File("myfile.txt"); System.out.println(myFile); @@ -202,8 +202,9 @@ import java.io.File; import java.io.FileNotFoundException; - import java.util.Scanner;public class Main { - public static void main(String[] args) { + import java.util.Scanner; + public class ReadFile { + public static void main (String[] args) { String filename = "myfile.txt"; try (Scanner fileReader = new Scanner(new File(filename))) { while (fileReader.hasNextLine()) { @@ -319,7 +320,7 @@ import java.io.File; import java.io.IOException; - import java.util.Scanner;public class Main { + import java.util.Scanner;public class WriteFile { public static void main(String[] args) { String filename = "myfile8-4-3.txt"; try (Scanner reader = new Scanner(new File(filename))) { From 5d462402ac1ac6fbbb3fecf0435a84672f44a671 Mon Sep 17 00:00:00 2001 From: Eun Sung Wang <156254694+esw0624@users.noreply.github.com> Date: Tue, 12 Aug 2025 11:11:06 -0400 Subject: [PATCH 217/448] Adding index term and new paragraph in Chapter 7 --- source/ch7_recursion.ptx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index f09149f..ec8659d 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -284,8 +284,10 @@ public class ArrayProcessor {
  • In Java, this throws a StackOverflowError.
  • - Neither language supports tail call optimization tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative, loop-based, approach is likely going to be the preferred solution in both Python and Java. + Neither language supports tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative, loop-based, approach is likely going to be the preferred solution in both Python and Java.

    +

    Tail Call Optimization Tail Call Optimization (TCO) is a technique used in programming to improve the efficiency of recursive function calls by reusing the current function's stack frame instead of creating a new one. This helps prevent stack overflow errors and reduces memory usage, especially in languages that support it.

    +

    The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError.

    From c55c7bedea3b9b4394e011baafd4cddd6ca8ea7e Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 11:31:53 -0400 Subject: [PATCH 218/448] Removed the paragraph on saving to a specific file path. Made some changes to the code in 8.4 so that the code is more in-line with what the text is describing for each one. --- source/ch8_filehandling.ptx | 75 +++++++++++++------------------------ 1 file changed, 26 insertions(+), 49 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index b59f5aa..48720d3 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -195,7 +195,7 @@

    - The following Java code functions very similarly to the previous Python. The main difference here is that unlike Python, In Java we use the Scanner object to iterate through and read lines in the file. You will notice that the structure of the Java code is still similar to the Python; Both use a try and catch statement to read the file and catch any errors. + The following Java code functions very similarly to the previous Python. The main difference here is that unlike Python, in Java we use the Scanner object to iterate through and read lines in the file. You will notice that the structure of the Java code is still similar to the Python; Both use a try and catch statement to read the file and catch any errors.

    @@ -235,34 +235,17 @@ Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    - - +
                 import java.io.File;
                 import java.io.FileWriter;
                 import java.io.IOException;
                 import java.util.Scanner;
                 public class WriteFile {
                     public static void main(String[] args) {
    -                    String filename = "test_file.txt";        
    -                    try (FileWriter writer = new FileWriter(filename)) {
    -                        writer.write("This line was written by the program.");
    -                        System.out.println("Successfully wrote to the file.");
    -                    } 
    -                    catch (IOException e) {
    -                        System.out.println("An error occurred during writing.");
    -                    }        System.out.println("--- Reading file back ---");        
    -                    try (Scanner reader = new Scanner(new File(filename))) {
    -                        while (reader.hasNextLine()) {
    -                            System.out.println(reader.nextLine());
    -                        }
    -                    } 
    -                    catch (IOException e) {
    -                        System.out.println("An error occurred during reading.");
    -                    }
    +                 
                     }
                 }
    -             
    -        
    +        

    Next, we will create a FileWriter object. Let's call it myWriter: @@ -299,12 +282,14 @@ - with open("myfile8-4-2.txt", "r") as file_reader: - while True: - line = file_reader.readline() - if not line: # End of file - break - print(line.strip()) + try: + with open("myfile.txt", "w") as my_writer: + my_writer.write("File successfully updated!") + print("File successfully written to.") + except OSError as e: + print("An error occurred.") + import traceback + traceback.print_exc() @@ -312,29 +297,21 @@ And the equivalent Java code:

    -
    -                    
    -                
    -
    - - - import java.io.File; - import java.io.IOException; - import java.util.Scanner;public class WriteFile { - public static void main(String[] args) { - String filename = "myfile8-4-3.txt"; - try (Scanner reader = new Scanner(new File(filename))) { - while (reader.hasNextLine()) { - String line = reader.nextLine(); - System.out.println(line.trim()); - } - } catch (IOException e) { - System.out.println("An error occurred."); - } - } +
    +                
    +            
    + +
    +            try {
    +                FileWriter myWriter = new FileWriter("myfile.txt");
    +                myWriter.write("File successfully updated!");
    +                myWriter.close();
    +                System.out.println("File successfully written to.");
    +            } catch (IOException e) {
    +                System.out.println("An error occurred.");
    +                e.printStackTrace();
                 }
    -             
    -        
    +        

    And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code: From ec296668e28d73e500de7f8f30a5a84206227350 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 11:36:19 -0400 Subject: [PATCH 219/448] Removed paragraph and code on using lineseparator method for new lines. --- source/ch8_filehandling.ptx | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 48720d3..c592f9e 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -363,10 +363,6 @@ -

    - Files in a specific directory can be written to using the same technique as the last section in which file paths are specified, with two back slashes used in Windows environments. -

    -

    If a file does not already exist (for example, myfile.txt does not exist), the write() method will create the file. Despite this, it is still a good idea to create separate methods or classes for creating and writing to files. Not only is it good practice to ensure methods only accomplish one thing, but the createNewFile() method avoids overwriting files that already exist. Imagine a file with the name myfile.txt already exists and contains important information. Attempting to create a file using the write() method will delete that data forever. @@ -382,7 +378,7 @@

    - Now, when we use write() method like before, the text will be appended if there is already text in the document. If we were to update our code to include the boolean argument: + Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument:

    @@ -419,7 +415,7 @@
             

    - This doesn't look very good! If we want each additional write to appear on a new line? The first solution may be to use the \n newline character: + This doesn't look very good! If we want each additional write to appear on a new line? A simple solution is to use the \n newline character:

    @@ -428,16 +424,7 @@
             

    - The System.lineseseparator() method is a better solution. This method returns the system's default line separator, which is platform-dependent. For example, on Windows, it returns \n, while on Linux and macOS, it returns \n. Using this method ensures that your code works correctly across different operating systems: -

    - -
    -            myWriter.write("File successfully updated!" + System.lineseparator()); // Added newline character 
    -            myWriter.close();
    -        
    - -

    - Running it twice will result in the following contents in myfile.txt: + Running the code with the newline character twice will result in the following contents in myfile.txt:

    
    From 434cd1b78e31f0819cc0d82e8d92f0b2e6a7d821 Mon Sep 17 00:00:00 2001
    From: Jan Pearce 
    Date: Tue, 12 Aug 2025 12:06:52 -0400
    Subject: [PATCH 220/448] put tail-call optimization into an aside
    
    ---
     source/ch7_recursion.ptx | 25 ++++++++++++++++---------
     1 file changed, 16 insertions(+), 9 deletions(-)
    
    diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx
    index ec8659d..7dc933a 100644
    --- a/source/ch7_recursion.ptx
    +++ b/source/ch7_recursion.ptx
    @@ -273,23 +273,30 @@ public class ArrayProcessor {
     
         
    Recursion Limits: Python vs. Java -

    - The consequence of deep recursion, running out of stack space, is a concept you may have already encountered in Python. Java handles this in a very similar way to Python, throwing an error when the call stack depth is exceeded. +

    recursion limitscall stack + When using recursion, both Python and Java have practical limits on how deep the recursion can go before running into errors. This is due to the way both languages manage something called the call stack, which is a limited amount of memory used to keep track of function or method calls.

    - The key difference is the name of the error: -

    + The consequence of running out of call stack space, is a concept you may have already encountered in Python. Java handles this in a very similar way to Python, both throwing an error when the call stack depth is exceeded. +RecursionErrorStackOverflowError + The only difference is the name of the error: +
      -
    • In Python, this raises a RecursionError.
    • -
    • In Java, this throws a StackOverflowError.
    • +
    • In Python, overflowing the call stack raises a RecursionError error.
    • +
    • In Java, it throws a StackOverflowError.
    +

    +

    - Neither language supports tail call optimization, so the practical limits on recursion depth are a factor in both. If an algorithm requires thousands of recursive calls, an iterative, loop-based, approach is likely going to be the preferred solution in both Python and Java. + In both languages, if you write a recursive function that doesn't have a base case or that just recurses too deeply, you'll eventually hit this limit. When this happens, Python will raise a RecursionError, while Java will throw a StackOverflowError. This is because both languages use a call stack to keep track of function calls, and when the stack runs out of space, it results in an error. + Hence, when an algorithm might require thousands of recursive calls, an iterative, loop-based, approach is likely going to be the preferred solution in both Python and Java.

    -

    Tail Call Optimization Tail Call Optimization (TCO) is a technique used in programming to improve the efficiency of recursive function calls by reusing the current function's stack frame instead of creating a new one. This helps prevent stack overflow errors and reduces memory usage, especially in languages that support it.

    - The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError. + The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError due to overflowing the call stack.

    From 680f110d466042f825e23311428e03e347384ef6 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 13:56:00 -0400 Subject: [PATCH 221/448] Exchanged pre tags with code tags for all code snippets. --- source/ch8_filehandling.ptx | 78 +++++++++++++++++++++++++------------ 1 file changed, 54 insertions(+), 24 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index c592f9e..c45882b 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -42,33 +42,33 @@ Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods.

    -
    +        
             import java.io.File;
    -        
    +

    The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    -
    +        
                 import java.util.Scanner; 
    -        
    +

    The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file.

    -
    +        
                 import java.io.FileWriter;
    -        
    +

    Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files.

    -
    +        
                 import java.io.IOException;
                 import java.io.FileNotFoundException;
    -        
    +
    @@ -235,7 +235,7 @@ Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    -
    +        
                 import java.io.File;
                 import java.io.FileWriter;
                 import java.io.IOException;
    @@ -245,24 +245,24 @@
                      
                     }
                 }
    -        
    +

    Next, we will create a FileWriter object. Let's call it myWriter:

    -
    +        
                 FileWriter myWriter = new FileWriter("myfile.txt");
    -        
    +

    In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types:

    -
    +        
                 myWriter.write("File successfully updated!");
                 myWriter.close();
    -        
    +

    @@ -301,7 +301,7 @@

    -
    +        
                 try {
                     FileWriter myWriter = new FileWriter("myfile.txt");
                     myWriter.write("File successfully updated!");
    @@ -311,7 +311,7 @@
                     System.out.println("An error occurred.");
                     e.printStackTrace();
                 }
    -        
    +

    And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code: @@ -373,17 +373,17 @@ Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument:

    -
    +        
                 FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode
    -        
    +

    Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument:

    -
    +                
                         
    -                
    +
    @@ -410,18 +410,18 @@ Then if we run the program twice, the contents of myfile.txt would be:

    -
    +        
                 File successfully updated!File successfully updated!
    -        
    +

    This doesn't look very good! If we want each additional write to appear on a new line? A simple solution is to use the \n newline character:

    -
    +        
                 myWriter.write("File successfully updated!\n"); // Added newline character 
                 myWriter.close(); 
    -        
    +

    Running the code with the newline character twice will result in the following contents in myfile.txt: @@ -439,6 +439,36 @@

    Finally, we will take a look at using Java to delete files. This one is pretty straight-forward and follows the structure used to create files. This time, however, try/catch blocks are not needed for the program to compile. We will call this class DeleteFile. The completed code should look something like this.

    + + +
    +                1
    +                2
    +                3
    +                4
    +                5
    +                6
    +                7
    +                8
    +            
    +
    + + + + # Name of the file to delete + file_name = "myfile.txt" + + # Check if the file exists before deleting + if os.path.exists(file_name): + try: + os.remove(file_name) + print("Deleted", file_name) + except Exception as e: + print("File could not be deleted.") + else: + print("File could not be deleted.") + + From a226ed067d274a9f2a87344e28af99baec5d34fc Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 14:22:26 -0400 Subject: [PATCH 222/448] changed all code tags to input tags in code blocks. Added or changed xml ids for all code. --- source/ch8_filehandling.ptx | 94 ++++++++++++++++++------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index c45882b..1be9ecd 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -10,17 +10,17 @@ File handling is an integral part of programming. Most programming languages have the ability to create, read from, write to, and delete, files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following.

    - + import math print(math.sqrt(25)) - +

    Delete the first line that says import math and see what happens. The import math is needed. The same program in Java would look like this:

    - + import java.lang.Math; public class SquareRoot { @@ -28,7 +28,7 @@ System.out.println(Math.sqrt(25)); } } - +

    Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit import for most libraries, including the Math class and many classes related to file handling. @@ -42,14 +42,14 @@ Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods.

    - + import java.io.File;

    The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    - + import java.util.Scanner; @@ -57,7 +57,7 @@ The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file.

    - + import java.io.FileWriter; @@ -65,7 +65,7 @@ Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files.

    - + import java.io.IOException; import java.io.FileNotFoundException; @@ -80,8 +80,8 @@ We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. We will also call our class CreateFile

    - - + + import java.io.File; public class CreateFile { public static void main(String[] args) { @@ -89,7 +89,7 @@ System.out.println(myFile); } } - + @@ -108,7 +108,7 @@

    - + filename = "newfile.txt" print("Attempting to write to '" + filename + "' using 'w' mode...") try: @@ -119,15 +119,15 @@ # This would only catch other unexpected errors print("An unexpected error occurred during write: " + str(e)) - +

    Now, let's look at Java code that accomplishes the same task:

    - - + + import java.io.File; import java.io.IOException; @@ -147,7 +147,7 @@ } } } - + @@ -179,8 +179,8 @@ - - + + filename = "myfile.txt" try: # Attempt to open the file in read mode ('r') @@ -191,7 +191,7 @@ except: #catches if the file doesn't exist or can't be written to print("file could not be opened") - +

    @@ -199,7 +199,7 @@

    - + import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; @@ -217,7 +217,7 @@ } } } - +

    You may have noticed that there are some new methods you haven't seen yet. The hasNextLine() method checks if there is a next line in the file, and returns false if there isn't. This method allows us to iterate over every line till there is no next line. The nextLine() method of the Scanner object returns the next line in the file as a string. @@ -235,7 +235,7 @@ Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    - + import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -251,7 +251,7 @@ Next, we will create a FileWriter object. Let's call it myWriter:

    - + FileWriter myWriter = new FileWriter("myfile.txt"); @@ -259,7 +259,7 @@ In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types:

    - + myWriter.write("File successfully updated!"); myWriter.close(); @@ -280,8 +280,8 @@ 3 - - + + try: with open("myfile.txt", "w") as my_writer: my_writer.write("File successfully updated!") @@ -290,7 +290,7 @@ print("An error occurred.") import traceback traceback.print_exc() - +

    @@ -301,7 +301,7 @@ - + try { FileWriter myWriter = new FileWriter("myfile.txt"); myWriter.write("File successfully updated!"); @@ -321,8 +321,8 @@ - - + + try: with open("myfile.txt", "w") as my_writer: my_writer.write("File successfully updated!") @@ -331,7 +331,7 @@ print("An error occurred.") import traceback traceback.print_exc() - +

    @@ -342,8 +342,8 @@ - - + + import java.io.FileWriter; import java.io.IOException; @@ -360,7 +360,7 @@ } } } - + @@ -373,7 +373,7 @@ Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument:

    - + FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode @@ -381,12 +381,12 @@ Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument:

    - +
                         
    -                
    +                
    - - + + import java.io.FileWriter; import java.io.IOException; @@ -403,22 +403,22 @@ } } } - +

    Then if we run the program twice, the contents of myfile.txt would be:

    - +
                 File successfully updated!File successfully updated!
    -        
    +        

    This doesn't look very good! If we want each additional write to appear on a new line? A simple solution is to use the \n newline character:

    - + myWriter.write("File successfully updated!\n"); // Added newline character myWriter.close(); @@ -453,7 +453,7 @@ - + # Name of the file to delete file_name = "myfile.txt" @@ -470,8 +470,8 @@ - - + + import java.io.File; public class DeleteFile { @@ -484,7 +484,7 @@ } } } - +

    From 72593244e7cb58a78284972fee6fe5006aea5dfe Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 14:53:36 -0400 Subject: [PATCH 223/448] Updated some code blocks so they are consistent. Added Python code examples to match some of the Java code examples. --- source/ch8_filehandling.ptx | 41 ++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 1be9ecd..5f87ba2 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -85,8 +85,7 @@ import java.io.File; public class CreateFile { public static void main(String[] args) { - File myFile = new File("myfile.txt"); - System.out.println(myFile); + } } @@ -248,7 +247,15 @@

    - Next, we will create a FileWriter object. Let's call it myWriter: + Next, we will create a FileWriter object. Let's call it myWriter. The equivalent Python code to this operation is: +

    + + + with open("myfile.txt", "w") as myWriter: + + +

    + The Java code to create a FileWriter object is:

    @@ -256,10 +263,18 @@

    - In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types: + In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types. First, how this step is completed with Python:

    + + + my_writer.write("File successfully updated!") + - +

    + And the Java equivalent. This is almost completely identical except for the second line, which is very important! +

    + + myWriter.write("File successfully updated!"); myWriter.close(); @@ -280,8 +295,7 @@ 3 - - + try: with open("myfile.txt", "w") as my_writer: my_writer.write("File successfully updated!") @@ -290,17 +304,12 @@ print("An error occurred.") import traceback traceback.print_exc() -

    And the equivalent Java code:

    - -
    -                
    -            
    -
    + try { FileWriter myWriter = new FileWriter("myfile.txt"); @@ -316,11 +325,11 @@

    And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

    - +
                         
                     
    -
    +
    try: @@ -380,7 +389,7 @@

    Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument:

    - +
                         
                     
    From f214376bc68dcc1661d5589622939d775d4f58dd Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 14:55:07 -0400 Subject: [PATCH 224/448] Addendum to last commit. Removed duplicate xml id --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 5f87ba2..44a8de8 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -250,7 +250,7 @@ Next, we will create a FileWriter object. Let's call it myWriter. The equivalent Python code to this operation is:

    - + with open("myfile.txt", "w") as myWriter: From cac4a9e1ca2f17235917634fcfd50b008c0059c1 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 15:48:48 -0400 Subject: [PATCH 225/448] Updated section on deleting files. This section now includes Java code that will create a file so the last block of Java code has something to delete. The Python example provided will not run because the os library cannot be imported. I was unable to test the Java code within the book. --- source/ch8_filehandling.ptx | 76 ++++++++++++++++++++++--------------- 1 file changed, 46 insertions(+), 30 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 44a8de8..0aaf05f 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -446,39 +446,55 @@ Deleting Files

    - Finally, we will take a look at using Java to delete files. This one is pretty straight-forward and follows the structure used to create files. This time, however, try/catch blocks are not needed for the program to compile. We will call this class DeleteFile. The completed code should look something like this. -

    - - -
    -                1
    -                2
    -                3
    -                4
    -                5
    -                6
    -                7
    -                8
    -            
    -
    - - + Finally, we will take a look at using Java to delete files. This one is pretty straight-forward and follows the structure used to create files. This time, however, try/catch blocks are not needed for the program to compile. First, the CreateFile class from before will be used to create a file: +

    + + - # Name of the file to delete - file_name = "myfile.txt" - - # Check if the file exists before deleting - if os.path.exists(file_name): - try: - os.remove(file_name) - print("Deleted", file_name) - except Exception as e: - print("File could not be deleted.") - else: - print("File could not be deleted.") - + import java.io.File; + import java.io.IOException; + + public class CreateFile { + public static void main(String[] args) { + File myFile = new File("myfile.txt"); + try { + if (myFile.createNewFile()) { + System.out.println("The file " + myFile.getName() + " was created successfully."); + } else { + System.out.println("The file " + myFile.getName() + " already exists."); + } + } catch (IOException e) { + // This code runs if an IOException occurs + System.out.println("An error occurred while creating the file."); + e.printStackTrace(); // This prints the stack trace for more detailed error info + } + } + } + +

    + The next example is Python code that can be used to delete files. This code cannot be run because importing os is not possible with the technologies used to write this book: +

    + + + import os + file_name = "myfile.txt" + if os.path.exists(file_name): + try: + os.remove(file_name) + print("Deleted", file_name) + except Exception as e: + print("File could not be deleted.") + else: + print("File could not be deleted.") + + +

    + And finally, we have Java code that deletes files. We will call this class DeleteFile: +

    + + import java.io.File; From d02e194d8046000de92816655edf9d0d44e9afc3 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Tue, 12 Aug 2025 15:50:16 -0400 Subject: [PATCH 226/448] Addendum to last commit. Duplicate xml id error was corrected. --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 0aaf05f..9d17070 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -477,7 +477,7 @@ The next example is Python code that can be used to delete files. This code cannot be run because importing os is not possible with the technologies used to write this book:

    - + import os file_name = "myfile.txt" if os.path.exists(file_name): From 2769ba1e5523cbfac638721f92ae5dbf7195a6e7 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 13 Aug 2025 10:54:50 -0400 Subject: [PATCH 227/448] Final commit for now that fixes several issues in the issues queue (listed in PR). The chapter is in a state that could be usable in a class now, though, I believe there is still work to do. 8.2 and 8.4 take different approaches to presenting the content. I'm not sure which one would work better, but I think it would be a good idea to settle on one or the other at some point and rewrite one of these sections to match the presentation of the other. Additionally, I couldn't get the data files to work in the section on writing to files. Not sure what the problem was here. Finally, I was unable to test Java code in the book. I worry that the two Java code blocks in the section on deleting files will need to be combined into one code block for the deletion to work correctly. --- source/ch8_filehandling.ptx | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 9d17070..8544dc3 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -34,10 +34,6 @@ Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit import for most libraries, including the Math class and many classes related to file handling.

    -

    - Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods. the following code imports the File class and creates a File object called myFile. for now focus on how the class is imported and used in the program; We will cover the IOException class and createNewFile method later. -

    -

    Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods.

    @@ -85,7 +81,9 @@ import java.io.File; public class CreateFile { public static void main(String[] args) { - + import java.io.File; + File myFile = new File("myfile.txt"); + System.out.println(myFile); } } @@ -99,7 +97,7 @@

    - Now let's learn how to make a file in Java. In Python. files can be made using the open() function on a file path that doesn't exist yet. Similarly, in Java you create a file by using the createNewFile() method on a File object. This method actually does the work of creating a file and saving it in the current working directory, and returns a boolean value of either true or false if the file is successfully created. We can use this method's possible return values in tandem with an try/catch structure to determine if the file was created, or catch the error if a file with that file name already exists in the directory. + Now let's learn how to make a file in Java. In Python. files can be made using the open() function on a file path that doesn't exist yet. Similarly, in Java you create a file by using the createNewFile() method on a File object. This method actually does the work of creating a file and saving it in the current working directory, and returns a boolean value of either true or false if the file is successfully created. We can use this method's possible return values in tandem with an if/else selection to determine if the file was created. Finally, we encase this code within try/catch blocks. This step is required in the Java code to be compiled. If try/catch blocks using IOException are not included, there will be compilation errors.

    @@ -263,7 +261,7 @@

    - In this next step, we will use the write() method from the FileWriter class. This Method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types. First, how this step is completed with Python: + In this next step, we will use the write() method from the FileWriter class. This method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types. First, how this step is completed with Python:

    @@ -281,20 +279,14 @@

    - You may have noticed the close() function being used after writing to the file. This is a very important step and must be included when working with files! Without using this method, the file may remain active in system resources even after the program is closed. This can lead file corruption or other terrible problems that are best avoided! + The close() method is being used after writing to the file. This is a very important step and must be included when working with files! Without using this method, the file may remain active in system resources even after the program is closed. This can lead file corruption or other terrible problems that are best avoided!

    Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example:

    - -
    -                    1
    -                    2
    -                    3
    -                
    -
    + try: with open("myfile.txt", "w") as my_writer: @@ -325,7 +317,7 @@

    And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

    - +
                         
                     
    @@ -359,7 +351,7 @@ public class WriteFile { public static void main(String[] args) { try { - FileWriter myWriter = new FileWriter("newfile.txt"); + FileWriter myWriter = new FileWriter("myfile.txt"); myWriter.write("File successfully updated!"); myWriter.close(); System.out.println("File successfully written to."); @@ -389,7 +381,7 @@

    Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument:

    - +
                         
                     
    @@ -402,7 +394,7 @@ public class WriteFile { public static void main(String[] args) { try { - FileWriter myWriter = new FileWriter("newfile.txt", true); // true enables append mode + FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode myWriter.write("File successfully updated!"); myWriter.close(); System.out.println("File successfully written to."); From c2b00f50f2dc84dc0207c1a127ff1afbbde75462 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 13 Aug 2025 11:30:21 -0400 Subject: [PATCH 228/448] Added a one-sentance definition for yield and added it to the index. --- source/ch4_conditionals.ptx | 57 ++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 6b7a86b..5720ee1 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -194,39 +194,38 @@ Java also supports a switch statement that acts something like the eli

    switch The switch statement in Java provides a clean and efficient alternative to chaining multiple if-else conditions, especially when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution.

    -

    switch expressions - Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs. -

    - - - +

    + switch expressions + yield + Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. yield is used inside a switch expression’s block to produce the value of that expression, unlike break which simply exits a switch statement or loop. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs. +

    -public class SwitchUp { - public static void main(String args[]) { - int grade = 85; - int tempgrade = grade / 10; - switch(tempgrade) { - case 10: - case 9: - System.out.println('A'); - break; - case 8: - System.out.println('B'); - break; - case 7: - System.out.println('C'); - break; - case 6: - System.out.println('A'); - break; - default: - System.out.println('F'); - } - } - } + public class SwitchUp { + public static void main(String args[]) { + int grade = 85; + int tempgrade = grade / 10; + switch(tempgrade) { + case 10: + case 9: + System.out.println('A'); + break; + case 8: + System.out.println('B'); + break; + case 7: + System.out.println('C'); + break; + case 6: + System.out.println('A'); + break; + default: + System.out.println('F'); + } + } + } From 21f03b9095b9322920b3dafc02856e647a6110d8 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 13 Aug 2025 12:24:41 -0400 Subject: [PATCH 229/448] Moved the Naming conventions subsection from 6.3 to chapter 3 and made it a section instead of a subsection. --- source/ch3_javadatatypes.ptx | 38 ++++++++++++++++++++++++++++++++++ source/ch6_definingclasses.ptx | 37 --------------------------------- 2 files changed, 38 insertions(+), 37 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index ad28a23..070177b 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -798,6 +798,44 @@ public class HistoMap { Improve the program above to remove the punctuation.

    + +
    + Naming Conventions +

    + It is worth pointing out that Java has some very handy naming conventions. It is advisable to both use meaningful names and to follow these naming conventions while developing software in Java for good maintenance and readability of code. +

    + +

    +

      +
    • +

      + Class names should be nouns that are written in UpperCamelCase, namely with the first letter of each word capitalized including the first. + For example, ArrayList, Scanner, StringBuilder, System, etc. +

      +
    • + +
    • +

      + Method names use lowerCamelCase which start with a verb that describes the action they perform. This means that method names start with a lower case letter, and use upper case for each internal-word method names. For example, isInt(), nextLine(), getDenominator(), setNumerator(), etc. +

      +
    • + +
    • +

      + Instance variables of a class start with a lower case letter and use lowerCamelCase like method names. For example, count, totalAmount, etc. +

      +
    • + +
    • +

      + Constants are in all upper case letters or in upper snake case, which also known as screaming snake case, and which is a naming convention in which each word is written in uppercase letters, separated by underscores. + For example, Math.MAXINT or MAX_INT. +

      +
    • +
    +

    +
    +
    Summary & Reading Questions

      diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 77f82be..ee13890 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -430,43 +430,6 @@ public class Fraction { - - - Naming Conventions -

      - It is worth pointing out that Java has some very handy naming conventions. It is advisable to both use meaningful names and to follow these naming conventions while developing software in Java for good maintenance and readability of code. -

      - -

      -

        -
      • -

        - Class names should be nouns that are written in UpperCamelCase, namely with the first letter of each word capitalized including the first. - For example, ArrayList, Scanner, StringBuilder, System, etc. -

        -
      • - -
      • -

        - Method names use lowerCamelCase which start with a verb that describes the action they perform. This means that method names start with a lower case letter, and use upper case for each internal-word method names. For example, isInt(), nextLine(), getDenominator(), setNumerator(), etc. -

        -
      • - -
      • -

        - Instance variables of a class start with a lower case letter and use lowerCamelCase like method names. For example, count, totalAmount, etc. -

        -
      • - -
      • -

        - Constants are in all upper case letters or in upper snake case, which also known as screaming snake case, and which is a naming convention in which each word is written in uppercase letters, separated by underscores. - For example, Math.MAXINT or MAX_INT. -

        -
      • -
      -

      -
    From 9839c070a6e976038a89db8037328cba0ff6dcd6 Mon Sep 17 00:00:00 2001 From: logananglin98 Date: Wed, 13 Aug 2025 12:41:02 -0400 Subject: [PATCH 230/448] Added stdin and tests tags to the code block. --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 6b7a86b..67839a0 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -316,7 +316,7 @@ The switch statement is not used very often, and we recommend you do not } } } - +

    From 67450321e7d662f954331f8d064e0ea7ef63307b Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 13:16:05 -0400 Subject: [PATCH 231/448] fix 8.2 --- source/ch8_filehandling.ptx | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 8544dc3..9705cfd 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -73,20 +73,22 @@

    - We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile. We will also call our class CreateFile + We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile, and we will call our class CreateFileObject.

    - - - import java.io.File; - public class CreateFile { - public static void main(String[] args) { - import java.io.File; - File myFile = new File("myfile.txt"); - System.out.println(myFile); - } - } - + + +import java.io.File; + +public class CreateFile { + public static void main(String[] args) { + // First, create a File object that represents "myfile.txt" + File myFile = new File("myfile.txt"); + // Mext, print the file path (just the filename.) + System.out.println(myFile); + } +} + From 9f82b78047c9e065b1c182c94feb99451976ab00 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 17:50:25 -0400 Subject: [PATCH 232/448] add xml:ids to ch2 --- source/ch2_firstjavaprogram.ptx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index d911d4b..f129618 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -30,7 +30,7 @@ The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -71,7 +71,7 @@ Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -106,7 +106,7 @@ Now that we have created a Dog object using the class we defined, we can utilize the class's methods:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -167,7 +167,7 @@

    - + public class Hello { public static void main(String[] args) { @@ -188,7 +188,7 @@ public class Hello {

    - + $ javac Hello.java $ ls -l Hello.* @@ -208,7 +208,7 @@ $ ls -l Hello.*

    - + $ java Hello Hello World! @@ -285,7 +285,7 @@ $

    - + public class Hello { @@ -307,7 +307,7 @@ public class Hello {

    - + public static void main(String[] args) @@ -397,7 +397,7 @@ public static void main(String[] args)

    - + System.out.println("Hello World!"); @@ -426,7 +426,7 @@ System.out.println("Hello World!");

    - + System.out.println("Hello World"); System.out.println("Hello World") @@ -453,7 +453,7 @@ System.

    - + class Hello(object): @staticmethod @@ -468,7 +468,7 @@ class Hello(object):

    - + >>> Hello.main("") Hello World! From ba6a8354ad1c66cb1457ffa003f03a3b4d353a12 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 17:53:16 -0400 Subject: [PATCH 233/448] Revert "add xml:ids to ch2" This reverts commit 9f82b78047c9e065b1c182c94feb99451976ab00. --- source/ch2_firstjavaprogram.ptx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index f129618..d911d4b 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -30,7 +30,7 @@ The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -71,7 +71,7 @@ Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -106,7 +106,7 @@ Now that we have created a Dog object using the class we defined, we can utilize the class's methods:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -167,7 +167,7 @@

    - + public class Hello { public static void main(String[] args) { @@ -188,7 +188,7 @@ public class Hello {

    - + $ javac Hello.java $ ls -l Hello.* @@ -208,7 +208,7 @@ $ ls -l Hello.*

    - + $ java Hello Hello World! @@ -285,7 +285,7 @@ $

    - + public class Hello { @@ -307,7 +307,7 @@ public class Hello {

    - + public static void main(String[] args) @@ -397,7 +397,7 @@ public static void main(String[] args)

    - + System.out.println("Hello World!"); @@ -426,7 +426,7 @@ System.out.println("Hello World!");

    - + System.out.println("Hello World"); System.out.println("Hello World") @@ -453,7 +453,7 @@ System.

    - + class Hello(object): @staticmethod @@ -468,7 +468,7 @@ class Hello(object):

    - + >>> Hello.main("") Hello World! From 291413d5744906a3989ed7891d3ecdf84d77b0dc Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 18:05:28 -0400 Subject: [PATCH 234/448] add xml:ids to programs in ch3 --- source/ch2_firstjavaprogram.ptx | 2 +- source/ch3_javadatatypes.ptx | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index d911d4b..16be255 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -30,7 +30,7 @@ The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python:

    - + class Dog: def __init__(self, name, breed, fur_color): diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 070177b..830e0c2 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -95,7 +95,7 @@

    - + def main(): fahr = int(input("Enter the temperature in F: ")) @@ -110,7 +110,7 @@ main()

    - + import java.util.Scanner; public class TempConv { @@ -431,7 +431,7 @@ if (myAnimal instanceof Dog) {

    - + def main(): count = [0]*10 @@ -528,7 +528,7 @@ Here is the Java code needed to write the exact same program:

    - + import java.util.Scanner; import java.util.ArrayList; @@ -655,11 +655,11 @@ public class Histo { Arrays

    - As I said at the outset of this section, we are going to use Java ArrayLists because they are easier to use and more closely match the way that Python lists behave. However, if you look at Java code on the internet or even in your Core Java books you are going to see examples of something called arrays. In fact you have already seen one example of an array declared in the ‘Hello World’ program. Lets rewrite this program to use primitive arrays rather than array lists. + As was said at the outset of this section, we are going to use Java ArrayLists because they are easier to use and more closely match the way that Python lists behave. However, if you look at Java code on the internet or even in your core Java books you are going to see examples of something called an array. In fact, you have already seen one example of an array declared in the ‘Hello World’ program. Let's rewrite this program to use primitive arrays rather than array lists.

    - + import java.util.Scanner; import java.io.File; @@ -708,7 +708,7 @@ public class HistoArray {

    - + def main(): data = open('alice30.txt') @@ -755,7 +755,7 @@ main()

    - + import java.util.Scanner; import java.util.ArrayList; From 1938c229260c843c0e3293544349560d9dce55f8 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 18:19:01 -0400 Subject: [PATCH 235/448] add xml:ids to all programs in ch4 --- source/ch4_conditionals.ptx | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 508e926..04b1e6b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -16,7 +16,7 @@ In Python the simple if statement is written as:

    - + score = 95 if score >= 90: @@ -26,7 +26,7 @@ if score >= 90:

    In Java, this same pattern requires two changes: the condition must be in parentheses (), and the code block must be enclosed in curly braces {}.

    - + public class SimpleIfExample { public static void main(String[] args) { @@ -40,15 +40,15 @@ if score >= 90:

    Once again you can see that in Java the curly braces define a block rather than indentation. - In Java the parenthesis around the condition are required because it is technically a function that evaluates to True or False. + In Java, the parentheses around the condition are required because it is technically a function that evaluates to True or False.

    -
    +
    Using the <c>if</c> - <c>else</c> Statement

    The Java equivalent follows the same syntactical rules as before.

    - + age = 16 if age >= 18: @@ -58,7 +58,7 @@ if score >= 90: - + public class IfElseExample { public static void main(String[] args) { @@ -84,7 +84,7 @@ if score >= 90:

    - + grade = int(input('enter a grade')) if grade < 60: @@ -101,11 +101,11 @@ else:

    -In Java we have a couple of ways to write this. +In Java, we have a couple of ways to write this.

    - + public class ElseIf { public static void main(String args[]) { @@ -133,12 +133,12 @@ public class ElseIf {

    -We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else we can get away with the following. +We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else block, we can get away with the following.

    - + public class ElseIf { public static void main(String args[]) { @@ -167,9 +167,9 @@ Java also supports a switch statement that acts something like the eli

    - Depending on your knowledge and experience with Python you may already be familiar and questioning why we are not using the match statement in our Python examples. The answer is that this book currently runs its active code examples using Python 3.7, which does not support the match statement which was introduced in Python 3.10. Below is an example of the match statement similar to our grade method. + Depending on your knowledge and experience with Python you may be questioning why we are not using the match statement in our Python examples. The answer is that this book currently runs its active code examples using Python 3.7, which does not support the match statement which was introduced in Python 3.10. Below is an example of the match statement similar to our grade method.

    - + Match Case Example grade = 85 @@ -201,7 +201,7 @@ Java also supports a switch statement that acts something like the eli Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. yield is used inside a switch expression’s block to produce the value of that expression, unlike break which simply exits a switch statement or loop. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs.

    - + public class SwitchUp { public static void main(String args[]) { @@ -241,7 +241,7 @@ The switch statement is not used very often, and we recommend you do not In Python, if you want a program to continue running when an error has occurred, you can use try-except blocks to handle exceptions. If you wanted to write a program that asks the user to enter a whole number and then squares that number, you could use the following code to do so:

    - + number = int(input("Please enter a whole number: ")) squared = number ** 2 @@ -253,7 +253,7 @@ The switch statement is not used very often, and we recommend you do not The Java code that would perform the same task is a little more complex and utilizes the Scanner class for input.

    - + import java.util.Scanner; @@ -275,7 +275,7 @@ The switch statement is not used very often, and we recommend you do not This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try-except (Python) or try-catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try-except blocks and a while loop to the Python code will look something like this:

    - + while True: try: @@ -292,7 +292,7 @@ The switch statement is not used very often, and we recommend you do not Now that we have Python code that will continuously prompt the user until they enter a whole number, let's look at Java code that accomplishes the same task. Like most other equivalent Java code blocks, this code has a lot of extra bits that are necessary to get working code.

    - + import java.util.Scanner; import java.util.InputMismatchException; @@ -439,7 +439,7 @@ of an assignment statement. The following table summarizes how this works:

    Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed.

    - + class Main { public static void main(String[] args) { From 7287ff6150fef786efad4bf6653ae16c9d34fe77 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 18:22:42 -0400 Subject: [PATCH 236/448] replace depreciated input with code --- source/ch8_filehandling.ptx | 44 ++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 9705cfd..63621ae 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -10,17 +10,17 @@ File handling is an integral part of programming. Most programming languages have the ability to create, read from, write to, and delete, files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following.

    - + import math print(math.sqrt(25)) - +

    Delete the first line that says import math and see what happens. The import math is needed. The same program in Java would look like this:

    - + import java.lang.Math; public class SquareRoot { @@ -28,7 +28,7 @@ System.out.println(Math.sqrt(25)); } } - +

    Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit import for most libraries, including the Math class and many classes related to file handling. @@ -107,7 +107,7 @@ public class CreateFile {

    - + filename = "newfile.txt" print("Attempting to write to '" + filename + "' using 'w' mode...") try: @@ -118,7 +118,7 @@ public class CreateFile { # This would only catch other unexpected errors print("An unexpected error occurred during write: " + str(e)) - +

    @@ -126,7 +126,7 @@ public class CreateFile {

    - + import java.io.File; import java.io.IOException; @@ -146,7 +146,7 @@ public class CreateFile { } } } - + @@ -179,7 +179,7 @@ public class CreateFile { - + filename = "myfile.txt" try: # Attempt to open the file in read mode ('r') @@ -190,7 +190,7 @@ public class CreateFile { except: #catches if the file doesn't exist or can't be written to print("file could not be opened") - +

    @@ -198,7 +198,7 @@ public class CreateFile {

    - + import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; @@ -216,7 +216,7 @@ public class CreateFile { } } } - +

    You may have noticed that there are some new methods you haven't seen yet. The hasNextLine() method checks if there is a next line in the file, and returns false if there isn't. This method allows us to iterate over every line till there is no next line. The nextLine() method of the Scanner object returns the next line in the file as a string. @@ -325,7 +325,7 @@ public class CreateFile { - + try: with open("myfile.txt", "w") as my_writer: my_writer.write("File successfully updated!") @@ -334,7 +334,7 @@ public class CreateFile { print("An error occurred.") import traceback traceback.print_exc() - +

    @@ -346,7 +346,7 @@ public class CreateFile { - + import java.io.FileWriter; import java.io.IOException; @@ -363,7 +363,7 @@ public class CreateFile { } } } - + @@ -389,7 +389,7 @@ public class CreateFile { - + import java.io.FileWriter; import java.io.IOException; @@ -406,7 +406,7 @@ public class CreateFile { } } } - +

    @@ -444,7 +444,7 @@ public class CreateFile {

    - + import java.io.File; import java.io.IOException; @@ -464,7 +464,7 @@ public class CreateFile { } } } - +

    @@ -490,7 +490,7 @@ public class CreateFile { - + import java.io.File; public class DeleteFile { @@ -503,7 +503,7 @@ public class CreateFile { } } } - +

    From eda9708761aa7634d85d644856dc30e5ed8e9bbb Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 18:31:34 -0400 Subject: [PATCH 237/448] add xml:ids to all programs in ch5 --- source/ch5_loopsanditeration.ptx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 07f33c9..ff221d2 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -15,7 +15,7 @@ For example:

    - + for i in range(10): print(i) @@ -26,7 +26,7 @@ for i in range(10): In Java, we would write this as:

    - + public class DefiniteLoopExample { public static void main(String[] args) { @@ -65,7 +65,7 @@ public class DefiniteLoopExample { If you want to start at 100, stop at 0 and count backward by 5, the Python loop would be written as:

    - + for i in range(100, -1, -5): print(i) @@ -76,7 +76,7 @@ for i in range(100, -1, -5): In Java, we would write this as:

    - + public class DefiniteLoopBackward { public static void main(String[] args) { @@ -97,7 +97,7 @@ public class DefiniteLoopBackward { In Python, we can iterate over a list as follows:

    - + l = [1, 1, 2, 3, 5, 8, 13, 21] for fib in l: @@ -109,7 +109,7 @@ for fib in l: In Java we can iterate over an ArrayList of integers too. Note that this requires importing the ArrayList class.

    - + import java.util.ArrayList; @@ -134,10 +134,10 @@ public class ForEachArrayListExample {

    This example stretches the imagination a bit, and in fact points out one area where Java's primitive arrays are easier to use than an array list. - In fact all primitive arrays can be used in a for each loop. + In fact, all primitive arrays can be used in a for each loop.

    - + public class ForEachArrayExample { public static void main(String[] args) { @@ -154,7 +154,7 @@ public class ForEachArrayExample { To iterate over the characters in a string in Java do the following:

    - + public class StringIterationExample { public static void main(String[] args) { @@ -176,7 +176,7 @@ public class StringIterationExample { Both Python and Java support the while loop, which continues to execute as long as a condition is true. Here is a simple example in Python that counts down from 5:

    - + i = 5 while i > 0: @@ -186,9 +186,9 @@ while i > 0:

    - In Java we add parenthesis and curly braces. Here is the same countdown loop in Java: + In Java, we add parentheses and curly braces. Here is the same countdown loop in Java:

    - + public class WhileLoopExample { public static void main(String[] args) { @@ -210,7 +210,7 @@ public class WhileLoopExample { For example, the following loop will execute once even though the condition is initially false.

    - + public class DoWhileExample { public static void main(String[] args) { From b93f714322012c76c778735f379ed8dcd5db09f9 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 18:52:02 -0400 Subject: [PATCH 238/448] add xml:ids to all programs in ch6 --- source/ch6_definingclasses.ptx | 60 +++++++++++++++++----------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index ee13890..f2e6d55 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -66,7 +66,7 @@

    - + class Fraction: def __init__(self, num, den): @@ -137,7 +137,7 @@

    - + public class Fraction { private Integer numerator; @@ -152,7 +152,7 @@

    - + Fraction f = new Fraction(1,2); Integer y = f.numerator * 10; @@ -168,7 +168,7 @@

    - + public Integer getNumerator() { return numerator; @@ -199,7 +199,7 @@ public void setDenominator(Integer denominator) {

    - + public Fraction(Integer top, Integer bottom) { num = top; @@ -220,7 +220,7 @@ public Fraction(Integer top, Integer bottom) {

    - + public Fraction(Integer num, Integer den) { this.num = num; @@ -276,7 +276,7 @@ public Fraction(Integer num, Integer den) {

    - + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + @@ -296,11 +296,11 @@ public Fraction add(Fraction otherFrac) {

    Second, you will notice that the method makes use of the this variable. In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. - So this version of the code is equivalent: + So the following version of the code is equivalent:

    - + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * numerator + @@ -361,7 +361,7 @@ public Fraction add(Fraction otherFrac) {

    - + public Fraction(Integer num) { this.numerator = num; @@ -385,7 +385,7 @@ public Fraction add(Integer other) {

    - + public class Fraction { private Integer numerator; @@ -441,7 +441,7 @@ public class Fraction {

    - + Fraction@6ff3c5b5 @@ -531,7 +531,7 @@ Fraction@6ff3c5b5

    - + public String toString() { return numerator.toString() + "/" + denominator.toString(); @@ -549,18 +549,18 @@ public String toString() {

    - + object1 == object2

    - is NOT the same as + is NOT the same as:

    - + object1.equals(object2) @@ -571,7 +571,7 @@ object1.equals(object2)

    - + public boolean equals(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); @@ -610,7 +610,7 @@ public boolean equals(Fraction other) {

    - + public class Fraction extends Number { ... @@ -661,7 +661,7 @@ public class Fraction extends Number {

    - + public double doubleValue() { return numerator.doubleValue() / denominator.doubleValue(); @@ -696,7 +696,7 @@ public long longValue() {

    - + public void test(Number a, Number b) { a.add(b); @@ -745,7 +745,7 @@ public void test(Number a, Number b) {

    - + int compareTo(T o) Compares this object with the specified object for order. Returns a @@ -763,7 +763,7 @@ iff y.compareTo(x) throws an exception.)

    - + public class Fraction extends Number implements Comparable<Fraction> { ... @@ -777,7 +777,7 @@ public class Fraction extends Number implements Comparable<Fraction> {

    - + public int compareTo(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); @@ -794,12 +794,12 @@ public int compareTo(Fraction other) {

    Suppose that you wanted to write a Student class so that the class could keep track of the number of students it had created. Although you could do this with a global counter variable that is an ugly solution. - The right way to do it is to use a static variable. - In Python we could do this as follows: + The right way to do it is to use a static variable. + In Python, we could do this as follows:

    - + class Student: numStudents = 0 @@ -816,11 +816,11 @@ main()

    - In Java we would write this same example using a static declaration. + In Java, we would write this same example using a static declaration.

    - + public class Student { public static Integer numStudents = 0; @@ -855,7 +855,7 @@ public class Student {

    - + private static Integer gcd(Integer m, Integer n) { while (m % n != 0) { @@ -878,7 +878,7 @@ private static Integer gcd(Integer m, Integer n) {

    - + import java.util.ArrayList; import java.util.Collections; From faa8a521bfe4d7227796abb3a8ccc4780a2a9570 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 20:49:54 -0400 Subject: [PATCH 239/448] add xml:id to ch2 --- source/ch2_firstjavaprogram.ptx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 16be255..5f4d958 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -71,7 +71,7 @@ Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -106,7 +106,7 @@ Now that we have created a Dog object using the class we defined, we can utilize the class's methods:

    - + class Dog: def __init__(self, name, breed, fur_color): @@ -163,11 +163,11 @@
    >>> main() "Hello World!" >>>

    - Now lets look at the same program written in Java: + Now let's look at the same program written in Java:

    - + public class Hello { public static void main(String[] args) { @@ -188,7 +188,7 @@ public class Hello {

    - + $ javac Hello.java $ ls -l Hello.* @@ -208,7 +208,7 @@ $ ls -l Hello.*

    - + $ java Hello Hello World! @@ -285,7 +285,7 @@ $

    - + public class Hello { @@ -307,7 +307,7 @@ public class Hello {

    - + public static void main(String[] args) @@ -397,7 +397,7 @@ public static void main(String[] args)

    - + System.out.println("Hello World!"); @@ -426,7 +426,7 @@ System.out.println("Hello World!");

    - + System.out.println("Hello World"); System.out.println("Hello World") @@ -453,7 +453,7 @@ System.

    - + class Hello(object): @staticmethod @@ -468,7 +468,7 @@ class Hello(object):

    - + >>> Hello.main("") Hello World! From 2ff5c3eead310eb7d5df65a617d177f71bf794e4 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 25 Aug 2025 20:55:21 -0400 Subject: [PATCH 240/448] fix duplicate xml:id --- source/ch2_firstjavaprogram.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 5f4d958..1413416 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -453,7 +453,7 @@ System.

    - + class Hello(object): @staticmethod From 4c9a785e3b7b49c2cf4677509a7a4ca65e4aaae2 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 08:22:01 -0400 Subject: [PATCH 241/448] add import java.util.Arrays; --- source/ch7_recursion.ptx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 7dc933a..d2cd7bc 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -233,6 +233,8 @@ main()

    +import java.util.Arrays; + public class ArrayProcessor { public static int sumArray(int[] arr) { // Handle empty array From 33f0f1bf9e74bda503a89bf8d0c059c1ea1944b9 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 08:25:26 -0400 Subject: [PATCH 242/448] improve explanation of helper method --- source/ch7_recursion.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index d2cd7bc..1ed5804 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -265,11 +265,11 @@ public class ArrayProcessor {

    - Compare these improved versions with the earlier problematic ones. Notice how much cleaner the method calls become: processor.sum_array(numbers) in Python and sumArray(numbers) in Java. Users no longer need to worry about providing the correct starting index or understanding the internal mechanics of the recursion. The helper method pattern creates a clear separation between what users need to know (just pass an array) and the implementation details (tracking the index through recursion). + Compare these improved versions with the earlier problematic ones. Notice how much cleaner the method calls become: processor.sum_array(numbers) in Python and sumArray(numbers) in Java. Users no longer need to worry about providing a starting index or understanding the internal mechanics of the recursion. The helper method pattern creates a clear separation between what users need to know (just pass an array) and the implementation details (tracking the index through recursion).

    - This helper method pattern is essential when your recursive algorithm needs to track additional state (like array positions, accumulated values, or depth counters) that the original caller shouldn't need to provide or care about. It's a fundamental pattern and technique you'll likely use frequently in recursive problem solving. + This helper method pattern is invaluable when your recursive algorithm needs to track additional state detailes (like array positions, accumulated values, or depth counters) that the original caller shouldn't need to know about or care about. It's a fundamental pattern and technique you'll likely use frequently in recursive problem solving.

    From cbaee736052581ec9d095bf7e7803a8a18d8309b Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 08:28:47 -0400 Subject: [PATCH 243/448] fix typo --- source/ch7_recursion.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 1ed5804..a0d2c01 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -269,7 +269,7 @@ public class ArrayProcessor {

    - This helper method pattern is invaluable when your recursive algorithm needs to track additional state detailes (like array positions, accumulated values, or depth counters) that the original caller shouldn't need to know about or care about. It's a fundamental pattern and technique you'll likely use frequently in recursive problem solving. + This helper method pattern is invaluable when your recursive algorithm needs to track additional state details (like array positions, accumulated values, or depth counters) that the original caller shouldn't need to know about or care about. It's a fundamental pattern and technique you'll likely use frequently in recursive problem solving.

    From dc2ce86a9823cd54fa67a1cd53ca88b25022ac1b Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 08:59:09 -0400 Subject: [PATCH 244/448] improve code and clarity of Deleting Files section --- source/ch8_filehandling.ptx | 54 +++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 63621ae..47e6171 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -440,7 +440,7 @@ public class CreateFile { Deleting Files

    - Finally, we will take a look at using Java to delete files. This one is pretty straight-forward and follows the structure used to create files. This time, however, try/catch blocks are not needed for the program to compile. First, the CreateFile class from before will be used to create a file: + Lastly, we will take a look at using Java to delete a file. This is pretty straight-forward and follows the structure used to create files. Here is the CreateFile class from before that will be used to create a file that we will soon delete:

    @@ -467,47 +467,41 @@ public class CreateFile {
    -

    - The next example is Python code that can be used to delete files. This code cannot be run because importing os is not possible with the technologies used to write this book: -

    - - - import os - file_name = "myfile.txt" - if os.path.exists(file_name): - try: - os.remove(file_name) - print("Deleted", file_name) - except Exception as e: - print("File could not be deleted.") - else: - print("File could not be deleted.") -

    - And finally, we have Java code that deletes files. We will call this class DeleteFile: + And finally, we have Java code that deletes a file. We will call this class DeleteFile:

    - import java.io.File; - - public class DeleteFile { - public static void main(String[] args) { - File myFile = new File("myfile.txt"); - if (myFile.delete()) { - System.out.println("Deleted " + myFile.getName()); - } else { - System.out.println("File could not be deleted."); - } - } +import java.io.File; +import java.io.IOException; + +public class DeleteFile { + public static void main(String[] args) { + try { + File myFile = new File("myfile.txt"); + + // Create the file (does nothing if it already exists) + myFile.createNewFile(); + System.out.println("File created: " + myFile.getName()); + + // Delete the file + if (myFile.delete()) { + System.out.println("Deleted " + myFile.getName()); } + } catch (IOException e) { + e.printStackTrace(); + } + } +} +

    - This is almost identical to the code within the try block of the CreateFile class we made earlier. The main difference is the use of the delete() method. This method will delete any file with the name provided when creating the myFile object. Similar to the createNewFile() method, it will return true if the file existed and could be deleted, and false if the file could not be deleted. + Note that this is almost identical to the code within the try block of the CreateFile class we made earlier. The key difference is the use of the delete() method. This method will delete any file with the name that was linked to the myFile object. Similar to the createNewFile() method, it will return true if the file exists and can be deleted, and false if the file cannot be deleted.

    From ba444bc3786926253c4b6c20645caf64cf471ebb Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 09:01:58 -0400 Subject: [PATCH 245/448] improve language --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 47e6171..89909cb 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -501,7 +501,7 @@ public class DeleteFile {

    - Note that this is almost identical to the code within the try block of the CreateFile class we made earlier. The key difference is the use of the delete() method. This method will delete any file with the name that was linked to the myFile object. Similar to the createNewFile() method, it will return true if the file exists and can be deleted, and false if the file cannot be deleted. + Note that this is almost identical to the code within the try block of the CreateFile class that we made earlier. The key difference is the use of the delete() method which will delete the file with the name that was linked to the myFile object. Similar to the createNewFile() method, it will return true if the file exists and can be deleted, and false if the file cannot be deleted.

    From 2758e878703584fd361351e7727c1d1d1cdf84bf Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 09:46:46 -0400 Subject: [PATCH 246/448] improve ternary code section --- source/ch4_conditionals.ptx | 44 +++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 04b1e6b..0290b45 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -385,17 +385,15 @@ The switch statement is not used very often, and we recommend you do not -
    - Boolean Operators +
    + The Ternary Operator

    Boolean operators simple comparisons compound Boolean expressions The conditionals used in the if statement can be Boolean variables, simple comparisons, and compound Boolean expressions.

    ternary operator -Java also supports the boolean expression using the ternary operator -condition ? trueValue : falseValue. This operator tests a condition as part -of an assignment statement. The following table summarizes how this works: +Java also provides the ternary operator condition ? valueIfTrue : valueIfFalse, which lets you use a boolean test directly inside an assignment. If the condition is true, the first value is chosen; otherwise, the second value is used. The table below summarizes how it works:

    @@ -437,27 +435,35 @@ of an assignment statement. The following table summarizes how this works:

    -Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. +Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. See the following as an example where we see the same logic implemented in two different ways.

    - + - class Main { - public static void main(String[] args) { - int a = 4; - int x = 2; - - // Using the ternary operator - a = (a % 2 == 0) ? a * a : 3 * x - 1; +public class Ternary { + public static void main(String[] args) { + int a = 4; + int x = 2; + int outp; + + // ternary: + outp = (a % 2 == 0) ? (a * a) : (3 * x - 1); + System.out.println("Result: " + outp); + + // Equivalent using if/else + if (a % 2 == 0) { + outp = a * a; + } else { + outp = 3 * x - 1; + } - System.out.println("Result: " + a); - } - } - + System.out.println("Result: " + outp); + } +}

    - In this example we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, it should be used reasonably, as it can make code less readable if overused or used in complex expressions. + In this example we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, you might want to use it sparingly, as it can make code less readable if overused or used with complex expressions.

    From 3fcd04d4d22e541780235e35cfb71c724f3f98a4 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 09:50:43 -0400 Subject: [PATCH 247/448] improve output --- source/ch4_conditionals.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0290b45..770f388 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -447,7 +447,7 @@ public class Ternary { // ternary: outp = (a % 2 == 0) ? (a * a) : (3 * x - 1); - System.out.println("Result: " + outp); + System.out.println("ternary result: " + outp); // Equivalent using if/else if (a % 2 == 0) { @@ -456,7 +456,7 @@ public class Ternary { outp = 3 * x - 1; } - System.out.println("Result: " + outp); + System.out.println("if/else result: " + outp); } }
    From e35c6b378d117f04105b6919eac78ceeebf43a8a Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 10:04:26 -0400 Subject: [PATCH 248/448] improve switch section --- source/ch4_conditionals.ptx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 770f388..4b972df 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -232,6 +232,8 @@ Java also supports a switch statement that acts something like the eli

    The switch statement is not used very often, and we recommend you do not use it. First, it is not as powerful as the else if model because the switch variable can only be compared for equality with an integer or enumerated constant. Second, it is very easy to forget to put in the break statement, so it is more error-prone. If the break statement is left out then then the next alternative will be automatically executed. For example, if the grade was 95 and the break was omitted from the case 9: alternative then the program would print(out both A and B.)

    +

    + Finally, the switch statement does not support relational expressions such as greater than or less than. So you cannot use it to completely replace the elif. Even with the new features of Java 14+ the switch statement is still limited to constant comparisons using equality.

    @@ -479,7 +481,7 @@ public class Ternary {
  • - Java's switch statement is similar to Python's match statement, but it only supports equality checks against constant values and does not evaluate relational expressions like greater than or less than. + Java's switch statement is similar to Python's match statement, but it only supports equality checks against constant values and does not evaluate relational expressions like greater than or less than.

  • From 72896c90e0ef02adf6fa4067d31ce05a23f08129 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 10:10:09 -0400 Subject: [PATCH 249/448] clarifications of match-case --- source/ch4_conditionals.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 4b972df..186c522 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -162,12 +162,12 @@ public class ElseIf { Using the <c>switch</c> Statement

    -Java also supports a switch statement that acts something like the elif statement of Python under certain conditions. To write the grade program using a switch statement we would use the following: +Java also supports a switch statement that acts something like the elif or Python match statement of Python under certain conditions. To write the grade program using a switch statement we would use the following:

    - Depending on your knowledge and experience with Python you may be questioning why we are not using the match statement in our Python examples. The answer is that this book currently runs its active code examples using Python 3.7, which does not support the match statement which was introduced in Python 3.10. Below is an example of the match statement similar to our grade method. + The match - case statement was introduced in Python 3.10, so doesn't run in earlier version of Python. Here is an example using Python's match - case structure.

    Match Case Example @@ -192,7 +192,7 @@ Java also supports a switch statement that acts something like the eli

    switch - The switch statement in Java provides a clean and efficient alternative to chaining multiple if-else conditions, especially when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution. + The switch statement in Java provides an alternative to chaining multiple if-else conditions, when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution.

    From e6af616fd5c284c436ab4eb0874b46a3957acd15 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 10:20:01 -0400 Subject: [PATCH 250/448] add comments about integer division --- source/ch4_conditionals.ptx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 186c522..8238a56 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -173,6 +173,7 @@ Java also supports a switch statement that acts something like the eli Match Case Example grade = 85 + # Convert grade to a scale of 0-10 using integer division tempgrade = grade // 10 def grading(tempgrade): match grade: @@ -204,8 +205,9 @@ Java also supports a switch statement that acts something like the eli public class SwitchUp { - public static void main(String args[]) { + public static void main(String args[]) { int grade = 85; + // Convert grade to a scale of 0-10 using integer division int tempgrade = grade / 10; switch(tempgrade) { case 10: @@ -224,7 +226,7 @@ Java also supports a switch statement that acts something like the eli default: System.out.println('F'); } - } + } } From 982643d39ac626aaac00a19ef9bd1036cf43525a Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 10:29:03 -0400 Subject: [PATCH 251/448] remove redundency --- source/ch4_conditionals.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 8238a56..382e671 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -162,8 +162,8 @@ public class ElseIf { Using the <c>switch</c> Statement

    -Java also supports a switch statement that acts something like the elif or Python match statement of Python under certain conditions. To write the grade program using a switch statement we would use the following: -

    +Java also supports a switch statement that acts something like the elif or Python match statement under certain conditions. To write the grade program using a switch statement we would use the following: +

    From e675e9733c66d894a7c2557db5240af15f56fcd3 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Tue, 26 Aug 2025 10:36:22 -0400 Subject: [PATCH 252/448] hot-fix --- source/ch4_conditionals.ptx | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 382e671..0b32d00 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -163,12 +163,12 @@ public class ElseIf {

    Java also supports a switch statement that acts something like the elif or Python match statement under certain conditions. To write the grade program using a switch statement we would use the following: -

    The match - case statement was introduced in Python 3.10, so doesn't run in earlier version of Python. Here is an example using Python's match - case structure. -

    +

    Match Case Example @@ -190,7 +190,6 @@ Java also supports a switch statement that acts something like the eli print(grading(tempgrade)) -

    switch The switch statement in Java provides an alternative to chaining multiple if-else conditions, when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution. From ff1b772ee5806d29ddc3c72b7b27f5ccee2552cf Mon Sep 17 00:00:00 2001 From: Puskar Chapagain Date: Fri, 26 Jun 2026 16:52:02 -0400 Subject: [PATCH 253/448] Added description for JVM --- source/ch2_firstjavaprogram.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 1413416..b64d843 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -240,7 +240,7 @@ $ JVM byte code The job of the compiler is to turn your java code into language that the Java Virtual Machine (JVM) can understand. - We call the code that the JVM understands byte code. + JVM is a bytecode interpreter that allows Java programs to run on any platform without having to modify them. The JVM interprets the byte code much like the Python interpreter interprets your Python. However since byte code is much closer to the native language of the computer it can run faster.

    From 65c62eb36152a9f1aacecb53d986dd064834ad72 Mon Sep 17 00:00:00 2001 From: Puskar Chapagain Date: Mon, 29 Jun 2026 09:02:23 -0400 Subject: [PATCH 254/448] Added the JVM definition and cleaned up the paragraph --- source/ch2_firstjavaprogram.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index b64d843..9b62f7d 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -241,7 +241,7 @@ $ byte code The job of the compiler is to turn your java code into language that the Java Virtual Machine (JVM) can understand. JVM is a bytecode interpreter that allows Java programs to run on any platform without having to modify them. - The JVM interprets the byte code much like the Python interpreter interprets your Python. + The JVM interprets the byte code much like the Python interpreter does with Python. However since byte code is much closer to the native language of the computer it can run faster.

    From d9ceaa8f713f99b4dd05db836d782f6b9ada6bf9 Mon Sep 17 00:00:00 2001 From: Galina Pokitko Date: Mon, 29 Jun 2026 15:39:00 -0400 Subject: [PATCH 255/448] Changed line 8 to 7 --- source/ch3_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 830e0c2..4b75654 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -692,7 +692,7 @@ public class HistoArray {

    - The main difference between this example and the previous example is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown on line 8. Then notice that on line 22 we can use the square bracket notation to index into an array. + The main difference between this example and the previous example is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown on line 7. Then notice that on line 22 we can use the square bracket notation to index into an array.

    From 0c00f45be645e25324fafc2a3b1af2c4c8456da2 Mon Sep 17 00:00:00 2001 From: Galina Pokitko Date: Mon, 29 Jun 2026 16:10:35 -0400 Subject: [PATCH 256/448] removed unclear line references and instead replaced with the code in c tags --- source/ch3_javadatatypes.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 4b75654..ef3342d 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -692,8 +692,8 @@ public class HistoArray {

    - The main difference between this example and the previous example is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown on line 7. Then notice that on line 22 we can use the square bracket notation to index into an array. -

    + The main difference between this example and the previous example is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown here: Integer[] count = {0,0,0,0,0,0,0,0,0,0}Then notice that we can use the square bracket notation count[idx] to index into an array. +

    From 4f44f970beab4801c4f48385a2b4e67b86671975 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 22 Jul 2026 18:30:52 +0300 Subject: [PATCH 257/448] added listing and comments to the blocks of code in 2.1 --- source/ch2_firstjavaprogram.ptx | 51 ++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 9b62f7d..be1728b 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -30,32 +30,39 @@ The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python:

    - - + + + class Dog: + """ A simple Dog class definition. """ def __init__(self, name, breed, fur_color): + # constructor method to create a Dog object self.name = name self.breed = breed self.fur_color = fur_color - self.trained = False + self.trained = False # dogs are not trained by default print("Dog named " + self.name + " created!") def bark(self): + # method to make the dog bark print(self.name + " says woof!") def sit(self): - if self.trained: + # method to make the dog sit + if self.trained: # check if the dog has been trained otherwise it will not sit print(self.name + " sits.") else: print(self.name + " has not been trained.") def train(self): + # method to train the dog, which will set the trained attribute to True self.trained = True - - + + +

    - Let's unpack what is going on in this code. The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is defined within the constructor and is initialized as False. We can also have the __init__ method run any code, such as the print statement informing us that a Dog object was created. + Let's unpack what is going on in . The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is defined within the constructor and is initialized as False. We can also have the __init__ method run any code, such as the print statement informing us that a Dog object was created.

    @@ -70,11 +77,13 @@

    Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog:

    - - + + class Dog: + """ A simple Dog class definition. """ def __init__(self, name, breed, fur_color): + # constructor method to create a Dog object self.name = name self.breed = breed self.fur_color = fur_color @@ -82,22 +91,25 @@ print("Dog named " + self.name + " created!") def bark(self): + # method to make the dog bark print(self.name + " says woof!") def sit(self): - if self.trained: + # method to make the dog sit + if self.trained: # check if the dog has been trained otherwise it will not sit print(self.name + " sits.") else: print(self.name + " has not been trained.") def train(self): + # method to train the dog, which will set the trained attribute to True self.trained = True - + # Create a Dog object called my_dog my_dog = Dog("Rex", "pug", "brown") - +

    In the final line of code, we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to brown.

    @@ -106,10 +118,13 @@ Now that we have created a Dog object using the class we defined, we can utilize the class's methods:

    - + + class Dog: + """ A simple Dog class definition. """ def __init__(self, name, breed, fur_color): + # constructor method to create a Dog object self.name = name self.breed = breed self.fur_color = fur_color @@ -117,27 +132,31 @@ print("Dog named " + self.name + " created!") def bark(self): + # method to make the dog bark print(self.name + " says woof!") def sit(self): + # method to make the dog sit if self.trained: print(self.name + " sits.") else: print(self.name + " has not been trained.") def train(self): + # method to train the dog, which will set the trained attribute to True self.trained = True my_dog = Dog("Rex", "pug", "brown") - my_dog.bark() - my_dog.sit() + my_dog.bark() # call the bark method + my_dog.sit() # call the sit method +

    - When running the code above, the line Rex has not ben trained. will appear in the output when calling the sit() method. Try adding a one or more lines of code so that Rex sits. appears in the output! + When running , the line Rex has not ben trained. will appear in the output when calling the sit() method. Try adding a one or more lines of code so that Rex sits. appears in the output!

    From 06860e07605292868f7ca79a49ae701d8075d561 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 22 Jul 2026 18:37:04 +0300 Subject: [PATCH 258/448] added a reference to 2.1.2 in paragraph text --- source/ch2_firstjavaprogram.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index be1728b..34e6ea9 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -87,7 +87,7 @@ self.name = name self.breed = breed self.fur_color = fur_color - self.trained = False + self.trained = False # dogs are not trained by default print("Dog named " + self.name + " created!") def bark(self): @@ -111,7 +111,7 @@

    - In the final line of code, we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to brown. + In the final line of code in , we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to brown.

    @@ -128,7 +128,7 @@ self.name = name self.breed = breed self.fur_color = fur_color - self.trained = False + self.trained = False # dogs are not trained by default print("Dog named " + self.name + " created!") def bark(self): From 195e43e6a9cbfe6a816488ab85cf33819aadc87e Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 22 Jul 2026 20:20:49 +0300 Subject: [PATCH 259/448] fixed a typo in 8.2 --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 89909cb..ba5d0cf 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -84,7 +84,7 @@ public class CreateFile { public static void main(String[] args) { // First, create a File object that represents "myfile.txt" File myFile = new File("myfile.txt"); - // Mext, print the file path (just the filename.) + // Next, print the file path (just the filename.) System.out.println(myFile); } } From 2c36fb61539d717119df76881cd226a48b58eace Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 22 Jul 2026 22:55:50 +0300 Subject: [PATCH 260/448] added a title for table 3.1.1 --- source/ch3_javadatatypes.ptx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index ef3342d..68fd5bf 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -18,6 +18,7 @@

    + Comparison between Java's primitive and object data types. Primitive From ace692ab66bd59040094e0afb40a2e2d62d88103 Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Thu, 23 Jul 2026 09:49:23 -0400 Subject: [PATCH 261/448] fix typo in pull request --- source/ch2_firstjavaprogram.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 34e6ea9..9f0e546 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -156,7 +156,7 @@

    - When running , the line Rex has not ben trained. will appear in the output when calling the sit() method. Try adding a one or more lines of code so that Rex sits. appears in the output! + When running , the line Rex has not been trained. will appear in the output when calling the sit() method. Try adding a one or more lines of code so that Rex sits. appears in the output!

    From 5f94fdd3558ff8440829376f29b2dafc16a46617 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 17:23:18 +0300 Subject: [PATCH 262/448] fixed the format of python in 2.2 --- source/ch2_firstjavaprogram.ptx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 9b62f7d..04994ae 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -156,12 +156,19 @@ To be clear, lets look at a “complicated” version of hello world for Python:

    -
    def main(): print("Hello World!")
    + + + def main(): + print("Hello World!") + + +

    Remember that we can define this program right at the Python command line and then run it:

    -
    >>> main() "Hello World!" >>>
    +
    >>> main() 
    +Hello World! 

    Now let's look at the same program written in Java:

    From 8e988a7dd2d0fc49f48387fd22f9bf061ac376da Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 17:24:13 +0300 Subject: [PATCH 263/448] made the Hello World in the paragraph capatalized --- source/ch2_firstjavaprogram.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 04994ae..ac5da42 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -151,7 +151,7 @@
    Lets look at a Java Program

    - A time-honored tradition in Computer Science is to write a program called “hello world.” The “hello world” program is simple and easy. + A time-honored tradition in Computer Science is to write a program called “Hello World.” The “Hello World” program is simple and easy. There are no logic errors to make, so getting it to run relies only on understanding the syntax. To be clear, lets look at a “complicated” version of hello world for Python:

    From f337694b2bdd67f989127bfc838e8b061d376c07 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 20:41:26 +0300 Subject: [PATCH 264/448] add listing to blocks of code 2.2 --- source/ch2_firstjavaprogram.ptx | 44 ++++++++++++++++++++++++--------- 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 8e7cdb8..6bab910 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -175,25 +175,34 @@ To be clear, lets look at a “complicated” version of hello world for Python:

    - + + def main(): print("Hello World!") +

    Remember that we can define this program right at the Python command line and then run it:

    -
    >>> main() 
    -Hello World! 
    + + + +>>> main() +Hello World! + + +

    Now let's look at the same program written in Java:

    - + + public class Hello { public static void main(String[] args) { @@ -202,6 +211,7 @@ public class Hello { } +

    What we see is that at the core there are a few similarities, such as a main and the string “Hello World”. However, there is a lot more stuff around the edges that make it harder to see the core of the program. Do not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them. @@ -214,7 +224,8 @@ public class Hello {

    - + + $ javac Hello.java $ ls -l Hello.* @@ -222,6 +233,7 @@ $ ls -l Hello.* -rw-r--r-- 1 bmiller bmiller 117 Jul 19 17:46 Hello.java +

    The command javac compiles our java source code into compiled byte code and saves it in a file called Hello.class. @@ -234,13 +246,16 @@ $ ls -l Hello.*

    - + + $ java Hello Hello World! $ + +

    Now you may be wondering what good is that extra step? What does compiling do for us? There are a couple of important benefits we get from compiling: @@ -310,7 +325,7 @@ $ On line 1 we see that we are declaring a class called Hello:

    - + public class Hello { @@ -451,8 +466,8 @@ System.out.println("Hello World!"); I would not encourage you to write your code like this, but you should know that it is legal.

    - - + + System.out.println("Hello World"); System.out.println("Hello World") @@ -467,6 +482,7 @@ System. ; +

    The last two lines of the hello world program simply close the two blocks using }. @@ -478,8 +494,8 @@ System. If we wanted to translate the Java back to Python we would have something like the following class definition.

    - - + + class Hello(object): @staticmethod @@ -487,6 +503,7 @@ class Hello(object): print("Hello World!") +

    Notice that we used the decorator @staticmethod to tell the Python interpreter that main is going to be a static method. @@ -494,13 +511,16 @@ class Hello(object):

    - + + >>> Hello.main("") Hello World! >>> + +
    Summary & Reading Questions From 3b67541fa6d7c6104916b5799c38dc7ce9e20986 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 20:55:16 +0300 Subject: [PATCH 265/448] added references inside the paraggraog --- source/ch2_firstjavaprogram.ptx | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 6bab910..1a89717 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -163,16 +163,15 @@

    Now, we have a full class definition and have utilized its methods. Class definitions in Java will be covered thoroughly in chapter 6. For now, it is important to know that Python programs can be written without using classes at all. Java, on the other hand, requires all code to reside in a class. This will be discussed in the next section.

    - - - +
    +
    Lets look at a Java Program

    A time-honored tradition in Computer Science is to write a program called “Hello World.” The “Hello World” program is simple and easy. There are no logic errors to make, so getting it to run relies only on understanding the syntax. - To be clear, lets look at a “complicated” version of hello world for Python: + To be clear, lets look at a “complicated” version of hello world for Python in .

    @@ -185,7 +184,7 @@

    - Remember that we can define this program right at the Python command line and then run it: + Remember that we can define this program right at the Python command line and then run it as per .

    @@ -214,13 +213,13 @@ public class Hello {

    - What we see is that at the core there are a few similarities, such as a main and the string “Hello World”. However, there is a lot more stuff around the edges that make it harder to see the core of the program. Do not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them. + Based on , what we see in the code is that at the core there are a few similarities, such as a main and the string “Hello World”. However, there is a lot more stuff around the edges that make it harder to see the core of the program. Do not worry! An important skill for a computer scientist is to learn what to ignore and what to look at carefully. You will soon find that there are some elements of Java that will fade into the background as you become used to seeing them.

    interpreter compile - The first question you probably have about this little program is “How do I run it?” Running a Java program is not as simple as running a Python program. The first thing you need to do with a Java program is compile it. The first big difference between Java and Python is that Python is an interpreted language. We could run our Python programs in the Python interpreter and we were quite happy to do that. Java makes running programs a two step process. First we must type the hello world program into a file and save that file using the name Hello.java The file name must be the same as the public class you define in the file. Once we have saved the file we compile it from the command line as follows: + The first question you probably have about this little program is “How do I run it?” Running a Java program is not as simple as running a Python program. The first thing you need to do with a Java program is compile it. The first big difference between Java and Python is that Python is an interpreted language. We could run our Python programs in the Python interpreter and we were quite happy to do that. Java makes running programs a two step process. First we must type the hello world program into a file and save that file using the name Hello.java The file name must be the same as the public class you define in the file. Once we have saved the file we compile it from the command line as .

    @@ -242,7 +241,7 @@ $ ls -l Hello.*

    - Now that we have compiled our java source code we can run the compiled code using the java command. + Now that we have compiled our java source code we can run the compiled code using the java command as per .

    @@ -462,7 +461,7 @@ System.out.println("Hello World!"); Java statements can spread across many lines, but the compiler knows it has reached the end of a statement when it encounters a ;. In Python, it is not required (or recommend) to use semicolons in this way, but whitespace is meaningful. In contrast, in Java semicolons are required to end statements, but whitespace is not considered meaningful. - This is a very important difference to remember! In Java, the following statements are all legal and equivalent. + This is a very important difference to remember! In Java, the statements in are all legal and equivalent. I would not encourage you to write your code like this, but you should know that it is legal.

    @@ -491,7 +490,7 @@ System.

    - If we wanted to translate the Java back to Python we would have something like the following class definition. + If we wanted to translate the Java back to Python we would have something like class definition.

    From 4a32f234a27c67995ce572fbfe21074d082c7f9d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 20:59:49 +0300 Subject: [PATCH 266/448] fixed python that was attributed to java --- source/ch2_firstjavaprogram.ptx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 1a89717..b00d4cf 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -490,11 +490,11 @@ System.

    - If we wanted to translate the Java back to Python we would have something like class definition. + If we wanted to translate the Java back to Python we would have something like class definition.

    - - + + class Hello(object): @staticmethod @@ -506,12 +506,12 @@ class Hello(object):

    Notice that we used the decorator @staticmethod to tell the Python interpreter that main is going to be a static method. - The impact of this is that we don’t have to, indeed we should not, use self as the first parameter of the main method! Using this definition we can call the main method in a Python session like this: + The impact of this is that we don’t have to, indeed we should not, use self as the first parameter of the main method! Using this definition we can call the main method in a Python session like .

    - - + + >>> Hello.main("") Hello World! From f3c7d95d45e56e6bea0a302bb288c6c5f3599830 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 22:17:37 +0300 Subject: [PATCH 267/448] added listing tags to 3.1 --- source/ch3_javadatatypes.ptx | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 68fd5bf..6220e0b 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -95,8 +95,8 @@ If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook.

    - - + + def main(): fahr = int(input("Enter the temperature in F: ")) @@ -105,13 +105,15 @@ def main(): main() +

    Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook.

    - + + import java.util.Scanner; public class TempConv { @@ -128,7 +130,8 @@ public class TempConv { } - + +

    There are several new concepts introduced in this example. We will look at them in the following order:

    From 25ef435e60823ef521911ac1ee3dd129636fecb9 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 22:27:38 +0300 Subject: [PATCH 268/448] added linking to the parts --- source/ch3_javadatatypes.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 6220e0b..bd331cb 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -91,7 +91,7 @@

    - Let’s look at a simple Python function which converts a Fahrenheit temperature to Celsius. + is a simple Python function which converts a Fahrenheit temperature to Celsius. If this program were run on the command-line, you would enter the temperature when prompted – the Javascript pop-up for input is only an artifact of the digital textbook.

    @@ -108,7 +108,7 @@ main()

    - Next, lets look at the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook. + Next, is the Java equivalent. If this program were run on the command-line, you would enter the temperature when prompted – the “Input for Program” text box is only an artifact of the digital textbook.

    @@ -131,7 +131,7 @@ public class TempConv {
    - +

    There are several new concepts introduced in this example. We will look at them in the following order:

    From aa7b28735788047d6f2c432cd069b7364a267ec1 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 22:38:20 +0300 Subject: [PATCH 269/448] fixed a block in the later sections --- source/ch3_javadatatypes.ptx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index bd331cb..e33d9b1 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -250,7 +250,9 @@ public class TempConv { For Python programmers, the following error is likely to be even more common. Suppose we forgot the declaration for cel and instead left line 6 blank. What would happen when we type javac TempConv.java on the command line?

    -
    +            +            
    +            
                 TempConv.java:13: cannot find symbol 
                 symbol  : variable cel 
                 location: class TempConv 
    @@ -262,10 +264,12 @@ public class TempConv {
                 System.out.println("The temperature in C is: " + cel); 
                 ^ 
                 2 errors
    -            
    + +
    +

    - When you see the first kind of error, where the symbol is on the left side of the equals sign, it usually means that you have not declared the variable. If you have ever tried to use a Python variable that you have not initialized the second error message will be familiar to you. The difference here is that we see the message before we ever try to test our program. More common error messages are discussed in the section . + When you see the first kind of error in , where the symbol is on the left side of the equals sign, it usually means that you have not declared the variable. If you have ever tried to use a Python variable that you have not initialized the second error message will be familiar to you. The difference here is that we see the message before we ever try to test our program. More common error messages are discussed in the section .

    From babba04ae075be8285943f23d65e359cc8c7bb86 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 23 Jul 2026 23:15:15 +0300 Subject: [PATCH 270/448] made blocks active, changed some wording to work with these changes --- source/ch2_firstjavaprogram.ptx | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index b00d4cf..e6f65c4 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -31,10 +31,10 @@

    - + class Dog: - """ A simple Dog class definition. """ + """ A simple Dog class definition. """ def __init__(self, name, breed, fur_color): # constructor method to create a Dog object self.name = name @@ -175,7 +175,7 @@

    - + def main(): print("Hello World!") @@ -184,7 +184,11 @@

    - Remember that we can define this program right at the Python command line and then run it as per . + Remember that we can define this program right at the Python command line and then run it with main() Try it in . +

    + +

    + The command line interface of the program is shown in .

    @@ -494,7 +498,7 @@ System.

    - + class Hello(object): @staticmethod @@ -506,21 +510,25 @@ class Hello(object):

    Notice that we used the decorator @staticmethod to tell the Python interpreter that main is going to be a static method. - The impact of this is that we don’t have to, indeed we should not, use self as the first parameter of the main method! Using this definition we can call the main method in a Python session like . + The impact of this is that we don’t have to, indeed we should not, use self as the first parameter of the main method! Using this definition we can call the main method in a Python session with Hello.main(""). Try it in .

    +

    + The command line interface of the program is shown in . +

    >>> Hello.main("") Hello World! ->>>
    + +
    Summary & Reading Questions

      From 553c5acab6751339b3e4635b4fef0512f7659306 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 16:55:45 +0300 Subject: [PATCH 271/448] fixed typos in chapter 3 --- source/ch3_javadatatypes.ptx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index e33d9b1..ffca06d 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -87,7 +87,7 @@ - A data type fundamentally defines a set of values and the operations you can perform on them. For instance, you can do math with int and double values, but not with boolean values. This is simlar to Python, where you can perform arithmetic on integers and floats, but not on booleans or strings. + A data type fundamentally defines a set of values and the operations you can perform on them. For instance, you can do math with int and double values, but not with boolean values. This is similar to Python, where you can perform arithmetic on integers and floats, but not on booleans or strings.

      @@ -448,7 +448,7 @@ def main(): count[int(line)] = count[int(line)] + 1 idx = 0 for num in count: - print(idx, " occured ", num, " times.") + print(idx, " occurred ", num, " times.") idx += 1 main() @@ -565,7 +565,7 @@ public class Histo { } idx = 0; for(Integer i : count) { - System.out.println(idx + " occured " + i + " times."); + System.out.println(idx + " occurred " + i + " times."); idx++; } } @@ -691,7 +691,7 @@ public class HistoArray { } idx = 0; for(Integer i : count) { - System.out.println(idx + " occured " + i + " times."); + System.out.println(idx + " occurred " + i + " times."); idx++; } } @@ -795,7 +795,7 @@ public class HistoMap { count.put(word,++wordCount); } for(String i : count.keySet()) { - System.out.printf("%-20s occured %5d times\n", i, count.get(i) ); + System.out.printf("%-20s occurred %5d times\n", i, count.get(i) ); } } } From c4e7aa47d0fed0de291877fba6c938905c3ddf0f Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 17:18:33 +0300 Subject: [PATCH 272/448] added comments to code blocks in 3.1 --- source/ch3_javadatatypes.ptx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index e33d9b1..39defc9 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -99,8 +99,9 @@ def main(): - fahr = int(input("Enter the temperature in F: ")) - cel = (fahr - 32) * 5.0/9.0 + """ Program to convert a temperature from Fahrenheit to Celsius. """ + fahr = int(input("Enter the temperature in F: ")) # get the temperature in Fahrenheit + cel = (fahr - 32) * 5.0/9.0 # convert to Celsius print("the temperature in C is: ", cel) main() @@ -115,16 +116,19 @@ main()

      -import java.util.Scanner; +import java.util.Scanner; // import the Scanner class to read input from the user + /** + * Program to convert a temperature from Fahrenheit to Celsius in Java. + */ public class TempConv { public static void main(String[] args) { - Double fahr; + Double fahr; Double cel; - Scanner in; - in = new Scanner(System.in); + Scanner in; // declare a Scanner variable called in + in = new Scanner(System.in); // create a Scanner object to read input from the user System.out.println("Enter the temperature in F: "); - fahr = in.nextDouble(); - cel = (fahr - 32) * 5.0/9.0; + fahr = in.nextDouble(); // read the temperature in Fahrenheit from the user + cel = (fahr - 32) * 5.0/9.0; // convert to Celsius System.out.println("The temperature in C is: " + cel); } } From 1089a3a054b28f3d61e667cf0f298f99a20c73f5 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 21:39:55 +0300 Subject: [PATCH 273/448] made blocks of code interactive --- source/ch3_javadatatypes.ptx | 109 +++++++++++++++++++++++++++-------- 1 file changed, 85 insertions(+), 24 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index e3ffe69..624b05c 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -296,18 +296,35 @@ public class TempConv {

      Implicit typecasting happens automatically when converting a value from a smaller data type to a larger one, as there is no risk of losing information. For example, you can assign an int to a double without any special syntax.

      -
       
      -        int myInt = 10;
      -        double myDouble = myInt; // Automatic casting from int to double
      -        
      - + + + + + void main() { + int myInt = 10; + double myDouble = myInt; // Automatic casting from int to double + + System.out.println(myDouble); +} + + + +

      Explicit typecasting is required when converting from a larger data type to a smaller one, as you might lose data. You must do this manually by placing the target type in parentheses () before the value.

      -
      -        double originalDouble = 9.78;
      -        int castedInt = (int) originalDouble; // Explicitly casts double to int. The value of castedInt is now 9.
      -        
      + + + +void main() { + double originalDouble = 9.78; + int castedInt = (int) originalDouble; // Explicitly casts double to int. The value of castedInt is now 9. + + System.out.println(castedInt); +} + + +

      Besides primitive types, type casting is also a fundamental concept when working with objects, especially within an inheritance hierarchy. This involves converting an object reference from one class type to another, typically between a superclass and a subclass. This is often referred to as upcasting and downcasting. @@ -315,8 +332,12 @@ public class TempConv {

      Let's imagine we have a simple class hierarchy: an Animal superclass and a Dog subclass.

      -
      +
      +    +    
      +        
       class Animal {
      +
           public void makeSound() {
               System.out.println("The animal makes a sound.");
           }
      @@ -327,37 +348,77 @@ class Dog extends Animal {
               System.out.println("The dog barks!");
           }
       }
      -    
      + +
      +

      Upcasting (Implicit): Upcasting is casting a subclass instance to a superclass reference type. This is always safe because a subclass object is guaranteed to have all the methods and properties of its superclass. Therefore, upcasting is done implicitly by the compiler.

      -
      +    +    
      +        
      +class Animal {
      +    public void makeSound() {
      +        System.out.println("The animal makes a sound.");
      +    }
      +}
      +
      +class Dog extends Animal {
      +    public void bark() {
      +        System.out.println("The dog barks!");
      +    }
      +}
      +
      +void main() {
       // A Dog object is created, but the reference is of type Animal.
       // This is implicit upcasting.
      -Animal myAnimal = new Dog(); 
      +    Animal myAnimal = new Dog(); 
       
      -myAnimal.makeSound(); // This is valid, as makeSound() is defined in Animal.
      +    myAnimal.makeSound(); // This is valid, as makeSound() is defined in Animal.
       
       // myAnimal.bark(); // This would cause a compile-time error!
       // The compiler only knows about the methods in the Animal reference type.
      -    
      +} + + + +

      Downcasting (Explicit): Downcasting is casting a superclass reference back to its original subclass type. This is potentially unsafe because the superclass reference might not actually point to an object of the target subclass. You must perform an explicit cast. If you cast to the wrong type, Java will throw a ClassCastException at runtime.

      To safely downcast, you should first check the object's type using the instanceof operator.

      -
      -// 'myAnimal' is an Animal reference, but it points to a Dog object.
      -if (myAnimal instanceof Dog) {
      -    // The check passed, so this downcast is safe.
      -    Dog myDog = (Dog) myAnimal;
      -
      -    // Now we can access methods specific to the Dog class.
      -    myDog.bark(); // This is now valid.
      +    +    
      +        
      +class Animal {
      +    public void makeSound() {
      +        System.out.println("The animal makes a sound.");
      +    }
       }
      -    
      + +class Dog extends Animal { + public void bark() { + System.out.println("The dog barks!"); + } +} + +void main() { + + Animal myAnimal = new Dog(); + + // 'myAnimal' is an Animal reference, but it points to a Dog object. + if (myAnimal instanceof Dog myDog) { + // Now we can access methods specific to the Dog class. + myDog.bark(); + } +} + + + +

      In this example, we first create a Dog object and assign it to an Animal reference (upcasting). Then, we check if the Animal reference is actually pointing to a Dog object before downcasting it back to a Dog reference. From 7e349a086625946ca8f56836174d808c2d5eda26 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 21:48:53 +0300 Subject: [PATCH 274/448] added listing in paragraphs --- source/ch3_javadatatypes.ptx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 624b05c..15bb291 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -294,13 +294,13 @@ public class TempConv {

      - Implicit typecasting happens automatically when converting a value from a smaller data type to a larger one, as there is no risk of losing information. For example, you can assign an int to a double without any special syntax. + Implicit typecasting happens automatically when converting a value from a smaller data type to a larger one, as there is no risk of losing information. For example, you can assign an int to a double without any special syntax as shown in .

      - void main() { +void main() { int myInt = 10; double myDouble = myInt; // Automatic casting from int to double @@ -311,7 +311,7 @@ public class TempConv {

      - Explicit typecasting is required when converting from a larger data type to a smaller one, as you might lose data. You must do this manually by placing the target type in parentheses () before the value. + Explicit typecasting is required when converting from a larger data type to a smaller one, as you might lose data. You must do this manually by placing the target type in parentheses () before the value as shown in .

      @@ -330,7 +330,7 @@ void main() { Besides primitive types, type casting is also a fundamental concept when working with objects, especially within an inheritance hierarchy. This involves converting an object reference from one class type to another, typically between a superclass and a subclass. This is often referred to as upcasting and downcasting.

      - Let's imagine we have a simple class hierarchy: an Animal superclass and a Dog subclass. + In , we have a simple class hierarchy: an Animal superclass and a Dog subclass.

      @@ -353,7 +353,7 @@ class Dog extends Animal {

      - Upcasting (Implicit): Upcasting is casting a subclass instance to a superclass reference type. This is always safe because a subclass object is guaranteed to have all the methods and properties of its superclass. Therefore, upcasting is done implicitly by the compiler. + Upcasting (Implicit): Upcasting is casting a subclass instance to a superclass reference type. This is always safe because a subclass object is guaranteed to have all the methods and properties of its superclass. Therefore, upcasting is done implicitly by the compiler as .

      @@ -388,7 +388,7 @@ void main() { Downcasting (Explicit): Downcasting is casting a superclass reference back to its original subclass type. This is potentially unsafe because the superclass reference might not actually point to an object of the target subclass. You must perform an explicit cast. If you cast to the wrong type, Java will throw a ClassCastException at runtime.

      - To safely downcast, you should first check the object's type using the instanceof operator. + To safely downcast, you should first check the object's type using the instanceof operator as shown in .

      @@ -421,7 +421,7 @@ void main() {

      - In this example, we first create a Dog object and assign it to an Animal reference (upcasting). Then, we check if the Animal reference is actually pointing to a Dog object before downcasting it back to a Dog reference. + In , we first create a Dog object and assign it to an Animal reference (upcasting). Then, we check if the Animal reference is actually pointing to a Dog object before downcasting it back to a Dog reference.

    From a5cfcd022571beab991bb999622b1bb0643d118b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 22:04:32 +0300 Subject: [PATCH 275/448] added comments to the code sections --- source/ch3_javadatatypes.ptx | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 15bb291..f38811b 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -336,13 +336,18 @@ void main() { +/** + * Animal class is the superclass, with a method makeSound(). + */ class Animal { - public void makeSound() { System.out.println("The animal makes a sound."); } } +/** + * Dog class is a subclass of Animal, with an additional method bark(). + */ class Dog extends Animal { public void bark() { System.out.println("The dog barks!"); @@ -358,18 +363,28 @@ class Dog extends Animal { + +/** + * Animal class is the superclass, with a method makeSound(). + */ class Animal { public void makeSound() { System.out.println("The animal makes a sound."); } } +/** + * Dog class is a subclass of Animal, with an additional method bark(). + */ class Dog extends Animal { public void bark() { System.out.println("The dog barks!"); } } +/** + * Upcasting example: A Dog object is created, but the reference is of type Animal. + */ void main() { // A Dog object is created, but the reference is of type Animal. // This is implicit upcasting. @@ -377,8 +392,8 @@ void main() { myAnimal.makeSound(); // This is valid, as makeSound() is defined in Animal. -// myAnimal.bark(); // This would cause a compile-time error! -// The compiler only knows about the methods in the Animal reference type. + // myAnimal.bark(); // This would cause a compile-time error! + // The compiler only knows about the methods in the Animal reference type. } @@ -393,20 +408,28 @@ void main() { +/** + * Animal class is the superclass, with a method makeSound(). + */ class Animal { public void makeSound() { System.out.println("The animal makes a sound."); } } +/** + * Dog class is a subclass of Animal, with an additional method bark(). + */ class Dog extends Animal { public void bark() { System.out.println("The dog barks!"); } } +/** + * Downcasting example: An Animal reference is downcast to a Dog reference after checking its type. + */ void main() { - Animal myAnimal = new Dog(); // 'myAnimal' is an Animal reference, but it points to a Dog object. From e7bdb447cfbfa5b16415dde8a810798322660d9b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 23:39:22 +0300 Subject: [PATCH 276/448] added a title for 3.3.1 --- source/ch3_javadatatypes.ptx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index f38811b..823ac73 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -460,7 +460,8 @@ void main() { In fact, this is the first example of another big difference between Java and Python. Java does not support any operator overloading. Table 3 maps common Python string operations to their Java counterparts. For the examples shown in the table we will use a string variable called “str”

    -
    +
    + Comparison of common string operations in Python and Java. Python From 2e371f5b0746c5b18d5734b1fa2d4dc06ec89892 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 23:41:16 +0300 Subject: [PATCH 277/448] added an xml:id to the table and correctly referenced it --- source/ch3_javadatatypes.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 823ac73..9033d61 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -457,11 +457,11 @@ void main() {

    - In fact, this is the first example of another big difference between Java and Python. Java does not support any operator overloading. Table 3 maps common Python string operations to their Java counterparts. For the examples shown in the table we will use a string variable called “str” + In fact, this is the first example of another big difference between Java and Python. Java does not support any operator overloading. maps common Python string operations to their Java counterparts. For the examples shown in the table we will use a string variable called “str”

    -
    - Comparison of common string operations in Python and Java. +
    + Comparison of common string operations in Python and Java. Python From 49613647116ffee2f9108173e2ec46d75d8ccabc Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 24 Jul 2026 23:50:00 +0300 Subject: [PATCH 278/448] fixed reference to table 3.1.1 --- source/ch3_javadatatypes.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index f38811b..76258b8 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -14,10 +14,10 @@ In Java, some of the most basic data types like integers and floating point numbers are not objects. The benefit of having these primitive data types be non-objects is that operations on the primitives are fast. The problem is that it became difficult for programmers to combine objects and non-objects in the way that we do in Python. - So, eventually all the non-object primitives ended up with Objectified versions. + So, eventually all the non-object primitives ended up with Objectified versions. shows the comparison between Java's primitive and object data types.

    -
    +
    Comparison between Java's primitive and object data types. From d6cc70c49911e9953e5a995b6761c3861539e883 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 16:11:00 +0300 Subject: [PATCH 279/448] fixed math formatting in 3.1 --- source/ch3_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 1cdf4b6..d86d5ca 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -277,7 +277,7 @@ public class TempConv {

    - The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. In our temperature converter, the calculation (fahr - 32) * 5.0/9.0 works correctly because 5.0 and 9.0 are treated as double values, preventing the integer division that would occur if we had written 5/9, which would result in 0. + The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. In our temperature converter, the calculation (fahr - 32) * 5.0/9.0 works correctly because 5.0 and 9.0 are treated as double values, preventing the integer division that would occur if we had written 5/9, which would result in 0.

    From 0dcbed70d80ab45320bde8f3a3c7800381a65add Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 17:08:12 +0300 Subject: [PATCH 280/448] added listing blocks --- source/ch3_javadatatypes.ptx | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 1cdf4b6..7bdce4c 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -527,8 +527,8 @@ void main() { Next, let’s look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. The data file we will use has one number between 0 and 9 on each line of the file. Here is a simple Python program that creates and prints a histogram.

    - - + + def main(): count = [0]*10 @@ -542,11 +542,13 @@ def main(): main() +

    Test running the program. It will read this data:

    - + +
        1
        2
    @@ -625,7 +627,8 @@ Here is the Java code needed to write the exact same program:
                 

    - + + import java.util.Scanner; import java.util.ArrayList; @@ -661,6 +664,7 @@ public class Histo { } +

    Before going any further, I suggest you try to compile the above program and run it on some test data that you create. @@ -674,10 +678,14 @@ public class Histo { Technically, you don’t have to declare what is going to be in an array list. The compiler will allow you to leave the <``*Type*>`` off the declaration. If you don’t tell Java what kind of object is going to be on the list Java will give you a warning message like this:

    -
    +        +        
    +        
             Note: Histo.java uses unchecked or unsafe operations. 
             Note: Recompile with -Xlint:unchecked for details.
    -        
    + +
    +

    Without the <Integer> part of the declaration Java simply assumes that any object can be on the list. However, without resorting to an ugly notation called casting, you cannot do anything with the objects on a list like this! So, if you forget you will surely see more errors later in your code. (Try it and see what you get) @@ -686,14 +694,18 @@ public class Histo {

    Lines 13—20 are required to open the file. Why so many lines to open a file in Java? The additional code mainly comes from the fact that Java forces you to reckon with the possibility that the file you want to open is not going to be there. If you attempt to open a file that is not there you will get an error. A try/catch construct allows us to try things that are risky, and gracefully recover from an error if one occurs. The following example shows the general structure of a try/catch block.

    - -
    +        
    +        +        
    +        
             try { 
                 Put some risky code in here, like opening a file 
             } catch (Exception e) { 
                 If an error happens in the try block an exception is thrown. We will catch that exception here! 
             }
    -        
    + + +

    Notice that in line 16 we are catching an IOException. In fact, we will see later that we can have multiple catch blocks to catch different types of exceptions. If we want to be lazy and catch any old exception we can catch an Exception which is the parent of all exceptions. However, catching Exception is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program. From 8c2e1f50769d50fda9b0ec6296eff1df4cefa764 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 18:03:47 +0300 Subject: [PATCH 281/448] added linking to text --- source/ch3_javadatatypes.ptx | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 7bdce4c..36c8a98 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -524,10 +524,10 @@ void main() { List

    - Next, let’s look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. The data file we will use has one number between 0 and 9 on each line of the file. Here is a simple Python program that creates and prints a histogram. + Next, let’s look at a program which reads numbers from a file and produces a histogram showing the frequency of the numbers. The data file we will use has one number between 0 and 9 on each line of the file. is a simple Python program that creates and prints a histogram.

    - + def main(): @@ -545,17 +545,18 @@ main()

    - Test running the program. It will read this data: + Test running the program. It will read this data:

    - +
        1
        2
        3
        9
        1
    -        
    +
    +

    Lets review what is happening in this little program. First, we create a list and initialize the first 10 positions in the list to be 0. Next we open the data file called ‘test.dat’. Third, we have a loop that reads each line of the file. As we read each line we convert it to an integer and increment the counter at the position in the list indicated by the number on the line we just read. Finally we iterate over each element in the list, printing out both the position in the list and the total value stored in that position. @@ -618,7 +619,7 @@ The code will be executed once for each element in the collection.

    -Here is the Java code needed to write the exact same program: + is the Java code needed to write the exact same program.

    @@ -627,7 +628,7 @@ Here is the Java code needed to write the exact same program:

    - + import java.util.Scanner; @@ -667,7 +668,7 @@ public class Histo {

    - Before going any further, I suggest you try to compile the above program and run it on some test data that you create. + Before going any further, I suggest you try to compile and run it on some test data that you create.

    @@ -675,7 +676,7 @@ public class Histo {

    - Technically, you don’t have to declare what is going to be in an array list. The compiler will allow you to leave the <``*Type*>`` off the declaration. If you don’t tell Java what kind of object is going to be on the list Java will give you a warning message like this: + Technically, you don’t have to declare what is going to be in an array list. The compiler will allow you to leave the <``*Type*>`` off the declaration. If you don’t tell Java what kind of object is going to be on the list Java will give you a warning message like when you compile the program.

    @@ -692,7 +693,7 @@ public class Histo {

    - Lines 13—20 are required to open the file. Why so many lines to open a file in Java? The additional code mainly comes from the fact that Java forces you to reckon with the possibility that the file you want to open is not going to be there. If you attempt to open a file that is not there you will get an error. A try/catch construct allows us to try things that are risky, and gracefully recover from an error if one occurs. The following example shows the general structure of a try/catch block. + Lines 13—20 are required to open the file. Why so many lines to open a file in Java? The additional code mainly comes from the fact that Java forces you to reckon with the possibility that the file you want to open is not going to be there. If you attempt to open a file that is not there you will get an error. A try/catch construct allows us to try things that are risky, and gracefully recover from an error if one occurs. shows the general structure of a try/catch block.

    From 297ccda5d3c75758d8955035d4c32b0f530fa4c6 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 18:06:10 +0300 Subject: [PATCH 282/448] removed . from code mention --- source/ch3_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 36c8a98..6d1d6b1 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -563,7 +563,7 @@ Lets review what is happening in this little program. First, we create a list an

    -To write the Java version of this program we will have to introduce several new Java concepts. First, you will see the Java equivalent of a list, called an ArrayList. Next, you will see three different kinds of loops used in Java. Two of the loops we will use are going to be very familiar, the third one is different from what you are used to in Python but is easy when you understand the syntax: +To write the Java version of this program we will have to introduce several new Java concepts. First, you will see the Java equivalent of a list, an ArrayList. Next, you will see three different kinds of loops used in Java. Two of the loops we will use are going to be very familiar, the third one is different from what you are used to in Python but is easy when you understand the syntax:

    From bf922d3e1899f606286b784ad8f35344535b2a9b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 18:27:50 +0300 Subject: [PATCH 283/448] added data block for datafile --- source/ch3_javadatatypes.ptx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 6d1d6b1..926c82f 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -528,7 +528,7 @@ void main() {

    - + def main(): count = [0]*10 @@ -545,9 +545,11 @@ main()

    - Test running the program. It will read this data: + Test running the program. It will read .

    - + + + Data file for testing the histogram program
        1
    @@ -557,6 +559,7 @@ main()
        1
             
    +

    Lets review what is happening in this little program. First, we create a list and initialize the first 10 positions in the list to be 0. Next we open the data file called ‘test.dat’. Third, we have a loop that reads each line of the file. As we read each line we convert it to an integer and increment the counter at the position in the list indicated by the number on the line we just read. Finally we iterate over each element in the list, printing out both the position in the list and the total value stored in that position. From 64a6356ebfbe5f93062496bf1790e23138f8e00f Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 20:27:44 +0300 Subject: [PATCH 284/448] comments in codeblocks in 3.4 --- source/ch3_javadatatypes.ptx | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 1cdf4b6..f4eb0eb 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -531,12 +531,14 @@ void main() { def main(): - count = [0]*10 - data = open('test.dat') + """ Program to read numbers from a file and produce a histogram. """ + count = [0]*10 # create a list of 10 zeros + data = open('test.dat') # open the data file + # read each line and update the count for line in data: count[int(line)] = count[int(line)] + 1 idx = 0 - for num in count: + for num in count: # iterate over the list and print the histogram print(idx, " occurred ", num, " times.") idx += 1 main() @@ -627,33 +629,40 @@ Here is the Java code needed to write the exact same program: -import java.util.Scanner; -import java.util.ArrayList; -import java.io.File; -import java.io.IOException; +import java.util.Scanner; // import the Scanner class to read input from the user +import java.util.ArrayList; // import the ArrayList class to use dynamic arrays +import java.io.File; // import the File class to read from files +import java.io.IOException; // import the IOException class to handle file input/output exceptions +/** + * Program to read numbers from a file and produce a histogram in Java. + */ public class Histo { public static void main(String[] args) { - Scanner data = null; - ArrayList<Integer> count; + Scanner data = null; + ArrayList<Integer> count; // create an ArrayList to hold counts of numbers, of type Integer Integer idx; + + // Try to open the data file and handle any potential IOExceptions try { data = new Scanner(new File("test.dat")); } catch ( IOException e) { System.out.println("Unable to open data file"); - e.printStackTrace(); + e.printStackTrace(); // print the stack trace for debugging System.exit(0); } - count = new ArrayList<Integer>(10); + count = new ArrayList<Integer>(10); // create an ArrayList with an initial capacity of 10 for (Integer i = 0; i < 10; i++) { - count.add(i,0); + count.add(i,0); // initialize the first 10 positions in the ArrayList to hold the value 0 } while(data.hasNextInt()) { - idx = data.nextInt(); + // read each integer from the file and update the count + idx = data.nextInt(); count.set(idx,count.get(idx)+1); } idx = 0; for(Integer i : count) { + // iterate over each element in the ArrayList and print the histogram System.out.println(idx + " occurred " + i + " times."); idx++; } From 99b99c09769ab0b4388735d70fcd836d813c8e9d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 20:46:54 +0300 Subject: [PATCH 285/448] add listing --- source/ch3_javadatatypes.ptx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 199b13b..e87cf82 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -780,8 +780,8 @@ public class Histo { As was said at the outset of this section, we are going to use Java ArrayLists because they are easier to use and more closely match the way that Python lists behave. However, if you look at Java code on the internet or even in your core Java books you are going to see examples of something called an array. In fact, you have already seen one example of an array declared in the ‘Hello World’ program. Let's rewrite this program to use primitive arrays rather than array lists.

    - - + + import java.util.Scanner; import java.io.File; @@ -812,6 +812,7 @@ public class HistoArray { } +

    The main difference between this example and the previous example is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown here: Integer[] count = {0,0,0,0,0,0,0,0,0,0}Then notice that we can use the square bracket notation count[idx] to index into an array. From 7e5e090f63827566ce826f1e6015d5f88d5aa5a4 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 20:53:13 +0300 Subject: [PATCH 286/448] added listing in text --- source/ch3_javadatatypes.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index e87cf82..932aef3 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -777,7 +777,7 @@ public class Histo { Arrays

    - As was said at the outset of this section, we are going to use Java ArrayLists because they are easier to use and more closely match the way that Python lists behave. However, if you look at Java code on the internet or even in your core Java books you are going to see examples of something called an array. In fact, you have already seen one example of an array declared in the ‘Hello World’ program. Let's rewrite this program to use primitive arrays rather than array lists. + As was said at the outset of this section, we are going to use Java ArrayLists because they are easier to use and more closely match the way that Python lists behave. However, if you look at Java code on the internet or even in your core Java books you are going to see examples of something called an array. In fact, you have already seen one example of an array declared in the ‘Hello World’ program. is a rewritten version of that uses primitive arrays rather than array lists.

    @@ -815,7 +815,7 @@ public class HistoArray {

    - The main difference between this example and the previous example is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown here: Integer[] count = {0,0,0,0,0,0,0,0,0,0}Then notice that we can use the square bracket notation count[idx] to index into an array. + The main difference between and is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown here: Integer[] count = {0,0,0,0,0,0,0,0,0,0}Then notice that we can use the square bracket notation count[idx] to index into an array.

    From 543f57cb8593c8b0f62898dfc9a2ffb2622814cd Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 21:29:29 +0300 Subject: [PATCH 287/448] add comments to the code block --- source/ch3_javadatatypes.ptx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 199b13b..9764bd7 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -783,13 +783,16 @@ public class Histo { -import java.util.Scanner; -import java.io.File; -import java.io.IOException; +import java.util.Scanner; // import the Scanner class to read input from the user +import java.io.File; // import the File class to read from files +import java.io.IOException; // import the IOException class to handle file input/output exceptions +/** + * Program to read numbers from a file and produce a histogram using arrays in Java. + */ public class HistoArray { public static void main(String[] args) { Scanner data = null; - Integer[] count = {0,0,0,0,0,0,0,0,0,0}; + Integer[] count = {0,0,0,0,0,0,0,0,0,0}; // create an array of 10 integers initialized to 0 Integer idx; try { data = new Scanner(new File("test.dat")); @@ -801,7 +804,7 @@ public class HistoArray { } while(data.hasNextInt()) { idx = data.nextInt(); - count[idx] = count[idx] + 1; + count[idx] = count[idx] + 1; // increment the count for the number read from the file, using array indexing } idx = 0; for(Integer i : count) { From c4fd0a750586fc59f2f7e0ea17237b9fdf8246e8 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 22:01:20 +0300 Subject: [PATCH 288/448] added listing blocks --- source/ch3_javadatatypes.ptx | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 199b13b..9944bde 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -829,8 +829,8 @@ public class HistoArray { Lets stay with a simple frequency counting example, only this time we will count the frequency of words in a document. A simple Python program for this job could look like this:

    - - + + def main(): data = open('alice30.txt') @@ -845,11 +845,14 @@ def main(): main() +

    This program reads the file alice30.txt (which follows), and it then splits it into a list of words. Next it creates a dictionary called count which maps each word to the number of times that word occurs in the text. Finally, it prints out the words in alphabetical order along with their frequency.

    + + Data file for testing the word frequency program
     
                 Down, down, down. Would the fall NEVER
    @@ -872,12 +875,13 @@ main()
                 nice grand words to say.)
                 
    +

    Notice that the structure of the program is very similar to the numeric histogram program.

    - - + + import java.util.Scanner; import java.util.ArrayList; @@ -915,6 +919,7 @@ public class HistoMap { } +

    Improve the program above to remove the punctuation. From 1ff02cbe589cfcf9c1139c47f453ea98fd87e106 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 22:48:33 +0300 Subject: [PATCH 289/448] added listing to text --- source/ch3_javadatatypes.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 9944bde..d7187f6 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -826,7 +826,7 @@ public class HistoArray {

    - Lets stay with a simple frequency counting example, only this time we will count the frequency of words in a document. A simple Python program for this job could look like this: + Lets stay with a simple frequency counting example, only this time we will count the frequency of words in a document. shows a simple Python program for what this could look.

    @@ -848,7 +848,7 @@ main()

    - This program reads the file alice30.txt (which follows), and it then splits it into a list of words. Next it creates a dictionary called count which maps each word to the number of times that word occurs in the text. Finally, it prints out the words in alphabetical order along with their frequency. + This program reads the file alice30.txt in , and it then splits it into a list of words. Next it creates a dictionary called count which maps each word to the number of times that word occurs in the text. Finally, it prints out the words in alphabetical order along with their frequency.

    @@ -877,7 +877,7 @@ main()

    - Notice that the structure of the program is very similar to the numeric histogram program. + Notice that the structure of is very similar to the numeric histogram program.

    @@ -922,7 +922,7 @@ public class HistoMap {

    - Improve the program above to remove the punctuation. + Improve to remove the punctuation.

    From 27496f7ae8bf5349e96c3e5016a2ff35daa1ac2a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 27 Jul 2026 23:54:55 +0300 Subject: [PATCH 290/448] added comments to 3.6 code blocks --- source/ch3_javadatatypes.ptx | 38 ++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 932aef3..bddf8f5 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -833,15 +833,16 @@ public class HistoArray { -def main(): +def main(): + """ Program to read a file and count the frequency of words in the file. """ data = open('alice30.txt') - wordList = data.read().split() + wordList = data.read().split() # split the file into a list of words count = {} - for w in wordList: + for w in wordList: # iterate over the list of words w = w.lower() count[w] = count.get(w,0) + 1 - keyList = sorted(count.keys()) - for k in keyList: + keyList = sorted(count.keys()) # sort the keys in alphabetical order + for k in keyList: # iterate over the sorted list of keys print("%-20s occurred %4d times" % (k, count[k])) main() @@ -880,19 +881,22 @@ main() -import java.util.Scanner; -import java.util.ArrayList; -import java.io.File; -import java.io.IOException; -import java.util.TreeMap; +import java.util.Scanner; +import java.util.ArrayList; // import the ArrayList class to use dynamic arrays +import java.io.File; +import java.io.IOException; +import java.util.TreeMap; // import the TreeMap class to use a map for counting word frequencies +/** + * Program to read a file and count the frequency of words in the file. + */ public class HistoMap { public static void main(String[] args) { Scanner data = null; - TreeMap<String,Integer> count; + TreeMap<String,Integer> count; // create a TreeMap to hold word counts, mapping each word (String) to its frequency (Integer) Integer idx; String word; Integer wordCount; - try { + try { // Try to open the data file and handle any potential IOExceptions data = new Scanner(new File("alice30.txt")); } catch ( IOException e) { @@ -900,16 +904,16 @@ public class HistoMap { e.printStackTrace(); System.exit(0); } - count = new TreeMap<String,Integer>(); + count = new TreeMap<String,Integer>(); // create a TreeMap to hold word counts while(data.hasNext()) { - word = data.next().toLowerCase(); - wordCount = count.get(word); + word = data.next().toLowerCase(); // read each word from the file, convert it to lowercase + wordCount = count.get(word); // get the current count for the word from the TreeMap if (wordCount == null) { wordCount = 0; } - count.put(word,++wordCount); + count.put(word,++wordCount); // increment the count for the word and put it back into the TreeMap } - for(String i : count.keySet()) { + for(String i : count.keySet()) { // iterate over the keys (words) in the TreeMap System.out.printf("%-20s occurred %5d times\n", i, count.get(i) ); } } From cc41a704b662d7e2d4bc02768ad36aa6618e6a71 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 16:47:54 +0300 Subject: [PATCH 291/448] fixed c tag format --- source/ch3_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 932aef3..7f37af6 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -688,7 +688,7 @@ public class Histo {

    - Technically, you don’t have to declare what is going to be in an array list. The compiler will allow you to leave the <``*Type*>`` off the declaration. If you don’t tell Java what kind of object is going to be on the list Java will give you a warning message like when you compile the program. + Technically, you don’t have to declare what is going to be in an array list. The compiler will allow you to leave the <*Type*> off the declaration. If you don’t tell Java what kind of object is going to be on the list Java will give you a warning message like when you compile the program.

    From 6e452dcb42e129b9d82c3b3fbbcdd5266babb6f9 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 20:41:04 +0300 Subject: [PATCH 292/448] add listing --- source/ch4_conditionals.ptx | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0b32d00..aedec88 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -16,17 +16,21 @@ In Python the simple if statement is written as:

    - + + score = 95 if score >= 90: print("Excellent work!") + +

    In Java, this same pattern requires two changes: the condition must be in parentheses (), and the code block must be enclosed in curly braces {}.

    - + + public class SimpleIfExample { public static void main(String[] args) { @@ -38,6 +42,8 @@ if score >= 90: } + +

    Once again you can see that in Java the curly braces define a block rather than indentation. In Java, the parentheses around the condition are required because it is technically a function that evaluates to True or False. From 3134fb387f92389e91d8e58234964f95b1dc2104 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 20:46:41 +0300 Subject: [PATCH 293/448] add the listing on text --- source/ch4_conditionals.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index aedec88..bbb175c 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -13,7 +13,7 @@

    - In Python the simple if statement is written as: + shows how the simple if statement is written in Python.

    @@ -25,9 +25,9 @@ if score >= 90: - +

    - In Java, this same pattern requires two changes: the condition must be in parentheses (), and the code block must be enclosed in curly braces {}. + shows how the simple if statement is written in Java.

    From d4bf0cdd8a38b8ca5695cee6dce842b62eef8a6f Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 21:15:42 +0300 Subject: [PATCH 294/448] addd comments to blocks --- source/ch4_conditionals.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0b32d00..9cc307e 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -19,7 +19,7 @@ score = 95 -if score >= 90: +if score >= 90: # Note the colon at the end of the line print("Excellent work!") @@ -31,7 +31,7 @@ if score >= 90: public class SimpleIfExample { public static void main(String[] args) { int score = 70; - if (score <= 70) { + if (score <= 70) { // Note the parentheses and curly braces System.out.println("Needs work!"); } } From 8f4791ef78285ccde3cf0814bb0c8c2dc89e08e1 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 21:17:04 +0300 Subject: [PATCH 295/448] made the two conditions the same --- source/ch4_conditionals.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 9cc307e..052be65 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -30,9 +30,9 @@ if score >= 90: # Note the colon at the end of the line public class SimpleIfExample { public static void main(String[] args) { - int score = 70; - if (score <= 70) { // Note the parentheses and curly braces - System.out.println("Needs work!"); + int score = 95; + if (score >= 90) { // Note the parentheses and curly braces + System.out.println("Excellent work!"); } } } From a572688c0fbda902d9d13869b083d7bd0693ce34 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 21:44:14 +0300 Subject: [PATCH 296/448] made the java block interactive --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0b32d00..eac50fc 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -58,7 +58,7 @@ if score >= 90: - + public class IfElseExample { public static void main(String[] args) { From 28bb0c2a4fb79b6c89edcf86f085fabfdc9ed5b0 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 21:49:36 +0300 Subject: [PATCH 297/448] added listing to blocks --- source/ch4_conditionals.ptx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index eac50fc..a97b00b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -48,7 +48,8 @@ if score >= 90: Using the <c>if</c> - <c>else</c> Statement

    The Java equivalent follows the same syntactical rules as before.

    - + + age = 16 if age >= 18: @@ -57,8 +58,10 @@ if score >= 90: print("You are not yet eligible to vote.") + - + + public class IfElseExample { public static void main(String[] args) { @@ -72,6 +75,7 @@ if score >= 90: } +
    From a623e6cad194f03f2407870e4cb50cfaee8f9c1f Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 22:16:49 +0300 Subject: [PATCH 298/448] added listing to the text --- source/ch4_conditionals.ptx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index a97b00b..925a19a 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -47,7 +47,7 @@ if score >= 90:
    Using the <c>if</c> - <c>else</c> Statement -

    The Java equivalent follows the same syntactical rules as before.

    + shows how Python the if - elsestatement is written in Python. @@ -59,7 +59,8 @@ if score >= 90: - + +

    is Java equivalent that follows the same syntactical rules as before.

    From fe0ef24dd30f60b140d80f5317d30bacc4959071 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 22:19:38 +0300 Subject: [PATCH 299/448] fixed display --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 925a19a..9aa166a 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -47,7 +47,7 @@ if score >= 90:
    Using the <c>if</c> - <c>else</c> Statement - shows how Python the if - elsestatement is written in Python. +

    shows how the if - elsestatement is written in Python.

    From 40f1886393ca0ea2cb4a8db452a15b589e633fb0 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 22:52:25 +0300 Subject: [PATCH 300/448] added comments to 4.2 blocks --- source/ch4_conditionals.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0b32d00..9ff1edc 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -51,9 +51,9 @@ if score >= 90: age = 16 - if age >= 18: + if age >= 18: print("You can vote.") - else: + else: # notice the semicolon print("You are not yet eligible to vote.") @@ -65,7 +65,7 @@ if score >= 90: int age = 16; if (age >= 18) { System.out.println("You can vote."); - } else { + } else { // else has its own block. System.out.println("You are not yet eligible to vote."); } } From 2b3c9ef0f04b34b9f32e3890f07c91d1607716b3 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 28 Jul 2026 23:35:29 +0300 Subject: [PATCH 301/448] fixed a deleted paragraph --- source/ch4_conditionals.ptx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index bbb175c..91dd65a 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -26,7 +26,9 @@ if score >= 90: +

    + In Java, this same pattern requires two changes: the condition must be in parentheses (), and the code block must be enclosed in curly braces {}. shows how the simple if statement is written in Java.

    From 0c2f70c2de9aec5bb4cef38eb3177a309742b9be Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 16:25:28 +0300 Subject: [PATCH 302/448] added listing tags --- source/ch4_conditionals.ptx | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0b32d00..83a90fe 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -83,8 +83,8 @@ if score >= 90: Here is a simple example in both Python and Java.

    - - + + grade = int(input('enter a grade')) if grade < 60: @@ -99,13 +99,14 @@ else: print('A') +

    In Java, we have a couple of ways to write this.

    - - + + public class ElseIf { public static void main(String args[]) { @@ -131,14 +132,15 @@ public class ElseIf { } +

    We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else block, we can get away with the following.

    - - + + public class ElseIf { public static void main(String args[]) { @@ -156,6 +158,7 @@ public class ElseIf { } +
    From 4630f29190f92112a3829b25485c13c9434885a9 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 16:37:36 +0300 Subject: [PATCH 303/448] added listing to text --- source/ch4_conditionals.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 83a90fe..ef86858 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -80,14 +80,14 @@ if score >= 90:

    elif statement Java does not have an elif pattern like Python. In Java you can get the functionality of an elif statement by nesting if and else. - Here is a simple example in both Python and Java. + Here is a simple example in both Python and Java. shows how it is written in Python.

    grade = int(input('enter a grade')) -if grade < 60: +if grade < 60: print('F') elif grade < 70: print('D') @@ -102,7 +102,7 @@ else:

    -In Java, we have a couple of ways to write this. +In Java, we have a couple of ways to write this. shows one way.

    @@ -135,7 +135,7 @@ public class ElseIf {

    -We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else block, we can get away with the following. +We can get even closer to the elif statement by taking advantage of the Java rule that a single statement does not need to be enclosed in curly braces. Since the if is the only statement used in each else block, we can get away with .

    From 28a5002bd87527f0514fb9df241b955118fac322 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 17:15:34 +0300 Subject: [PATCH 304/448] fix sentence fragment --- source/ch3_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index d7187f6..621b514 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -826,7 +826,7 @@ public class HistoArray {

    - Lets stay with a simple frequency counting example, only this time we will count the frequency of words in a document. shows a simple Python program for what this could look. + Lets stay with a simple frequency counting example, only this time we will count the frequency of words in a document. shows a simple Python program for how this could look.

    From 937725ea25fb0f20a493ed9015bf882a866cbf0d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 20:04:11 +0300 Subject: [PATCH 305/448] added listings --- source/ch4_conditionals.ptx | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 3023211..ce6218b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -155,9 +155,9 @@ We can get even closer to the elif statement by taking advantage of the J -public class ElseIf { +public class ElseIf { public static void main(String args[]) { - int grade = 85; + int grade = 85; if (grade < 60) { System.out.println('F'); } else if (grade < 70) { @@ -185,7 +185,8 @@ Java also supports a switch statement that acts something like the eli

    The match - case statement was introduced in Python 3.10, so doesn't run in earlier version of Python. Here is an example using Python's match - case structure.

    - + + Match Case Example grade = 85 @@ -206,6 +207,7 @@ Java also supports a switch statement that acts something like the eli print(grading(tempgrade)) +

    switch The switch statement in Java provides an alternative to chaining multiple if-else conditions, when comparing a single variable against several constant values. It supports a variety of data types, including primitive types (byte, short, char, int), their wrapper classes, enumerations, and String (introduced in Java 7). Each case within a switch must be defined using a constant expression, and duplicate case values are not permitted. By default, control flow "falls through" from one case to the next unless a break, return, or throw statement is used to terminate execution. @@ -216,8 +218,9 @@ Java also supports a switch statement that acts something like the eli yield Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. yield is used inside a switch expression’s block to produce the value of that expression, unlike break which simply exits a switch statement or loop. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs.

    - - + + + public class SwitchUp { public static void main(String args[]) { @@ -245,6 +248,7 @@ Java also supports a switch statement that acts something like the eli } +

    The switch statement is not used very often, and we recommend you do not use it. First, it is not as powerful as the else if model because the switch variable can only be compared for equality with an integer or enumerated constant. Second, it is very easy to forget to put in the break statement, so it is more error-prone. If the break statement is left out then then the next alternative will be automatically executed. For example, if the grade was 95 and the break was omitted from the case 9: alternative then the program would print(out both A and B.) From 94f305a28ca7c9cf5d05b6018a4015097ab9c4b7 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 20:09:51 +0300 Subject: [PATCH 306/448] Added listing to text --- source/ch4_conditionals.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index ce6218b..47965b8 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -178,7 +178,7 @@ public class ElseIf { Using the <c>switch</c> Statement

    -Java also supports a switch statement that acts something like the elif or Python match statement under certain conditions. To write the grade program using a switch statement we would use the following: +Java also supports a switch statement that acts something like the elif or Python match statement under certain conditions. shows how the the grade program using a switch statement could be in Python.

    @@ -216,7 +216,7 @@ Java also supports a switch statement that acts something like the eli

    switch expressions yield - Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. yield is used inside a switch expression’s block to produce the value of that expression, unlike break which simply exits a switch statement or loop. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs. + Java 14 introduced switch expressions, enhancing functionality by allowing the switch to return values and eliminating fall-through via the -> arrow syntax. These expressions can even use yield within code blocks for more complex evaluations. yield is used inside a switch expression’s block to produce the value of that expression, unlike break which simply exits a switch statement or loop. It’s important to note that traditional switch statements do not support null values and will throw a NullPointerException if evaluated with null. As the language evolves, newer versions of Java continue to extend switch capabilities with features like pattern matching and enhanced type handling, making it a more powerful and expressive tool for decision-making in Java programs. shows how the switch expression is written in Java.

    From 7b653dc31a5ce0aa42cbf3d23c7567f4dee6c5a2 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 20:18:57 +0300 Subject: [PATCH 307/448] added active code --- source/ch4_conditionals.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 47965b8..14225dc 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -178,7 +178,7 @@ public class ElseIf { Using the <c>switch</c> Statement

    -Java also supports a switch statement that acts something like the elif or Python match statement under certain conditions. shows how the the grade program using a switch statement could be in Python. +Java also supports a switch statement that acts something like the elif or Python match statement under certain conditions. shows how a grade program using a switch statement would look in Python.

    @@ -186,7 +186,7 @@ Java also supports a switch statement that acts something like the eli The match - case statement was introduced in Python 3.10, so doesn't run in earlier version of Python. Here is an example using Python's match - case structure.

    - + Match Case Example grade = 85 From 28681c17539fd82555fba65fa1e1eea3ed3c69ec Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 20:58:47 +0300 Subject: [PATCH 308/448] add comments to code 4.3 --- source/ch4_conditionals.ptx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 3023211..023fb5e 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -60,7 +60,7 @@ if score >= 90: # Note the colon at the end of the line age = 16 - if age >= 18: + if age >= 18: # notice the semicolon print("You can vote.") else: # notice the semicolon print("You are not yet eligible to vote.") @@ -75,7 +75,7 @@ if score >= 90: # Note the colon at the end of the line public class IfElseExample { public static void main(String[] args) { int age = 16; - if (age >= 18) { + if (age >= 18) { System.out.println("You can vote."); } else { // else has its own block. System.out.println("You are not yet eligible to vote."); @@ -102,7 +102,7 @@ if score >= 90: # Note the colon at the end of the line grade = int(input('enter a grade')) if grade < 60: print('F') -elif grade < 70: +elif grade < 70: # notice the semicolon print('D') elif grade < 80: print('C') @@ -126,7 +126,7 @@ public class ElseIf { int grade = 85; if (grade < 60) { System.out.println('F'); - } else { + } else { // else has its own block. if (grade < 70) { System.out.println('D'); } else { @@ -160,7 +160,7 @@ public class ElseIf { int grade = 85; if (grade < 60) { System.out.println('F'); - } else if (grade < 70) { + } else if (grade < 70) { // notice how we got rid of the curly braces. System.out.println('D'); } else if (grade < 80) { System.out.println('C'); From 4c2a1b4eb0e7a2d7dc7d2bf1fb96e50674000595 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 21:41:51 +0300 Subject: [PATCH 309/448] added listing tag to blocks --- source/ch4_conditionals.ptx | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 14225dc..194d34b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -264,19 +264,21 @@ The switch statement is not used very often, and we recommend you do not In Python, if you want a program to continue running when an error has occurred, you can use try-except blocks to handle exceptions. If you wanted to write a program that asks the user to enter a whole number and then squares that number, you could use the following code to do so:

    - + + number = int(input("Please enter a whole number: ")) squared = number ** 2 print("Your number squared is " + str(squared)) +

    The Java code that would perform the same task is a little more complex and utilizes the Scanner class for input.

    - - + + import java.util.Scanner; @@ -293,12 +295,13 @@ The switch statement is not used very often, and we recommend you do not } +

    This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try-except (Python) or try-catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try-except blocks and a while loop to the Python code will look something like this:

    - - + + while True: try: @@ -310,12 +313,13 @@ The switch statement is not used very often, and we recommend you do not print("That was not a valid number. Please try again: ") +

    Now that we have Python code that will continuously prompt the user until they enter a whole number, let's look at Java code that accomplishes the same task. Like most other equivalent Java code blocks, this code has a lot of extra bits that are necessary to get working code.

    - - + + import java.util.Scanner; import java.util.InputMismatchException; @@ -340,6 +344,7 @@ The switch statement is not used very often, and we recommend you do not } +

    Firstly, let's talk about the extra import alongside the Scanner import. In Java, we need to import InputMismatchException because it's not automatically available like basic exceptions. This is different from Python where most exceptions are readily accessible. If you ran the previous Java codeblock without try-catch blocks and entered an erroneous input, you would have got an InputMismatchException exception despite not having imported this class. That being said, removing the explicit import of this library for the try-catch code block above will lead to compilation errors. From 2b1f682415178957d93d1936cc996dfe14472a3a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 22:07:44 +0300 Subject: [PATCH 310/448] added the listing to text --- source/ch4_conditionals.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 194d34b..0212eac 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -261,7 +261,7 @@ The switch statement is not used very often, and we recommend you do not Exception Handling

    - In Python, if you want a program to continue running when an error has occurred, you can use try-except blocks to handle exceptions. If you wanted to write a program that asks the user to enter a whole number and then squares that number, you could use the following code to do so: + In Python, if you want a program to continue running when an error has occurred, you can use try-except blocks to handle exceptions. If you wanted to write a program that asks the user to enter a whole number and then squares that number, you could use the following code to do so. shows the Python code to achieve this.

    @@ -275,7 +275,7 @@ The switch statement is not used very often, and we recommend you do not

    - The Java code that would perform the same task is a little more complex and utilizes the Scanner class for input. + shows the Java code that would perform the same task. It is a little more complex and utilizes the Scanner class for input.

    @@ -298,7 +298,7 @@ The switch statement is not used very often, and we recommend you do not

    - This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try-except (Python) or try-catch (Java) blocks within a while loop that iterates until the user enter the correct code. Adding try-except blocks and a while loop to the Python code will look something like this: + This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try-except (Python) or try-catch (Java) blocks within a while loop that iterates until the user enter the correct code. shows how adding try-except blocks and a while loop to the Python code will look.

    @@ -316,7 +316,7 @@ The switch statement is not used very often, and we recommend you do not

    - Now that we have Python code that will continuously prompt the user until they enter a whole number, let's look at Java code that accomplishes the same task. Like most other equivalent Java code blocks, this code has a lot of extra bits that are necessary to get working code. + Now that we have Python code that will continuously prompt the user until they enter a whole number, shows the Java code that accomplishes the same task. Like most other equivalent Java code blocks, this code has a lot of extra bits that are necessary to get working code.

    From ebaaf169e3b32b0d782e207a5c3ac4e742765ad6 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 22:31:48 +0300 Subject: [PATCH 311/448] changed wording --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0212eac..b44474a 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -298,7 +298,7 @@ The switch statement is not used very often, and we recommend you do not

    - This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try-except (Python) or try-catch (Java) blocks within a while loop that iterates until the user enter the correct code. shows how adding try-except blocks and a while loop to the Python code will look. + This code works well, but will end with an exception if the user types anything other than a whole number (such as 12.5 or two). If we wanted to ensure the code will continue to run until the user enters the correct format, we could add try-except (Python) or try-catch (Java) blocks within a while loop that iterates until the user enter the correct code. While try-except blocks aren't strictly required in Python, shows how using them alongside a while loop makes the code more robust.

    From 5bb3ac8a93e21302c146a6c3f0eca7c93d0219a9 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 22:39:06 +0300 Subject: [PATCH 312/448] add table linkin text --- source/ch4_conditionals.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 293af19..992ed7a 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -348,10 +348,10 @@ The switch statement is not used very often, and we recommend you do not

    checked exception unchecked exception - Exceptions in Java fall under two categories: checked and unchecked. Checked exceptions must be explicitly imported and declared along with try-catch blocks for a program to compile. Unchecked exceptions do not need to be imported unless try-catch blocks are implemented for them (except for java.lang exceptions). InputMismatchException is an unchecked exception that is not part of the java.lang library, so it is only included if try-catch blocks declare it. Here are some common exceptions used with try-catch blocks: + Exceptions in Java fall under two categories: checked and unchecked. Checked exceptions must be explicitly imported and declared along with try-catch blocks for a program to compile. Unchecked exceptions do not need to be imported unless try-catch blocks are implemented for them (except for java.lang exceptions). InputMismatchException is an unchecked exception that is not part of the java.lang library, so it is only included if try-catch blocks declare it. shows the exceptions used with try-catch blocks.

    -
    +
    Exceptions From 7b1fff9760bb99c1d1d88f563df09b50d52a33e8 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 22:52:06 +0300 Subject: [PATCH 313/448] added a more descriptive title --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 992ed7a..78b2d64 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -352,7 +352,7 @@ The switch statement is not used very often, and we recommend you do not

    - Exceptions + Java Exceptions Used with <c>try-catch</c> Blocks Exception From 04c9849e1b1167d2ec071562927feb0e9e32217d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 23:30:49 +0300 Subject: [PATCH 314/448] add comments to 4.5 code blocks --- source/ch4_conditionals.ptx | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 293af19..7d9b651 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -266,9 +266,9 @@ The switch statement is not used very often, and we recommend you do not - number = int(input("Please enter a whole number: ")) - squared = number ** 2 - print("Your number squared is " + str(squared)) + number = int(input("Please enter a whole number: ")) # ask user for a number + squared = number ** 2 # square the number + print("Your number squared is " + str(squared)) @@ -282,11 +282,11 @@ The switch statement is not used very often, and we recommend you do not public class SquareNumber { public static void main(String[] args) { - Scanner user_input = new Scanner(System.in); + Scanner user_input = new Scanner(System.in); // create a scanner object - System.out.print("Please enter a whole number: "); - int number = user_input.nextInt(); - int squared = number * number; + System.out.print("Please enter a whole number: "); + int number = user_input.nextInt(); // ask user for a number + int squared = number * number; // square the number System.out.println("Your number squared is " + squared); } @@ -301,12 +301,12 @@ The switch statement is not used very often, and we recommend you do not while True: - try: + try: # try to convert the user input to an integer number = int(input("Please enter a whole number: ")) squared = number ** 2 print("Your number squared is " + str(squared)) break - except ValueError: + except ValueError: # if the user enters a non-integer, print an error message print("That was not a valid number. Please try again: ") @@ -324,14 +324,14 @@ The switch statement is not used very often, and we recommend you do not public static void main(String[] args) { Scanner scanner = new Scanner(System.in); - while (true) { - try { + while (true) { // keep asking the user for a number until they enter a valid integer + try { // try to convert the user input to an integer System.out.print("Please enter a whole number: "); int number = scanner.nextInt(); int squared = number * number; System.out.println("Your number squared is " + squared); break; - } catch (InputMismatchException e) { + } catch (InputMismatchException e) { // if the user enters a non-integer, print an error message System.out.println("That was not a valid number. Please try again: "); scanner.nextLine(); // Clear the invalid input from the scanner } From 6909dcf8cf38a4269ed71e7bd8f51f8eda341059 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 23:39:09 +0300 Subject: [PATCH 315/448] addlisting to code block --- source/ch4_conditionals.ptx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 293af19..1fa0385 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -460,7 +460,8 @@ Java also provides the ternary operator condition ? valueIfTrue : valueIfFals

    Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. See the following as an example where we see the same logic implemented in two different ways.

    - + + public class Ternary { public static void main(String[] args) { @@ -484,6 +485,7 @@ public class Ternary { } +

    In this example we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, you might want to use it sparingly, as it can make code less readable if overused or used with complex expressions. From b469353ca63d357b12a73c9ce8049649e770ad90 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 23:39:42 +0300 Subject: [PATCH 316/448] add listing to text --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 1fa0385..6eb57c7 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -458,7 +458,7 @@ Java also provides the ternary operator condition ? valueIfTrue : valueIfFals

    -Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. See the following as an example where we see the same logic implemented in two different ways. +Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. shows an example where we see the same logic implemented in two different ways.

    From 09e5d99661297da9a1f77b34466bfe4e1e87d4e5 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 29 Jul 2026 23:41:16 +0300 Subject: [PATCH 317/448] add listing to text 2.0 --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 6eb57c7..34676b5 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -488,7 +488,7 @@ public class Ternary {

    - In this example we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, you might want to use it sparingly, as it can make code less readable if overused or used with complex expressions. + In , we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, you might want to use it sparingly, as it can make code less readable if overused or used with complex expressions.

    From 450392209d8a4c6cdba3f7f1490983fa1ffa4b94 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 00:18:49 +0300 Subject: [PATCH 318/448] added xml:id to table --- source/ch4_conditionals.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 293af19..db756c6 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -416,10 +416,10 @@ The conditionals used in the if statement can be Boolean variables,

    ternary operator -Java also provides the ternary operator condition ? valueIfTrue : valueIfFalse, which lets you use a boolean test directly inside an assignment. If the condition is true, the first value is chosen; otherwise, the second value is used. The table below summarizes how it works: +Java also provides the ternary operator condition ? valueIfTrue : valueIfFalse, which lets you use a boolean test directly inside an assignment. If the condition is true, the first value is chosen; otherwise, the second value is used. summarizes how it works.

    - +
    Ternary Operator in Java From 964581e04e6be9122ca229aef386af66222f43e6 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 17:05:11 +0300 Subject: [PATCH 319/448] added a match interactive question --- source/ch3_javadatatypes.ptx | 55 +++++++++++++++++------------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 151e699..e73daaa 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -729,36 +729,33 @@ public class Histo {

    - The syntax of this for loop probably looks very strange to you, but in fact it is not too different from what happens in Python using range. In fact for (Integer i = 0; i < 10; i++) is exactly equivalent to the Python for i in range(10) The first statement inside the parenthesis declares and initializes a loop variable i. The second statement is a Boolean expression that is our exit condition. In other words we will keep looping as long as this expression evaluates to true. The third clause is used to increment the value of the loop variable at the end of iteration through the loop. In fact i++ is Java shorthand for i = i + 1 Java also supports the shorthand i-- to decrement the value of i. Like Python, you can also write i += 2 as shorthand for i = i + 2 Try to rewrite the following Python for loops as Java for loops: -

    - -

    -

      -
    • -

      - for i in range(2,101,2) -

      -
    • - -
    • -

      - for i in range(1,100) -

      -
    • + The syntax of this for loop probably looks very strange to you, but in fact it is not too different from what happens in Python using range. In fact for (Integer i = 0; i < 10; i++) is exactly equivalent to the Python for i in range(10) The first statement inside the parenthesis declares and initializes a loop variable i. The second statement is a Boolean expression that is our exit condition. In other words we will keep looping as long as this expression evaluates to true. The third clause is used to increment the value of the loop variable at the end of iteration through the loop. In fact i++ is Java shorthand for i = i + 1 Java also supports the shorthand i-- to decrement the value of i. Like Python, you can also write i += 2 as shorthand for i = i + 2.

      -
    • -

      - for i in range(100,0,-1) -

      -
    • - -
    • -

      - for x,y in zip(range(10),range(0,20,2)) [hint, you can separate statements in the same clause with a ,] -

      -
    • -
    -

    + + +

    + Match each Python for loop with its equivalent Java for loop. +

    +
    + + + for i in range(2, 101, 2) + for (int i = 2; i < 101; i += 2) + + + for i in range(1, 100) + for (int i = 1; i < 100; i++) + + + for i in range(100, 0, -1) + for (int i = 100; i > 0; i--) + + + for x, y in zip(range(10), range(0, 20, 2)) + for (int x = 0, y = 0; x < 10; x++, y += 2) + + +

    The next loop (lines 27–30) shows a typical Java pattern for reading data from a file. Java while loops and Python while loops are identical in their logic. In this case, we will continue to process the body of the loop as long as data.hasNextInt() returns true. From 15a02a09606a88a6097636581ef1073325bc8005 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 18:13:05 +0300 Subject: [PATCH 320/448] add listing tags --- source/ch5_loopsanditeration.ptx | 40 ++++++++++++++++++++------------ 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index ff221d2..5e1d7c1 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -14,19 +14,21 @@ A definite loop is a loop that is executed a specific or definite number of times. In Python, the easiest way to write a definite loop is using the for loop in conjunction with the range function. For example:

    - - + + for i in range(10): print(i) +

    In Java, we would write this as:

    - + + public class DefiniteLoopExample { public static void main(String[] args) { @@ -37,6 +39,7 @@ public class DefiniteLoopExample { } +

    Recall that the range function provides you with a wide variety of options for controlling the value of the loop variable. @@ -65,18 +68,20 @@ public class DefiniteLoopExample { If you want to start at 100, stop at 0 and count backward by 5, the Python loop would be written as:

    - + + for i in range(100, -1, -5): print(i) +

    In Java, we would write this as:

    - - + + public class DefiniteLoopBackward { public static void main(String[] args) { @@ -87,7 +92,7 @@ public class DefiniteLoopBackward { } - +

    In Python, the for loop can also iterate over any sequence such as a list, a string, or a tuple. Java also provides a variation of its for loop that provides the same functionality in its so-called for each loop. @@ -96,20 +101,21 @@ public class DefiniteLoopBackward {

    In Python, we can iterate over a list as follows:

    - - + + l = [1, 1, 2, 3, 5, 8, 13, 21] for fib in l: print(fib) +

    In Java we can iterate over an ArrayList of integers too. Note that this requires importing the ArrayList class.

    - - + + import java.util.ArrayList; @@ -131,13 +137,15 @@ public class ForEachArrayListExample { } +

    This example stretches the imagination a bit, and in fact points out one area where Java's primitive arrays are easier to use than an array list. In fact, all primitive arrays can be used in a for each loop.

    - + + public class ForEachArrayExample { public static void main(String[] args) { @@ -149,12 +157,13 @@ public class ForEachArrayExample { } +

    To iterate over the characters in a string in Java do the following: -

    - - +

    + + public class StringIterationExample { public static void main(String[] args) { @@ -166,6 +175,7 @@ public class StringIterationExample { } + From 49cdd3ff47ab10ff534c5ec6b0e672d467b907d3 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 18:18:11 +0300 Subject: [PATCH 321/448] made pre tags to program and code for better readabiliy --- source/ch5_loopsanditeration.ptx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 5e1d7c1..41b6ff2 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -45,24 +45,28 @@ public class DefiniteLoopExample { Recall that the range function provides you with a wide variety of options for controlling the value of the loop variable.

    -
    +        
    +        
             range(stop)
             range(start,stop)
             range(start,stop,step)
    -        
    + +

    The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. You can think of it this way:

    -
    +        
    +        
             for (start clause; stop clause; step clause) {
                 statement1
                 statement2
             ...
             }
    -        
    + +

    If you want to start at 100, stop at 0 and count backward by 5, the Python loop would be written as: From 47f40842e81464ac17d9c7d7d7e2230b7c63d402 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 18:45:27 +0300 Subject: [PATCH 322/448] add listing to text --- source/ch5_loopsanditeration.ptx | 39 ++++++++++++++++---------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 41b6ff2..9e230ab 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -11,8 +11,7 @@

    for loop - A definite loop is a loop that is executed a specific or definite number of times. In Python, the easiest way to write a definite loop is using the for loop in conjunction with the range function. - For example: + A definite loop is a loop that is executed a specific or definite number of times. In Python, the easiest way to write a definite loop is using the for loop in conjunction with the range function. shows the syntax for the range function.

    @@ -24,7 +23,7 @@ for i in range(10):

    - In Java, we would write this as: + shows how the for loop is written in Java.

    @@ -42,23 +41,24 @@ public class DefiniteLoopExample {

    - Recall that the range function provides you with a wide variety of options for controlling the value of the loop variable. + Recall that the range function provides you with a wide variety of options for controlling the value of the loop variable as shown in .

    - - + + range(stop) range(start,stop) range(start,stop,step) +

    - The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. - You can think of it this way: + The Java for loop is really analogous to the last option giving you explicit control over the starting, stopping, and stepping in the three clauses inside the parenthesis. + shows how the Java for loop is written.

    - - + + for (start clause; stop clause; step clause) { statement1 @@ -67,12 +67,13 @@ public class DefiniteLoopExample { } - + +

    - If you want to start at 100, stop at 0 and count backward by 5, the Python loop would be written as: + If you want to start at 100, stop at 0 and count backward by 5, shows how the Python for loop is written.

    - + for i in range(100, -1, -5): @@ -82,7 +83,7 @@ for i in range(100, -1, -5):

    - In Java, we would write this as: + shows how the for loop is written in Java.

    @@ -103,7 +104,7 @@ public class DefiniteLoopBackward {

    - In Python, we can iterate over a list as follows: + shows how the for loop can be used to iterate over a list in Python.

    @@ -116,7 +117,7 @@ for fib in l:

    - In Java we can iterate over an ArrayList of integers too. Note that this requires importing the ArrayList class. + shows how the for loop can be used to iterate over an ArrayList of integers in Java.

    @@ -144,8 +145,8 @@ public class ForEachArrayListExample {

    - This example stretches the imagination a bit, and in fact points out one area where Java's primitive arrays are easier to use than an array list. - In fact, all primitive arrays can be used in a for each loop. + stretches the imagination a bit, and in fact points out one area where Java's primitive arrays are easier to use than an array list. + shows how the for loop can be used to iterate over all elements in a primitive array in Java.

    @@ -164,7 +165,7 @@ public class ForEachArrayExample {

    - To iterate over the characters in a string in Java do the following: + shows how the for loop can be used to iterate over all elements in a string in Java.

    From ba43d1450a21659e6b793b4ee92bc991a67c8d3f Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 20:15:42 +0300 Subject: [PATCH 323/448] added more options to make it harder --- source/ch3_javadatatypes.ptx | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index e73daaa..81e3d7a 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -734,25 +734,47 @@ public class Histo {

    - Match each Python for loop with its equivalent Java for loop. + Match each Python for loop with its equivalent Java for loop. + Note: There are extra options that represent common syntax mistakes or off-by-one errors.

    + + for i in range(2, 101, 2) for (int i = 2; i < 101; i += 2) + for i in range(1, 100) for (int i = 1; i < 100; i++) + + + for (int i = 1; i <= 100; i++) + + for i in range(100, 0, -1) for (int i = 100; i > 0; i--) + + for (int i = 2; i <= 101; i += 2) + + + for x, y in zip(range(10), range(0, 20, 2)) for (int x = 0, y = 0; x < 10; x++, y += 2) + + + + for (int i = 100; i < 0; i--) + + + + for (int x = 0, int y = 0; x < 10; x++, y += 2)
    From 3d367c6931714e8d632354d662542cead00cbf5b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 20:40:27 +0300 Subject: [PATCH 324/448] added comments to 5.1 --- source/ch5_loopsanditeration.ptx | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index ff221d2..fb3df2d 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -17,7 +17,7 @@ -for i in range(10): +for i in range(10): # range(10) is a list of integers from 0 to 9 print(i) @@ -30,7 +30,7 @@ for i in range(10): public class DefiniteLoopExample { public static void main(String[] args) { - for (Integer i = 0; i < 10; i++ ) { + for (Integer i = 0; i < 10; i++ ) { // notice how the initialization, condition, and update are all on the same line. System.out.println(i); } } @@ -67,7 +67,7 @@ public class DefiniteLoopExample { -for i in range(100, -1, -5): +for i in range(100, -1, -5): # start at 100, stop at 0, decrement by 5 print(i) @@ -80,7 +80,7 @@ for i in range(100, -1, -5): public class DefiniteLoopBackward { public static void main(String[] args) { - for (Integer i = 100; i >= 0; i -= 5) { + for (Integer i = 100; i >= 0; i -= 5) { // start at 100, stop at 0, decrement by 5 System.out.println(i); } } @@ -99,8 +99,8 @@ public class DefiniteLoopBackward { -l = [1, 1, 2, 3, 5, 8, 13, 21] -for fib in l: +l = [1, 1, 2, 3, 5, 8, 13, 21] # create a list of integers +for fib in l: # iterate over the list print(fib) @@ -115,16 +115,16 @@ import java.util.ArrayList; public class ForEachArrayListExample { public static void main(String[] args) { - ArrayList<Integer> l = new ArrayList<Integer>(); - l.add(1); - l.add(1); - l.add(2); + ArrayList<Integer> l = new ArrayList< // create an ArrayList of integers + l.add(1); // add the first integer to the list + l.add(1); // add the second integer to the list + l.add(2); // keep going l.add(3); l.add(5); l.add(8); l.add(13); - l.add(21); - for (Integer i : l) { + l.add(21); // add the last integer to the list + for (Integer i : l) { // iterate over the list System.out.println(i); } } @@ -141,8 +141,8 @@ public class ForEachArrayListExample { public class ForEachArrayExample { public static void main(String[] args) { - int l[] = {1,1,2,3,5,8,13,21}; - for(int i : l) { + int l[] = {1,1,2,3,5,8,13,21}; // create an array of integers using primitive syntax + for(int i : l) { // iterate over the array System.out.println(i); } } @@ -158,8 +158,8 @@ public class ForEachArrayExample { public class StringIterationExample { public static void main(String[] args) { - String t = "Hello World"; - for (char c : t.toCharArray()) { + String t = "Hello World"; // create a string + for (char c : t.toCharArray()) { // iterate over the characters in the string System.out.println(c); } } @@ -179,7 +179,7 @@ public class StringIterationExample { i = 5 -while i > 0: +while i > 0: print(i) i = i - 1 From 6c7aa640f1b53c3b5b82023d3c12fc1cfabca752 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 20:56:06 +0300 Subject: [PATCH 325/448] add listing tags --- source/ch5_loopsanditeration.ptx | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index ff221d2..7939524 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -176,7 +176,8 @@ public class StringIterationExample { Both Python and Java support the while loop, which continues to execute as long as a condition is true. Here is a simple example in Python that counts down from 5:

    - + + i = 5 while i > 0: @@ -184,11 +185,13 @@ while i > 0: i = i - 1 +

    In Java, we add parentheses and curly braces. Here is the same countdown loop in Java:

    - + + public class WhileLoopExample { public static void main(String[] args) { @@ -201,6 +204,7 @@ public class WhileLoopExample { } +

    do-while loop Java adds an additional, if seldom used variation of the while loop called the do-while loop. @@ -209,8 +213,8 @@ public class WhileLoopExample { Some programmers prefer this loop in some situations because it avoids an additional assignment prior to the loop. For example, the following loop will execute once even though the condition is initially false.

    - - + + public class DoWhileExample { public static void main(String[] args) { @@ -222,6 +226,8 @@ public class DoWhileExample { } + +
    Summary & Reading Questions From 69e453b494d07eb0b2bdd3a76a47d20a58530247 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 21:27:33 +0300 Subject: [PATCH 326/448] add listing to text --- source/ch5_loopsanditeration.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 7939524..d278d87 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -174,7 +174,7 @@ public class StringIterationExample {

    while loop Both Python and Java support the while loop, which continues to execute as long as a condition is true. - Here is a simple example in Python that counts down from 5: + shows a simple example in Python that counts down from 5.

    @@ -188,7 +188,7 @@ while i > 0:

    - In Java, we add parentheses and curly braces. Here is the same countdown loop in Java: + In Java, we add parentheses and curly braces. shows the same countdown loop in Java.

    @@ -211,7 +211,7 @@ public class WhileLoopExample { The do-while loop is very similar to while except that the condition is evaluated at the end of the loop rather than the beginning. This ensures that a loop will be executed at least one time. Some programmers prefer this loop in some situations because it avoids an additional assignment prior to the loop. - For example, the following loop will execute once even though the condition is initially false. + For example, shows how loop will execute once even though the condition is initially false.

    @@ -227,7 +227,7 @@ public class DoWhileExample { - +
    Summary & Reading Questions From 4076192c16ff47177f5b3d66f24f8f61099316ef Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 21:39:49 +0300 Subject: [PATCH 327/448] changes to match --- source/ch3_javadatatypes.ptx | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 81e3d7a..cd27074 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -735,15 +735,14 @@ public class Histo {

    Match each Python for loop with its equivalent Java for loop. - Note: There are extra options that represent common syntax mistakes or off-by-one errors.

    - for i in range(2, 101, 2) - for (int i = 2; i < 101; i += 2) + for i in range(2, 102, 2) + for (int i = 2; i < 102; i += 2) @@ -761,7 +760,7 @@ public class Histo { - for (int i = 2; i <= 101; i += 2) + for (int i = 2; i <= 102; i += 2) From bc89252974f2628e518a85f0077531e6932b0091 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 22:04:14 +0300 Subject: [PATCH 328/448] add comments to 5.2 --- source/ch5_loopsanditeration.ptx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index ff221d2..2b03d82 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -179,9 +179,9 @@ public class StringIterationExample { i = 5 -while i > 0: +while i > 0: # while i is greater than 0 print(i) - i = i - 1 + i = i - 1 # decrement i by 1 @@ -192,10 +192,10 @@ while i > 0: public class WhileLoopExample { public static void main(String[] args) { - int i = 5; - while (i > 0) { + int i = 5; // initialize i to 5 + while (i > 0) { // while i is greater than 0 System.out.println(i); - i = i - 1; + i = i - 1; // decrement i by 1 } } } @@ -214,10 +214,10 @@ public class WhileLoopExample { public class DoWhileExample { public static void main(String[] args) { - int i = 10; - do { + int i = 10; // initialize i to 10 + do { // do-while loop, will run at least once no matter the condition System.out.println("This runs once, i = " + i); - } while (i < 5); + } while (i < 5); // while i is less than 5 } } From 3c923ced6753e33a92c4ee9430012bb3de33348a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 30 Jul 2026 23:04:41 +0300 Subject: [PATCH 329/448] merged sections 4.1-4.4 into one section --- source/ch4_conditionals.ptx | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 8a9682d..777057e 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -4,8 +4,7 @@ Conditionals -
    - Using the Simple <c>if</c> Statement +
    Using Conditional Statements in Java

    conditional statements Conditional statements in Python and Java are very similar. In Python we have three patterns: @@ -50,9 +49,9 @@ if score >= 90: # Note the colon at the end of the line Once again you can see that in Java the curly braces define a block rather than indentation. In Java, the parentheses around the condition are required because it is technically a function that evaluates to True or False.

    -
    + -
    + Using the <c>if</c> - <c>else</c> Statement

    shows how the if - elsestatement is written in Python.

    @@ -85,9 +84,9 @@ if score >= 90: # Note the colon at the end of the line
    - + -
    + Can we use <c>elif</c>?

    elif statement @@ -172,9 +171,9 @@ public class ElseIf {

    - + -
    + Using the <c>switch</c> Statement

    @@ -255,6 +254,7 @@ The switch statement is not used very often, and we recommend you do not

    Finally, the switch statement does not support relational expressions such as greater than or less than. So you cannot use it to completely replace the elif. Even with the new features of Java 14+ the switch statement is still limited to constant comparisons using equality.

    +
    From 443e2aec5e46fa5c21e90c09d3a937a684866199 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 00:02:51 +0300 Subject: [PATCH 330/448] moved ternary operator before file handling --- source/ch4_conditionals.ptx | 172 ++++++++++++++++++------------------ 1 file changed, 85 insertions(+), 87 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 777057e..7410fc6 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -257,7 +257,91 @@ The switch statement is not used very often, and we recommend you do not
    -
    +
    + The Ternary Operator + +

    Boolean operators simple comparisons compound Boolean expressions +The conditionals used in the if statement can be Boolean variables, simple comparisons, and compound Boolean expressions. +

    + +

    ternary operator +Java also provides the ternary operator condition ? valueIfTrue : valueIfFalse, which lets you use a boolean test directly inside an assignment. If the condition is true, the first value is chosen; otherwise, the second value is used. summarizes how it works. +

    + +
    + Ternary Operator in Java + + + Component + Description + + + condition + The boolean expression that is evaluated (e.g., a % 2 == 0). + + + ? + This is the ternary operator that separates the condition from the trueValue. + + + trueValue + The value assigned if the condition is true (e.g., a * a). + + + : + This is the ternary operator that separates the trueValue from the falseValue. + + + falseValue + The value assigned if the condition is false (e.g., 3 * x - 1). + + + Example Usage + a = a % 2 == 0 ? a * a : 3 * x - 1 + + + Equivalent if-else Code + Can also be written with a regular if-else statement, but the ternary form is more concise. + + +
    + +

    +Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. shows an example where we see the same logic implemented in two different ways. +

    + + + +public class Ternary { + public static void main(String[] args) { + int a = 4; + int x = 2; + int outp; + + // ternary: + outp = (a % 2 == 0) ? (a * a) : (3 * x - 1); + System.out.println("ternary result: " + outp); + + // Equivalent using if/else + if (a % 2 == 0) { + outp = a * a; + } else { + outp = 3 * x - 1; + } + + System.out.println("if/else result: " + outp); + } +} + + + + +

    + In , we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, you might want to use it sparingly, as it can make code less readable if overused or used with complex expressions. +

    +
    + +
    Exception Handling

    @@ -411,92 +495,6 @@ The switch statement is not used very often, and we recommend you do not Note that as with other structures in Java, try-catch blocks blocks must be encased with braces {}. The most important part of this code is, after catch, there is a set of parenthesis with an exception type and a variable name catch (InputMismatchException e). This is where we declare a InputMismatchException exception and name it with the variable name e. It is common practice, though not a requirement, to name exception variables e in this manner.

    -
    - -
    - The Ternary Operator - -

    Boolean operators simple comparisons compound Boolean expressions -The conditionals used in the if statement can be Boolean variables, simple comparisons, and compound Boolean expressions. -

    - -

    ternary operator -Java also provides the ternary operator condition ? valueIfTrue : valueIfFalse, which lets you use a boolean test directly inside an assignment. If the condition is true, the first value is chosen; otherwise, the second value is used. summarizes how it works. -

    - - - Ternary Operator in Java - - - Component - Description - - - condition - The boolean expression that is evaluated (e.g., a % 2 == 0). - - - ? - This is the ternary operator that separates the condition from the trueValue. - - - trueValue - The value assigned if the condition is true (e.g., a * a). - - - : - This is the ternary operator that separates the trueValue from the falseValue. - - - falseValue - The value assigned if the condition is false (e.g., 3 * x - 1). - - - Example Usage - a = a % 2 == 0 ? a * a : 3 * x - 1 - - - Equivalent if-else Code - Can also be written with a regular if-else statement, but the ternary form is more concise. - - -
    - -

    -Using this operator can make code shorter and more readable in cases where a simple conditional assignment is needed. shows an example where we see the same logic implemented in two different ways. -

    - - - -public class Ternary { - public static void main(String[] args) { - int a = 4; - int x = 2; - int outp; - - // ternary: - outp = (a % 2 == 0) ? (a * a) : (3 * x - 1); - System.out.println("ternary result: " + outp); - - // Equivalent using if/else - if (a % 2 == 0) { - outp = a * a; - } else { - outp = 3 * x - 1; - } - - System.out.println("if/else result: " + outp); - } -} - - - - -

    - In , we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, you might want to use it sparingly, as it can make code less readable if overused or used with complex expressions. -

    - -
    Summary & Reading Questions From e3710661fc092d37a9e7c74f1a4c70b6c9ced34e Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 16:18:20 +0300 Subject: [PATCH 331/448] added listing to programs --- source/ch6_definingclasses.ptx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index f2e6d55..0990195 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -65,8 +65,8 @@ Here is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section:

    - - + + class Fraction: def __init__(self, num, den): @@ -126,6 +126,7 @@ print(sorted([Fraction(5, 16), Fraction(3, 16), Fraction(1, 16) + 1])) +

    data members @@ -136,8 +137,8 @@ The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind the first part of the Fraction class definition is as follows:

    - - + + public class Fraction { private Integer numerator; @@ -145,19 +146,21 @@ } +

    Notice that we have declared the numerator and denominator to be private. This means that the compiler will generate an error if another method tries to write code like the following:

    - - + + Fraction f = new Fraction(1,2); Integer y = f.numerator * 10; +

    getter method @@ -167,8 +170,8 @@ Hence, it is a very common programming practice to both provide getter methods and setter methods when needed for instance variables in Java.

    - - + + public Integer getNumerator() { return numerator; @@ -184,6 +187,7 @@ public void setDenominator(Integer denominator) { } +
    From 00a013cbd7f090511e0d4d1a4ff2dab8da8b31bd Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 16:26:47 +0300 Subject: [PATCH 332/448] add listing to text --- source/ch6_definingclasses.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 0990195..453bf0c 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -62,7 +62,7 @@

    - Here is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section: + is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section.

    @@ -134,7 +134,7 @@

    - The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind the first part of the Fraction class definition is as follows: + The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind shows the first part of the Fraction class definition.

    @@ -150,7 +150,7 @@

    Notice that we have declared the numerator and denominator to be private. - This means that the compiler will generate an error if another method tries to write code like the following: + This means that the compiler will generate an error if another method tries to write code like .

    @@ -167,7 +167,7 @@ setter method Direct access to instance variables is not allowed in Java. Therefore if we legitimately want to be able to access information such as the numerator or the denominator for a particular fraction we must have a getter method that returns the needed value. - Hence, it is a very common programming practice to both provide getter methods and setter methods when needed for instance variables in Java. + Hence, it is a very common programming practice to both provide getter methods and setter methods when needed for instance variables in Java. shows how the getter and setter methods are written.

    From 81b7943ffa84b907761c70f041a865aa039f2ff4 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 16:36:33 +0300 Subject: [PATCH 333/448] added idx tag --- source/ch5_loopsanditeration.ptx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 9e230ab..caad45f 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -11,6 +11,7 @@

    for loop + definite loop A definite loop is a loop that is executed a specific or definite number of times. In Python, the easiest way to write a definite loop is using the for loop in conjunction with the range function. shows the syntax for the range function.

    From ab399a1f07cef9e3741b70c0edbecda78cd66aba Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 16:56:09 +0300 Subject: [PATCH 334/448] removed some of the comments --- source/ch5_loopsanditeration.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 2b03d82..f677133 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -192,10 +192,10 @@ while i > 0: # while i is greater than 0 public class WhileLoopExample { public static void main(String[] args) { - int i = 5; // initialize i to 5 + int i = 5; while (i > 0) { // while i is greater than 0 System.out.println(i); - i = i - 1; // decrement i by 1 + i = i - 1; } } } From 269c931f2a0537765805a92d5850736309a89a08 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 17:10:17 +0300 Subject: [PATCH 335/448] added idx tags --- source/ch6_definingclasses.ptx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 453bf0c..252ec9b 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -62,10 +62,10 @@

    - is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section. + is a mostly complete implementation of a Fraction class in Python that we will refer to throughout this section.

    - + class Fraction: @@ -134,10 +134,10 @@

    - The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind shows the first part of the Fraction class definition. + The declarations of instance variables can come at the beginning of the class definition or the end. Cay Horstman, author of the “Core Java” books puts the declarations at the end of the class. I like them at the very beginning so you see the variables that are declared before you begin looking at the code that uses them. With that in mind shows the first part of the Fraction class definition.

    - + public class Fraction { @@ -149,6 +149,7 @@

    + private Notice that we have declared the numerator and denominator to be private. This means that the compiler will generate an error if another method tries to write code like .

    From fab036027dc2a718f56511a4b44504199871413d Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Fri, 31 Jul 2026 10:29:03 -0400 Subject: [PATCH 336/448] add "for loop" idx Clarified definition of a definite loop and its relation to for loops in Python. --- source/ch5_loopsanditeration.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index caad45f..833f363 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -12,7 +12,7 @@

    for loop definite loop - A definite loop is a loop that is executed a specific or definite number of times. In Python, the easiest way to write a definite loop is using the for loop in conjunction with the range function. shows the syntax for the range function. + A definite loop, also known as a for loop, is a loop that is executed for a specific or definite number of times. In Python, the easiest way to write a definite loop is using the for loop structure in conjunction with the range function. shows the syntax for the range function.

    @@ -339,4 +339,4 @@ public class DoWhileExample { - \ No newline at end of file + From 1997b67c58d9bb21d2052b6f213eabe53927a697 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 18:20:45 +0300 Subject: [PATCH 337/448] addd comments to code --- source/ch6_definingclasses.ptx | 64 ++++++++++++++++++++++------------ 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 252ec9b..ba083b2 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -76,37 +76,54 @@ """ self.num = num self.den = den - def __repr__(self): - if self.num > self.den: - retWhole = int(self.num / self.den) - retNum = self.num - (retWhole * self.den) + def __repr__(self): + """ + :return: a string representation of the fraction + """ + if self.num > self.den: + retWhole = int(self.num / self.den) # find the whole number part + retNum = self.num - (retWhole * self.den) # find the numerator part return str(retWhole) + " " + str(retNum) + "/" + str(self.den) else: return str(self.num) + "/" + str(self.den) def show(self): + """ + :return: print the fraction + """ print(self.num, "/", self.den) def __add__(self, other): + """ + :param other: the fraction to add + :return: the sum of the two fractions + """ # convert to a fraction other = self.toFract(other) - newnum = self.num * other.den + self.den * other.num - newden = self.den * other.den + newnum = self.num * other.den + self.den * other.num # find the new numerator + newden = self.den * other.den # find the new denominator common = gcd(newnum, newden) return Fraction(int(newnum / common), int(newden / common)) - __radd__ = __add__ + __radd__ = __add__ # allow the fraction to be added to a number def __lt__(self, other): + """ + :param other: the fraction to compare + :return: whether the fraction is less than the other + """ num1 = self.num * other.den num2 = self.den * other.num return num1 < num2 def toFract(self, n): + """ + :param n: the number to convert to a fraction + :return: the fraction representation of the number + """ if isinstance(n, int): other = Fraction(n, 1) elif isinstance(n, float): wholePart = int(n) - fracPart = n - wholePart - # convert to 100ths??? - fracNum = int(fracPart * 100) - newNum = wholePart * 100 + fracNum - other = Fraction(newNum, 100) + fracPart = n - wholePart + fracNum = int(fracPart * 100) # convert to 100ths + newNum = wholePart * 100 + fracNum # combine the whole and fractional parts + other = Fraction(newNum, 100) elif isinstance(n, Fraction): other = n else: @@ -115,9 +132,12 @@ return other def gcd(m, n): """ - A helper function for Fraction + A helper function for Fraction. + :param m: the first number + :param n: the second number + :return: the greatest common divisor """ - while m % n != 0: + while m % n != 0: # keep going until the gcd is found oldm = m oldn = n m = oldn @@ -140,8 +160,8 @@ - public class Fraction { - private Integer numerator; + public class Fraction { + private Integer numerator; // notice the private modifier private Integer denominator; } @@ -157,8 +177,8 @@ - Fraction f = new Fraction(1,2); - Integer y = f.numerator * 10; + Fraction f = new Fraction(1,2); + Integer y = f.numerator * 10; // trying to access the numerator @@ -174,16 +194,16 @@ -public Integer getNumerator() { +public Integer getNumerator() { // getter method return numerator; } -public void setNumerator(Integer numerator) { +public void setNumerator(Integer numerator) { // setter method this.numerator = numerator; } -public Integer getDenominator() { +public Integer getDenominator() { // getter method return denominator; } -public void setDenominator(Integer denominator) { +public void setDenominator(Integer denominator) { // setter method this.denominator = denominator; } From 1eb27de8c3fde657aea5376c57d5b84bccab6947 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 18:47:46 +0300 Subject: [PATCH 338/448] added listing tags --- source/ch6_definingclasses.ptx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 252ec9b..e5012be 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -203,8 +203,8 @@ public void setDenominator(Integer denominator) { Our constructor will take two parameters: the numerator and the denominator.

    - - + + public Fraction(Integer top, Integer bottom) { num = top; @@ -212,6 +212,7 @@ public Fraction(Integer top, Integer bottom) { } +

    this @@ -224,8 +225,8 @@ public Fraction(Integer top, Integer bottom) { For example this alternate definition of the the Fraction constructor uses this to differentiate between parameters and instance variables.

    - - + + public Fraction(Integer num, Integer den) { this.num = num; @@ -233,6 +234,7 @@ public Fraction(Integer num, Integer den) { } +
    From 7c86b21541b43c63e5da2825329df06d14b88241 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 18:52:05 +0300 Subject: [PATCH 339/448] added listing to txt --- source/ch6_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index e5012be..185851a 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -200,7 +200,7 @@ public void setDenominator(Integer denominator) { In Java, constructors have the same name as the class and are declared public. They are declared without a return type. So any method that is named the same as the class and has no return type is a constructor. - Our constructor will take two parameters: the numerator and the denominator. + Our constructor will take two parameters: the numerator and the denominator. shows the constructor for the Fraction class.

    @@ -222,7 +222,7 @@ public Fraction(Integer top, Integer bottom) { This allows the Java compiler to do the work of dereferencing the current Java object. Java does provide a special variable called this that works like the self variable. In Java, this is typically only used when it is needed to differentiate between a parameter or local variable and an instance variable. - For example this alternate definition of the the Fraction constructor uses this to differentiate between parameters and instance variables. + For example, shows an alternate definition of the the Fraction constructor that uses this to differentiate between parameters and instance variables.

    From d15068ba949ff3a1069495acdbea70b2ef8f60d4 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 19:00:32 +0300 Subject: [PATCH 340/448] added comments to code --- source/ch6_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 252ec9b..2d4a321 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -207,7 +207,7 @@ public void setDenominator(Integer denominator) { public Fraction(Integer top, Integer bottom) { - num = top; + num = top; // notice the use of num instead of top den = bottom; } @@ -228,7 +228,7 @@ public Fraction(Integer top, Integer bottom) { public Fraction(Integer num, Integer den) { - this.num = num; + this.num = num; // notice how we use this.num instead of num this.den = den; } From a34caa9d73799300fa3912ca38291c6db423208d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 19:01:30 +0300 Subject: [PATCH 341/448] added an idx tag --- source/ch6_definingclasses.ptx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 2d4a321..07b6931 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -196,6 +196,7 @@ public void setDenominator(Integer denominator) { Writing a constructor

    + constructor Once you have identified the instance variables for your class the next thing to consider is the constructor. In Java, constructors have the same name as the class and are declared public. They are declared without a return type. From b859e71dee5a68248a0093482a70d7d06a8a081c Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 20:33:47 +0300 Subject: [PATCH 342/448] added listing tags --- source/ch6_definingclasses.ptx | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 252ec9b..8bf6bdb 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -280,8 +280,8 @@ public Fraction(Integer num, Integer den) { Let’s begin by implementing addition in Java:

    - - + + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + @@ -292,6 +292,7 @@ public Fraction add(Fraction otherFrac) { } +

    First you will notice that the add method is declared as public Fraction The public part means that any other method may call the add method. @@ -304,8 +305,8 @@ public Fraction add(Fraction otherFrac) { So the following version of the code is equivalent:

    - - + + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * numerator + @@ -316,6 +317,7 @@ public Fraction add(Fraction otherFrac) { } +

    The addition takes place by multiplying each numerator by the opposite denominator before adding. @@ -365,8 +367,8 @@ public Fraction add(Fraction otherFrac) { The new methods that accomplish this task are as follows:

    - - + + public Fraction(Integer num) { this.numerator = num; @@ -377,6 +379,7 @@ public Fraction add(Integer other) { } +

    Notice that the overloading approach can provide us with a certain elegance to our code. @@ -389,8 +392,8 @@ public Fraction add(Integer other) { You should compile and run the program to see what happens.

    - - + + public class Fraction { private Integer numerator; @@ -434,6 +437,8 @@ public class Fraction { } + +
    From 4359d36941ae3bc440995d26966f7181f251e00b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 20:37:53 +0300 Subject: [PATCH 343/448] made the xml:id more defined --- source/ch6_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 8bf6bdb..0b1b293 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -280,7 +280,7 @@ public Fraction(Integer num, Integer den) { Let’s begin by implementing addition in Java:

    - + public Fraction add(Fraction otherFrac) { @@ -305,7 +305,7 @@ public Fraction add(Fraction otherFrac) { So the following version of the code is equivalent:

    - + public Fraction add(Fraction otherFrac) { @@ -438,7 +438,7 @@ public class Fraction { - + From e0796f87757c40d043417dc72a01a6f5f663beed Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 20:51:02 +0300 Subject: [PATCH 344/448] made half programs that won't run on its own in a different format --- source/ch6_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 0b1b293..2c00298 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -281,7 +281,7 @@ public Fraction(Integer num, Integer den) {

    - + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + @@ -306,7 +306,7 @@ public Fraction add(Fraction otherFrac) {

    - + public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * numerator + @@ -368,7 +368,7 @@ public Fraction add(Fraction otherFrac) {

    - + public Fraction(Integer num) { this.numerator = num; From d83e30dfdd29ab550732be4acc10ed1917b0c9c4 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 20:54:52 +0300 Subject: [PATCH 345/448] add listing to txt --- source/ch6_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 2c00298..abd13ea 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -277,7 +277,7 @@ public Fraction(Integer num, Integer den) { However, if you reassign the parameter to a completely new object inside the method (e.g., otherFrac = new Fraction(0,1);), it would not affect the original variable outside the method, because you are only changing the local copy of the reference.

    - Let’s begin by implementing addition in Java: + shows the first part of the Fraction class definition.

    @@ -302,7 +302,7 @@ public Fraction add(Fraction otherFrac) {

    Second, you will notice that the method makes use of the this variable. In this method, this is not necessary, because there is no ambiguity about the numerator and denominator variables. - So the following version of the code is equivalent: + is an equivalent version of .

    @@ -364,7 +364,7 @@ public Fraction add(Fraction otherFrac) { To solve the problem of adding an Integer and a Fraction in Java we will overload both the constructor and the add method. We will overload the constructor so that if it only receives a single Integer it will convert the Integer into a Fraction. We will also overload the add method so that if it receives an Integer as a parameter it will first construct a Fraction from that integer and then add the two Fractions together. - The new methods that accomplish this task are as follows: + shows the new methods that accomplish this task.

    From ae6b7aeef75b34b1356252c4a760b0579f5a6d2b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 20:55:25 +0300 Subject: [PATCH 346/448] add listing to txt --- source/ch6_definingclasses.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index abd13ea..a5a1573 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -388,7 +388,7 @@ public Fraction add(Integer other) {

    - Our full Fraction class to this point would look like the following. + Our full Fraction class to this point would look . You should compile and run the program to see what happens.

    From 3b6a1e381a007dfdf6a5e38c51fd148ca8bbd89c Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 21:48:23 +0300 Subject: [PATCH 347/448] addd comments to code blocks --- source/ch6_definingclasses.ptx | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index ba083b2..0c71d11 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -303,11 +303,12 @@ public Fraction(Integer num, Integer den) { -public Fraction add(Fraction otherFrac) { +public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + - this.denominator * otherFrac.getNumerator(); + this.denominator * otherFrac.getNumerator(); // notice the use of this. + Integer newDen = this.denominator * otherFrac.getDenominator(); // find the new denominator Integer newDen = this.denominator * otherFrac.getDenominator(); - Integer common = gcd(newNum, newDen); + Integer common = gcd(newNum, newDen); // find the greatest common divisor return new Fraction(newNum/common, newDen/common); } @@ -329,7 +330,7 @@ public Fraction add(Fraction otherFrac) { public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * numerator + - denominator * otherFrac.getNumerator(); + denominator * otherFrac.getNumerator(); // notice the absence of this. Integer newDen = denominator * otherFrac.getDenominator(); Integer common = gcd(newNum, newDen); return new Fraction(newNum/common, newDen/common); @@ -388,12 +389,12 @@ public Fraction add(Fraction otherFrac) { -public Fraction(Integer num) { - this.numerator = num; +public Fraction(Integer num) { + this.numerator = num; // set the numerator to the Integer this.denominator = 1; } -public Fraction add(Integer other) { - return add(new Fraction(other)); +public Fraction add(Integer other) { // overload the add method when the parameter is an Integer + return add(new Fraction(other)); } @@ -415,11 +416,11 @@ public Fraction add(Integer other) { public class Fraction { private Integer numerator; private Integer denominator; - public Fraction(Integer num, Integer den) { + public Fraction(Integer num, Integer den) { // constructor that takes two Integers this.numerator = num; this.denominator = den; } - public Fraction(Integer num) { + public Fraction(Integer num) { // constructor that takes a single Integer, sets the denominator to 1 this.numerator = num; this.denominator = 1; } @@ -435,10 +436,10 @@ public class Fraction { Integer common = gcd(newNum,newDen); return new Fraction(newNum/common, newDen/common ); } - public Fraction add(Integer other) { + public Fraction add(Integer other) { // overload the add method when the parameter is an Integer return add(new Fraction(other)); } - private static Integer gcd(Integer m, Integer n) { + private static Integer gcd(Integer m, Integer n) { // a helper method for the add method while (m % n != 0) { Integer oldm = m; Integer oldn = n; @@ -447,7 +448,7 @@ public class Fraction { } return n; } - public static void main(String[] args) { + public static void main(String[] args) { // a main method Fraction f1 = new Fraction(1,2); System.out.println(f1.add(1)); } From 1a65123021360234424eb164edb090bc5a70e196 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 21:53:57 +0300 Subject: [PATCH 348/448] accidnetal duplicate --- source/ch6_definingclasses.ptx | 1 - 1 file changed, 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 0c71d11..c1b2d6f 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -307,7 +307,6 @@ public Fraction add(Fraction otherFrac) { Integer newNum = otherFrac.getDenominator() * this.numerator + this.denominator * otherFrac.getNumerator(); // notice the use of this. Integer newDen = this.denominator * otherFrac.getDenominator(); // find the new denominator - Integer newDen = this.denominator * otherFrac.getDenominator(); Integer common = gcd(newNum, newDen); // find the greatest common divisor return new Fraction(newNum/common, newDen/common); } From eac2a83815a2d440ff936af20ecadd6a81f11bd1 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 22:34:51 +0300 Subject: [PATCH 349/448] added listing tags --- source/ch6_definingclasses.ptx | 40 ++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index c1b2d6f..a5915c9 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -465,12 +465,13 @@ public class Fraction { If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like this:

    - - + + Fraction@6ff3c5b5 +

    The reason is that we have not yet provided a friendly string representation for our Fraction objects. @@ -555,14 +556,15 @@ Fraction@6ff3c5b5 A simple version of the method is provided below.

    - - + + public String toString() { return numerator.toString() + "/" + denominator.toString(); } +

    The other important class for us to implement from the list of methods inherited from Object is the equals method. @@ -573,30 +575,32 @@ public String toString() { Therefore once you write your own equals method:

    - - + + object1 == object2 +

    is NOT the same as:

    - - + + object1.equals(object2) +

    Here is an equals method for the Fraction class:

    - - + + public boolean equals(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); @@ -608,6 +612,7 @@ public boolean equals(Fraction other) { } +

    One important thing to remember about equals is that it only checks to see if two objects are equal – it does not have any notion of less than or greater than. @@ -634,14 +639,15 @@ public boolean equals(Fraction other) { Here is code that makes the Fraction class a child of Number:

    - - + + public class Fraction extends Number { ... } +

    extends @@ -685,8 +691,8 @@ public class Fraction extends Number { This really isn’t much work for us to implement these methods, as all we have to do is some type conversion and some division:

    - - + + public double doubleValue() { return numerator.doubleValue() / denominator.doubleValue(); @@ -702,6 +708,7 @@ public long longValue() { } +

    is-a @@ -720,14 +727,15 @@ public long longValue() { Suppose you try to define a method as follows:

    - - + + public void test(Number a, Number b) { a.add(b); } +

    The Java compiler would give an error because add is not a defined method of the Number class. From e23d4f923b67e272c8d0e5c0e13c1e877c73f498 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 22:36:52 +0300 Subject: [PATCH 350/448] fixed xml:id --- source/ch6_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index a5915c9..b7c78b4 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -575,7 +575,7 @@ public String toString() { Therefore once you write your own equals method:

    - + object1 == object2 @@ -639,7 +639,7 @@ public boolean equals(Fraction other) { Here is code that makes the Fraction class a child of Number:

    - + public class Fraction extends Number { From 8c744053068f81620be04ec13c7e29e81be379ff Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 22:40:29 +0300 Subject: [PATCH 351/448] added idx and term tags --- source/ch6_definingclasses.ptx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index b7c78b4..b14761a 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -488,7 +488,7 @@ Fraction@6ff3c5b5

    toString In Java, the equivalent of __str__ is the toString method. - Every object in Java already has a toString method defined for it because every class in Java automatically inherits from the Object class. + Every object in Java already has a toString method defined for it because every class in Java automatically inherits from the Object class. The Object class provides default implementations for the following methods.

    @@ -567,6 +567,7 @@ public String toString() {

    + equals The other important class for us to implement from the list of methods inherited from Object is the equals method. In Java, when two objects are compared using the == operator they are tested to see if they are exactly the same object (that is, do the two objects occupy the same exact space in the computer’s memory?). This is also the default behavior of the equals method provided by Object. @@ -651,7 +652,7 @@ public class Fraction extends Number {

    extends - The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. + The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. A child class always extends its parent.

    From e15fa0cf20aa73e7f17afe4be05c543b40a553f8 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 22:52:03 +0300 Subject: [PATCH 352/448] added listing to text and program tags --- source/ch6_definingclasses.ptx | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index b14761a..b2a66fa 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -462,7 +462,7 @@ public class Fraction {

    - If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like this: + If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like .

    @@ -552,8 +552,7 @@ Fraction@6ff3c5b5

    We are not interested in most of the methods on that list, and many Java programmers live happy and productive lives without knowing much about most of the methods on that list. - However, to make our output nicer we will implement the toString method for the Fraction class. - A simple version of the method is provided below. + However, to make our output nicer we will implement the toString method for the Fraction class. shows a simple version of the method.

    @@ -576,8 +575,8 @@ public String toString() { Therefore once you write your own equals method:

    - - + + object1 == object2 @@ -585,11 +584,11 @@ object1 == object2

    - is NOT the same as: + is NOT the same as .

    - + object1.equals(object2) @@ -597,7 +596,7 @@ object1.equals(object2)

    - Here is an equals method for the Fraction class: + is an equals method for the Fraction class.

    @@ -637,11 +636,11 @@ public boolean equals(Fraction other) {

    - Here is code that makes the Fraction class a child of Number: + makes the Fraction class a child of Number.

    - + public class Fraction extends Number { ... @@ -689,7 +688,7 @@ public class Fraction extends Number {

    - This really isn’t much work for us to implement these methods, as all we have to do is some type conversion and some division: + This really isn’t much work for us to implement these methods, as all we have to do is some type conversion and some division as shown in .

    @@ -725,7 +724,7 @@ public long longValue() {

    - Suppose you try to define a method as follows: + Suppose you try to define a method as .

    From e7368957fb0dbf8be5633d126aaae50a152b50c3 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 31 Jul 2026 23:55:17 +0300 Subject: [PATCH 353/448] added comments to code --- source/ch6_definingclasses.ptx | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index c1b2d6f..aa0a311 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -559,7 +559,7 @@ Fraction@6ff3c5b5 public String toString() { - return numerator.toString() + "/" + denominator.toString(); + return numerator.toString() + "/" + denominator.toString(); // convert to a string } @@ -598,10 +598,10 @@ object1.equals(object2) -public boolean equals(Fraction other) { - Integer num1 = this.numerator * other.getDenominator(); - Integer num2 = this.denominator * other.getNumerator(); - if (num1 == num2) + +public boolean equals(Fraction other) { // a method to compare two fractions + Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); + if (num1 == num2) // if the numerators are equal in value, the fractions are equal return true; else return false; @@ -688,16 +688,16 @@ public class Fraction extends Number { -public double doubleValue() { +public double doubleValue() { // convert to a double return numerator.doubleValue() / denominator.doubleValue(); } -public float floatValue() { +public float floatValue() { // convert to a float return numerator.floatValue() / denominator.floatValue(); } -public int intValue() { +public int intValue() { // convert to an int return numerator.intValue() / denominator.intValue(); } -public long longValue() { +public long longValue() { // convert to a long return numerator.longValue() / denominator.longValue(); } @@ -724,7 +724,7 @@ public long longValue() { public void test(Number a, Number b) { - a.add(b); + a.add(b); // this is a bad idea } From 965723778987bd20999c9cd1ef3d5fb9d81629e9 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Sat, 1 Aug 2026 00:43:49 +0300 Subject: [PATCH 354/448] added listing tags --- source/ch6_definingclasses.ptx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index c1b2d6f..582ecd6 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -769,8 +769,8 @@ public void test(Number a, Number b) { Here is an excerpt from the official documentation for the compareTo method as specified by the Comparable interface.

    - - + + int compareTo(T o) Compares this object with the specified object for order. Returns a @@ -782,27 +782,29 @@ iff y.compareTo(x) throws an exception.) ... +

    To make our Fraction class Comparable we must modify the class declaration line as follows:

    - - + + public class Fraction extends Number implements Comparable<Fraction> { ... } +

    The specification Comparable<Fraction> makes it clear that Fraction is only comparable with another Fraction. The compareTo method could be implemented as follows:

    - - + + public int compareTo(Fraction other) { Integer num1 = this.numerator * other.getDenominator(); @@ -811,8 +813,11 @@ public int compareTo(Fraction other) { } + + +
    Static member variables From 591a5fca21d0d0f7c02572fe9cfcf22f12874b3b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Sat, 1 Aug 2026 00:46:09 +0300 Subject: [PATCH 355/448] fixed xml:id --- source/ch6_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 582ecd6..ac53379 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -803,7 +803,7 @@ public class Fraction extends Number implements Comparable<Fraction> { The compareTo method could be implemented as follows:

    - + public int compareTo(Fraction other) { @@ -814,7 +814,7 @@ public int compareTo(Fraction other) { - +
    From cfcccbda92d9a0ae38ab15b78e563b4463a43743 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Sat, 1 Aug 2026 00:47:26 +0300 Subject: [PATCH 356/448] added listing to tags --- source/ch6_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index ac53379..3450de8 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -766,7 +766,7 @@ public void test(Number a, Number b) {

    The Comparable interface says that any object that claims to be Comparable must implement the compareTo method. - Here is an excerpt from the official documentation for the compareTo method as specified by the Comparable interface. + Here is an excerpt from the official documentation for the compareTo method as specified by the Comparable interface. shows the excerpt.

    @@ -785,7 +785,7 @@ iff y.compareTo(x) throws an exception.)

    - To make our Fraction class Comparable we must modify the class declaration line as follows: + To make our Fraction class Comparable we must modify the class declaration line as shown in .

    @@ -800,7 +800,7 @@ public class Fraction extends Number implements Comparable<Fraction> {

    The specification Comparable<Fraction> makes it clear that Fraction is only comparable with another Fraction. - The compareTo method could be implemented as follows: + The compareTo method could be implemented as shown in .

    From 704454092a7603efef8fec2136897a67d91921d0 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 17:05:04 +0300 Subject: [PATCH 357/448] added comments --- source/ch6_definingclasses.ptx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index c1b2d6f..1c96ab1 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -576,7 +576,7 @@ public String toString() { -object1 == object2 +object1 == object2 // this checks to see if the two objects are the same object in memory @@ -587,7 +587,7 @@ object1 == object2 -object1.equals(object2) +object1.equals(object2) // this checks to see if the two objects are equal by looking at their instance variables @@ -598,7 +598,7 @@ object1.equals(object2) -public boolean equals(Fraction other) { +public boolean equals(Fraction other) { // check if this fraction is equal to another fraction Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); if (num1 == num2) @@ -637,7 +637,7 @@ public boolean equals(Fraction other) { -public class Fraction extends Number { +public class Fraction extends Number { // fraction class is a child of Number ... } @@ -790,7 +790,7 @@ iff y.compareTo(x) throws an exception.) -public class Fraction extends Number implements Comparable<Fraction> { +public class Fraction extends Number implements Comparable<Fraction> { // fraction class is a child of Number and implements the Comparable interface ... } @@ -804,7 +804,7 @@ public class Fraction extends Number implements Comparable<Fraction> { -public int compareTo(Fraction other) { +public int compareTo(Fraction other) { // compare this fraction with another fraction Integer num1 = this.numerator * other.getDenominator(); Integer num2 = this.denominator * other.getNumerator(); return num1 - num2; From 5e7bd1c715762b08a179cefd475bc3f3178db379 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 17:17:53 +0300 Subject: [PATCH 358/448] added listing tags --- source/ch6_definingclasses.ptx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index c1b2d6f..6a0f461 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -823,8 +823,8 @@ public int compareTo(Fraction other) { In Python, we could do this as follows:

    - - + + class Student: numStudents = 0 @@ -839,13 +839,14 @@ def main(): main() +

    In Java, we would write this same example using a static declaration.

    - - + + public class Student { public static Integer numStudents = 0; @@ -865,6 +866,7 @@ public class Student { } +

    static member variable From abb645512e3b0befe3c017429f69ceb94fa18255 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 17:19:16 +0300 Subject: [PATCH 359/448] added listing in tags --- source/ch6_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 6a0f461..0e0a0e9 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -820,7 +820,7 @@ public int compareTo(Fraction other) { Suppose that you wanted to write a Student class so that the class could keep track of the number of students it had created. Although you could do this with a global counter variable that is an ugly solution. The right way to do it is to use a static variable. - In Python, we could do this as follows: + shows how to do this in Python.

    @@ -842,7 +842,7 @@ main()

    - In Java, we would write this same example using a static declaration. + shows how to do this in Java.

    From aca87817d4b736bb837967455d763af15917f452 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 17:24:03 +0300 Subject: [PATCH 360/448] fixed some mistakes --- source/ch6_definingclasses.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 0e0a0e9..a99c5d9 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -820,7 +820,7 @@ public int compareTo(Fraction other) { Suppose that you wanted to write a Student class so that the class could keep track of the number of students it had created. Although you could do this with a global counter variable that is an ugly solution. The right way to do it is to use a static variable. - shows how to do this in Python. + shows how to do this in Python.

    @@ -842,7 +842,7 @@ main()

    - shows how to do this in Java. + shows how to do this in Java.

    @@ -870,7 +870,7 @@ public class Student {

    static member variable - In this example notice that we create a static member variable by using the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python. + In , notice that we create a static member variable by using the static modifier on the variable declaration. Once a variable has been declared static in Java it can be accessed from inside the class without prefixing the name of the class as we had to do in Python.

    From cac7e73cd8945ff795ad5cfec558236641c4d75f Mon Sep 17 00:00:00 2001 From: Jan Pearce Date: Mon, 3 Aug 2026 11:05:47 -0400 Subject: [PATCH 361/448] correcting use of term tag --- source/ch6_definingclasses.ptx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index b2a66fa..6f39d5f 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -215,7 +215,7 @@ public void setDenominator(Integer denominator) { // setter method
    Writing a constructor -

    +

    constructor Once you have identified the instance variables for your class the next thing to consider is the constructor. In Java, constructors have the same name as the class and are declared public. They are declared without a return type. @@ -278,8 +278,8 @@ public Fraction(Integer num, Integer den) {

  • pass-by-value - value of the reference - Java is strictly pass-by-value. For primitive types (like int), a copy of the value is passed. For object types (like our Fraction), a copy of the value of the reference (the memory address) is passed. + + Java is strictly pass-by-value. For primitive types (like int), a copy of the value is passed. For object types (like our Fraction), a copy of the reference(Namely, the memory address) is passed.

  • @@ -571,7 +571,7 @@ public String toString() { In Java, when two objects are compared using the == operator they are tested to see if they are exactly the same object (that is, do the two objects occupy the same exact space in the computer’s memory?). This is also the default behavior of the equals method provided by Object. The equals method allows us to decide if two objects are equal by looking at their instance variables. - However it is important to remember that since Java does not have operator overloading if you want to use your equals method you must call it directly. + However it is important to remember that since Java does not have operator overloading if you want to use your equals method you must call it directly. Therefore once you write your own equals method:

    @@ -631,7 +631,7 @@ public boolean equals(Fraction other) { If you look at the documentation for Integer you will see that Integer’s parent class is Number. Number is an abstract class that specifies several methods that all of its children must implement. In Java an abstract class is more than just a placeholder for common methods. - In Java an abstract class has the power to specify certain methods that all of its children must implement. + In Java an abstract class has the power to specify certain methods that all of its children must implement. You can trace this power back to the strong typing nature of Java.

    @@ -650,7 +650,7 @@ public class Fraction extends Number {
  • - extends + extending a class The keyword extends tells the compiler that the class Fraction extends, or adds new functionality to the Number class. A child class always extends its parent.

    @@ -720,7 +720,7 @@ public long longValue() {

    - However, and this is a big however, it is important to remember that if you specify Number as the type of a particular parameter then the Java compiler will only let you use the methods of a Number: longValue, intValue, floatValue, and doubleValue. + However, and this is a big however, it is important to remember that if you specify Number as the type of a particular parameter then the Java compiler will only let you use the methods of a Number: longValue, intValue, floatValue, and doubleValue.

    @@ -739,7 +739,7 @@ public void test(Number a, Number b) {

    The Java compiler would give an error because add is not a defined method of the Number class. - You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add). + You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add).

    @@ -748,7 +748,6 @@ public void test(Number a, Number b) { Interfaces

    - Comparable single inheritance Lets turn our attention to making a list of fractions sortable by the standard Java sorting method Collections.sort. In Python, we would just need to implement the __cmp__ method. From f48fa0e6de1db9d41e126342f352d45400e5f182 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 18:29:27 +0300 Subject: [PATCH 362/448] added comments to code --- source/ch6_definingclasses.ptx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 9ad5051..d3632f8 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -836,13 +836,13 @@ public int compareTo(Fraction other) { class Student: numStudents = 0 - def __init__(self, id, name): + def __init__(self, id, name): self.id = id self.name = name - Student.numStudents = Student.numStudents + 1 + Student.numStudents = Student.numStudents + 1 # increment the static variable def main(): for i in range(10): - s = Student(i,"Student-"+str(i)) + s = Student(i,"Student-"+str(i)) // create a new student print('Number of students:', Student.numStudents) main() @@ -856,13 +856,13 @@ main() public class Student { - public static Integer numStudents = 0; + public static Integer numStudents = 0; // static member variable, shared by all instances of the class private int id; private String name; public Student(Integer id, String name) { this.id = id; this.name = name; - numStudents = numStudents + 1; + numStudents = numStudents + 1; // a static variable, that can be accessed without the Student prefix } public static void main(String[] args) { for(Integer i = 0; i < 10; i++) { From ef74077384e65e04efaf3b2b0419a070c074ee88 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 18:32:35 +0300 Subject: [PATCH 363/448] fixed a comment --- source/ch6_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index d3632f8..0c04a74 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -839,10 +839,10 @@ class Student: def __init__(self, id, name): self.id = id self.name = name - Student.numStudents = Student.numStudents + 1 # increment the static variable + Student.numStudents = Student.numStudents + 1 # this is a static variable, that can be accessed without the self prefix def main(): for i in range(10): - s = Student(i,"Student-"+str(i)) // create a new student + s = Student(i,"Student-"+str(i)) # create a new Student object print('Number of students:', Student.numStudents) main() From 7002f82269f189aa11d1bad03060ae46ed010c2a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 18:33:25 +0300 Subject: [PATCH 364/448] fixed a comment --- source/ch6_definingclasses.ptx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 0c04a74..1573906 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -839,7 +839,8 @@ class Student: def __init__(self, id, name): self.id = id self.name = name - Student.numStudents = Student.numStudents + 1 # this is a static variable, that can be accessed without the self prefix + # this is a static variable, that can be accessed without the self prefix + Student.numStudents = Student.numStudents + 1 def main(): for i in range(10): s = Student(i,"Student-"+str(i)) # create a new Student object From e1d138d588a5c2da5dbb4e11ce44707d87cbd1c6 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Mon, 3 Aug 2026 13:22:31 -0400 Subject: [PATCH 365/448] Added the listing tag to the chapter 6.7.1, I also renamed the XMLID to a more meaningful name, and added a paragrph describing the listing --- source/ch6_definingclasses.ptx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index c1b2d6f..004cb68 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -879,8 +879,12 @@ public class Student { We have already discussed the most common static method of all, main. However in our Fraction class we also implemented a method to calculate the greatest common divisor for two fractions (gdc). There is no reason for this method to be a member method since it takes two Integer values as its parameters. Therefore we declare the method to be a static method of the class. Furthermore, since we are only going to use this gcd method for our own purposes we can make it private.

    +

    + shows the implementation of the static gcd helper method in Java. +

    - + + private static Integer gcd(Integer m, Integer n) { while (m % n != 0) { @@ -893,6 +897,7 @@ private static Integer gcd(Integer m, Integer n) { } +
    From e2d3dbe30e35e51203b0aeb37621cb2fadcabecd Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 20:30:26 +0300 Subject: [PATCH 366/448] add comments --- source/ch6_definingclasses.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index d773a10..8ca9e36 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -905,7 +905,7 @@ public class Student { -private static Integer gcd(Integer m, Integer n) { +private static Integer gcd(Integer m, Integer n) { // static method to compute the greatest common divisor of two integers while (m % n != 0) { Integer oldm = m; Integer oldn = n; From 0045755090e8647d8ed83c96bbb9cabc0d13beb4 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 22:06:36 +0300 Subject: [PATCH 367/448] fix math formatting --- source/ch7_recursion.ptx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index a0d2c01..4daa403 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -14,24 +14,24 @@

    - Let's take the familiar factorial function, which calculates n! (read as "n factorial"), so for example 5! = 5 × 4 × 3 × 2 × 1 = 120. Factorial is a classic example of recursion, where the function calls itself with a smaller value until it reaches a base case. - In general, n! = n \times (n-1) \times (n-2) \times \cdots \times 2 \times 1, - or recursively defined as n! = n \times (n-1)! with base cases 0! = 1 and 1! = 1. + Let's take the familiar factorial function, which calculates n! (read as "n factorial"), so for example 5! = 5 × 4 × 3 × 2 × 1 = 120. Factorial is a classic example of recursion, where the function calls itself with a smaller value until it reaches a base case. + In general, n! = n \times (n-1) \times (n-2) \times \cdots \times 2 \times 1, + or recursively defined as n! = n \times (n-1)! with base cases 0! = 1 and 1! = 1.

    You may recall mathematical notation using the symbol \sum (Greek letter sigma) to represent "sum." For example, when we sum all elements in an array, we write - \sum_{i=0}^{n-1} a_i, where i=0 below the symbol indicates we start at index 0, + \sum_{i=0}^{n-1} a_i, where i=0 below the symbol indicates we start at index 0, n-1 above it means we end at index n-1, and a_i represents the array - element at each index i. Similarly, \sum_{i=1}^{n} i means "sum all integers + element at each index i. Similarly, \sum_{i=1}^{n} i means "sum all integers i from 1 to n."

    Factorial involves multiplication rather than addition, so we use the product symbol - \prod (Greek letter pi): n! = \prod_{i=1}^{n} i, which means "multiply + \prod (Greek letter pi): n! = \prod_{i=1}^{n} i, which means "multiply all integers i from 1 to n." Both summation and factorial can be expressed recursively—summation as the first element plus the sum of remaining elements, and factorial - as n \times (n-1)!. + as n \times (n-1)!.

    Here is a Python implementation of factorial using just one function: From 2f10a33ee3c408700ac47d2025f1eb6148a35872 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Mon, 3 Aug 2026 15:08:46 -0400 Subject: [PATCH 368/448] I added the listing tags and placed the ref tag in the beginning paragraph --- source/ch6_definingclasses.ptx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 1e16fed..19da9a6 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -922,11 +922,11 @@ private static Integer gcd(Integer m, Integer n) { Full Implementation of the Fraction Class

    - Here is a final version of the Fraction class in Java, which includes all the features we discussed: + shows a final version of the Fraction class in Java, which includes all the features we discussed:

    - + import java.util.ArrayList; import java.util.Collections; @@ -1020,6 +1020,7 @@ public class Fraction extends Number implements Comparable<Fraction> { } +
    From ff92dab14484bef4e7e6b006f7f2deedc01e241e Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 22:21:22 +0300 Subject: [PATCH 369/448] add listing tags --- source/ch7_recursion.ptx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index a0d2c01..15bb4f9 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -36,7 +36,8 @@

    Here is a Python implementation of factorial using just one function:

    - + + def factorial(n): # Check for negative numbers @@ -54,11 +55,13 @@ print(str(number) + "! is " + str(factorial(number))) +

    Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method instead of as a function. When this is done, you need to create an instance of the class in order to call the method. Below, we create the class MathTools with a method factorial, and we call it from the main function.

    - + + class MTools: def factorial(self, n): @@ -81,6 +84,7 @@ def main(): main() +

    See if you can spot the differences in the Java version below. @@ -88,7 +92,8 @@ main()

    Here is the equivalent Java code:

    - + + public class MTools { public static int factorial(int n) { @@ -112,6 +117,7 @@ public class MTools { } +

    Notice the key differences from Python: instead of def factorial(n):, Java uses public static int factorial(int n) which declares the method's visibility as public, that it belongs to the class rather than an instance (hence, static), the return type as integer, and the parameter type also as integer. The recursive logic—base case and recursive step—remains identical to Python, and, of course, all code blocks use curly braces {} instead of indentation.

    From 5d01328d61a73d3996c8c4ac57aa0716a3605431 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 22:30:08 +0300 Subject: [PATCH 370/448] added listing to text --- source/ch7_recursion.ptx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 15bb4f9..007f313 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -34,7 +34,7 @@ as n \times (n-1)!.

    - Here is a Python implementation of factorial using just one function: + is the Python implementation of the factorial function. It checks for negative numbers, defines the base case for 0! and 1!, and implements the recursive step.

    @@ -60,6 +60,10 @@ print(str(number) + "! is " + str(factorial(number)))

    Many Python programs organize related functions into classes. The same factorial function can be placed inside a class as a method instead of as a function. When this is done, you need to create an instance of the class in order to call the method. Below, we create the class MathTools with a method factorial, and we call it from the main function.

    +

    + is the Python implementation of the factorial function as a method within a class. It maintains the same logic as the previous function but is now encapsulated within a class structure. +

    + @@ -90,7 +94,7 @@ main() See if you can spot the differences in the Java version below.

    - Here is the equivalent Java code: + is the Java implementation of the factorial function. It follows the same logic as the Python version but adapts to Java's syntax and type system.

    From 1862bd7595afb4cce591a73a249d05a576f21c12 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 22:41:09 +0300 Subject: [PATCH 371/448] added listing tags --- source/ch7_recursion.ptx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 4daa403..b8ac849 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -131,7 +131,8 @@ public class MTools {

    First, let's see what happens if we try to write a recursive array sum function without using a helper method. In this approach, the user must provide the starting index, which is awkward and exposes implementation details:

    - + + class ArrayProcessor: def sum_array(self, arr, index): @@ -156,11 +157,13 @@ def main(): main() +

    This approach has a significant problem, namely that users must remember to start with index 0. Hence, the method signature is cluttered with an implementation detail, and it's easy to make a mistake by passing the wrong starting index. The same awkward pattern appears in Java:

    - + + public class ArrayProcessor { public static int sumArray(int[] arr, int index) { @@ -182,6 +185,7 @@ public class ArrayProcessor { } +

    Both versions force users to understand and provide implementation details they shouldn't need to know about. Now let's see how helper methods solve this problem by providing a clean, user-friendly interface. Notice how the public method only requires the array itself, and the hidden recursive logic tracks the current index position. @@ -189,7 +193,8 @@ public class ArrayProcessor {

    Here's the improved Python version using a helper method:

    - + + class ArrayProcessor: def sum_array(self, arr): @@ -231,7 +236,8 @@ main()

    Now let's see the improved Java version using a helper method:

    - + + import java.util.Arrays; @@ -263,6 +269,7 @@ public class ArrayProcessor { } +

    Compare these improved versions with the earlier problematic ones. Notice how much cleaner the method calls become: processor.sum_array(numbers) in Python and sumArray(numbers) in Java. Users no longer need to worry about providing a starting index or understanding the internal mechanics of the recursion. The helper method pattern creates a clear separation between what users need to know (just pass an array) and the implementation details (tracking the index through recursion). From ea99928c5704dbf361dc864f7c4525e3742f3315 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 22:46:38 +0300 Subject: [PATCH 372/448] added listing to text --- source/ch7_recursion.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index b8ac849..79b09b9 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -129,7 +129,7 @@ public class MTools {

    - First, let's see what happens if we try to write a recursive array sum function without using a helper method. In this approach, the user must provide the starting index, which is awkward and exposes implementation details: + First, let's see what happens if we try to write a recursive array sum function without using a helper method. In this approach, the user must provide the starting index, which is awkward and exposes implementation details. shows a Python version.

    @@ -160,7 +160,7 @@ main()

    - This approach has a significant problem, namely that users must remember to start with index 0. Hence, the method signature is cluttered with an implementation detail, and it's easy to make a mistake by passing the wrong starting index. The same awkward pattern appears in Java: + 's approach has a significant problem, namely that users must remember to start with index 0. Hence, the method signature is cluttered with an implementation detail, and it's easy to make a mistake by passing the wrong starting index. The same awkward pattern appears in Java as shown in .

    @@ -191,7 +191,7 @@ public class ArrayProcessor { Both versions force users to understand and provide implementation details they shouldn't need to know about. Now let's see how helper methods solve this problem by providing a clean, user-friendly interface. Notice how the public method only requires the array itself, and the hidden recursive logic tracks the current index position.

    - Here's the improved Python version using a helper method: + shows the improved Python version using a helper method.

    @@ -234,7 +234,7 @@ main()

    - Now let's see the improved Java version using a helper method: + The same helper method pattern can be applied in Java, as shown in . The public method sumArray provides a clean interface, while the private helper method sumHelper manages the recursion and index tracking.

    From c9ddb0279969820b80e909ad282bef432aec2f9a Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Mon, 3 Aug 2026 15:47:31 -0400 Subject: [PATCH 373/448] added the listing tag and refrenced it in the paragraph above it --- source/ch7_recursion.ptx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index a0d2c01..7d333a2 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -298,10 +298,11 @@ public class ArrayProcessor {

    - The following Python code demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError due to overflowing the call stack. + The following Python code in demonstrates a situation where a function calls itself indefinitely without a base case, leading to a RecursionError due to overflowing the call stack.

    - - + + + def cause_recursion_error(): """ This function calls itself without a base case, guaranteeing an error. @@ -317,6 +318,7 @@ public class ArrayProcessor { cause_recursion_error() +

    The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError. From 29ac12b4d0a2b0750f61a295989598615ee80349 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Mon, 3 Aug 2026 15:50:51 -0400 Subject: [PATCH 374/448] Added the listing tag for 7.3.2 and refrenced it int he paragraph above --- source/ch7_recursion.ptx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 7d333a2..aae48c8 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -321,10 +321,11 @@ public class ArrayProcessor {

    - The following Java code demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError. + The following Java code in demonstrates a similar situation, where a method calls itself indefinitely without a base case, leading to a StackOverflowError.

    - - + + + public class Crash { public static void causeStackOverflow() { // The line below will start the infinite recursion. @@ -342,6 +343,7 @@ public class ArrayProcessor { } +
    From 3e64cedc0d08358d2273085676e8037d4290e861 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 23:46:36 +0300 Subject: [PATCH 375/448] added listing tags --- source/ch8_filehandling.ptx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index ba5d0cf..329a7f3 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -165,6 +165,8 @@ public class CreateFile {

    Consider the following Python code example that reads each line of the file and prints it to the console.

    + + Data file for reading example
                         1
    @@ -177,8 +179,9 @@ public class CreateFile {
                         8
                     
    - - +
    + + filename = "myfile.txt" try: @@ -192,12 +195,14 @@ public class CreateFile { print("file could not be opened") +

    The following Java code functions very similarly to the previous Python. The main difference here is that unlike Python, in Java we use the Scanner object to iterate through and read lines in the file. You will notice that the structure of the Java code is still similar to the Python; Both use a try and catch statement to read the file and catch any errors.

    - + + import java.io.File; import java.io.FileNotFoundException; @@ -218,6 +223,7 @@ public class CreateFile { } +

    You may have noticed that there are some new methods you haven't seen yet. The hasNextLine() method checks if there is a next line in the file, and returns false if there isn't. This method allows us to iterate over every line till there is no next line. The nextLine() method of the Scanner object returns the next line in the file as a string.

    From 9564a2f690d1c8f1d4471607e160cc60b677a972 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 3 Aug 2026 23:55:06 +0300 Subject: [PATCH 376/448] add listing to text --- source/ch8_filehandling.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 329a7f3..c6597dd 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -163,7 +163,7 @@ public class CreateFile { Let’s take a look at how we can use Python to understand how read file contents in Java. In order to read files generally you iterate through each line in the file and read the line's content. In Java, you read files in a very similar way, however in Java we will use the Scanner class in order to iterate through the lines.

    - Consider the following Python code example that reads each line of the file and prints it to the console. + Consider that reads each line of and prints it to the console.

    Data file for reading example @@ -198,7 +198,7 @@ public class CreateFile {

    - The following Java code functions very similarly to the previous Python. The main difference here is that unlike Python, in Java we use the Scanner object to iterate through and read lines in the file. You will notice that the structure of the Java code is still similar to the Python; Both use a try and catch statement to read the file and catch any errors. + functions very similarly to . The main difference here is that unlike Python, in Java we use the Scanner object to iterate through and read lines in the file. You will notice that the structure of the Java code is still similar to the Python; Both use a try and catch statement to read the file and catch any errors.

    From 09c9d407bcb22bbb5572f03340f2347f5da1e5cb Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 00:01:43 +0300 Subject: [PATCH 377/448] add listing to text --- source/ch8_filehandling.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index c6597dd..b0e0a49 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -167,7 +167,7 @@ public class CreateFile {

    Data file for reading example - +
                         1
                         2
    
    From f46f5efd829f874966e868a4f20f2d665d401d64 Mon Sep 17 00:00:00 2001
    From: Habiba Sorour 
    Date: Tue, 4 Aug 2026 00:27:41 +0300
    Subject: [PATCH 378/448] add listing tags
    
    ---
     source/ch8_filehandling.ptx | 15 +++++++++------
     1 file changed, 9 insertions(+), 6 deletions(-)
    
    diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx
    index ba5d0cf..5399ecd 100644
    --- a/source/ch8_filehandling.ptx
    +++ b/source/ch8_filehandling.ptx
    @@ -75,8 +75,8 @@
             

    We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile, and we will call our class CreateFileObject.

    - - + + import java.io.File; @@ -90,6 +90,7 @@ public class CreateFile { } +

    @@ -105,8 +106,8 @@ public class CreateFile {

    First, lets look at the equivalent Python code:

    - - + + filename = "newfile.txt" print("Attempting to write to '" + filename + "' using 'w' mode...") @@ -120,12 +121,13 @@ public class CreateFile { +

    Now, let's look at Java code that accomplishes the same task:

    - - + + import java.io.File; import java.io.IOException; @@ -148,6 +150,7 @@ public class CreateFile { } +

    From 82168dbff673f1c606a078604862ba0abafc760d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 00:32:07 +0300 Subject: [PATCH 379/448] fixed a broken code --- source/ch7_recursion.ptx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ch7_recursion.ptx b/source/ch7_recursion.ptx index 5f1da65..f04f71c 100644 --- a/source/ch7_recursion.ptx +++ b/source/ch7_recursion.ptx @@ -238,6 +238,7 @@ def main(): main() +

    separation of concerns The key insight here is called the separation of concerns. The public sum_array method provides a user-friendly interface—callers just pass an array and get the sum. Users don't need to know about indexes or how the recursion works internally. The private _sum_helper method handles the recursive logic with the extra parameter needed to track progress through the array. From 92c752881cd7ffda8fb79fd5f76759c8e12fc07b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 00:32:23 +0300 Subject: [PATCH 380/448] add listing in text --- source/ch8_filehandling.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 5399ecd..e1b654d 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -73,7 +73,7 @@

    - We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile, and we will call our class CreateFileObject. + We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile, and we will call our class CreateFileObject. shows the code to create a File object in Java.

    @@ -104,7 +104,7 @@ public class CreateFile {

    - First, lets look at the equivalent Python code: + shows the equivalent code to create a file in Python.

    @@ -124,7 +124,7 @@ public class CreateFile {

    - Now, let's look at Java code that accomplishes the same task: + shows the equivalent code to create a file in Java.

    From b2ca8bc3d153299592bf50600c754dab0a627913 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 00:35:11 +0300 Subject: [PATCH 381/448] fixed a code --- source/ch8_filehandling.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index e1b654d..542ebfb 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -73,7 +73,7 @@

    - We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile, and we will call our class CreateFileObject. shows the code to create a File object in Java. + We will now create a File object. It is important to create a meaningful name for the File object. We will call ours myFile, and we will call our class CreateFileObject. shows the code to create a File object in Java.

    @@ -104,7 +104,7 @@ public class CreateFile {

    - shows the equivalent code to create a file in Python. + shows the equivalent code to create a file in Python.

    @@ -124,7 +124,7 @@ public class CreateFile {

    - shows the equivalent code to create a file in Java. + shows the equivalent code to create a file in Java.

    From bf5eed8ed164d1f0b0cc3d882d4944f30ceab0ae Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 16:14:43 +0300 Subject: [PATCH 382/448] add listing tags --- source/ch8_filehandling.ptx | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index ba5d0cf..6a7002c 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -9,17 +9,22 @@

    File handling is an integral part of programming. Most programming languages have the ability to create, read from, write to, and delete, files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following.

    - + + + import math print(math.sqrt(25)) +

    Delete the first line that says import math and see what happens. The import math is needed. The same program in Java would look like this:

    - + + + import java.lang.Math; @@ -30,6 +35,8 @@ } + +

    Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit import for most libraries, including the Math class and many classes related to file handling.

    @@ -38,34 +45,42 @@ Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods.

    - + + import java.io.File; + +

    The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    - - + + import java.util.Scanner; +

    The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file.

    - + + import java.io.FileWriter; +

    Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files.

    - + + import java.io.IOException; import java.io.FileNotFoundException; - + +
    From 6d385b46cd3d9c79d5673827f87a549722a6fcb5 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 16:16:24 +0300 Subject: [PATCH 383/448] fixed program tags --- source/ch8_filehandling.ptx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 6a7002c..4d98c52 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -36,7 +36,7 @@
    - +

    Note the use of import java.lang.Math; in the above to import the Math class. Unlike Python, Java requires explicit import for most libraries, including the Math class and many classes related to file handling.

    @@ -46,7 +46,7 @@

    - + import java.io.File; @@ -55,7 +55,7 @@ The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    - + import java.util.Scanner; @@ -65,7 +65,7 @@

    - + import java.io.FileWriter; @@ -75,7 +75,7 @@

    - + import java.io.IOException; import java.io.FileNotFoundException; From b51dc8d2cc1ba16a12fa74ad86d61455fb5fd0b5 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 16:24:47 +0300 Subject: [PATCH 384/448] added listing to txt --- source/ch8_filehandling.ptx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 4d98c52..3d6cb05 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -7,7 +7,7 @@
    Class Imports

    - File handling is an integral part of programming. Most programming languages have the ability to create, read from, write to, and delete, files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. Consider the following. + File handling is an integral part of programming. Most programming languages have the ability to create, read from, write to, and delete, files. In Python, most built-in libraries are available without needing to explicitly import additional packages, but some libraries like math do need to be imported. shows an example of importing the math library in Python.

    @@ -20,10 +20,10 @@

    - Delete the first line that says import math and see what happens. The import math is needed. The same program in Java would look like this: + Delete the first line that says import math and see what happens. The import math is needed. The same program in Java would look like .

    - + import java.lang.Math; @@ -42,7 +42,7 @@

    - Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library. This class allows you to create File objects, and use its public methods. + Much like the Math class, in order for your program to work with files you need use import. Java includes a class called File in the io library shown in . This class allows you to create File objects, and use its public methods.

    @@ -52,7 +52,7 @@

    - The Scanner class from the util library will need to be imported if there is any need for a program to read a file. It should be noted that this library is unnecessary if the program will not be reading any data from a file. + The Scanner class from the util library will need to be imported if there is any need for a program to read a file as shown in . It should be noted that this library is unnecessary if the program will not be reading any data from a file.

    @@ -61,7 +61,7 @@

    - The FileWriter class can be used to write to files. In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file. + The FileWriter class can be used to write to files as shown in . In the same way that the Scanner class isn't needed unless the program will read from a file, the FileWriter class isn't needed unless the program will write to a file.

    @@ -71,7 +71,7 @@

    - Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files. IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files. + Finally, these last two classes provide error handling and must be used in tandem with the File class when reading from or writing to files as shown in . IOException handles file creation and writing errors, while FileNotFoundException handles errors when trying to read files.

    From ef07c21cde741d0387734ff20dfd30c75383329b Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Tue, 4 Aug 2026 10:24:56 -0400 Subject: [PATCH 385/448] removed section 2.1 so it could be placed in the most apropriate part in the book --- source/ch2_firstjavaprogram.ptx | 160 -------------------------------- 1 file changed, 160 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index e6f65c4..8fa1e56 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -4,167 +4,7 @@ Java Programs -
    - Classes and Objects -

    - object-oriented programming OOP - Depending on how deep your knowledge of Python and programming in general is, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. If you already have a good understanding of classes and objects in Python, this section may be skipped. -

    - -

    - object - attribute - instance variable - method - Objects in the context of programming are instances of classes. Objects contain attributes (also referred to as instance variables), which are data that describe the object or are associated with the object, and methods, which are special functions used by the object. Methods are typically actions the object can perform, or can be used to make changes to the object's attributes. -

    - -

    - class - constructor - Classes can be thought of as being similar to blueprints or a recipe; they hold details of how to create an instance of an object. Classes contain a special method called a constructor that is used to create an instance of an object. Once the object is created, it will use the class definition to define its attributes and call methods. -

    - -

    - The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python: -

    - - - - - class Dog: - """ A simple Dog class definition. """ - def __init__(self, name, breed, fur_color): - # constructor method to create a Dog object - self.name = name - self.breed = breed - self.fur_color = fur_color - self.trained = False # dogs are not trained by default - print("Dog named " + self.name + " created!") - - def bark(self): - # method to make the dog bark - print(self.name + " says woof!") - - def sit(self): - # method to make the dog sit - if self.trained: # check if the dog has been trained otherwise it will not sit - print(self.name + " sits.") - else: - print(self.name + " has not been trained.") - - def train(self): - # method to train the dog, which will set the trained attribute to True - self.trained = True - - - - -

    - Let's unpack what is going on in . The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is defined within the constructor and is initialized as False. We can also have the __init__ method run any code, such as the print statement informing us that a Dog object was created. -

    - -

    - The next three blocks of code are the class's methods. These include bark(self), sit(self), and train(self). As you can see, the class defines attributes (the variables in the __init__ method) and methods for instances of the Dog class. -

    - -

    - self - Within each method, and for each attribute, you will notice the use of self. This is required in Python. self simply indicates that an attribute or method is being used for a specific instance of an object created with a class. -

    - -

    - Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog: -

    - - - - class Dog: - """ A simple Dog class definition. """ - def __init__(self, name, breed, fur_color): - # constructor method to create a Dog object - self.name = name - self.breed = breed - self.fur_color = fur_color - self.trained = False # dogs are not trained by default - print("Dog named " + self.name + " created!") - - def bark(self): - # method to make the dog bark - print(self.name + " says woof!") - - def sit(self): - # method to make the dog sit - if self.trained: # check if the dog has been trained otherwise it will not sit - print(self.name + " sits.") - else: - print(self.name + " has not been trained.") - - def train(self): - # method to train the dog, which will set the trained attribute to True - self.trained = True - - # Create a Dog object called my_dog - my_dog = Dog("Rex", "pug", "brown") - - - -

    - In the final line of code in , we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to brown. -

    - -

    - Now that we have created a Dog object using the class we defined, we can utilize the class's methods: -

    - - - - - class Dog: - """ A simple Dog class definition. """ - def __init__(self, name, breed, fur_color): - # constructor method to create a Dog object - self.name = name - self.breed = breed - self.fur_color = fur_color - self.trained = False # dogs are not trained by default - print("Dog named " + self.name + " created!") - - def bark(self): - # method to make the dog bark - print(self.name + " says woof!") - - def sit(self): - # method to make the dog sit - if self.trained: - print(self.name + " sits.") - else: - print(self.name + " has not been trained.") - - def train(self): - # method to train the dog, which will set the trained attribute to True - self.trained = True - - - my_dog = Dog("Rex", "pug", "brown") - my_dog.bark() # call the bark method - my_dog.sit() # call the sit method - - - - - -

    - When running , the line Rex has not been trained. will appear in the output when calling the sit() method. Try adding a one or more lines of code so that Rex sits. appears in the output! -

    -
    - -

    - Now, we have a full class definition and have utilized its methods. Class definitions in Java will be covered thoroughly in chapter 6. For now, it is important to know that Python programs can be written without using classes at all. Java, on the other hand, requires all code to reside in a class. This will be discussed in the next section. -

    - -
    Lets look at a Java Program From e7d92cd256a7283a3b9b66ec32428f34d9ee18ab Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Tue, 4 Aug 2026 10:26:12 -0400 Subject: [PATCH 386/448] Took section 2.1 and made it the new section 6.1 --- source/ch6_definingclasses.ptx | 166 +++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 0bb5249..f2c8bf7 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -4,6 +4,172 @@ Classes in Java + + +
    + Classes and Objects + +

    + object-oriented programming OOP + Depending on how deep your knowledge of Python and programming in general is, you may or may not be familiar with classes and objects. These two important Object-Oriented Programming (OOP) concepts will briefly be discussed. If you already have a good understanding of classes and objects in Python, this section may be skipped. +

    + +

    + object + attribute + instance variable + method + Objects in the context of programming are instances of classes. Objects contain attributes (also referred to as instance variables), which are data that describe the object or are associated with the object, and methods, which are special functions used by the object. Methods are typically actions the object can perform, or can be used to make changes to the object's attributes. +

    + +

    + class + constructor + Classes can be thought of as being similar to blueprints or a recipe; they hold details of how to create an instance of an object. Classes contain a special method called a constructor that is used to create an instance of an object. Once the object is created, it will use the class definition to define its attributes and call methods. +

    + +

    + The best way to understand classes and objects is to see them in action. Let's define a Dog class in Python: +

    + + + + + class Dog: + """ A simple Dog class definition. """ + def __init__(self, name, breed, fur_color): + # constructor method to create a Dog object + self.name = name + self.breed = breed + self.fur_color = fur_color + self.trained = False # dogs are not trained by default + print("Dog named " + self.name + " created!") + + def bark(self): + # method to make the dog bark + print(self.name + " says woof!") + + def sit(self): + # method to make the dog sit + if self.trained: # check if the dog has been trained otherwise it will not sit + print(self.name + " sits.") + else: + print(self.name + " has not been trained.") + + def train(self): + # method to train the dog, which will set the trained attribute to True + self.trained = True + + + + +

    + Let's unpack what is going on in . The first line is where we declare the class definition and name it Dog. Next, we have a special method called __init__. This __init__ method is the constructor and is required for every Python class definition. Within the __init__ method, attributes are defined. As you can see, the attributes name, breed, and fur_color must be defined when creating a Dog object using this class definition, but the trained attribute is defined within the constructor and is initialized as False. We can also have the __init__ method run any code, such as the print statement informing us that a Dog object was created. +

    + +

    + The next three blocks of code are the class's methods. These include bark(self), sit(self), and train(self). As you can see, the class defines attributes (the variables in the __init__ method) and methods for instances of the Dog class. +

    + +

    + self + Within each method, and for each attribute, you will notice the use of self. This is required in Python. self simply indicates that an attribute or method is being used for a specific instance of an object created with a class. +

    + +

    + Next, we will use this class to create a new Dog object. We will call this new Dog object my_dog: +

    + + + + class Dog: + """ A simple Dog class definition. """ + def __init__(self, name, breed, fur_color): + # constructor method to create a Dog object + self.name = name + self.breed = breed + self.fur_color = fur_color + self.trained = False # dogs are not trained by default + print("Dog named " + self.name + " created!") + + def bark(self): + # method to make the dog bark + print(self.name + " says woof!") + + def sit(self): + # method to make the dog sit + if self.trained: # check if the dog has been trained otherwise it will not sit + print(self.name + " sits.") + else: + print(self.name + " has not been trained.") + + def train(self): + # method to train the dog, which will set the trained attribute to True + self.trained = True + + # Create a Dog object called my_dog + my_dog = Dog("Rex", "pug", "brown") + + + +

    + In the final line of code in , we have created an object called my_dog. We have initialized its attributes, setting name to Rex, breed to pug, and fur_color to brown. +

    + +

    + Now that we have created a Dog object using the class we defined, we can utilize the class's methods: +

    + + + + + class Dog: + """ A simple Dog class definition. """ + def __init__(self, name, breed, fur_color): + # constructor method to create a Dog object + self.name = name + self.breed = breed + self.fur_color = fur_color + self.trained = False # dogs are not trained by default + print("Dog named " + self.name + " created!") + + def bark(self): + # method to make the dog bark + print(self.name + " says woof!") + + def sit(self): + # method to make the dog sit + if self.trained: + print(self.name + " sits.") + else: + print(self.name + " has not been trained.") + + def train(self): + # method to train the dog, which will set the trained attribute to True + self.trained = True + + + my_dog = Dog("Rex", "pug", "brown") + my_dog.bark() # call the bark method + my_dog.sit() # call the sit method + + + + + +

    + When running , the line Rex has not been trained. will appear in the output when calling the sit() method. Try adding a one or more lines of code so that Rex sits. appears in the output! +

    +
    + +

    + Now, we have a full class definition and have utilized its methods. Class definitions in Java will be covered thoroughly in chapter 6. For now, it is important to know that Python programs can be written without using classes at all. Java, on the other hand, requires all code to reside in a class. This will be discussed later in chapter 6. +

    + +
    + + +
    Defining Classes in Java From 98ebc1d3d11ab14efe594ed9582e4aed4bafd7cd Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 17:34:51 +0300 Subject: [PATCH 387/448] added comments to code blocks --- source/ch8_filehandling.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index aa86bf3..be024d0 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -12,7 +12,7 @@ import math - print(math.sqrt(25)) + print(math.sqrt(25)) # notice the lower case 'm' in math @@ -25,7 +25,7 @@ public class SquareRoot { public static void main(String[] args) { - System.out.println(Math.sqrt(25)); + System.out.println(Math.sqrt(25)); // notice the upper case 'M' in Math } } From f33f44b70e2c184252c53dbc62c3799cba015f54 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 17:58:11 +0300 Subject: [PATCH 388/448] add comments to code --- source/ch8_filehandling.ptx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index aa86bf3..db1cc2c 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -208,18 +208,18 @@ public class CreateFile { import java.io.File; - import java.io.FileNotFoundException; + import java.io.FileNotFoundException; // This import is necessary to handle the exception if the file is not found import java.util.Scanner; public class ReadFile { public static void main (String[] args) { String filename = "myfile.txt"; - try (Scanner fileReader = new Scanner(new File(filename))) { - while (fileReader.hasNextLine()) { + try (Scanner fileReader = new Scanner(new File(filename))) { // try to open the file and create a Scanner object + while (fileReader.hasNextLine()) { // while there is a next line in the file String data = fileReader.nextLine(); System.out.println(data); } } - catch (FileNotFoundException e) { + catch (FileNotFoundException e) { // and catch the exception if the file is not found System.out.println("Error: The file '" + filename + "' was not found."); } } From ffaf7dda5f5408bcc44f6b2211e65cfdc77b0ec1 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 20:23:36 +0300 Subject: [PATCH 389/448] added listing tags --- source/ch8_filehandling.ptx | 63 +++++++++++++++++++++++++++---------- 1 file changed, 47 insertions(+), 16 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index aa86bf3..1117858 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -242,8 +242,9 @@ public class CreateFile {

    Let us create the framework for a class that will write to a file. Let's call this class WriteFile:

    - - + + + import java.io.File; import java.io.FileWriter; import java.io.IOException; @@ -254,39 +255,46 @@ public class CreateFile { } } +

    Next, we will create a FileWriter object. Let's call it myWriter. The equivalent Python code to this operation is:

    - - + + with open("myfile.txt", "w") as myWriter: +

    The Java code to create a FileWriter object is:

    - + + FileWriter myWriter = new FileWriter("myfile.txt"); +

    In this next step, we will use the write() method from the FileWriter class. This method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types. First, how this step is completed with Python:

    - - + + my_writer.write("File successfully updated!") +

    And the Java equivalent. This is almost completely identical except for the second line, which is very important!

    - + + myWriter.write("File successfully updated!"); myWriter.close(); +

    @@ -298,7 +306,8 @@ public class CreateFile { Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example:

    - + + try: with open("myfile.txt", "w") as my_writer: my_writer.write("File successfully updated!") @@ -308,12 +317,14 @@ public class CreateFile { import traceback traceback.print_exc() +

    And the equivalent Java code:

    - + + try { FileWriter myWriter = new FileWriter("myfile.txt"); myWriter.write("File successfully updated!"); @@ -324,16 +335,22 @@ public class CreateFile { e.printStackTrace(); } +

    And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code:

    + + Data file for writing example
                         
                     
    - +
    + + + try: with open("myfile.txt", "w") as my_writer: @@ -345,10 +362,13 @@ public class CreateFile { traceback.print_exc() +

    The completed Java code:

    + + Data file for writing example
                         
    @@ -374,6 +394,7 @@ public class CreateFile {
                 }
                  
             
    +        
     
             
                 

    @@ -385,19 +406,26 @@ public class CreateFile { Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument:

    - + + FileWriter myWriter = new FileWriter("myfile.txt", true); // true enables append mode +

    Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument:

    - + + Data file for writing example +
                         
                     
    - +
    + + + import java.io.FileWriter; import java.io.IOException; @@ -417,6 +445,7 @@ public class CreateFile { } +

    Then if we run the program twice, the contents of myfile.txt would be: @@ -430,15 +459,17 @@ public class CreateFile { This doesn't look very good! If we want each additional write to appear on a new line? A simple solution is to use the \n newline character:

    - + + myWriter.write("File successfully updated!\n"); // Added newline character myWriter.close(); +

    Running the code with the newline character twice will result in the following contents in myfile.txt:

    - +
                 File successfully updated!
                 File successfully updated!
    
    From 54e5c7153b625f04052079a4cdfac70d0135a558 Mon Sep 17 00:00:00 2001
    From: Habiba Sorour 
    Date: Tue, 4 Aug 2026 20:25:06 +0300
    Subject: [PATCH 390/448] fixed pre tags, to add linking
    
    ---
     source/ch8_filehandling.ptx | 15 ++++++++++-----
     1 file changed, 10 insertions(+), 5 deletions(-)
    
    diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx
    index 1117858..8cfca92 100644
    --- a/source/ch8_filehandling.ptx
    +++ b/source/ch8_filehandling.ptx
    @@ -451,9 +451,11 @@ public class CreateFile {
                 Then if we run the program twice, the contents of myfile.txt would be:
             

    -
    +        +        
                 File successfully updated!File successfully updated!
    -        
    + +

    This doesn't look very good! If we want each additional write to appear on a new line? A simple solution is to use the \n newline character: @@ -469,11 +471,14 @@ public class CreateFile {

    Running the code with the newline character twice will result in the following contents in myfile.txt:

    - -
    +
    +        +        
                 File successfully updated!
                 File successfully updated!
    -        
    +
    +
    +
    From 29827e379cd0132806d8cb98a1d196c586fd9245 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Tue, 4 Aug 2026 13:49:06 -0400 Subject: [PATCH 391/448] added listing tags to the appropriate places and in the appropriate paragraphs. --- source/ch8_filehandling.ptx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index aa86bf3..05acc96 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -449,10 +449,10 @@ public class CreateFile { Deleting Files

    - Lastly, we will take a look at using Java to delete a file. This is pretty straight-forward and follows the structure used to create files. Here is the CreateFile class from before that will be used to create a file that we will soon delete: + Lastly, we will take a look at using Java to delete a file. This is pretty straight-forward and follows the structure used to create files. shows the CreateFile class from before that will be used to create a file that we will soon delete:

    - + import java.io.File; import java.io.IOException; @@ -475,15 +475,17 @@ public class CreateFile { } +

    - And finally, we have Java code that deletes a file. We will call this class DeleteFile: + And finally, shows the Java code that deletes a file. We will call this class DeleteFile:

    - - + + + import java.io.File; import java.io.IOException; @@ -508,7 +510,7 @@ public class DeleteFile { - +

    Note that this is almost identical to the code within the try block of the CreateFile class that we made earlier. The key difference is the use of the delete() method which will delete the file with the name that was linked to the myFile object. Similar to the createNewFile() method, it will return true if the file exists and can be deleted, and false if the file cannot be deleted.

    From c0fb145c036c81c6005e5761c23a5aaa87e61c86 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 21:04:24 +0300 Subject: [PATCH 392/448] added listing to text --- source/ch8_filehandling.ptx | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 8cfca92..32d2b8b 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -240,7 +240,7 @@ public class CreateFile {

    - Let us create the framework for a class that will write to a file. Let's call this class WriteFile: + shows the framework for a class that will write to a file. Let's call this class WriteFile.

    @@ -258,7 +258,7 @@ public class CreateFile {

    - Next, we will create a FileWriter object. Let's call it myWriter. The equivalent Python code to this operation is: + Next, we will create a FileWriter object. Let's call it myWriter. shows the code to create a myWriter object in Python.

    @@ -267,7 +267,7 @@ public class CreateFile {

    - The Java code to create a FileWriter object is: + shows the Java code to create a FileWriter object. Note that the FileWriter object is created with the name of the file to write to as an argument. If the file does not exist, it will be created. If it does exist, it will be overwritten.:

    @@ -277,7 +277,7 @@ public class CreateFile {

    - In this next step, we will use the write() method from the FileWriter class. This method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types. First, how this step is completed with Python: + In this next step, we will use the write() method from the FileWriter class. This method will take any data within the parenthesis and write that data to the file selected. The write() method takes most standard data types. The shows the code to write to a file in Python.

    @@ -286,7 +286,7 @@ public class CreateFile {

    - And the Java equivalent. This is almost completely identical except for the second line, which is very important! + shows the Java equivalent. This is almost completely identical except for the second line, which is very important!

    @@ -303,7 +303,7 @@ public class CreateFile {

    - Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. First, a Python example: + Next, we will again add the required try/catch blocks utilizing the IOException class. Just like with creating files, the program will not compile without these crucial additions! We will also add some print statements to inform us of the success of the file write operation. shows the code to write to a file in Python.

    @@ -320,7 +320,7 @@ public class CreateFile {

    - And the equivalent Java code: + shows the Java equivalent.

    @@ -338,7 +338,7 @@ public class CreateFile {

    - And that's it! We will add our code to the foundational code for a complete program. First, an example of equivalent Python code: + And that's it! We will add our code to the foundational code for a complete program. First, shows the completed Python code.

    Data file for writing example @@ -365,7 +365,7 @@ public class CreateFile {

    - The completed Java code: + shows the completed Java code.

    Data file for writing example @@ -403,7 +403,7 @@ public class CreateFile {

    - Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument: + Speaking of overwriting data, what if we want to append text to the end of any text already in myfile.txt? To accomplish this, we can pass a boolean argument along with the file name when creating a new data argument as shown in .

    @@ -413,8 +413,8 @@ public class CreateFile {

    - Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument: -

    + Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument as shown in . + Data file for writing example @@ -448,7 +448,7 @@ public class CreateFile {

    - Then if we run the program twice, the contents of myfile.txt would be: + Then if we run the program twice, the contents of myfile.txt would be as shows.

    @@ -458,7 +458,7 @@ public class CreateFile {

    - This doesn't look very good! If we want each additional write to appear on a new line? A simple solution is to use the \n newline character: + This doesn't look very good! If we want each additional write to appear on a new line? A simple solution is to use the \n newline character as shows.

    @@ -469,7 +469,7 @@ public class CreateFile {

    - Running the code with the newline character twice will result in the following contents in myfile.txt: + Running the code with the newline character twice will result in the following contents in myfile.txt as shows.

    From 79437de7b191274c043e954591161bbac52ef31d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 21:18:19 +0300 Subject: [PATCH 393/448] fixed xml:id tag --- source/ch8_filehandling.ptx | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 32d2b8b..167c6d3 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -340,9 +340,9 @@ public class CreateFile {

    And that's it! We will add our code to the foundational code for a complete program. First, shows the completed Python code.

    - + Data file for writing example - +
                         
                     
    @@ -350,7 +350,7 @@ public class CreateFile {
    - + try: with open("myfile.txt", "w") as my_writer: @@ -367,14 +367,14 @@ public class CreateFile {

    shows the completed Java code.

    - + Data file for writing example - +
                         
                     
    - + import java.io.FileWriter; import java.io.IOException; @@ -415,9 +415,9 @@ public class CreateFile {

    Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument as shown in . - + Data file for writing example - +

                         
                     
    @@ -425,7 +425,7 @@ public class CreateFile {
    - + import java.io.FileWriter; import java.io.IOException; From 47d278a30309ab553dd9bb9a8e394e58cef11ab0 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 21:19:08 +0300 Subject: [PATCH 394/448] added a missing listing --- source/ch8_filehandling.ptx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 167c6d3..7df8f92 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -374,7 +374,10 @@ public class CreateFile { - + + + + import java.io.FileWriter; import java.io.IOException; @@ -394,7 +397,8 @@ public class CreateFile { } - + +

    From 13467a6ff31c9f698f29d44c240b3351cacd78d6 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 21:20:11 +0300 Subject: [PATCH 395/448] fixed a build error --- source/ch8_filehandling.ptx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 7df8f92..d86d6e5 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -418,6 +418,7 @@ public class CreateFile {

    Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument as shown in . +

    Data file for writing example From b56a824b429b495b0e1a80a4ed896c6c7cf11c81 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 22:00:33 +0300 Subject: [PATCH 396/448] fixed issue with datafile block --- source/ch8_filehandling.ptx | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index d86d6e5..eba0f10 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -340,9 +340,10 @@ public class CreateFile {

    And that's it! We will add our code to the foundational code for a complete program. First, shows the completed Python code.

    - + + Data file for writing example - +
                         
                     
    @@ -367,9 +368,9 @@ public class CreateFile {

    shows the completed Java code.

    - + Data file for writing example - +
                         
                     
    @@ -395,7 +396,7 @@ public class CreateFile { } } } -
    +
    ~
    @@ -420,9 +421,9 @@ public class CreateFile { Now, when we use write() method like before, the text will be appended if there is already tSext in the document. If we were to update our code to include the boolean argument as shown in .

    - + Data file for writing example - +
                         
                     
    @@ -467,7 +468,7 @@ public class CreateFile {

    - + myWriter.write("File successfully updated!\n"); // Added newline character myWriter.close(); From 2560b4224b7b42c937be91b98ee658a1e95e5942 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 22:03:57 +0300 Subject: [PATCH 397/448] fixed data tag --- source/ch8_filehandling.ptx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index db1cc2c..7543a4c 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -166,11 +166,11 @@ public class CreateFile { Let’s take a look at how we can use Python to understand how read file contents in Java. In order to read files generally you iterate through each line in the file and read the line's content. In Java, you read files in a very similar way, however in Java we will use the Scanner class in order to iterate through the lines.

    - Consider that reads each line of and prints it to the console. + Consider that reads each line of and prints it to the console.

    - + Data file for reading example - +
                         1
                         2
    
    From dd0522f3e16f57f58884d0150066b8617a9dac81 Mon Sep 17 00:00:00 2001
    From: Habiba Sorour 
    Date: Tue, 4 Aug 2026 23:01:11 +0300
    Subject: [PATCH 398/448] added listing tag
    
    ---
     source/ch9_commonmistakes.ptx | 5 +++--
     1 file changed, 3 insertions(+), 2 deletions(-)
    
    diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx
    index 1a041b9..961aeb5 100644
    --- a/source/ch9_commonmistakes.ptx
    +++ b/source/ch9_commonmistakes.ptx
    @@ -23,8 +23,9 @@
             

    - Consider the following example where we have a method that multiplies a number by two. We can add print statements to help us debug the code: + Consider the following example where we have a method that multiplies a number by two. We can add print statements to help us debug the code and verify that the method is being called correctly and returning the expected result as shown below in .

    + // DebugExample.java @@ -46,7 +47,7 @@

    - In the example above, System.out.println() is used inside both main and multiplyByTwo() to trace what values are being passed and returned. This kind of print-based debugging can quickly reveal logic errors, unexpected behavior, or whether a method is even being called. However, overuse of this technique will often take more time than using the debugging tools that are built into your IDE. + In , System.out.println() is used inside both main and multiplyByTwo() to trace what values are being passed and returned. This kind of print-based debugging can quickly reveal logic errors, unexpected behavior, or whether a method is even being called. However, overuse of this technique will often take more time than using the debugging tools that are built into your IDE.

    Useful tools in the built-in Java debugger can help you step through your code, inspect variables, and evaluate expressions at runtime. Familiarizing yourself with these tools can greatly enhance your debugging efficiency. From ca7ef224558af8a1379f713c05b9ce240a81f653 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 23:01:57 +0300 Subject: [PATCH 399/448] added a line --- source/ch9_commonmistakes.ptx | 1 + 1 file changed, 1 insertion(+) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 961aeb5..6851db5 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -46,6 +46,7 @@ }//End of class +

    In , System.out.println() is used inside both main and multiplyByTwo() to trace what values are being passed and returned. This kind of print-based debugging can quickly reveal logic errors, unexpected behavior, or whether a method is even being called. However, overuse of this technique will often take more time than using the debugging tools that are built into your IDE.

    From ab083d5030c248faad3cd8c87509c0571c243ba9 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 23:02:45 +0300 Subject: [PATCH 400/448] added a line --- source/ch9_commonmistakes.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 6851db5..dfeeed5 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -23,9 +23,9 @@

    - Consider the following example where we have a method that multiplies a number by two. We can add print statements to help us debug the code and verify that the method is being called correctly and returning the expected result as shown below in . + Consider the following example where we have a method that multiplies a number by two. We can add print statements to help us debug the code and verify that the method is being called correctly and returning the expected result as shown below in .

    - + // DebugExample.java From 05dde6e11129f6406336a04f623659500b60ba3b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 4 Aug 2026 23:03:18 +0300 Subject: [PATCH 401/448] added a line to close tag --- source/ch9_commonmistakes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index dfeeed5..9ff47d7 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -23,7 +23,7 @@

    - Consider the following example where we have a method that multiplies a number by two. We can add print statements to help us debug the code and verify that the method is being called correctly and returning the expected result as shown below in . + Consider the following example where we have a method that multiplies a number by two. We can add print statements to help us debug the code and verify that the method is being called correctly and returning the expected result as shown below in .

    From 437cd88bd07f044ae6f9f9feed359e4ad96e2a2e Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Wed, 5 Aug 2026 10:48:36 -0400 Subject: [PATCH 402/448] Added listing tag to make the text more organized --- source/ch9_commonmistakes.ptx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 9ff47d7..6fb6156 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -87,8 +87,9 @@ Forgetting to declare your variables

    In Python, you can use a variable without declaring it first, but in Java, you must declare all variables before using them. - If you try to use a variable that has not been declared, the Java compiler will give you an error message like this: + shows If you try to use a variable that has not been declared, the Java compiler will give you an error message like this:

    + import java.util.ArrayList; // Import necessary class @@ -108,6 +109,7 @@ } // End of class +

    The 'cannot find symbol' error for the variable count on line 6 indicates that count was used before it was declared within the Histo class. In Java, all variables must be explicitly declared with a data type (e.g., int, String, ArrayList<Integer>) before they can be assigned a value or referenced in any way. The arrow in the error message points to where the undeclared variable count was first encountered. To resolve this, count needs to be declared with its appropriate type (e.g., ArrayList<Integer> count;) before any attempt to initialize or use it.

    From 7799fe0958405f35a0078e862419ac9e23e87f8b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 5 Aug 2026 18:13:09 +0300 Subject: [PATCH 403/448] add listing tags --- source/ch9_commonmistakes.ptx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 9ff47d7..0a78c3c 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -63,6 +63,7 @@

    A common mistake in Java is to forget that every statement must end with a semicolon (;).

    + // Histo.java @@ -77,6 +78,7 @@ }//End of class +

    The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon.

    From 37789ec19fb75a12c78bcbbc9d1f5a19fd3bbe9a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 5 Aug 2026 18:13:26 +0300 Subject: [PATCH 404/448] add listing to txt --- source/ch9_commonmistakes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 0a78c3c..f7b1bbb 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -80,7 +80,7 @@

    - The error "';' expected" on line 7 of Histo.java means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon. + The error "';' expected" on line 7 of Histo.java in means that a semicolon is missing at the end of the statement Scanner data = null. In Java, every statement must be terminated with a semicolon (;) to indicate its completion. The arrow points to null because that's where the compiler expected to find the semicolon.

    From f52b6100ac6e62fa6597f1f0763798b6ef5e0890 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Wed, 5 Aug 2026 11:59:51 -0400 Subject: [PATCH 405/448] added listing tag to make the text more organized --- source/ch9_commonmistakes.ptx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 9ff47d7..446e95a 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -117,8 +117,9 @@
    Not importing a class

    - In Python, many classes are available by default. However, in Java, you must explicitly import most classes from external packages that you want to use. + In Python, many classes are available by default. However, in Java, you must explicitly import most classes from external packages that you want to use . If you forget to import a class, the compiler will give you an error message like this:

    + @@ -133,6 +134,7 @@ } // End of class +

    You may notice that this error message looks similar to the previous one, however, it has an entirely different cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;.

    From bafd5ef921888e38ba84b6fdf510b268c3a01a0b Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 5 Aug 2026 20:26:50 +0300 Subject: [PATCH 406/448] add listing tags --- source/ch9_commonmistakes.ptx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index c14c8cb..1e92589 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -148,6 +148,7 @@

    Unlike Python, where you can create a new object without explicitly using a keyword, Java requires the new keyword to instantiate a new object.

    + // Histo.java // The filename for this example @@ -164,6 +165,7 @@ } // End of class +

    This error message occurs when you forget to use the new keyword to instantiate an object. Specifically, on line 8 of Histo.java, data = Scanner(new File("test.dat")); leads to a 'cannot find symbol' error. From 53bf7525a19ab0c35578886203bf1ddc592c2523 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 5 Aug 2026 20:27:16 +0300 Subject: [PATCH 407/448] add listing to txt --- source/ch9_commonmistakes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 1e92589..61502a6 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -167,7 +167,7 @@

    - This error message occurs when you forget to use the new keyword to instantiate an object. + The error message in occurs when you forget to use the new keyword to instantiate an object. Specifically, on line 8 of Histo.java, data = Scanner(new File("test.dat")); leads to a 'cannot find symbol' error. While the message states 'symbol: method Scanner(File)', this can be misleading. Java incorrectly interprets Scanner() as an attempt to call a static method named Scanner within the Histo class From ff0772dd5e771693f79e0d69b4523bcb10d5858a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 5 Aug 2026 22:19:44 +0300 Subject: [PATCH 408/448] added an exercise code block --- source/ch2_firstjavaprogram.ptx | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 8fa1e56..974964b 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -366,6 +366,39 @@ Hello World!

    + + + + +

    + Now that we have seen the hello world program in both Python and Java, use the ideas present in this chapter to write a Java program that prints your name and your favorite color. +

    + + +public class NameColor { + public static void main(String[] args) { + // Write your code here + + } +} + + +
    + + + +public class NameColor { + public static void main(String[] args) { + System.out.println("Name: Alex"); + System.out.println("Favorite Color: Blue"); + } +} + + + +
    + + From 1bf49ad56c5662be958be25f9fc12b48fb07dc8a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Wed, 5 Aug 2026 22:22:05 +0300 Subject: [PATCH 409/448] unify solution --- source/ch2_firstjavaprogram.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 974964b..cbf8ca3 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -389,8 +389,8 @@ public class NameColor { public class NameColor { public static void main(String[] args) { - System.out.println("Name: Alex"); - System.out.println("Favorite Color: Blue"); + System.out.println("Name: your name"); + System.out.println("Favorite Color: your favorite color"); } } From 0366862353ac80f5a61cf5de1dee172bc11bd88e Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 00:10:04 +0300 Subject: [PATCH 410/448] added a question to 3.1 --- source/ch3_javadatatypes.ptx | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index cd27074..a526570 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -230,6 +230,44 @@ public class TempConv {

    So, what exactly does the import statement do? What it does is tell the compiler that we are going to use a shortened version of the class’s name. In this example we are going to use the class java.util.Scanner but we can refer to it as just Scanner. We could use the java.util.Scanner class without any problem and without any import statement, provided that we always referred to it by its full name. As an experiment, you may want to try this yourself. Remove the import statement and change the string Scanner to java.util.Scanner in the rest of the code. The program should still compile and run.

    + + + +

    + Write a program that converts km to miles. Use the Scanner class to read the input. Note that 1 km is approximately equal to 0.621 miles. +

    + + +public class KmToMiles { + public static void main(String[] args) { + // write your code here + } +} + + +
    + + + +import java.util.Scanner; +public class KmToMiles { + public static void main(String[] args) { + Double kilometers; + Double miles; + Scanner input; + input = new Scanner(System.in); + System.out.print("Enter distance in kilometers: "); + kilometers = input.nextDouble(); + miles = kilometers * 0.621; + System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); + } +} + + + +
    + + From c117091afd56e42f2f6d78f428a3b17367ba44f2 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 00:21:39 +0300 Subject: [PATCH 411/448] push to end of chapter --- source/ch3_javadatatypes.ptx | 75 ++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index a526570..0b300b0 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -231,43 +231,6 @@ public class TempConv { So, what exactly does the import statement do? What it does is tell the compiler that we are going to use a shortened version of the class’s name. In this example we are going to use the class java.util.Scanner but we can refer to it as just Scanner. We could use the java.util.Scanner class without any problem and without any import statement, provided that we always referred to it by its full name. As an experiment, you may want to try this yourself. Remove the import statement and change the string Scanner to java.util.Scanner in the rest of the code. The program should still compile and run.

    - - -

    - Write a program that converts km to miles. Use the Scanner class to read the input. Note that 1 km is approximately equal to 0.621 miles. -

    - - -public class KmToMiles { - public static void main(String[] args) { - // write your code here - } -} - - -
    - - - -import java.util.Scanner; -public class KmToMiles { - public static void main(String[] args) { - Double kilometers; - Double miles; - Scanner input; - input = new Scanner(System.in); - System.out.print("Enter distance in kilometers: "); - kilometers = input.nextDouble(); - miles = kilometers * 0.621; - System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); - } -} - - - -
    - - @@ -317,6 +280,44 @@ public class KmToMiles {

    The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. In our temperature converter, the calculation (fahr - 32) * 5.0/9.0 works correctly because 5.0 and 9.0 are treated as double values, preventing the integer division that would occur if we had written 5/9, which would result in 0.

    + + + + +

    + Write a program that converts km to miles. Use the Scanner class to read the input. Note that 1 km is approximately equal to 0.621 miles. +

    + + +public class KmToMiles { + public static void main(String[] args) { + // write your code here + } +} + + +
    + + + +import java.util.Scanner; +public class KmToMiles { + public static void main(String[] args) { + Double kilometers; + Double miles; + Scanner input; + input = new Scanner(System.in); + System.out.print("Enter distance in kilometers: "); + kilometers = input.nextDouble(); + miles = kilometers * 0.621; + System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); + } +} + + + +
    + From d82ee5bfd7bbf6e406973a16cb3cb99bdac5d637 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 00:41:12 +0300 Subject: [PATCH 412/448] added a text box for input --- source/ch3_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 0b300b0..859fc5b 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -294,7 +294,7 @@ public class KmToMiles { // write your code here } } - + From 39eac5038c727de71c80dff91e1e86707483354a Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Thu, 6 Aug 2026 09:11:03 -0400 Subject: [PATCH 413/448] added refrence to section 9.3 where it needed to be placed --- source/ch9_commonmistakes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index f28364f..95cc765 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -140,7 +140,7 @@

    - You may notice that this error message looks similar to the previous one, however, it has an entirely different cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;. + You may notice that this error message looks similar to the previous one , however, it has an entirely different cause. In Java, classes like Scanner that are part of external packages (like java.util) must be explicitly imported into your source file. Java does not automatically recognize these classes. To resolve this error, you need to add an import statement for the Scanner class at the beginning of your Histo.java file, typically import java.util.Scanner;.

    From 3c7c9db06645bd0fac1a7a024931b89804256db6 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Thu, 6 Aug 2026 09:45:30 -0400 Subject: [PATCH 414/448] Added listing tag to chapter9.6 to make the text more organized --- source/ch9_commonmistakes.ptx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 61502a6..04794f3 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -183,6 +183,8 @@

    Java is a statically typed language, meaning you must specify the type of objects that can be stored in a container like an ArrayList. If you forget to declare the type, the compiler will give you an error.

    + + // UncheckedWarningDemo.java @@ -202,6 +204,7 @@ } // End of class +

    This is a compiler warning, not an error, indicating a potential type safety issue. It occurs because you are calling the add() method on rawList, which is an ArrayList used as a raw type (i.e., without specifying a generic type like <String> or <Integer>).

    From 7550ad240d1d9e2d8d4c284cf648749f96e99226 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 16:55:00 +0300 Subject: [PATCH 415/448] changed to parson's problem --- source/ch2_firstjavaprogram.ptx | 73 +++++++++++++++++++-------------- 1 file changed, 43 insertions(+), 30 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index cbf8ca3..2289adb 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -368,36 +368,6 @@ Hello World! - - -

    - Now that we have seen the hello world program in both Python and Java, use the ideas present in this chapter to write a Java program that prints your name and your favorite color. -

    - - -public class NameColor { - public static void main(String[] args) { - // Write your code here - - } -} - - -
    - - - -public class NameColor { - public static void main(String[] args) { - System.out.println("Name: your name"); - System.out.println("Favorite Color: your favorite color"); - } -} - - - -
    - @@ -509,6 +479,49 @@ public class NameColor { + + + +

    + Construct a complete Java program that prints your name and your favorite color to the console. + Drag the blocks into the correct order on the right. +

    +
    + + + public class NameColor { + + + + public static void main(String[] args) { + + + + System.out.println("Name: Alex"); + System.out.println("Favorite Color: Blue"); + + + + } + } + + + + system.out.println(Name: Alex); + System.out.println("Favorite Color: Blue") + + + + def main(args): + + + + public static main(String[] args) { + + + +
    + \ No newline at end of file From 1389b473141cd1cf45799cb8692bc2427b6bf447 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 18:56:09 +0300 Subject: [PATCH 416/448] added or tags --- source/ch2_firstjavaprogram.ptx | 42 +++++++++++++++++---------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index 2289adb..c1cb7a1 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -480,7 +480,7 @@ Hello World! - +

    Construct a complete Java program that prints your name and your favorite color to the console. @@ -489,36 +489,38 @@ Hello World! - public class NameColor { + + public class NameColor { + + + class NameColor { + - + - public static void main(String[] args) { + + public static void main(String[] args) { + + + public static main(String[] args) { + - System.out.println("Name: Alex"); - System.out.println("Favorite Color: Blue"); + + System.out.println("Name: Alex"); + System.out.println("Favorite Color: Blue"); + + + system.out.println(Name: Alex); + System.out.println("Favorite Color: Blue") + } } - - - system.out.println(Name: Alex); - System.out.println("Favorite Color: Blue") - - - - def main(args): - - - - public static main(String[] args) { - - From 3b4875dc53b051a1efeaecfe3c942dc86853372d Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 20:35:03 +0300 Subject: [PATCH 417/448] added parson related to section 3.1 --- source/ch3_javadatatypes.ptx | 101 ++++++++++++++++++++++------------- 1 file changed, 65 insertions(+), 36 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 859fc5b..51f69cd 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -280,43 +280,7 @@ public class TempConv {

    The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. In our temperature converter, the calculation (fahr - 32) * 5.0/9.0 works correctly because 5.0 and 9.0 are treated as double values, preventing the integer division that would occur if we had written 5/9, which would result in 0.

    - - - -

    - Write a program that converts km to miles. Use the Scanner class to read the input. Note that 1 km is approximately equal to 0.621 miles. -

    - - -public class KmToMiles { - public static void main(String[] args) { - // write your code here - } -} - - -
    - - - -import java.util.Scanner; -public class KmToMiles { - public static void main(String[] args) { - Double kilometers; - Double miles; - Scanner input; - input = new Scanner(System.in); - System.out.print("Enter distance in kilometers: "); - kilometers = input.nextDouble(); - miles = kilometers * 0.621; - System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); - } -} - - - -
    @@ -1171,6 +1135,71 @@ public class HistoMap {
    + + +

    + Construct a complete Java program that reads a distance in kilometers from the user and converts it to miles. + Drag the blocks into the correct order on the right. +

    +
    + + + + + import java.util.Scanner; + + + import Scanner; + + + + + public class KmToMiles { + + + + public static void main(String[] args) { + + + + + Scanner input = new Scanner(System.in); + + + Scanner input = new Scanner(System.out); + + + + + + System.out.print("Enter distance in kilometers: "); + double kilometers = input.nextDouble(); + + + System.out.print("Enter distance in kilometers: "); + double kilometers = input.readDouble(); + + + + + + double miles = kilometers * 0.621; + + + double miles = kilometers / 0.621; + + + + + System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); + + + } + } + + +
    + \ No newline at end of file From a01cde69e23d92514fb55bb9007d212e3cc2e05e Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 21:42:46 +0300 Subject: [PATCH 418/448] added for 3.2 --- source/ch3_javadatatypes.ptx | 182 +++++++++++++++++++++++------------ 1 file changed, 118 insertions(+), 64 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 51f69cd..1933e20 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -280,6 +280,69 @@ public class TempConv {

    The general rule in Java is that you must decide what kind of an object your variable is going to reference and then you must declare that variable before you use it. In our temperature converter, the calculation (fahr - 32) * 5.0/9.0 works correctly because 5.0 and 9.0 are treated as double values, preventing the integer division that would occur if we had written 5/9, which would result in 0.

    + + + +

    + Construct a complete Java program that reads a distance in kilometers from the user and converts it to miles. + Drag the blocks into the correct order on the right. +

    +
    + + + + + import java.util.Scanner; + + + import Scanner; + + + + + public class KmToMiles { + + + + public static void main(String[] args) { + + + + + Scanner input = new Scanner(System.in); + + + Scanner input = new Scanner(System.out); + + + + + + double kilometers = input.nextDouble(); + + + double kilometers = input.readDouble(); + + + + + + double miles = kilometers * 0.621; + + + double miles = kilometers / 0.621; + + + + + System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); + + + } + } + + +
    @@ -449,6 +512,61 @@ void main() {

    In , we first create a Dog object and assign it to an Animal reference (upcasting). Then, we check if the Animal reference is actually pointing to a Dog object before downcasting it back to a Dog reference.

    + + + +

    + Construct a program that safely downcasts a Shape reference to a Circle object and calls a subclass method. + Drag the blocks into the correct order on the right. +

    +
    + + + class Shape { + ... + } + + + + class Circle extends Shape { + public void drawCircle() { System.out.println("Circle"); } + } + + + + public class Downcast { + public static void main(String[] args) { + Shape myShape = new Circle(); + + + + + if (myShape instanceof Circle) { + + + if (myShape.equals(Circle)) { + + + + + + Circle myCircle = (Circle) myShape; + myCircle.drawCircle(); + + + Circle myCircle = myShape; + myCircle.drawCircle(); + + + + + } + } + } + + +
    + @@ -1135,70 +1253,6 @@ public class HistoMap {
    - - -

    - Construct a complete Java program that reads a distance in kilometers from the user and converts it to miles. - Drag the blocks into the correct order on the right. -

    -
    - - - - - import java.util.Scanner; - - - import Scanner; - - - - - public class KmToMiles { - - - - public static void main(String[] args) { - - - - - Scanner input = new Scanner(System.in); - - - Scanner input = new Scanner(System.out); - - - - - - System.out.print("Enter distance in kilometers: "); - double kilometers = input.nextDouble(); - - - System.out.print("Enter distance in kilometers: "); - double kilometers = input.readDouble(); - - - - - - double miles = kilometers * 0.621; - - - double miles = kilometers / 0.621; - - - - - System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); - - - } - } - - -
    From 0f25a902e270a504ac8d5817ab5677b2d7c6ab61 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Thu, 6 Aug 2026 22:22:50 +0300 Subject: [PATCH 419/448] fixed spacing --- source/ch3_javadatatypes.ptx | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 1933e20..a9ae75a 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -308,36 +308,42 @@ public class TempConv { + Scanner input; + Double kilometers; + Double miles; + + + - Scanner input = new Scanner(System.in); + input = new Scanner(System.in); - Scanner input = new Scanner(System.out); + input = new Scanner(System.out); - + - double kilometers = input.nextDouble(); + kilometers = input.nextDouble(); - double kilometers = input.readDouble(); + kilometers = input.readDouble(); - + - double miles = kilometers * 0.621; + miles = kilometers * 0.621; - double miles = kilometers / 0.621; + miles = kilometers / 0.621; - + System.out.println(kilometers + " kilometers is equal to " + miles + " miles."); - + } } @@ -529,8 +535,10 @@ void main() { class Circle extends Shape { - public void drawCircle() { System.out.println("Circle"); } - } + public void drawCircle() { + System.out.println("Circle"); + } + } From d9855422aff42979e50d94a723c1f6f731ae1fa5 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 00:08:44 +0300 Subject: [PATCH 420/448] issue_372_listing --- source/ch3_javadatatypes.ptx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index a9ae75a..bd2a019 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -813,7 +813,7 @@ public class Histo {

    - Now, let’s look at what is happening in the Java source. As usual, we declare the variables we are going to use at the beginning of the method. In this example we are declaring a Scanner variable called data, an integer called idx and an ArrayList called count. However, there is a new twist to the ArrayList declaration. Unlike Python where lists can contain just about anything, in Java we let the compiler know what kind of objects our array list is going to contain. In this case the ArrayList will contain Integers. The syntax we use to declare what kind of object the list will contain is the <Type> syntax. + Now, let’s look at what is happening in the Java source. As usual, we declare the variables we are going to use at the beginning of the method. In , we are declaring a Scanner variable called data, an integer called idx and an ArrayList called count. However, there is a new twist to the ArrayList declaration. Unlike Python where lists can contain just about anything, in Java we let the compiler know what kind of objects our array list is going to contain. In this case the ArrayList will contain Integers. The syntax we use to declare what kind of object the list will contain is the <Type> syntax.

    @@ -834,7 +834,7 @@ public class Histo {

    - Lines 13—20 are required to open the file. Why so many lines to open a file in Java? The additional code mainly comes from the fact that Java forces you to reckon with the possibility that the file you want to open is not going to be there. If you attempt to open a file that is not there you will get an error. A try/catch construct allows us to try things that are risky, and gracefully recover from an error if one occurs. shows the general structure of a try/catch block. + Lines 13—20 in are required to open the file. Why so many lines to open a file in Java? The additional code mainly comes from the fact that Java forces you to reckon with the possibility that the file you want to open is not going to be there. If you attempt to open a file that is not there you will get an error. A try/catch construct allows us to try things that are risky, and gracefully recover from an error if one occurs. shows the general structure of a try/catch block.

    @@ -850,11 +850,11 @@ public class Histo {

    - Notice that in line 16 we are catching an IOException. In fact, we will see later that we can have multiple catch blocks to catch different types of exceptions. If we want to be lazy and catch any old exception we can catch an Exception which is the parent of all exceptions. However, catching Exception is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program. + Notice that in line 16 in , we are catching an IOException. In fact, we will see later that we can have multiple catch blocks to catch different types of exceptions. If we want to be lazy and catch any old exception we can catch an Exception which is the parent of all exceptions. However, catching Exception is a terrible practice, since you may inadvertently catch exceptions you do not intend to, making it harder to identify bugs in your program.

    - On line 22 we create our ArrayList and give it an initial size of 10. Strictly speaking, it is not necessary to give the ArrayList any size. It will grow or shrink dynamically as needed, just like a list in Python. On line 23 we start the first of three loops. The for loop on lines 23–25 serves the same purpose as the Python statement count = [0]*10, that is it initializes the first 10 positions in the ArrayList to hold the value 0. + On line 22 in , we create our ArrayList and give it an initial size of 10. Strictly speaking, it is not necessary to give the ArrayList any size. It will grow or shrink dynamically as needed, just like a list in Python. On line 23 we start the first of three loops. The for loop on lines 23–25 serves the same purpose as the Python statement count = [0]*10, that is it initializes the first 10 positions in the ArrayList to hold the value 0.

    @@ -908,15 +908,15 @@ public class Histo {

    - The next loop (lines 27–30) shows a typical Java pattern for reading data from a file. Java while loops and Python while loops are identical in their logic. In this case, we will continue to process the body of the loop as long as data.hasNextInt() returns true. + The next loop (lines 27–30) in shows a typical Java pattern for reading data from a file. Java while loops and Python while loops are identical in their logic. In this case, we will continue to process the body of the loop as long as data.hasNextInt() returns true.

    - Line 29 illustrates another important difference between Python and Java. Notice that in Java we can not write count[idx] = count[idx] + 1. This is because in Java there is no overloading of operators. Everything except the most basic math and logical operations is done using methods. So, to set the value of an ArrayList element we use the set method. The first parameter of set indicates the index or position in the ArrayList we are going to change. The next parameter is the value we want to set. Notice that, once again, we cannot use the indexing square bracket operator to retrieve a value from the list, but we must use the get method. + Line 29 in illustrates another important difference between Python and Java. Notice that in Java we can not write count[idx] = count[idx] + 1. This is because in Java there is no overloading of operators. Everything except the most basic math and logical operations is done using methods. So, to set the value of an ArrayList element we use the set method. The first parameter of set indicates the index or position in the ArrayList we are going to change. The next parameter is the value we want to set. Notice that, once again, we cannot use the indexing square bracket operator to retrieve a value from the list, but we must use the get method.

    - The last loop in this example is similar to the Python for loop where the object of the loop is a Sequence. In Java we can use this kind of for loop over all kinds of sequences, which are called Collection classes in Java. The for loop on line 33 for(Integer i : count) is equivalent to the Python loop for i in count: This loop iterates over all of the elements in the ArrayList called count. Each time through the loop the Integer variable i is bound to the next element of the ArrayList. If you tried the experiment of removing the <Integer> part of the ArrayList declaration you probably noticed that you had an error on this line. Why? + The last loop in is similar to the Python for loop where the object of the loop is a Sequence. In Java we can use this kind of for loop over all kinds of sequences, which are called Collection classes in Java. The for loop on line 33 in for(Integer i : count) is equivalent to the Python loop for i in count: This loop iterates over all of the elements in the ArrayList called count. Each time through the loop the Integer variable i is bound to the next element of the ArrayList. If you tried the experiment of removing the <Integer> part of the ArrayList declaration you probably noticed that you had an error on this line. Why?

    From 9d30e313dd06ac055fb05e28b68fde333862d6d1 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 16:25:48 +0300 Subject: [PATCH 421/448] added mcq --- source/ch3_javadatatypes.ptx | 46 ++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index a9ae75a..85a24bf 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -1116,6 +1116,52 @@ public class HistoMap {

    + + + +

    + Which of the following is a valid variable name according to the core syntax rules of Java, but causes a syntax error in Python? +

    +
    + + + _variableName + +

    + Incorrect. Leading underscores are valid in both Java and Python (commonly used in Python for private/protected attributes). +

    +
    +
    + + + variable_name + +

    + Incorrect. Snake_case names with underscores are valid in both languages (and are actually standard convention in Python). +

    +
    +
    + + + $variableName + +

    + Correct! Java allows the dollar sign ($) in variable names, but Python generates a SyntaxError because $ is not a permitted identifier character in Python. +

    +
    +
    + + + variableName2 + +

    + Incorrect. Numbers at the end of variable names are valid syntax in both Java and Python. +

    +
    +
    +
    +
    +
    From 0bf2120840a72b676ae16d541091382a7675d026 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 17:26:25 +0300 Subject: [PATCH 422/448] added dictionary parson --- source/ch3_javadatatypes.ptx | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index a9ae75a..97bf2a1 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -1079,6 +1079,62 @@ public class HistoMap {

    Improve to remove the punctuation.

    + + + +

    + Rearrange and indent the blocks to create a Java method that accepts a dictionary (Map) of item prices and updates the price of a specific item. +

    +
    + + + + +public void updatePrice(Map<String, Double> catalog, String item, double newPrice) { + + + + +public void updatePrice(Map<String, Double> catalog, item, newPrice) { + + + + + + + + if (catalog.containsKey(item)) { + + + + + if (catalog.get(item) == null) { + + + + + + + + catalog.put(item, newPrice); + + + + + catalog.add(item, newPrice); + + + + + + + } +} + + + +
    +
    From 860af326c5dfcc7635fd89b47a9f58a378fc930f Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 17:45:25 +0300 Subject: [PATCH 423/448] added changes --- source/ch3_javadatatypes.ptx | 37 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 97bf2a1..8c7f080 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -1080,57 +1080,46 @@ public class HistoMap { Improve to remove the punctuation.

    - +

    - Rearrange and indent the blocks to create a Java method that accepts a dictionary (Map) of item prices and updates the price of a specific item. + Rearrange and indent the blocks to create a general Java method that accepts a dictionary (Map) of item prices and updates the price of a specific item. If the item does not exist, do nothing.

    - -public void updatePrice(Map<String, Double> catalog, String item, double newPrice) { - + public void updatePrice(Map<String, Double> catalog, String item, double newPrice) { - -public void updatePrice(Map<String, Double> catalog, item, newPrice) { - + public void updatePrice() { + Map<String, Double> catalog, + String item, + double newPrice - - if (catalog.containsKey(item)) { - + if (catalog.containsKey(item)) { - - if (catalog.get(item) == null) { - + if (catalog.get(item) == null) { - - catalog.put(item, newPrice); - + catalog.put(item, newPrice); - - catalog.add(item, newPrice); - + catalog.add(item, newPrice); - - } -} - + } + }
    From d40e771d99149ee5672a29d5e4a7224bfb52bafd Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 17:51:04 +0300 Subject: [PATCH 424/448] final --- source/ch3_javadatatypes.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index 8c7f080..f2c5a48 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -1083,7 +1083,7 @@ public class HistoMap {

    - Rearrange and indent the blocks to create a general Java method that accepts a dictionary (Map) of item prices and updates the price of a specific item. If the item does not exist, do nothing. + Rearrange the blocks to create a general Java method that accepts a dictionary (Map) of item prices and updates the price of a specific item. If the item does not exist, do nothing.

    From 4584265c35ecdf3f1d3870110f5c3772af28eebe Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 18:27:35 +0300 Subject: [PATCH 425/448] added question --- source/ch4_conditionals.ptx | 63 +++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 7410fc6..0fea59b 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -255,6 +255,69 @@ The switch statement is not used very often, and we recommend you do not

    Finally, the switch statement does not support relational expressions such as greater than or less than. So you cannot use it to completely replace the elif. Even with the new features of Java 14+ the switch statement is still limited to constant comparisons using equality.

    + + + Java Temperature Status Monitor + +

    + Rearrange the blocks to create a Java method that accepts a temperature reading and returns a status string ("CRITICAL", "WARNING", or "NORMAL"). +

    +
    + + + + public String checkTemperature(double temp) { + + + public String checkTemperature(double temp); { + + + + + + if (temp >= 100.0) { + return "CRITICAL"; + } + + + if (temp == 100.0) { + return "CRITICAL"; + } + + + + + + else if (temp >= 75.0) { + return "WARNING"; + } + + + else (temp >= 75.0) { + return "WARNING"; + } + + + + + + else { + return "NORMAL"; + } + + + else if { + return "NORMAL"; + } + + + + + } + + +
    +
    From 051e8a87a34100e47f3238df05af8adf272fe215 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 18:28:58 +0300 Subject: [PATCH 426/448] edited --- source/ch4_conditionals.ptx | 1 - 1 file changed, 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0fea59b..904fbf4 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -257,7 +257,6 @@ The switch statement is not used very often, and we recommend you do not - Java Temperature Status Monitor

    Rearrange the blocks to create a Java method that accepts a temperature reading and returns a status string ("CRITICAL", "WARNING", or "NORMAL"). From e32279092981af29ed97f7d8b7e064a5ae10208e Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 20:58:22 +0300 Subject: [PATCH 427/448] added question --- source/ch4_conditionals.ptx | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 904fbf4..1f99114 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -401,6 +401,57 @@ public class Ternary {

    In , we are using this ternary operator to assign a value to a based on whether a is even or odd. If a is even, it will be squared; if odd, it will be instead be calculated as 3 * x - 1. This is a concise way to write conditional assignments in Java. However, you might want to use it sparingly, as it can make code less readable if overused or used with complex expressions.

    + + + +

    + Rearrange the blocks to create a Java method that calculates shipping costs. Orders over $100 get free shipping ($0.0), while members pay $5.0 and non-members pay $10.0. +

    +
    + + + + public double calculateShipping(double orderTotal, boolean isMember) { + + + public double calculateShipping() + double orderTotal + boolean isMember + { + + + + + + if (orderTotal >= 100.0) { + return 0.0; + } + + + if (orderTotal = 100.0) { + return 0.0; + } + + + + + + else { + return isMember ? 5.0 : 10.0; + } + + + else { + return isMember : 5.0 ? 10.0; + } + + + + + } + + +
    From cd459897246fc8a6be034c554a3098fe0dceda6f Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 22:06:19 +0300 Subject: [PATCH 428/448] added question --- source/ch5_loopsanditeration.ptx | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 28cbde4..743e916 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -183,6 +183,59 @@ public class StringIterationExample {
    + + +

    + Rearrange the blocks to create a Java method that accepts an upper bound integer limit and calculates the sum of all even numbers from 2 up to and including limit. +

    +
    + + + public int sumEvens(int limit) { + + + + + int total = 0; + + + int total; + + + + + + for (int i = 2; i <= limit; i += 2) { + + + for (int i = 2; i < limit; i =+ 2) { + + + + + + total += i; + } + + + total = i; + } + + + + + + return total; + } + + + return i; + } + + + +
    +
    From c0402e8eb44c8ef47fec7fae1c9ecf06f3431d18 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Fri, 7 Aug 2026 22:16:27 +0300 Subject: [PATCH 429/448] spacing --- source/ch5_loopsanditeration.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 743e916..7c6819b 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -234,7 +234,7 @@ public class StringIterationExample { - +
    From 00cb2c8d35a3aa48b832db26ef844916245e3f2f Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Fri, 7 Aug 2026 15:40:01 -0400 Subject: [PATCH 430/448] moving naming conventions to start of chapter 3 --- source/ch2_firstjavaprogram.ptx | 84 +++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/source/ch2_firstjavaprogram.ptx b/source/ch2_firstjavaprogram.ptx index c1cb7a1..7f1669d 100644 --- a/source/ch2_firstjavaprogram.ptx +++ b/source/ch2_firstjavaprogram.ptx @@ -526,4 +526,88 @@ Hello World! + +
    + Naming Conventions +

    + It is worth pointing out that Java has some very handy naming conventions. It is advisable to both use meaningful names and to follow these naming conventions while developing software in Java for good maintenance and readability of code. +

    + +

    +

      +
    • +

      + Class names should be nouns that are written in UpperCamelCase, namely with the first letter of each word capitalized including the first. + For example, ArrayList, Scanner, StringBuilder, System, etc. +

      +
    • + +
    • +

      + Method names use lowerCamelCase which start with a verb that describes the action they perform. This means that method names start with a lower case letter, and use upper case for each internal-word method names. For example, isInt(), nextLine(), getDenominator(), setNumerator(), etc. +

      +
    • + +
    • +

      + Instance variables of a class start with a lower case letter and use lowerCamelCase like method names. For example, count, totalAmount, etc. +

      +
    • + +
    • +

      + Constants are in all upper case letters or in upper snake case, which also known as screaming snake case, and which is a naming convention in which each word is written in uppercase letters, separated by underscores. + For example, Math.MAXINT or MAX_INT. +

      +
    • +
    +

    + + + +

    + Which of the following is a valid variable name according to the core syntax rules of Java, but causes a syntax error in Python? +

    +
    + + + _variableName + +

    + Incorrect. Leading underscores are valid in both Java and Python (commonly used in Python for private/protected attributes). +

    +
    +
    + + + variable_name + +

    + Incorrect. Snake_case names with underscores are valid in both languages (and are actually standard convention in Python). +

    +
    +
    + + + $variableName + +

    + Correct! Java allows the dollar sign ($) in variable names, but Python generates a SyntaxError because $ is not a permitted identifier character in Python. +

    +
    +
    + + + variableName2 + +

    + Incorrect. Numbers at the end of variable names are valid syntax in both Java and Python. +

    +
    +
    +
    +
    + +
    + \ No newline at end of file From e4e2ad396a8a342cc9efbdd1eef50cc4c3f1e4f4 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Fri, 7 Aug 2026 15:40:41 -0400 Subject: [PATCH 431/448] removed naming conventions from chapter 3 --- source/ch3_javadatatypes.ptx | 81 ------------------------------------ 1 file changed, 81 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index df08c4a..62365f8 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -1126,88 +1126,7 @@ public class HistoMap { -
    - Naming Conventions -

    - It is worth pointing out that Java has some very handy naming conventions. It is advisable to both use meaningful names and to follow these naming conventions while developing software in Java for good maintenance and readability of code. -

    - -

    -

      -
    • -

      - Class names should be nouns that are written in UpperCamelCase, namely with the first letter of each word capitalized including the first. - For example, ArrayList, Scanner, StringBuilder, System, etc. -

      -
    • - -
    • -

      - Method names use lowerCamelCase which start with a verb that describes the action they perform. This means that method names start with a lower case letter, and use upper case for each internal-word method names. For example, isInt(), nextLine(), getDenominator(), setNumerator(), etc. -

      -
    • - -
    • -

      - Instance variables of a class start with a lower case letter and use lowerCamelCase like method names. For example, count, totalAmount, etc. -

      -
    • - -
    • -

      - Constants are in all upper case letters or in upper snake case, which also known as screaming snake case, and which is a naming convention in which each word is written in uppercase letters, separated by underscores. - For example, Math.MAXINT or MAX_INT. -

      -
    • -
    -

    - - - -

    - Which of the following is a valid variable name according to the core syntax rules of Java, but causes a syntax error in Python? -

    -
    - - - _variableName - -

    - Incorrect. Leading underscores are valid in both Java and Python (commonly used in Python for private/protected attributes). -

    -
    -
    - - variable_name - -

    - Incorrect. Snake_case names with underscores are valid in both languages (and are actually standard convention in Python). -

    -
    -
    - - - $variableName - -

    - Correct! Java allows the dollar sign ($) in variable names, but Python generates a SyntaxError because $ is not a permitted identifier character in Python. -

    -
    -
    - - - variableName2 - -

    - Incorrect. Numbers at the end of variable names are valid syntax in both Java and Python. -

    -
    -
    -
    -
    - -
    Summary & Reading Questions From ccd1878e64297aea8430574e1baccca68a292cce Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Fri, 7 Aug 2026 16:17:38 -0400 Subject: [PATCH 432/448] added a parsons problem for section 3.5 --- source/ch3_javadatatypes.ptx | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index df08c4a..f348eb0 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -967,6 +967,48 @@ public class HistoArray {

    The main difference between and is that we declare count to be an Array of integers. We also can initialize short arrays directly using the syntax shown here: Integer[] count = {0,0,0,0,0,0,0,0,0,0}Then notice that we can use the square bracket notation count[idx] to index into an array.

    + + + +

    + Construct a short Java program that creates an array of three integers, + changes the first value, and prints it. Drag the blocks into the correct order on the right. +

    +
    + + + public class ArrayExample { + public static void main(String[] args) { + + + + + Integer[] nums = {1, 2, 3}; + + + Integer[] nums = (1, 2, 3); + + + + + + nums[0] = 5; + + + nums(0) = 5; + + + + + System.out.println(nums[0]); + + + + } + } + + +
    From 63d2bc1a04301d662b67a6aa2a77b4fc884d4095 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 10 Aug 2026 15:52:31 +0300 Subject: [PATCH 433/448] added the question --- source/ch5_loopsanditeration.ptx | 53 ++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/source/ch5_loopsanditeration.ptx b/source/ch5_loopsanditeration.ptx index 28cbde4..8d8c102 100644 --- a/source/ch5_loopsanditeration.ptx +++ b/source/ch5_loopsanditeration.ptx @@ -244,6 +244,59 @@ public class DoWhileExample {
    + + +

    + Rearrange the blocks to create a Java method that accepts a starting balance and a target amount, then calculates how many years it takes for the balance to reach or exceed the target by doubling each year. +

    +
    + + + + public int yearsToTarget(double balance, double target) { + int years = 0; + + + public int yearsToTarget(double balance, double target) { + int years; + + + + + + while (balance < target) { + + + while (balance >= target) { + + + + + + balance *= 2; + years++; + } + + + balance * 2; + years++; + } + + + + + + return years; + } + + + return balance; + } + + + +
    +
    Summary & Reading Questions From 64b84f02327b84dccae55c389a70383448f7a0f5 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 10 Aug 2026 20:38:58 +0300 Subject: [PATCH 434/448] added the question --- source/ch6_definingclasses.ptx | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index f2c8bf7..4adb2ff 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -629,7 +629,51 @@ public class Fraction {
    + + +

    + Rearrange the blocks to create a Printer class with two overloaded printData methods—one that accepts an int and another that accepts a String. +

    +
    + + + public class Printer { + + + + + public void printData(int number) { + System.out.println("Number: " + number); + } + + + public void printData(int number) { + System.out.println("Number: " + number); + + + + + + public void printData(String text) { + System.out.println("Text: " + text); + } + + + public void printData(int text) { + System.out.println("Text: " + text); + } + + + + + } + + +
    + + +
    From 5f1d7e3ece629169176c9a89e0e13a6e2bdd62ea Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 10 Aug 2026 22:33:26 +0300 Subject: [PATCH 435/448] replaced th section earlier --- source/ch6_definingclasses.ptx | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index f2c8bf7..f495747 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -629,15 +629,8 @@ public class Fraction {
    - - - -
    - Inheritance - -

    - If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like . + If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like .

    @@ -654,8 +647,12 @@ Fraction@6ff3c5b5 In Python you can control how that looks by writing an __str__ method for your class. If you do not then you will get the default, which looks something like the above.

    - + +
    + +
    + Inheritance The <c>Object</c> Class From bee7af32288e939800248a09b750d66e946ffdb5 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 10 Aug 2026 22:37:45 +0300 Subject: [PATCH 436/448] added a listing tags --- source/ch6_definingclasses.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index f495747..668aa83 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -630,7 +630,7 @@ public class Fraction {

    - If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like . + If you ran , you probably noticed that the output is not very satisfying. Chances are your output looked something like .

    @@ -645,7 +645,7 @@ Fraction@6ff3c5b5 The reason is that we have not yet provided a friendly string representation for our Fraction objects. Just like in Python, whenever an object is printed by the println method it must be converted to string format. In Python you can control how that looks by writing an __str__ method for your class. - If you do not then you will get the default, which looks something like the above. + If you do not then you will get the default, which looks something like .

    From 7c7441807b9dd122a2a5d5f70882bd7d55cbb527 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 10 Aug 2026 22:39:57 +0300 Subject: [PATCH 437/448] added linking to section --- source/ch6_definingclasses.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 668aa83..67fb411 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -645,7 +645,7 @@ Fraction@6ff3c5b5 The reason is that we have not yet provided a friendly string representation for our Fraction objects. Just like in Python, whenever an object is printed by the println method it must be converted to string format. In Python you can control how that looks by writing an __str__ method for your class. - If you do not then you will get the default, which looks something like . + If you do not then you will get the default, which looks something like . We will see how to provide a friendly string representation for our Fraction class in .

    From c25d77c9aa8c0b5e81d0303b36d1d1128d051360 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Mon, 10 Aug 2026 15:44:51 -0400 Subject: [PATCH 438/448] added a parsons problem to the inheritance section --- source/ch6_definingclasses.ptx | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 4adb2ff..4375608 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -961,6 +961,38 @@ public void test(Number a, Number b) { You will still get this error even if all your code that calls this test method passes two Fractions as parameters (remember that Fraction does implement add).

    + + + +

    + Construct the toString method for the Fraction class so that printing a + fraction shows it in the form numerator/denominator. Drag the blocks into the correct order on the right. +

    +
    + + + + public String toString() { + + + public void toString() { + + + + + + return numerator.toString() + "/" + denominator.toString(); + + + numerator.toString() + "/" + denominator.toString(); + + + + + } + + +
    From 26ad182c200fa5c20f9024f72bf0f943749edd85 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Mon, 10 Aug 2026 23:15:49 +0300 Subject: [PATCH 439/448] fixed erros after merge --- source/ch6_definingclasses.ptx | 46 +++++++++++++--------------------- 1 file changed, 18 insertions(+), 28 deletions(-) diff --git a/source/ch6_definingclasses.ptx b/source/ch6_definingclasses.ptx index 32a277b..df7a4af 100644 --- a/source/ch6_definingclasses.ptx +++ b/source/ch6_definingclasses.ptx @@ -628,6 +628,24 @@ public class Fraction {
    +

    + If you ran , you probably noticed that the output is not very satisfying. Chances are your output looked something like . +

    + + + + +Fraction@6ff3c5b5 + + + + +

    + The reason is that we have not yet provided a friendly string representation for our Fraction objects. + Just like in Python, whenever an object is printed by the println method it must be converted to string format. + In Python you can control how that looks by writing an __str__ method for your class. + If you do not then you will get the default, which looks something like . We will see how to provide a friendly string representation for our Fraction class in . +

    @@ -672,34 +690,6 @@ public class Fraction { - - - - -
    - Inheritance - - -

    - If you ran the program above you probably noticed that the output is not very satisfying. Chances are your output looked something like . -

    - - - - -Fraction@6ff3c5b5 - - - - -

    - The reason is that we have not yet provided a friendly string representation for our Fraction objects. - Just like in Python, whenever an object is printed by the println method it must be converted to string format. - In Python you can control how that looks by writing an __str__ method for your class. - If you do not then you will get the default, which looks something like . We will see how to provide a friendly string representation for our Fraction class in . -

    - -
    From 4a710abcdca97bfec2a101a509446d1da447a803 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 11 Aug 2026 20:19:22 +0300 Subject: [PATCH 440/448] fixed the error --- source/ch4_conditionals.ptx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 1f99114..0cd7e57 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -5,6 +5,7 @@ Conditionals
    Using Conditional Statements in Java +

    conditional statements Conditional statements in Python and Java are very similar. In Python we have three patterns: @@ -50,7 +51,8 @@ if score >= 90: # Note the colon at the end of the line In Java, the parentheses around the condition are required because it is technically a function that evaluates to True or False.

    - +
    + Using the <c>if</c> - <c>else</c> Statement From a558f997573e8dfcee95578a90dfd3279fb9b3b4 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 11 Aug 2026 20:34:31 +0300 Subject: [PATCH 441/448] fixed the error --- source/ap-java-cheatsheet.ptx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/ap-java-cheatsheet.ptx b/source/ap-java-cheatsheet.ptx index f272981..7e8f94a 100644 --- a/source/ap-java-cheatsheet.ptx +++ b/source/ap-java-cheatsheet.ptx @@ -10,7 +10,7 @@ The following is intended to be useful in better understanding Java functions coming from a Python background.

    - + Function/Method Equivalents: Python to Java @@ -201,5 +201,4 @@

    - \ No newline at end of file From 9013d7d95f1d07db5579c684f5f93595da24c65a Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 11 Aug 2026 21:57:48 +0300 Subject: [PATCH 442/448] fixed --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0cd7e57..08463b3 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -51,7 +51,7 @@ if score >= 90: # Note the colon at the end of the line In Java, the parentheses around the condition are required because it is technically a function that evaluates to True or False.

    - + Using the <c>if</c> - <c>else</c> Statement From 14be3761b4a4c8e39594ac807dedf6bc814f5734 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 11 Aug 2026 22:45:53 +0300 Subject: [PATCH 443/448] added a subsection --- source/ch4_conditionals.ptx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 08463b3..0522a87 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -8,10 +8,12 @@

    conditional statements Conditional statements in Python and Java are very similar. - In Python we have three patterns: + In Python we have three patterns/

    - +
    + + Using the <c>if</c> Statement

    shows how the simple if statement is written in Python.

    @@ -51,7 +53,7 @@ if score >= 90: # Note the colon at the end of the line In Java, the parentheses around the condition are required because it is technically a function that evaluates to True or False.

    - +
    Using the <c>if</c> - <c>else</c> Statement From 3b997c6f6c1055cfdfa29068610f3755b0d412c8 Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 11 Aug 2026 22:51:02 +0300 Subject: [PATCH 444/448] fixed a dot --- source/ch4_conditionals.ptx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ch4_conditionals.ptx b/source/ch4_conditionals.ptx index 0522a87..623587a 100644 --- a/source/ch4_conditionals.ptx +++ b/source/ch4_conditionals.ptx @@ -8,7 +8,7 @@

    conditional statements Conditional statements in Python and Java are very similar. - In Python we have three patterns/ + In Python we have three patterns.

    From a6860ff3aaada9d514893e2675ca16340974012c Mon Sep 17 00:00:00 2001 From: Habiba Sorour Date: Tue, 11 Aug 2026 23:40:33 +0300 Subject: [PATCH 445/448] fixedthe error --- source/ch3_javadatatypes.ptx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ch3_javadatatypes.ptx b/source/ch3_javadatatypes.ptx index a08b796..6c69c36 100644 --- a/source/ch3_javadatatypes.ptx +++ b/source/ch3_javadatatypes.ptx @@ -867,7 +867,7 @@ public class Histo {

    - + for i in range(2, 102, 2) @@ -904,7 +904,7 @@ public class Histo { for (int x = 0, int y = 0; x < 10; x++, y += 2) - +

    From ce044bc87a9224bc3ebdfdfdcd4eece85344373d Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Wed, 12 Aug 2026 11:05:14 -0400 Subject: [PATCH 446/448] added a parsons problem in section 8.2 which introduces students to creating files --- source/ch8_filehandling.ptx | 42 +++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index a610f37..7a7cf33 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -172,6 +172,48 @@ public class CreateFile { You may have noticed the use of another method from the File class; getName(). This method returns a string containing the name of the file.

    + + + +

    + Construct a short Java program that creates a File object for "myfile.txt" + and prints it. Drag the blocks into the correct order on the right. +

    +
    + + + + import java.io.File; + + + import java.io.Scanner; + + + + + public class CreateFile { + public static void main(String[] args) { + + + + + File myFile = new File("myfile.txt"); + + + File myFile = new File(); + + + + + System.out.println(myFile); + + + + } + } + + +
    From 9d3d9c69a12987c01f67098894888a83e4f6073e Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Wed, 12 Aug 2026 13:43:33 -0400 Subject: [PATCH 447/448] added a parsons problem to section 8.3 --- source/ch8_filehandling.ptx | 38 +++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/source/ch8_filehandling.ptx b/source/ch8_filehandling.ptx index 7a7cf33..d9656b0 100644 --- a/source/ch8_filehandling.ptx +++ b/source/ch8_filehandling.ptx @@ -287,6 +287,44 @@ public class CreateFile {

    You may have noticed that there are some new methods you haven't seen yet. The hasNextLine() method checks if there is a next line in the file, and returns false if there isn't. This method allows us to iterate over every line till there is no next line. The nextLine() method of the Scanner object returns the next line in the file as a string.

    + + + +

    + Construct the part of a Java program that opens a file with a Scanner and + prints each line until there are no more lines. Drag the blocks into the correct order on the right. +

    +
    + + + + try (Scanner fileReader = new Scanner(new File(filename))) { + + + try (Scanner fileReader = new Scanner(filename)) { + + + + + + while (fileReader.hasNextLine()) { + + + while (fileReader.nextLine()) { + + + + + String data = fileReader.nextLine(); + System.out.println(data); + + + + } + } + + +
    From c7f4c7b65d38972f4705a1d97b1e1f7c9afb6fb9 Mon Sep 17 00:00:00 2001 From: "nshizirungudieumerci@gmail.com" Date: Wed, 12 Aug 2026 15:37:09 -0400 Subject: [PATCH 448/448] added a select all that apply multiple choice based question to section9.3 --- source/ch9_commonmistakes.ptx | 50 +++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/source/ch9_commonmistakes.ptx b/source/ch9_commonmistakes.ptx index 64b59cd..4dca391 100644 --- a/source/ch9_commonmistakes.ptx +++ b/source/ch9_commonmistakes.ptx @@ -115,6 +115,56 @@

    The 'cannot find symbol' error for the variable count on line 6 indicates that count was used before it was declared within the Histo class. In Java, all variables must be explicitly declared with a data type (e.g., int, String, ArrayList<Integer>) before they can be assigned a value or referenced in any way. The arrow in the error message points to where the undeclared variable count was first encountered. To resolve this, count needs to be declared with its appropriate type (e.g., ArrayList<Integer> count;) before any attempt to initialize or use it.

    + + +

    + Based on , select all of the + statements that are true about declaring variables in Java. +

    +
    + + + +

    Every variable must be declared with a data type before it is used.

    +
    + +

    Correct! Java requires a variable to be declared with its type before it can be assigned or referenced.

    +
    +
    + + +

    The "cannot find symbol" error happens because count was used before being declared.

    +
    + +

    Correct! That error means the compiler reached a variable it has no declaration for.

    +
    +
    + + +

    Writing ArrayList<Integer> count; before using count would fix the "cannot find symbol" error.

    +
    + +

    Correct! Declaring count with its type resolves the error.

    +
    +
    + + +

    Java lets you use a variable without declaring it first, just like Python.

    +
    + +

    Incorrect. Unlike Python, Java requires all variables to be declared before use.

    +
    +
    + + +

    The error can be fixed by adding an import statement.

    +
    + +

    Incorrect. The import is already present; the problem is the missing variable declaration, not a missing import.

    +
    +
    +
    +