Cover image of APCS Java
(5)
Education
Courses

APCS Java

Updated 2 days ago

Education
Courses
Read more

Helpful video Podcast for folks taking a course in Advanced Placement Computer Science

Read more

Helpful video Podcast for folks taking a course in Advanced Placement Computer Science

iTunes Ratings

5 Ratings
Average Ratings
4
1
0
0
0

A Genuine Look into the Programming Process

By cmslewis - Nov 12 2008
Read more
This is fantastic! I chose a random episode to watch first, and five minutes into the episode about inheritance, I was hooked. Chris demonstrates (whether he intends to or not) that programming is a process that requires creativity and, unavoidably, patience. I can't wait to watch the rest of these!

iTunes Ratings

5 Ratings
Average Ratings
4
1
0
0
0

A Genuine Look into the Programming Process

By cmslewis - Nov 12 2008
Read more
This is fantastic! I chose a random episode to watch first, and five minutes into the episode about inheritance, I was hooked. Chris demonstrates (whether he intends to or not) that programming is a process that requires creativity and, unavoidably, patience. I can't wait to watch the rest of these!
Cover image of APCS Java

APCS Java

Latest release on Apr 08, 2013

Read more

Helpful video Podcast for folks taking a course in Advanced Placement Computer Science

Rank #1: One To Ten Game Part 3

Podcast cover
Read more
Part 3 of the One to Ten Game which explains the Player Class. You can see a working copy at http://www.mathorama.com/OneToTenConsole.html

Oct 24 2011

Play

Rank #2: One to Ten Game Part 1

Podcast cover
Read more
In this tutorial, we make a game called "1 to 10" rather than tic-tac-toe (naughts and crosses). We will construct A Board Class in the first part along with a tester class. The idea is to move a page either one or two positions, and the one in the last position loses. The strategy is not to difficult, so eventually we can make a robot player who will always play perfectly.

Oct 23 2011

Play

Rank #3: Making a JAR file in Eclipse

Podcast cover
Read more
If you want to publish your Applet to the web, you probably need to make a Java Archive, or JAR file that allows you to embed your Applet in a web page

May 23 2011

Play

Rank #4: Java Interfaces Parts 1 and 2

Podcast cover
Read more



We introduce a way to use code to work with a variety of classes using interfaces. Source code can be found at the APCS Wiki

Feb 21 2011

Play

Rank #5: Cryptography

Podcast cover
Read more
Starting Code:
import java.util.Scanner;
/**
* Simple Polyalphabetic Cryptography
*
* @Chris Thiel
* @28 Feb 2009
*/
public class VignereCipherStartingCode
{
private static final String alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static int nextChar(String k, int i){
i=i%k.length();
String letter=k.substring(i,i+1);
return alphabet.indexOf(letter);
}
public static String encode (String m, String k){
String result="";
for (int i=0; i int offset=nextChar(k, i);
String letter = m.substring(i,i+1);
int newLetterIndex= alphabet.indexOf(letter)+offset;
newLetterIndex=newLetterIndex % 26;
result+=alphabet.substring( newLetterIndex, newLetterIndex+1);
}
return result;
}
public static String decode (String m, String k){
String result="";
return result;
}
public static void main(String[] args)
{
Scanner kb=new Scanner(System.in);
System.out.print("Type a key: ");
String key=kb.nextLine();
key=key.toUpperCase();
key=key.replace(" ","");//omit spaces
System.out.print("Type a message: ");
String message=kb.nextLine();
message=message.toUpperCase();
message=message.replace(" ","");
System.out.println("Using the key \""+key+"\" on \""+message+"\":");
String codedMessage=encode(message,key);
System.out.println("Coded="+codedMessage);
System.out.println("Decoded="+decode(codedMessage,key));
System.out.println("Using the key 'LOVE' we encode 'BOOHOO' we should get 'MCJLZC' : "+encode("BOOHOO","LOVE"));
System.out.println("Using the key 'QUICK' we decode 'TOKMXEQ' we should get 'DUCKNOW': "+decode("TOKMXEQ","QUICK"));

}
}

  • 8 points: Complete the decode method so it can decipher the Vignere Cipher
  • 9 points: Adapt this so it can do a Progressive Polyalphabetic Cipher rather than a key
  • 10 points: Adapt the CarTalk Employee Applet's graphic user interface so that you can type a message in one text area, press a button and it shows the encoded text (using the Progressive Cipher), press another button and it shows the decoded text.
  • 11 points: Add a "key field" to the Applet, and use the Vignere Cipher, working in a similiar fashion as the 10 point version

