Howdy. 

Exam 01 and Exam 02 cover almost the same concepts. 

1-6         1-8  

Exam 02: four problems testing that you can write complete programs
with loops, arrays or array lists, 1- or 2-D and methods. I will not
ask you to do something only with a DataSet class that does this and
that, I will accept any implementation that matches the request. 

Exam 03 will ask you to learn those 9 (nine) Java specific topics I posted 
under What's New? Tue Oct 02: 

Here's a list of topics for Exam 03 (scheduled for Nov 7th, 2018):

Write simplest shortest program that reports mouse motion.
Write simplest program that reports mouse events other than motion.
Write simplest program that can keep and report time.
Write the simplest shortest program that sorts objects using Comparable.
Write the simplest shortest program that sorts objects via the Comparator interface.
Write simplest program that shows why and how we use Exceptions.
Write simplest/shortest program that processes and responds to keyboard events.
Write simplest program that creates/shows on the screen a few circles of various colors.
Write simplest program with a JButton, JTextField and JLabel.

import java.awt.Graphics;

interface World {
  public void draw(Graphics g); 
}

import javax.swing.Timer; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 

public class BigBang implements ActionListener {
  private int counter;
  public void actionPerformed(ActionEvent e) {
    System.out.println( counter++ ); 
  }
  private World world;
  private Timer timer; 
  public BigBang(World world) {
    this.world = world;
    this.timer = new Timer(300, this); 
  }
  public void start() {
     this.timer.start(); 
  }
}

import java.awt.Graphics;

public class Game implements World {
  public void draw(Graphics g) {
    
  }
  public static void main(String[] args) {
    BigBang b = new BigBang( new Game() ); 
    b.start(); 
  }
  
}

--

import java.awt.Graphics;

interface World {
  public void draw(Graphics g); 
}

import javax.swing.Timer; 
import java.awt.event.ActionListener; 
import java.awt.event.ActionEvent; 
import javax.swing.JComponent; 
import java.awt.Graphics; 

public class BigBang extends JComponent implements ActionListener {
  public void paintComponent(Graphics g) {
    // g.drawString("How are you?", 100, 100);  
    g.drawString(this.counter + "", 100, 100);  
  }
  private int counter;
  public void actionPerformed(ActionEvent e) {
    System.out.println( counter++ ); 
    this.repaint(); 
  }
  private World world;
  private Timer timer; 
  public BigBang(World world) {
    this.world = world;
    this.timer = new Timer(300, this); 
  }
  public void start() {
     this.timer.start(); 
  }
}

import java.awt.Graphics;
import javax.swing.JFrame; 

public class Game implements World {
  public void draw(Graphics g) {
    
  }
  public static void main(String[] args) {
    BigBang b = new BigBang( new Game() ); 
    JFrame f = new JFrame(); 
    f.add(b); 
    f.setSize(400, 400); 
    f.setVisible(true); 
    b.start(); 
  }
  
}

--

All of the above is fine just move that in draw inside Game (which is a World).