Resources
Reference pages
The ones you will use every week, each on its own page:
- How Pyret runs your program — the seven rules, the directory of names Pyret keeps while it runs, and a worked trace of a
casesexpression. - Writing a function: the design recipe — the order to write a function in, and what the
where:examples are for. - Getting your work off the lab machine — your files stay on the one machine you saved them on. Two ways to take your work home.
- Check your file before you submit — drop your
.arrin and it says what the copy broke: a missinguse context starter2024, curly quotes, invisible characters. Check.java: Pyret’sis, for Java — the file that makesCheck.iswork, to download and keep beside your own.
What we work through together in class has its own section: In Class, one page per meeting.
Exam practice
- Progress Exam 1 — what it covers, and how to prepare.
- Practice Exam 1 — the four problems from Wednesday, September 16, with worked answers. It was not marked.
Software
All the items below are freely available for using online or for downloading and local use. Prefer latest versions if unsure.
https://code.pyret.org/ – Pyret as online service
- Alternatively: VS Code with the Pyret extension
https://onecompiler.com/java – Java as online service
a Java IDE, for instance:
VS Code from Microsoft with the Java extension
JavaFX, TYPE: SDK (not jmods)
Git, a version control system
Textbooks
This course is based on several free resources, which are available online.
Main textbooks
[DCIC] https://dcic-world.org/ – Data-Centric Introduction to Computing by Fisler et al. uses Pyret and Python to provide a data-analysis perspective on the traditional introductory course; inspired by (older) [HtDP] (below)
[CU] https://drue-coles.github.io/cmsc-120/ – a Java textbook written by Drue Coles (CU) for past iterations of CMSC-120
Secondary textbooks
[UH] https://java-programming.mooc.fi/ – a successful Java MOOC from the University of Helsinki. Parts 1–3 are relevant for this course.
[HtDP] https://htdp.org/ – How to Design Programs by Felleisen et al. uses Racket to teach freshmen systematic program design
Where to get help
- Office hours — see Syllabus: Course info
- Course forum — see the Discord link on the {{ brightspace }}