Spring 2014 Course Information:
Below is list of potentially useful supplemental materials.
For required materials, see the syllabus for the relevant course.
- Other Information
- How to Think Like a Computer
Scientist: A set of very well written documents on basic computer programming
Java Generic Types: Generic Types are the basis for "Type-Safe"
API design and implementation. Understanding the generic type-system
in Java is essential for anyone wishing to develop libraries of classes
for use by other programmers.
Java Generics FAQ
- A very comprehensive overview of Generic Types in Java...
covers a lot of "corner cases"
- My own Generic Type
- An example to help take some of confusion out Generic Types,
especially "bounded" and "wildcard" types.
Programming language: "Plain Old C" is probably more important to know
than even C++ in my opinion as it connects you to the hardware in a manner
which is less tedious than assembly language, without the need to get bogged
down in the complex language semantics of C++.
- Any of the links from the COSC236/237 section above may be useful.
- Other Software
- A pure Java RDBMS solution capable of being used as either a standalone
database system or embedded directly into an application.
- Requires no "installation" or even any significant configuration.
- Netbeans has integrated Apache Derby support, making database application
development very easy.
- Mostly a "RDBMS Library" that be embedded into nearly any
- It has reasonably complete support for most of
- Sqliteman is
a nice GUI front end.
- For use with any Java application, you'll need the
- A very robust system with many ODBMS capabilities.
- I actually prefer PostgreSQL over MySQL.
- Might be worth checking out on your own because it shares a
lot of design philosophy with the Oracle database system.
- XML Tutorials
- Python Tutorials
- Perl Tutorials
- Groovy Tutorials
- Potentially useful 3rd-party Java Libraries
- Apache Commons:
A large collection of various API's ranging from file manipulation, to enhanced
math functions, etc.
- Apache Derby:
A full SQL RDBMS in Java designed for embedding directly into "zero-configuration"
Guava: Library of advanced collection API's from Google.
(The Bidirectional Map is tremendously useful!)
Expression Parser: Parse and evaluate mathematical and logical expressions
from user input
Display real-time charts and graphs.
- JGraph: A general
purpose graph manipulation and rendering package (commercial and free/GPL
Java Media API's: Collection of (somewhat official) image, video, 3D,
and sound manipulation classes from Sun/Oracle.
- JFugue: A nice
little API for easily playing musical notes.
- JScience: A large
collection of classes designed for scientific computing.
An API and associated system libraries for reading/writing to/from serial
and parallel ports.
Why make things difficult, when it's possible to make them
cryptic and totally illogical, with just a little bit more effort? - Aksel Peter