|
Packages |
| edu.rit.crypto |
Package edu.rit.crypto
provides various cryptographic classes. |
| edu.rit.crypto.blockcipher |
Package edu.rit.crypto.blockcipher
provides classes for block ciphers. |
| edu.rit.crypto.gradefile |
Package edu.rit.crypto.gradefile
provides a cryptographic Context
for storing Prof. |
| edu.rit.crypto.hash |
Package edu.rit.crypto.hash
provides classes for one-way hash functions. |
| edu.rit.crypto.mac |
Package edu.rit.crypto.mac
provides classes for message authentication codes (MACs). |
| edu.rit.crypto.securechannel |
Package edu.rit.crypto.securechannel
provides a cryptographic Context
for transferring messages (wrapped objects)
securely over an insecure communication channel. |
| edu.rit.crypto.test |
Package edu.rit.crypto.test
contains test programs
for the cryptographic classes
in package edu.rit.crypto
and its subpackages. |
| edu.rit.datacomm1.bw |
Package edu.rit.datacomm1.bw
contains a main program
that demonstrates what happens
when a data signal
is transmitted through a bandwidth limited channel. |
| edu.rit.datacomm1.nhw |
Package edu.rit.datacomm1.nhw
provides classes for the Network Hello World program,
the very first networking program anyone writes. |
| edu.rit.discreteopt |
Package edu.rit.discreteopt
provides classes and algorithms for discrete optimization
(also known as combinatorial optimization). |
| edu.rit.discreteopt.test |
Package edu.rit.discreteopt.test
provides unit test programs for the classes
in package edu.rit.discreteopt. |
| edu.rit.discreteopt.v1 |
Package edu.rit.discreteopt.v1
provides classes and algorithms for discrete optimization
(also known as combinatorial optimization). |
| edu.rit.discretesim |
Package edu.rit.discretesim
provides classes for writing discrete event simulation programs. |
| edu.rit.discretesim.v1 |
Package edu.rit.discretesim
has superseded this package;
use the classes in
package edu.rit.discretesim
for new development. |
| edu.rit.discretesim.v1.test |
Package edu.rit.discretesim.v1.test
provides unit test programs for
package edu.rit.discretesim.v1. |
| edu.rit.draw |
Package edu.rit.draw
contains classes and programs for drawing
diagrams and slides of all kinds. |
| edu.rit.draw.item |
Package edu.rit.draw.item
contains classes for the different kinds of drawing items
that can appear in a Drawing. |
| edu.rit.draw.item.test |
Package edu.rit.draw.item
contains classes for the different kinds of drawing items
that can appear in a Drawing. |
| edu.rit.ds |
Package edu.rit.ds
contains components for developing distributed systems. |
| edu.rit.ds.demo |
Package edu.rit.ds.demo
has simple demonstrations of Java remote method invocation (RMI). |
| edu.rit.ds.registry |
Package edu.rit.ds.registry
contains the Registry Server,
an alternative RMI registry. |
| edu.rit.ds.registry.test |
Package edu.rit.ds.registry.test
contains unit test programs for the Registry Server
in package edu.rit.ds.registry. |
| edu.rit.ds.space |
Package edu.rit.ds.space
contains a simple tuple space. |
| edu.rit.ds.space.test |
Package edu.rit.ds.space.test
contains test programs for a simple tuple space
in package edu.rit.ds.space. |
| edu.rit.ds.test |
Package edu.rit.ds.test
contains unit test main programs
for the classes in package
edu.rit.ds. |
| edu.rit.io |
Package edu.rit.io
contains general input/output components. |
| edu.rit.nt |
Package edu.rit.nt
contains classes and programs
illustrating various aspects of number theory. |
| edu.rit.numeric |
Package edu.rit.numeric
contains common classes for numerical computation. |
| edu.rit.numeric.fft |
Package edu.rit.numeric.fft
provides classes for doing Fourier analysis
using fast Fourier transforms (FFTs). |
| edu.rit.numeric.fft.test |
Package edu.rit.numeric.fft.test
provides unit test programs
for package edu.rit.numeric.fft. |
| edu.rit.numeric.plot |
Package edu.rit.numeric.plot
provides classes and interfaces for plotting data. |
| edu.rit.numeric.plot.impl |
Package edu.rit.numeric.plot.impl
provides low-level implementation classes
for the high-level plotting classes
in package edu.rit.numeric.plot. |
| edu.rit.numeric.prob |
Package edu.rit.numeric.prob
provides classes and interfaces
for generating pseudorandom numbers
with various probability distributions. |
| edu.rit.numeric.stat |
Package edu.rit.numeric.stat
provides classes and interfaces for computing statistics
(mean, variance, and so on)
and performing statistical tests. |
| edu.rit.numeric.stat.test |
Package edu.rit.numeric.stat.test
provides unit test programs
for package edu.rit.numeric.stat. |
| edu.rit.os1 |
Package edu.rit.os1
contains classes and programs
illustrating concurrent software design and programming techniques
for the Operating Systems I course. |
| edu.rit.os1.cpu |
Package edu.rit.os1.cpu
contains classes and programs
for simulating and analyzing
CPU scheduling algorithms in an operating system. |
| edu.rit.os1.cpu.test |
Package edu.rit.os1.test
contains main programs
for testing the CPU scheduling algorithm simulation classes
in package edu.rit.os1.cpu. |
| edu.rit.os1.disk |
Package edu.rit.os1.disk
contains classes and programs
for simulating and analyzing disks
and disk head scheduling algorithms in an operating system. |
| edu.rit.os1.trace |
Package edu.rit.os1.trace
contains classes and programs
for simulating and analyzing
memory address traces in an operating system. |
| edu.rit.os1.trace.test |
Package edu.rit.trace.test
contains main programs
for testing the memory address trace classes
in package edu.rit.os1.trace. |
| edu.rit.swing |
Package edu.rit.swing
contains GUI components designed to work with Java Swing. |
| edu.rit.util |
Package edu.rit.util
contains general utility components. |
| edu.rit.util.test |
Package edu.rit.util.test
contains test and demonstration programs
for the general utility components
in package edu.rit.util. |
The Computer Science Course Library (CSCL)
contains Java software used in courses
taught by Professor Alan Kaminsky
in the Department of Computer Science
at the Rochester Institute of Technology.
The Library was developed using
Java Development Kit (JDK) 1.5.0.
Some classes in the Library
use the Java generics and concurrency utilities
introduced with JDK 1.5.0.
Classes in the Library
that do not use JDK 1.5.0 features
may work with earlier JDK versions.
There are two versions of the CSCL distribution,
an executable distribution
and a source distribution.
The documentation and Java source files
in the Computer Science Course Library
("The Library")
are copyright © 2002-2013
by Alan Kaminsky.
All rights reserved.
For further information, contact the author, Alan Kaminsky,
at ark@cs.rit.edu.
The Library is
free software; you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.
The Library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
details.
- 01-Mar-2013
-
In package edu.rit.os1.trace.cpu:
Fixed a bug in class CpuScheduler;
the during of the running job's CPU burst
was not calculated correctly in all cases.
Thank you to Oleg Vyshnyvetskyi for discovering the bug.
- 05-Feb-2013
-
In package edu.rit.os1.trace.cpu:
Fixed a bug in class CpuScheduler;
the time at which the running job becomes blocked
was not calculated correctly in all cases.
Thank you to Oleg Vyshnyvetskyi for discovering the bug.
- 28-Jan-2013
-
In package edu.rit.os1.trace.test:
Added a feature to class VM;
the data for the optimal (OPT) page replacement algorithm
is plotted along with
the data for the given page replacement algorithm,
if the given page replacement algorithm is not OPT.
- 28-Dec-2012
-
In package edu.rit.ds:
Fixed a bug in class RemoteEventGenerator;
an exception was thrown
if an event registration was added
while in the process of reporting an event.
In the unnamed package:
Added class ncsl,
a program that computes
the non-commentary source lines (NCSL) metric
for a Java source file or files.
- 15-Mar-2011
-
Fixed bugs in package edu.rit.swing;
the JTextField subclasses incorrectly overrode
the JComponent.isValid() method;
this method's name was changed to isOkay().
- 29-Apr-2010
-
In interface edu.rit.ds.space.Space:
Fixed an error in the Javadoc
for the takeWithLease() method
with a timeout;
the description of the return value
was incorrect.
- 16-Mar-2010
-
In class edu.rit.numeric.XYZSeries:
Added the ability to calculate a linear regression
of (x,y) data
with z being the standard deviation
of the measurement error in y,
assuming the measurement error distribution
is a zero-mean Gaussian.
- 23-Jan-2010
-
In package edu.rit.ds:
Added the currentTicket() operation to class TicketQueue.
Fixed a bug in class Ticket;
when a ticket was canceled,
the superclass's remote object was unexported prematurely.
- 19-Jan-2010
-
In class edu.rit.ds.Lease:
Added the expire() operation.
- 16-Jan-2010
-
In class edu.rit.ds.Lease:
Added the stopRenewing() operation.
Fixed a bug;
when one process canceled a lease,
the other process was not notified of the cancellation
in all cases.
Thank you to Philip Doughty for discovering the bug.
- 07-Jan-2010
-
Changed class edu.rit.ds.registry.RegistryServer
so that if the multicast discovery thread cannot be created,
the Registry Server will proceed anyway
without the multicast discovery capability.
This lets the Registry Server run on the "localhost" network interface
even if the host is not connected to an external network.
- 23-Dec-2009
-
In package edu.rit.ds.space:
Changed one of the rules for matching templates and tuples.
Now, a null slot (wildcard) will match another null slot.
- 12-Dec-2009
-
In class edu.rit.ds.registry.RegistryEvent:
Added some accessor methods
to retrieve information about the event.
- 03-Dec-2009
-
In package edu.rit.ds.space,
interface Space:
Added the takeWithLease() operation;
this establishes a lease on the take operation;
if the lease expires, the take operation is automatically undone.
Changed the behavior of the write() operation with a lease;
if the lease is canceled, the tuple will stay in the tuple space forever.
Removed the antiRead() operation.
In package edu.rit.ds.space.test:
Removed the AntiRead program.
- 23-Oct-2009
-
Rewrote the reactive tabu search classes
in package edu.rit.discreteopt
to be more flexible and more object-oriented.
The classes formerly in package edu.rit.discreteopt
were moved to package edu.rit.discreteopt.v1.
Added package edu.rit.discreteopt.test
with a reactive tabu search program
for the graph coloring problem.
- 06-Oct-2009
-
Fixed bug in class edu.rit.numeric.plot.impl.XYPlot:
An exception was thrown if a plot series
had fewer than two data points.
- 02-Oct-2009
-
Fixed bugs in class edu.rit.discretesim.BoundedFifoSingleQueue:
The buffer array was declared as the wrong type,
causing runtime exceptions;
the read and write indexes were not incremented properly
when removing and putting items.
- 29-Sep-2009
-
In class edu.rit.discretesim.Server:
Added the ability to put Items removed from a Queue into a Place.
- 25-Sep-2009
-
In package edu.rit.discretesim:
Made the item class a generic type parameter
in all classes and interfaces that deal with items.
Added interface Place to represent a place to put items.
Some minor changes in the API.
- 19-Sep-2009
-
Added some minor refinements to package edu.rit.discretesim.
- 18-Sep-2009
-
Rewrote the classes in package edu.rit.discretesim
to be more flexible and more object-oriented.
The classes formerly in package edu.rit.discretesim
were moved to package edu.rit.discretesim.v1.
The classes formerly in package edu.rit.discretesim.test
were moved to package edu.rit.discretesim.v1.test.
- 04-Sep-2009
-
Removed the following packages which I no longer use in my classes:
edu.rit.datacomm1.ants,
edu.rit.datacomm1.whack,
edu.rit.datacomm2,
edu.rit.graph,
edu.rit.petrinet,
edu.rit.ron,
edu.rit.slides,
edu.rit.thcompalg.
- 20-Aug-2009
-
Added package edu.rit.crypto.gradefile
with classes for secure grade files
using AES-256 for confidentiality
and HMAC-SHA-256 for authentication and integrity.
Wrote a new secure grade file viewing program,
edu.rit.crypto.gradefile.View.
- 04-Feb-2009
-
In package edu.rit.ds.space:
Fixed a bug in class SimpleSpaceBackend;
if an anti-read operation was waiting for a tuple to go away,
and the tuple was removed because the tuple's lease expired,
the anti-read operation would not immediately detect the tuple's disappearance.
Thank you to Tejas Dharamshi for discovering the bug.
- 20-Jan-2009
-
The following packages were removed,
as I no longer use them in my teaching
(all are under package edu.rit):
dscv1, dscv2, dscv3, dscv4, dscv5,
dwsv1, dwsv2, dwsv3, dwsv4, dwsv5, dwsv6,
net, net.test,
rmi, rmi.demo, rmi.impl, rmi.impl.basic, rmi.impl.test,
space, space.test.
In package edu.rit.ds.space:
Fixed several bugs in class SimpleSpaceBackend;
the logic for detecting non-matching tuples
for the "anti-read" operation
was incorrect.
- 02-Jan-2009
-
In package edu.rit.ds.space:
Added the "anti-read" tuple space operation
to interface Space and class SimpleSpace.
In package edu.rit.ds.space.test:
Added the AntiRead program
to test the "anti-read" tuple space operation.
- 28-Oct-2008
-
In package edu.rit.os1.disk:
Removed programs SimulatorFifo and SimulatorSstf.
Replaced them with a single program, class DiskSimulator,
that takes the name of the disk head scheduling algorithm class
as a command line argument.
- 10-Oct-2008
-
In package edu.rit.os1.cpu.test:
Added class Test02, another program to illustrate
CPU scheduling algorithms.
- 16-Sep-2008
-
In package edu.rit.os1:
Added class UpDown5 to demonstrate thread synchronization
using an atomic compare-and-set operation.
In class edu.rit.numeric.plot.Plot:
Changed the default title font to sans-serif, bold, 14 point.
Changed the default axis and label font to sans-serif, plain, 12 point.
Increased the default margins and title offsets.
- 14-Jul-2008
-
In packages edu.rit.draw and edu.rit.draw.item:
Removed the ability to rotate a DrawingItem.
Added the ability to scale, shear, and rotate a Group.
To apply transformations to one or more DrawingItems,
put the DrawingItems in a Group
and apply transformations to the Group.
This change reduces the size of a serialized Drawing object.
As a result of this change,
Drawing objects serialized with previous versions of the Library
are incompatible with the present version of the Library.
- 01-May-2008
-
Redesigned package edu.rit.crypto and its subpackages.
The package now has "cryptographic contexts"
that produce "wrapped objects."
Subpackages provide implementations
of the AES block cipher with a 256-bit key,
the SHA-256 one-way hash function,
the HMAC-SHA-256 message authentication code with a 256-bit key,
and a two-party cryptographic context
for secure communication over an insecure channel.
Removed package edu.rit.rmi.impl.securev1 which contained
a secure RMI implementation.
- 10-Jan-2008
-
Added class edu.rit.util.Hex
with static methods for converting primitive types and byte arrays
to and from strings in hexadecimal notation.
- 12-Dec-2007
-
In package edu.rit.ds.demo:
Fixed documentation bugs in classes Eratosthenes, Factor, and Matlock;
the Java command lines referred to the wrong class names.
In the unnamed package:
Added class View,
a main program that can display
either a drawing (class edu.rit.draw.Drawing)
or a plot (class edu.rit.numeric.plot.Plot)
stored in a file.
The new View program supersedes
the old edu.rit.draw.View program
which was removed.
In class edu.rit.numeric.plot.Plot:
Made the class serializable.
Added static methods to read and write Plot objects
from and to files.
Removed the display() and repaint() methods;
their functionality is now available through the Viewable interface.
In package edu.rit.swing:
Added interface Viewable which extends interface Displayable;
to show itself on the screen,
a Viewable object can return a DisplayableFrame.
Drawings and plots are now Viewable objects.
Changed class DisplayableFrame
so that when it saves the displayable object in a PNG file,
the object is saved at its zoomed size.
- 08-Dec-2007
-
In the unnamed package:
Added class ncc,
a main program to compute
the Non-Comment Characters (NCC) metric
for a group of Java source files.
- 27-Nov-2007
-
The Computer Science Course Library is now released
under Version 3 of the GNU General Public License.
In package edu.rit.draw.item:
Added class Polygon.
- 21-Oct-2007
-
In class edu.rit.os1.disk.Scheduler:
Added the number of tracks on the disk
and the number of sectors on the track
as arguments of the getRequest() method.
(Some disk head scheduling algorithms require this information.)
- 20-Oct-2007
-
In package edu.rit.os1.disk:
Added program SimulatorSstf, which simulates
the Shortest Seek Time First (SSTF) disk head scheduling algorithm.
- 18-Oct-2007
-
Added package edu.rit.os1.disk
with classes and programs
for simulating disk head scheduling algorithms.
Program SimulatorFifo simulates
the First In First Out (FIFO) disk head scheduling algorithm.
Upgraded packages edu.rit.numeric,
edu.rit.numeric.plot,
and edu.rit.numeric.plot.impl
with the latest versions from the Parallel Java Library.
In class edu.rit.numeric.Plot:
Added a "Format" menu to the plot window
that lets the user change plot attributes interactively.
In class edu.rit.swing.DisplayableFrame:
Added a "Fit Window" menu item to the "View" menu
that resizes the window to fit the displayable object.
- 26-Sep-2007
-
Upgraded class edu.rit.swing.DisplayableFrame
and package edu.rit.draw and its subpackages
with the latest versions from the Parallel Java Library.
- 24-Sep-2007
-
In package edu.rit.os1:
Added class DP5,
an implementation of Dining Philosophers
that addresses both deadlock and starvation.
Removed class edu.rit.util.CpuStopwatch.
This class needs to be rewritten not to use native methods.
Removed package edu.rit.thcompalg.sort,
which uses class edu.rit.util.CpuStopwatch.
- 01-May-2007
-
In package edu.rit.ds.registry:
Changed the Registry Server
to listen for socket connections
on all network interfaces by default.
- 22-Mar-2007
-
In package edu.rit.draw.item:
Added the ability to specify bold, italic, superscript,
and subscript characters in a Text item.
- 07-Feb-2007
-
In package edu.rit.ds:
Fixed a bug in class Lease;
a race condition could cause renewing a lease
to throw a NullPointerException.
- 04-Feb-2007
-
In package edu.rit.ds:
Added components for distributed mutual exclusion --
class Ticket, class TicketQueue, interface TicketListener.
- 13-Jan-2007
-
In package edu.rit.ds.space:
Fixed a bug in class SimpleSpaceBackend;
if multiple read requests were pending,
writing a matching tuple
would cause only one of the read requests to succeed,
not all of them.
- 08-Jan-2007
-
In package edu.rit.ds.space:
Fixed a bug in class SimpleSpaceFrontend;
an iterator could fail with an incorrect lease expiration
even though the tuple space had not failed.
- 07-Jan-2007
-
Wrote a new version of the simple tuple space.
The new version is in package edu.rit.ds.space
and uses Java RMI.
The old version remains in package edu.rit.space
and uses the RMI in the Computer Science Course Library.
In package edu.rit.ds:
Added the leaseRenewed() method
to interface LeaseListener.
Added the leaseRenewed() method
to all classes throughout the Library
that implement interface LeaseListener.
Changed class Lease
not to hold the lease object's synchronization lock
when calling the lease listener;
this eliminated various possible deadlock situations.
- 12-Dec-2006
-
Changed the remote object launcher program,
Start (in the unnamed package),
to install a security manager
if the "java.security.policy" Java system property
is defined.
Fixed a bug in class edu.rit.ds.registry.RegistryBackend:
When a new object is rebound to the same name as an existing object,
the existing object's lease was not canceled.
- 10-Dec-2006
-
Added packages edu.rit.ds,
edu.rit.ds.demo,
edu.rit.ds.registry,
edu.rit.ds.registry.test,
and edu.rit.ds.test.
These packages contain components
for building distributed systems
using Java RMI.
In package edu.rit.draw.item:
Added class Arc.
- 22-Oct-2006
-
In class edu.rit.os1.cpu.CpuScheduler:
Changed the definition of response time for a job.
Now, a job's response time is the amount of time from when the job
entered the ready state to when the job finished its subsequent CPU
burst, averaged over all the CPU bursts.
Before, a job's response time was the amount of time from when the job
entered the system to when the job finished its first CPU burst.
- 04-Oct-2006
-
In package edu.rit.datacomm1.ants:
Fixed a bug in class ClientImpl;
not all of the methods were synchronized.
- 24-Sep-2006
-
In package edu.rit.os1:
Added program ReaderWriterDemo1
to demonstrate the reader-writer pattern
for thread coordination.
In package edu.rit.draw.item:
Added the ability to rotate any DrawingItem
by an arbitrary angle around an arbitrary center point.
- 07-Sep-2006
-
In package edu.rit.nt:
Changed the 32-bit prime number classes
to obtain the list of primes from a URL
(such as a web address)
instead of a disk file.
- 20-Jul-2006
-
Added package edu.rit.swing with classes for Swing components.
Moved interfaces Drawable and Displayable
from package edu.rit.numeric.plot to package edu.rit.swing.
Moved classes DisplayableFrame, DisplayableIO, DisplayableList,
DisplayablePanel, and FileTypeFilter
from package edu.rit.numeric.plot to package edu.rit.swing.
Moved classes Transcript and TranscriptFrame
from package edu.rit.util to package edu.rit.swing.
Added package edu.rit.io with I/O components.
Added classes SuffixFileFilter and SuffixFilenameFilter.
In package edu.rit.numeric:
Added class FileXYSeries
to read an X-Y data series from a file.
In package edu.rit.numeric.plot:
In class Label,
added the ability to position a label in pixel coordinates
rather than plot coordinates.
Added class Plot,
an easy-to-use high-level API for creating and displaying plots.
- 12-Jul-2006
-
In package edu.rit.draw.item:
Changed class DottedOutline to draw outlines with round dots.
Added class SquareDottedOutline to draw outlines with square dots.
Added the ability to draw round-cornered lines to class Line.
Added package edu.rit.draw.item.test
with unit test programs for the drawing classes.
In package edu.rit.numeric.plot:
Fixed a bug in class DisplayableIO;
the background of a displayable object
was not filled in properly in all cases
when writing the displayable object to a PNG file.
- 11-Jul-2006
-
Added packages edu.rit.draw and edu.rit.draw.item.
These provide capabilities for making drawings and slides
similar to packages edu.rit.slides and edu.rit.slides.items,
except they have been redesigned
to make it easier to write Java programs
for making drawings and slides.
Packages edu.rit.slides and edu.rit.slides.items were deprecated.
In package edu.rit.numeric.plot:
Added the ability to zoom the display
in classes DisplayablePanel and DisplayableFrame.
- 11-May-2006
-
In package edu.rit.ron.rmtp:
Added the third, fourth, and fifth versions of connections for the
RIT Overlay Network (RON) Message Transport Protocol (RMTP).
In version 5, connections can be set up, torn down, and used to transfer data.
A stop-and-wait protocol is used for flow control.
Connections assume the underlying Network Layer is unreliable
and use timeouts and retransmissions to recover from lost packets.
The timeout interval is calculated using the algorithm in RFC 2988.
- 09-May-2006
-
In package edu.rit.ron.rmtp:
Added the second version of connections for the
RIT Overlay Network (RON) Message Transport Protocol (RMTP).
At present, connections can be set up, torn down, and used to transfer data.
However, connections assume the underlying Network Layer is reliable
and never loses or reorders packets.
- 04-May-2006
-
In package edu.rit.ron.rmtp:
Added the initial implementation of the
RIT Overlay Network (RON) Message Transport Protocol (RMTP).
At present, connections can be set up and torn down,
but they do not transfer data.
- 01-May-2006
-
Added package edu.rit.ron.rmtp
with the initial version of the
RIT Overlay Network (RON) Message Transport Protocol (RMTP),
which is analogous to TCP.
- 27-Apr-2006
-
Added package edu.rit.datacomm2.delay back
with classes rewritten to use
the new discrete event simulation classes
and a program to simulate a network delay problem
posed in Andrew Tanenbaum's original Computer Networks textbook.
- 25-Apr-2006
-
Rewrote the discrete event simulation classes
in package edu.rit.discretesim
to make them easier to use and easier to understand.
Changed the test programs
in package edu.rit.discretesim.test accordingly.
Temporarily removed packages
edu.rit.datacomm2.delay and edu.rit.datacomm2.routing;
these need to be updated
to use the new discrete event simulation classes.
In package edu.rit.numeric.stat:
Split class Accumulator
into a base class and several subclasses.
The subclasses provide different tradeoffs
between functionality and processing/storage requirements.
- 19-Apr-2006
-
Added package edu.rit.ron.delay
with programs for measuring packet delays
in the RIT Overlay Network (RON).
In package edu.rit.ron.rcmp:
Added the Timestamp Request and Timestamp Reply messages
to the RON Control Message Protocol (RCMP).
- 13-Apr-2006
-
In package edu.rit.datacomm2.traffic:
Added class ConnectedNetwork03
with a Monte Carlo analysis of network connectivity
for another network.
- 11-Apr-2006
-
Added the reportUnreachablePorts() method
to class edu.rit.ron.RouterInterface.
- 23-Mar-2006
-
Added package edu.rit.ron.rcmp
with the initial version of the
RIT Overlay Network (RON) Control Message Protocol (RCMP),
which is analogous to ICMP.
Modified classes in packages edu.rit.ron and edu.rit.ron.test
to incorporate RCMP.
- 21-Mar-2006
-
Added package edu.rit.ron
with the initial version
of the RIT Overlay Network (RON).
Added package edu.rit.ron.test
with a unit test program for the RON router.
- 16-Mar-2006
-
Added package edu.rit.datacomm2.echo
with several versions of the Echo Server,
a network application that illustrates Java New I/O.
Two traffic generator programs for the Echo Server
are also included.
Removed packages edu.rit.image, edu.rit.mpi, and edu.rit.openmp.
These contained parallel programs written in Java.
Equivalent programs can now be found in the
Parallel Java Library.
- 08-Feb-2006
-
In packages edu.rit.dscv4 and edu.rit.dscv5:
Added the isReleased() method
to class TicketBackendImpl.
Changed the subclassTicketFinished() method
of class TicketQueue
to pass in the TicketBackendImpl object
for the ticket that finished.
- 25-Oct-2005
-
Added package edu.rit.os1.trace
with classes for analyzing memory traces
and simulating virtual memory page replacement algorithms.
Added package edu.rit.os1.trace.test
with programs to display a plot of a memory trace
and to simulate virtual memory page replacement algorithms.
- 22-Oct-2005
-
Moved class ServerAdapter
from package edu.rit.datacomm1.whack.tcp
to package edu.rit.datacomm1.whack.
Added package edu.rit.datacomm1.whack.udp
with client and server programs
for the Game of Whack
using UDP with object serialization for network communication.
- 20-Oct-2005
-
In package edu.rit.os1.cpu:
Added class PriorityReadyQueue to simulate the ready queue
for the highest priority first CPU scheduling algorithm.
In package edu.rit.os1.cpu.test:
Added program HPF to simulate
the highest priority first CPU scheduling algorithm.
- 19-Oct-2005
-
In package edu.rit.os1.cpu:
Added class SjfReadyQueue to simulate the ready queue
for the shortest job first CPU scheduling algorithm.
In package edu.rit.os1.cpu.test:
Added program SJF to simulate
the shortest job first CPU scheduling algorithm.
Added package edu.rit.datacomm1.ants.tcpbin
with client and server programs
for the Advanced Number Theory Server
using TCP with binary I/O for network communication.
Added package edu.rit.datacomm1.ants.udp
with client and server programs
for the Advanced Number Theory Server
using UDP with object serialization for network communication.
- 16-Oct-2005
-
Added package edu.rit.datacomm1.whack.tcp
with client and server programs
for the Game of Whack
using TCP for network communication.
- 12-Oct-2005
-
In package edu.rit.os1.cpu:
Renamed class JobQueue to ReadyQueue.
Renamed class FifoJobQueue to FifoReadyQueue.
Changed the design of the ready queue
to support preemption of the running process
due to jobs being added to the ready queue
or due to expiration of a time quantum.
Added class GeneralJob
with a more general implementation of a job.
In package edu.rit.os1.cpu.test:
Added program FCFS to simulate
the first-come-first-served CPU scheduling algorithm.
Added program RR to simulate
the round robin CPU scheduling algorithm.
- 11-Oct-2005
-
Added package edu.rit.datacomm1.ants.tcp
with the Advanced Number Theory Server (ANTS)
client and server programs
using TCP for network communication.
- 10-Oct-2005
-
Added package edu.rit.os1.cpu
with classes for simulating CPU scheduling algorithms.
Added package edu.rit.os1.cpu.test
with a couple simple CPU scheduling algorithm simulation programs.
- 09-Oct-2005
-
In package edu.rit.datacomm1.ants
for the Advanced Number Theory Server (ANTS):
Added the AntsTest unit test main program.
In package edu.rit.datacomm1.whack
for the Game of Whack:
Revised the server and client interfaces
and the application protocol design.
Added the server and client implementation object classes.
Added the client UI classes.
Added the WhackTest unit test main program.
- 02-Oct-2005
-
In package edu.rit.datacomm1.ants
for the Advanced Number Theory Server (ANTS):
Revised the server and client interfaces
and the application protocol design.
Added the server and client implementation object classes.
Added the client UI class.
Added package edu.rit.datacomm1.whack
with server and client interfaces
for the Game of Whack.
- 28-Sep-2005
-
In package edu.rit.os1:
Rewrote class DP1 and added classes DP2, DP3, and DP4,
the Dining Philosophers Versions 1 through 4.
- 27-Sep-2005
-
Removed packages edu.rit.datacomm1.clb,
edu.rit.datacomm1.clb.tcp,
edu.rit.datacomm1.clb.udp,
edu.rit.datacomm1.dataio,
and edu.rit.datacomm1.nhw2.
These packages contained old examples of network applications
that will be superseded by new examples.
Added package edu.rit.datacomm1.ants
with server and client interfaces
for the Advanced Number Theory Server (ANTS).
In package edu.rit.datacomm1.nhw:
Tweaked the client and server programs a bit.
In package edu.rit.os1:
Fixed a bug in class ReaderWriterMap1;
the iterator released the read lock too soon.
Added class ReaderWriterMap2.
Added class DP1, the Dining Philosophers Version 1.
- 26-Sep-2005
-
Updated package edu.rit.os1
with additional classes and programs
illustrating concurrent software design and programming techniques
for the Operating Systems I course.
- 20-Sep-2005
-
Updated package edu.rit.os1
with additional classes and programs
illustrating concurrent software design and programming techniques
for the Operating Systems I course.
In package edu.rit.util:
Added class Transcript and class TranscriptWindow
for displaying a text transcript in a separate window on the screen.
- 18-Sep-2005
-
Updated package edu.rit.os1
with additional classes and programs
illustrating concurrent software design and programming techniques
for the Operating Systems I course.
Added package edu.rit.nt
containing classes and programs
illustrating various aspects of number theory.
- 12-Sep-2005
-
Added package edu.rit.os1
with classes and programs
illustrating concurrent software design and programming techniques
for the Operating Systems I course.
- 10-Sep-2005
-
The graph classes in package edu.rit.graph
and the network flow classes in package edu.rit.graph.test
were rewritten to use Java generics.
A graph's vertex objects and edge label objects
can now be of specified types
which are checked at compile time.
All classes in the Library that use the new generic classes
were updated accordingly.
These include the Petri net classes
in packages edu.rit.petrinet
and edu.rit.petrinet.test;
and the network analysis programs
in packages edu.rit.datacomm2.protocol
and edu.rit.datacomm2.traffic.
In package edu.rit.util:
Added class ArrayStack.
- 23-Aug-2005
-
In package edu.rit.numeric:
Added class BasicFloatXYSeries
to provide an XY series of type float.
Added class LinearSolve
to solve linear systems of equations
using LU decomposition.
- 09-May-2005
-
In package edu.rit.crypto.pki:
Added interface IdentityChecker,
class AnyIdentityChecker, and class FixedIdentityChecker.
This allows more flexible user-defined checking of identities
during digital signature verification.
Changed package edu.rit.crypto.keyexchange
to use identity checkers during the key exchange protocol.
Added package edu.rit.space
with an implementation of a simple tuple space,
plus package edu.rit.space.test
with unit test main programs for the simple tuple space.
Added package edu.rit.dwsv6
with the Document Workflow System Version 6,
implemented using the simple tuple space.
In package edu.rit.util:
Added class SerialNumberMap.
- 04-May-2005
-
Added package edu.rit.crypto.random
with classes for cryptographic pseudorandom number generators.
Added package edu.rit.crypto.pki
with classes for RSA digital signatures
and a certificate authority
for a simple public key infrastructure.
Rewrote package edu.rit.crypto.keyexchange
with classes for Diffie-Hellman key exchange
authenticated using the public key infrastructure.
- 20-Apr-2005
-
Made some changes to the implementation of RMI.
In package edu.rit.net:
Added method isInputShutdown() to class Mailbox.
In package edu.rit.rmi.impl:
Added method isRemoteCallInProgress() to class RemoteObject.
In package edu.rit.rmi.impl.basic:
Fixed a bug in classes BasicServerChannel and BasicServerRequest;
the mailbox was not closed properly
when a basic remote object was unexported.
Made some changes to the design of tickets
in the Distributed System Components Version 4
in package edu.rit.dscv4.
In the new design,
a ticket is issued without blocking,
and the client must then call waitForTurn()
on the ticket before proceeding.
Interfaces TicketFrontend and TicketBackend,
and classes TicketFrontendImpl and TicketBackendImpl,
were added to implement the new design.
The Document Workflow System Version 4 client programs
and Processor class
in package edu.rit.dwsv4
were changed to use the new ticket design.
- 23-Mar-2005
-
Changed the implementations of the classes
in package edu.rit.rmi and subpackages thereof
to use the new features of Java 5.
The RmiContainer was changed to use a cached thread pool
from the Java Concurrency Utilities
to perform remote method invocations.
All uses of classes from the Java Collections Framework
were changed to use generics and for-each loops.
- 15-Feb-2005
-
Added package edu.rit.openmp.sort
with sequential and SMP parallel programs for sorting algorithms.
Added package edu.rit.mpi.sort
with sequential and MPI parallel programs for sorting algorithms.
- 10-Feb-2005
-
In package edu.rit.mpi.particles:
Added program ProtonClu4 to illustrate
overlapped computation and communication done another way.
Added package edu.rit.mpi.number
with programs to calculate the Prime Number Function.
This illustrates parallel reduction and memory scalability.
In package edu.rit.mpi.util:
Fixed a bug in class IntParallelMatrix;
the sendReceive() methods' arguments had the wrong type.
In package edu.rit.mpi.image:
Fixed a bug in class FullColorImage;
the image's dimensions were swapped --
height should have been width and vice versa.
- 08-Feb-2005
-
In package edu.rit.mpi.util:
Added send-receive operations
to classes DoubleParallelMatrix and IntParallelMatrix.
In package edu.rit.mpi.particles:
Added program ProtonClu2 to illustrate pipelining.
Added program ProtonClu3 to illustrate
overlapped computation and communication.
- 03-Feb-2005
-
In package edu.rit.mpi.util:
The concept of matrix cursors was eliminated.
Now, matrix elements are accessed
by calling methods directly on the matrix object.
Added classes Vector2D and Vector2DArray
for manipulating two-dimensional vectors
of double precision floating point values
in an MPI-based parallel program.
Added package edu.rit.mpi.particles
with the Particle Simulation, an N-body problem.
This uses the all-to-all broadcast pattern.
- 01-Feb-2005
-
Redesigned the parallel matrix classes
in package edu.rit.mpi.util.
One set of classes provides matrix storage allocation
(DoubleMatrix, IntMatrix).
Another set of classes,
layered on top of the previous set of classes,
provides matrix communication operations
(DoubleParallelMatrix, IntParallelMatrix).
A third set of classes, extending the previous set of classes,
provides further matrix communication operations
(DoubleRowSliceMatrix, DoubleColumnSliceMatrix,
(IntRowSliceMatrix, IntColumnSliceMatrix).
Added package edu.rit.mpi.network
with MPI-based parallel network algorithms.
These use the one-to-all broadcast pattern.
- 31-Jan-2005
-
In package edu.rit.datacomm2.delay:
Added a simulation of a network with constant packet sizes
to programs Tanenbaum03 and Tanenbaum04.
In package edu.rit.numeric.plot:
Added diamonds to class Dots
as another shape for plotting points.
- 27-Jan-2005
-
In package edu.rit.mpi.util:
Added class IntRowChopMatrix providing a parallel "row chopped" matrix.
Added class RangeScheduler for writing programs
using the parallel master-worker pattern.
In package edu.rit.mpi.util.test:
Added class Test04 with a unit test main program
for class edu.rit.mpi.util.IntRowChopMatrix.
In package edu.rit.mpi.fractal:
Added class MandelbrotSetClu2 with a parallel program
to compute the Mandelbrot Set;
the program uses the parallel master-worker pattern
to achieve load balancing.
In package edu.rit.mpi.timing:
Added class TimeInit with a program
for timing MPI initialization.
- 25-Jan-2005
-
In package edu.rit.mpi.util:
Added class Cursor as the abstract base class
for parallel matrix cursors.
Redesigned the double precision parallel matrix classes.
Class DoubleMatrix now supports only broadcasting.
Subclass DoubleRowSliceMatrix supports scattering and gathering
of row slices.
Subclass DoubleColumnSliceMatrix supports scattering and gathering
of column slices.
Added package edu.rit.mpi.image
with components for parallel images of various kinds,
layered on top of parallel matrices.
Only full color (24-bit color) images are supported at this time.
-
Added package edu.rit.mpi.fractal
with MPI-based parallel programs
for computing images of fractals.
These are typically massively parallel problems
that require load balancing for optimum performance.
In package edu.rit.slides:
Added class SlideShowToHtml,
a program that converts a slide show
to a series of HTML pages
for publishing a slide show on the Web.
- 20-Jan-2005
-
In package edu.rit.mpi.util:
Added methods to class DoubleMatrix
for broadcasting, scattering, and gathering
a matrix (two-dimensional array)
of double precision floating point values.
Added the contains() method to class Range.
Added package edu.rit.mpi.util.test
with unit test programs for the classes
in package edu.rit.mpi.util.
- 18-Jan-2005
-
Added package edu.rit.mpi.timing
with programs for measuring how long it takes
to do an MPI message send
and an MPI message broadcast.
In package edu.rit.mpi.util:
Added class DoubleMatrix
with an initial version of a matrix (two-dimensional array)
of double precision floating point values.
- 17-Jan-2005
-
In package edu.rit.datacomm2.traffic:
Added classes NetworkDesign04,
NetworkConfiguration04,
NetworkConfigurationFactory04,
and NodeInfo
with another reactive tabu search program
for solving an optimal network design problem.
In package edu.rit.slides:
Added class SlideShow to encapsulate a whole slide show.
Added class Projector to display a slide show on the screen.
In package edu.rit.numeric.plot:
Added class DisplayableList.
Added autofitting to class DisplayablePanel.
- 13-Jan-2005
-
Added package edu.rit.mpi.keysearch
with MPI-based parallel programs
for a known plaintext attack on AES
using exhaustive key search.
Added package edu.rit.mpi.util
with utility classes for writing
MPI-based parallel programs.
- 12-Jan-2005
-
In package edu.rit.datacomm2.traffic:
Changed class ConnectedNetwork01
to measure network failure probability versus link failure probability
for a network whose topology is an N-node complete graph
using Monte Carlo simulation.
Added class ConnectedNetwork02
to measure network failure probability versus link failure probability
for a certain 12-node, 16-link network
using Monte Carlo simulation.
- 06-Jan-2005
-
Added package edu.rit.openmp.monte
with OpenMP-based parallel Monte Carlo programs.
Added package edu.rit.openmp.network
with OpenMP-based parallel network algorithms.
In package edu.rit.numeric.plot, class LogarithmicAxis:
Added the autoscale() method.
- 03-Jan-2005
-
Added package edu.rit.openmp.fractal
with OpenMP-based parallel programs
for computing images of fractals.
These are typically massively parallel problems
that require load balancing for optimum performance.
In package edu.rit.datacomm2.protocols:
Added class rdt30a to analyze a simplified version
of Kurose & Ross's Reliable Data Transfer Protocol 3.0.
In package edu.rit.image:
Fixed a bug in class FullColorPen, method setPixelHue();
the pixel color was not set correctly
when the hue was exactly 1.0.
In package edu.rit.numeric.plot:
In class Grid:
Added the ability to draw gridlines at major and minor divisions
of the axes.
In package edu.rit.slides:
Fixed a bug in class Slide;
an annoying gray stripe appeared at the edge of the image
if the slide was not an integral number of pixels wide or high.
Fixed a bug in class View;
the viewer program aborted if it tried to read the slide file
while another program was writing the slide file.
- 31-Dec-2004
-
Added package edu.rit.image
with components for creating images of various kinds
and writing them to a file in Portable Network Graphics (PNG) format.
Added the parjob and parjoblist programs
for submitting parallel programming jobs
to a special-purpose job queue on one of
the RIT Computer Science Department's parallel computers.
- 16-Dec-2004
-
In package edu.rit.openmp.keysearch,
added more OpenMP-based parallel programs
for a known plaintext attack on AES
using exhaustive key search.
In package edu.rit.numeric.plot,
changed class LogarithmicAxis
so that the lower and upper bounds of the axis
must be integer powers of 10.
- 09-Dec-2004
-
Added package edu.rit.openmp.keysearch
with OpenMP-based parallel programs
for a known plaintext attack on AES
using exhaustive key search.
In package edu.rit.crypto.blockcipher,
added the setKey(byte[]) method
and the encrypt(byte[],byte[]) method
to class BlockCipher and class AES256Cipher.
Added packages edu.rit.slides and edu.rit.slides.items
for creating and displaying slides and diagrams of all kinds.
- 12-Oct-2004
-
In package edu.rit.datacomm2.traffic,
added another program (class NetworkDesign03)
to solve an optimal network design problem
using a reactive tabu search.
- 09-Oct-2004
-
Revised the classes and interfaces
in package edu.rit.discreteopt
to make it easier to write
reactive tabu search programs.
Revised the classes in package edu.rit.thcompalg.tsp accordingly.
In package edu.rit.datacomm2.traffic,
added two programs (class NetworkDesign01 and NetworkDesign02)
to solve an optimal network design problem
using a reactive tabu search.
- 07-Oct-2004
-
Added class edu.rit.datacomm2.traffic.ConnectedNetwork01,
a Monte Carlo program
that determines the probability that a network is connected,
given the probability that each potential link in the network exists.
- 13-Sep-2004
-
Added class edu.rit.numeric.Complex
for doing double precision complex arithmetic.
- 07-Jun-2004
-
Changed the method of calculating
the standard deviation of measurement error
in class edu.rit.thcompalg.sort.Measure.
- 14-May-2004
-
Fixed a bug in the subgraph() method
in class edu.rit.graph.Digraph
and class edu.rit.graph.UndirectedGraph.
In the subgraph,
edges were not eliminated properly
if the edge predicate returned false.
- 06-May-2004
-
Fixed a bug in class edu.rit.rmi.impl.basic.BasicServerRequest.
Because the basic server request objects
used the default timer thread
to send keepalive messages during remote method calls,
the keepalive messages might not get sent on time
if the application also used the default timer thread.
This was fixed by giving the basic server request objects
their own separate timer thread.
- 05-May-2004
-
(1) Added package edu.rit.crypto.keyexchange
with a demonstration of Diffie-Hellman Key Exchange.
(2) Changed some details in the design
of the Secure RMI Channel Version 1.
- 03-May-2004
-
(1) Added package edu.rit.rmi.impl.securev1,
providing the Secure RMI Channel Version 1.
All remote objects exported with this channel
perform remote method calls with authentication and encryption
using a fixed session key.
(2) Made some changes to class RmiInvocationHandler
and class RmiContainer
in package edu.rit.rmi.impl,
which were needed by the Secure RMI Channel Version 1.
Existing code using the Basic RMI Channel is not affected.
(3) Added a secure version of the RMI factoring demonstration
in package edu.rit.rmi.demo.
- 27-Apr-2004
-
(1) Added classes QueueFactory,
SingleServerFifoQueueFactory,
and BoundedSingleServerFifoQueueFactory
in package edu.rit.discretesim.
(2) Added class Tanenbaum04
in package edu.rit.datacomm2.delay
with another network delay simulation program
using bounded link queues.
- 23-Apr-2004
-
(1) Fixed a bug in class edu.rit.rmi.impl.basic.BasicClientRequest.
Because the basic client request objects
used the default timer thread
to do timeouts on remote method calls,
it was possible to get into a deadlock
if the application also used the default timer thread.
This was fixed by giving the basic client request objects
their own separate timer thread.
(2) Changed class edu.rit.discretesim.MMGenerator
no longer to require the mean arrival rate
to be less than the mean service rate.
- 06-Apr-2004
-
Added several programs, classes, and interfaces
to package edu.rit.datacomm2.protocols
to simulate the operation
of the Ethernet CSMA/CD channel access protocol.
- 31-Mar-2004
-
Changed the design of the RMI channel
to allow the server channel object
to validate an object's remote interfaces
before exporting the object;
this lets different RMI channel implementations
enforce different remote method call semantics
(see interface edu.rit.rmi.impl.ServerChannel).
Fixed a bug in class Monitor2
in packages edu.rit.dwsv2, edu.rit.dwsv3,
edu.rit.dwsv4, and edu.rit.dwsv5;
the system could deadlock
if the monitor was polling a document processor object
at the same time as the document processor object
was reporting a remote event to the monitor.
- 25-Mar-2004
-
Fixed a bug in class edu.rit.rmi.impl.basic.BasicServerChannel.
The server thread was not marked as a daemon thread.
If a program exported any basic remote objects,
this prevented the process from exiting
when the main() method returned.
- 18-Mar-2004
-
Added class Bell212ASpectrum in package edu.rit.datacomm2.signals,
illustrating a multibit differential phase shift keying (DPSK)
modem waveform's frequency spectrum.
- 16-Mar-2004
-
Added class QAMSignal in package edu.rit.datacomm2.signals,
illustrating a quadrature amplitude modulation (QAM) modem waveform.
- 15-Mar-2004
-
Added package edu.rit.net with:
-
Class edu.rit.net.Channel for sending separate messages
over a single socket connection.
-
Classes edu.rit.net.Mailroom and edu.rit.net.Mailbox
for sending reliable messages between different processes
over a collection of channels.
-
Class edu.rit.net.IPAddress
for determining the externally-visible IP address of the local host.
Also changed the remote method invocation (RMI) system
in package edu.rit.rmi to use mailboxes instead of sockets.
- 16-Feb-2004
-
Added a simulation of the Tanenbaum Network's
routing algorithm performance
in package edu.rit.datacomm2.routing.
- 12-Feb-2004
-
Added package edu.rit.thcompalg.tsp
with programs for solving the Traveling Salesman Problem.
- 11-Feb-2004
-
Added the static autoscale() method
in class edu.rit.numeric.plot.Axis.
Changed the plot formats slightly
in class edu.rit.datacomm2.routing.TorusNetwork04.
- 22-Jan-2004
-
Changed class Net
in package edu.rit.petrinet:
For greater readability of Petri net models
(and so as not to break existing code),
the event() method
no longer checks
whether an event with the same name already exists.
- 21-Jan-2004
-
Fixed a bug in class Net
in package edu.rit.petrinet:
The event() method
did not properly check
whether an event with the same name already existed.
- 19-Jan-2004
-
Added classes PlotSeries and SegmentedPlotSeries
in package edu.rit.numeric.plot.
Class PlotSeries is now the abstract base class for a plot series.
Changed class XYPlotSeries to extend class PlotSeries.
Changed class XYPlot to take a PlotSeries instead of an XYPlotSeries.
Changed class Test01
in package edu.rit.datacomm2.traffic
to display a plot of the optimal network design.
- 14-Jan-2004
-
Added interface XYZSeries
and class ListXYZSeries
in package edu.rit.numeric
for (x,y,z) triplets of data points.
Added classes CurveFit, AsymptoticCurveFit, and IncompleteGamma
in package edu.rit.numeric.stat
for doing least-squares curve fitting
and calculating goodness of fit.
Added classes Measure and Fit
in package edu.rit.thcompalg.sort
for measuring the running time of a sorting algorithm
and fitting the measured running times to an asymptotic function.
- 18-Dec-2003
-
Added class edu.rit.util.CpuStopwatch
for measuring a process's CPU time.
Added package edu.rit.thcompalg.sort
with classes for various sorting algorithms
and programs for measuring the sorting algorithms' running times
for the Theory of Computer Algorithms course.
- 04-Dec-2003
-
Added package edu.rit.thcompalg.asymptotic
with programs for illustrating the asymptotic behavior of functions
for the Theory of Computer Algorithms course.
- 30-Nov-2003
-
The initial version of the Computer Science Course Library
was made by consolidating three separate course libraries
from the Data Communications and Networks I,
Data Communications and Networks II,
and Distributed Systems courses.