back to cs202-syllabus
Java Review: primitive data types and control statements. Binary representation of integer numbers. Notes on the Portfolio: use of SSH to transfer files and directories to and from a remote Unix machine.
Java Review: shift and bit-wise operators.
Java Review: computation of the modular exponentiation.
Structuring programs on many classes. Static and nonstatic methods.
Classes and Java Applets. Modular exponentiation. Design of a graphic applet to measure and compare the running time of different algorithms.
Notes on the binary representation of integers and the computation of the modular exponentiation.
Generalities on Object Oriented Programming. Classes: data abstraction and information hiding. General structure of a Java application/applet: packages and classes.
Defining data types using classes. Class instantiation. Static and nonstatic entities. Memory model for Java programs: heap and stack.
Review on the project.
Generation of pseudo-random numbers in Java. The Class Random.
More on static and nonstatic entities. Examples and exercises.
Evaluation of the project assignment.
Use of random number generators: seeds and sequences of pseudo-random numbers. Generation of random integers of specified length.
Approximate calculation of the factorial using Stirling formula.
Review of the lab. project. Numerical computation of the relative error and absolute error of Stirling approximation formula for the factorial.
Midterm 1.
Elementary multiplication of large integers.
Review of the assignment.
A subquadratic algorithm for the multiplication of large integers.
Class inheritance. Single and multiple inheritance. The problem of repeated inheritance. Inheritance in Java. Access specifiers and visibility rules.
Polymorphism. Dynamic binding. Inner classes.
Java animations. The class Timer. The Locomotiv applet. Design of the Asteroid applet.
Implementation of part of the Asteroid applet.
Midterm 1 (makeup).
Random creation of circular asteroids in the Asteroid applet.
Rototranslation of polygons. Implementation of class StarShip
Dealing with keyboard events.
Dealing with keyboard events.
Dealing with Mouse Events.
GUI components and design. Listeners. Containers and Layouts.