Our fourth programming assignment,
Exponentiation with Big Integers,
is now out
and will be due at the beginning of class on Monday, December 10.
The reading for Friday, September 28, is
Understanding Git Conceptually,
by Charles Duan,
Director of the Patent Reform Project
at the advocacy group Public Knowledge.
The reading consists of six linked Web pages.
Start with Introduction
and follow the links.
In anyone is curious to see what the Sieve of Eratosthenes looks like in the hands of a professional Java programmer, here's a blog post that walks you through a series of quick Java implementations of the Sieve, first using an imperative model of computation that would be easy to port to C, and then using a functional model that would be easy to port to Scheme. I enjoyed thinking about the strengths and weaknesses of the various approaches, but was disappointed that, even though the author wrote all of the implementations in Java, he never considered one that used the object-oriented model of computation in any significant way.
The Functional Style — Part 4: First-Class Functions II: Filter, Reduce and More
Richard Wild, Codurance: Craft at Heart, September 19, 2018
The documentation for version 9 of Eclipse
is available on line,
beginning at https://help.eclipse.org/photon/.
The reading for Wednesday, September 19
consists of the
Basic Tutorial sections
of the Workbench User Guide
and the Java Development User Guide.
Version 9 of The Java Language Specification is available on the Web at https://docs.oracle.com/javase/specs/jls/se9/jls9.pdf. I have also places a copy on MathLAN at /home/reseda/object-oriented-programming/resources/java-9-language-specification.pdf.
Because so many of you finished today's lab on references and objects before the class session ended, I thought up two more exercises and added them at the end of the lab, in preparation for the next offering of the course. Follow the link if you want to see the revised version of the lab that includes the new exercises. (No obligations are attached — I just thought you might be interested.)
ITS has unexpectedly installed new versions of the Java compiler and run-time system and the Eclipse integrated development environment on some, but not all, MathLAN workstations. As a result, students can expect to see inconsistencies and operational difficulties in using these tools in different classrooms and labs, and the existing handouts and labs for this course may be inaccurate in important ways. We'll deal with this on a day-to-day basis in the course. I'm not inclined to rewrite anything until the system stabilizes and consistency throughout MathLAN has been restored.
ITS also updated and reconfigured the Xfce desktop environment on some, but not all, MathLAN workstations and is preconfiguring new users' accounts with a radically different-looking desktop. Again, there will be occasional surprises until stability and consistency return.
Some on-line College sources are providing misinformation about the textbook for this course. There is only one textbook (not two, as some sources have it) and it is Data Structures and Problem Solving Using Java, by Mark Allen Weiss (Upper Saddle River, New Jersey: Pearson; fourth edition, 2010; ISBN 978–0–321–54140–6). Weiss has written several other textbooks with very similar titles, so check the full title or the ISBN carefully before purchasing the book.
Assertions and Loop Invariants
The Eclipse Integrated Development Environment
The Eclipse Integrated Development Environment (continued)
Experimenting with Input and Output
The Git Version-Control System
Java Standard Libraries
The Java Virtual Machine
Minimum Spanning Trees
Objects and Classes
Polymorphism and Interfaces
Population Density of Iowa Counties
Population Density of Iowa Counties(extended version)
Random-Number Generation Using/
References and Objects
Starting Out in Java
Strings and StringBuilders
Trees and Traversals