Algorithms and Object-Oriented Design

CSC 207 (section 01) · Fall, 2018

Department of Computer Science · Grinnell College

Class News

December 2, 2018

Our fourth programming assignment, Exponentiation with Big Integers, is now out and will be due at the beginning of class on Monday, December 10.

September 25, 2018

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.

For more detailed information, deeper explanations, and additional examples, I can recommend the book Pro Git, by Scott Chacon and Ben Straub. The authors have made the full text available on line under Creative Commons license.

September 20, 2018

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
https://codurance.com/2018/09/19/the-functional-style-part-4

September 18, 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.

September 10, 2018

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.

September 5, 2018

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.)

August 30, 2018

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.

August 29, 2019

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.

Course Information

Handouts

Labs

Programming Assignments