May 14 2010

Play

Rank #6: PokerHand

Podcast cover
Read more


To make a variety of Poker games, we need a way to evaluate and compare Poker hands. This video also shows how to implement an interface in an inner class, so that a user can press a button, and new poker hands are generated. Starter code can be found at the APCS Wiki.

Nov 28 2009

Play

Rank #7: Making Classes with the Eclipse IDE

Podcast cover
Read more

Make mew Projects and Classes in Eclipse.

Sep 07 2009

Play

Rank #8: Dr Java interactions

Podcast cover
Read more
Click on the title to see the video. Here I show how to try the code snippets that you will see while reading Chapter 2 of Horstmann, "Java Concepts"

Aug 23 2009

Play

Rank #9: Game Applet Stage 3

Apr 08 2013

Play

Rank #10: Game Applet: Stage 1

Podcast cover
Read more
Stage 1: Load the art and sounds to your eclipse project, so you can export your game into a .jar file to easily upload to a web site.  You can get to the game and the source files at:
Link to Game
Link to Source Code
Link to Video
Link to Video on YouTube

Apr 06 2013

Play

Game Applet Stage 3

Apr 08 2013

Play

Game Applet Stage 2

Podcast cover
Read more
Stage 2 of the Game Applet is making the player and have it be controlled with keyboard input.
Source code is at apcs.mathorama.com and the game is at www.mathorama.com/ChickenLittle.html

Video
YouTube

If you missed Stage 1, you can get it at here

Apr 08 2013

Play

Game Applet: Stage 1

Podcast cover
Read more
Stage 1: Load the art and sounds to your eclipse project, so you can export your game into a .jar file to easily upload to a web site.  You can get to the game and the source files at:
Link to Game
Link to Source Code
Link to Video
Link to Video on YouTube

Apr 06 2013

Play

Gridworld Overview

Mar 10 2013

Play

Making Images with GIMP

Podcast cover
Read more
Making Images With GIMP

You can download from http://www.gimp.org I show how to use some features in GIMP (from www.gimp.org) a open source image editor to use with your programs.  First, drawing a picture from scratch, then cleaning up a photo, and finally tracing a photo to make a simple "cartoon" like image.  For more info on where I used these images, see http://apcs.mathorama.com/

Nov 24 2012

Play

Installing BlueJ 2012

Podcast cover
Read more
Installing BlueJ 2012 Video Here is a 2012 version to check to make sure your Java SDK and BlueJ IDE installation is working correctly. While I'm using Ubuntu 12.04 to show this, it works pretty much the same in Windows and OSX.

Aug 22 2012

Play

Comparator Interface in Gridworld

Podcast cover
Read more
Here is a customized World for Gridworld where the message on the top is updated to show how many bugs there are and the location of the furthest Bug in the grid. You need to implement the Comparator interface for the grid world Bug class. You need to define a compare method that returns an int. Get the location of each Bug and use the compareTo method of Location. Here is the starter code: apcs.mathorama.com


Nov 24 2011

Play

One To Ten Game Part 3

Podcast cover
Read more
Part 3 of the One to Ten Game which explains the Player Class. You can see a working copy at http://www.mathorama.com/OneToTenConsole.html

Oct 24 2011

Play

One to Ten Game Part 2

Podcast cover
Read more
Part 2 of 3 of the One to Ten Game

Oct 23 2011

Play

One to Ten Game Part 1

Podcast cover
Read more
In this tutorial, we make a game called "1 to 10" rather than tic-tac-toe (naughts and crosses). We will construct A Board Class in the first part along with a tester class. The idea is to move a page either one or two positions, and the one in the last position loses. The strategy is not to difficult, so eventually we can make a robot player who will always play perfectly.

Oct 23 2011

Play

Make a Java Class for Dots

Podcast cover
Read more
Make a new object that represents a dot using the eclipse IDE.

Sep 04 2011

Play

Making a JAR file in Eclipse

Podcast cover
Read more
If you want to publish your Applet to the web, you probably need to make a Java Archive, or JAR file that allows you to embed your Applet in a web page

May 23 2011

Play

Interfaces Part 3

Podcast cover
Read more


Implementing java interfaces for any Object. For "starter" code see the APCS Wiki

Feb 21 2011

Play

Java Interfaces Parts 1 and 2

Podcast cover
Read more



We introduce a way to use code to work with a variety of classes using interfaces. Source code can be found at the APCS Wiki

Feb 21 2011

Play

Starting APCS with linux

Podcast cover
Read more

Aug 21 2010

Play

Cryptography

Podcast cover
Read more
Starting Code:
import java.util.Scanner;
/**
* Simple Polyalphabetic Cryptography
*
* @Chris Thiel
* @28 Feb 2009
*/
public class VignereCipherStartingCode
{
private static final String alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static int nextChar(String k, int i){
i=i%k.length();
String letter=k.substring(i,i+1);
return alphabet.indexOf(letter);
}
public static String encode (String m, String k){
String result="";
for (int i=0; i int offset=nextChar(k, i);
String letter = m.substring(i,i+1);
int newLetterIndex= alphabet.indexOf(letter)+offset;
newLetterIndex=newLetterIndex % 26;
result+=alphabet.substring( newLetterIndex, newLetterIndex+1);
}
return result;
}
public static String decode (String m, String k){
String result="";
return result;
}
public static void main(String[] args)
{
Scanner kb=new Scanner(System.in);
System.out.print("Type a key: ");
String key=kb.nextLine();
key=key.toUpperCase();
key=key.replace(" ","");//omit spaces
System.out.print("Type a message: ");
String message=kb.nextLine();
message=message.toUpperCase();
message=message.replace(" ","");
System.out.println("Using the key \""+key+"\" on \""+message+"\":");
String codedMessage=encode(message,key);
System.out.println("Coded="+codedMessage);
System.out.println("Decoded="+decode(codedMessage,key));
System.out.println("Using the key 'LOVE' we encode 'BOOHOO' we should get 'MCJLZC' : "+encode("BOOHOO","LOVE"));
System.out.println("Using the key 'QUICK' we decode 'TOKMXEQ' we should get 'DUCKNOW': "+decode("TOKMXEQ","QUICK"));

}
}

  • 8 points: Complete the decode method so it can decipher the Vignere Cipher
  • 9 points: Adapt this so it can do a Progressive Polyalphabetic Cipher rather than a key
  • 10 points: Adapt the CarTalk Employee Applet's graphic user interface so that you can type a message in one text area, press a button and it shows the encoded text (using the Progressive Cipher), press another button and it shows the decoded text.
  • 11 points: Add a "key field" to the Applet, and use the Vignere Cipher, working in a similiar fashion as the 10 point version

May 14 2010

Play

PokerHand

Podcast cover
Read more


To make a variety of Poker games, we need a way to evaluate and compare Poker hands. This video also shows how to implement an interface in an inner class, so that a user can press a button, and new poker hands are generated. Starter code can be found at the APCS Wiki.

Nov 28 2009

Play

Making Classes with the Eclipse IDE

Podcast cover
Read more

Make mew Projects and Classes in Eclipse.

Sep 07 2009

Play

Dr Java interactions

Podcast cover
Read more
Click on the title to see the video. Here I show how to try the code snippets that you will see while reading Chapter 2 of Horstmann, "Java Concepts"

Aug 23 2009

Play

Cheater Catcher Intro

Podcast cover
Read more
Overview of how to design a program that checks for patterns of matching words to detect plagiarism.

Jan 20 2009

Play

iTunes Ratings

5 Ratings
Average Ratings
4
1
0
0
0

A Genuine Look into the Programming Process

By cmslewis - Nov 12 2008
Read more
This is fantastic! I chose a random episode to watch first, and five minutes into the episode about inheritance, I was hooked. Chris demonstrates (whether he intends to or not) that programming is a process that requires creativity and, unavoidably, patience. I can't wait to watch the rest of these!