IB Comp Sci HL+SL y1 exams 2020
 
LINKS:   Lewis+Loftus Java Book   Java Tutor   Comp Sci Illumin Book 
              Basic Java Lessons   Java OOP   JETS    Internal Assessment Java Notes  
                Vocabulary   IB CS Course Guide     Pseudocode     Notes and Review 2019

 
Due Dates : Written Test on Binary and Circuits - Fri 16 Nov


Review for Test - 15 Nov 2018

The test will include questions about:
-  machine language
-  binary, hexadecimal and decimal
-  logic gates and circuits
-  Boolean algebra

Review Boolean Algebra:
User your book - Chapter 4 practice questions

Review circuits: 

Review binary:

Review Machine Language:
Use the notes from Oct 24 and 25


[HL] Embedded Processors - Topic 7 - 14 Nov 2018



We will discuss these notes:

=== HOMEWORK ===
Read the notes above (skip Feedback).
We will continue discussing this during the next HL meeting.


Boolean Algebra - 13 Nov 2018

We will discuss the questions in this document:


Boolean Algebra - 12 Nov 2018

We will discuss the questions in this document:

You should read (at least briefly) sections 4.1 , 4.2 , and 4.4 in your book.

You may find this video helpful (optional)

Volleyball - 9 Nov 2018

Class was cancelled to watch the volleyball tournament.
Our upcoming test will be postponed until Friday16 Nov.


Logic Circuits Practice - 7 Nov 2018

Answer the questions here:

=== HOMEWORK ===
Complete pages 1 and 2 in the notes above.
We will discuss p. 3 in class on Friday.


Logic Circuits - 5-6 Nov 2018



[HL] Internet of Things and other Embedded Processors - 1 Nov 2018


We will discuss the Internet of Things and Smart Home Technology




Hexadecimal and Binary - 31 Oct 2018

Here is a video about an old, old computer:


More Binary - 30 Oct 2018

Using this practice program:
we will do a quiz.

We will continue these notes about binary storage:
http://ibcomp.fis.edu/239179/ibcomp/numbers/codes.html

Here is a video about an old, old computer:
https://www.youtube.com/watch?v=DPioENtAHuY&feature=related

Use a HEX EDITOR to do the Practice Questions in the page above. You can use this online HEX editor:
https://hex-works.com/eng

If you are interested in MIME types, read the first 4 paragraphs here:
https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Configuring_server_MIME_types

== HOMEWORK ==
Read these notes about BINARY:


Better Assembly Language - 29 Oct 2018

We will investigate this program in the Little Man Emulator:
// ADD UP ODD NUMBERS
       BRA 6
       DAT 1
       DAT 2
       DAT 0
       DAT 1
       DAT 51
       LDA 3
       ADD 4
       STA 3
       OUT 3
       LDA 4
       ADD 2
       STA 4
       SUB 5
       BRZ 16
       BRA 6
       HLT
.END
// Using Line Labels (like variables)
       BRA START
ONE     DAT 1
TWO     DAT 2
SUM     DAT 0
X         DAT 1
MAX     DAT 51
START  LDA SUM
          ADD X
          STA SUM
          OUT SUM
          LDA X
          ADD TWO
          STA X
          SUB MAX
          BRZ QUIT
          BRA START
QUIT    HLT
.END


== Introduction to Binary ==


We will discuss these notes about binary storage:
http://ibcomp.fis.edu/239179/ibcomp/numbers/codes.html

Here is some FUN practice with binary:
http://games.penjee.com/binary-bonanza/


Assembly Language Programming - 25 Oct 2018

We will write some Assembly Language program for some of the following tasks:

- display a message, stopping at a 0 byte
- multiply 2 numbers by adding repeatedly
- count 0 to 59 and then back to 0 to 59 and then back to 0...
- calculate x^2 - 5x + 3 


*** HOMEWORK - READ Section 5.2 in your textbook ***

CPU, RAM and ROM - 24 Oct 2018

== CPU BASICS ==

Watch this video (at least the first half):

How a CPU Works  (nice graphics)

We will be discussing these notes:

Then use the CPU Emulator:
http://peterhigginson.co.uk/LMC/

You will need this for the emulator:
       LDA 4
       OTC
       ADD 5
       BRA 1
       DAT 65
       DAT 1

HOMEWORK : Read section 5.2 up to and including RAM and ROM


Hardware Questions - 23 Oct 2018

We will discuss the questions from last Friday.

Answers are in this Google Doc:


[HL] Elevator Logic - 22 Oct 2018

We will discuss the LOGIC of elevators - specifically:
- how to decide whether the elevator should travel UP or DOWN
- how to decide whether the elevator should STOP when it is passing a floor
- when should lights be switched ON and OFF

We will try to make a plan for where the SENSORS and ACTUATORS belong in the elevator system.

What OTHER sensors matter to an elevator, besides buttons and floor indicators?



Some Hardware Vocabulary Investigation - 19 Oct 2018

Use Google, Wikipedia, Amazon or any other online sources to answer the following questions.  
You may also wish to use your textbook : Comp Sci Illumin Book
You can type your answers in a word-processor and we will discuss them in class on Tuesday. 

1. Find 2 advantages and 2 disadvantages of buying an SSD 
    (Solid State Drive) instead of an HDD (Hard Disk Drive).

2. At Amazon or some other similar site, find the LARGEST
    AMOUNT of RAM that you can purchase in a new computer.

3. If a computer does NOT contain a "graphics card" - for example,
    most laptops - what hardware does it contain for displaying
    graphics on the screen?

4. Since an 8X DVD drive runs 8 times faster than a normal
    movie, what advantage does the 8X drive offer over a
    slower optical drive?  You don't need it for showing movies.

5. What do the letters "a/g/n" stand for in the 802.11 specification?

6. Lithium Ion batteries are used in laptops.  How does this differ
    from a normal AA battery that is not-rechargeable?

7.  Find a new laptop computer that you can buy with the highest
     possible screen resolution (e.g. larger than 1366x768).

8. Predict the likely capacity of a Hard Disk Drive in the year 2020,
    including a reason for your prediction.

9. Use this web-site: https://www.cpubenchmark.net/ , 
    or a different site if you wish, to find a CPU with a
    VERY HIGH CLOCK SPEED - e.g. over 3 GHz

10.  Describe the equipment required if you wish to watch
     YouTube videos on a large screen (60") TV.  Include any
     cables or other special devices needed.

11.  Many modern laptops are sold without a DVD drive.
      In the past, a DVD drive was considered essential.
      Explain why DVD drives are no longer essential.

12. Find normal data-transfer speeds for each of the following:
      - SATA hard-disk
      - USB
      - FSB
      - WIFI

 

More Hardware - 18 Oct 2018

We will discuss the hardware items described in section 5.1
in your textbook.

Hardware - 17 Oct 2018

== HOMEWORK ==

After finishing your test, you should start reading section 5.1 in your textbook.  

You should bring the textbook to class tomorrow - after that, you may leave it at home.


Review for Wednesday's Test - 15 Oct 2018

Review for Wednesday's test.

*** TEST ***
We will have a 30 min written TEST on Wednesday, similar to the quizzes
that we had previously.  You will need to examine Java program,
predict what they will print, or fix errors.  You could prepare by
working with a partner to look at previous programs, make changes,
and have the partner guess what changes need fixing. 


More About Standard Classes - 12 Oct 2018

The Math class is contained as a standard part of Java -
in the main Java package, so you can use it's methods
without stating the name of the package.

A list of all the most commonly used Math function is found

Programs that solve mathematics problems generally use both
the Math class methods and the Format methods in the java.text package.

Here is a Java example:


Here is the code for this example:

/*** Table of Values *************************************
Marla is a math student.  She needs to draw graphs and analyse them.
This is easier with a table of values for the function.
The TAB character \t makes the columns line up properly.
**********************************************************/

public class TableValues
{
  public TableValues()
  {
    System.out.println(" x      y");
    for(double x = 0; x <= 5; x = x + 0.5)
    {
      double y = 3*x*x - 7*x + 2; 
      System.out.println(x + "\t" + y);
    }  
  }
  
  public static void main(String[] args)
  {  new TableValues();  }
}

//*******************************************************//

We will discuss how to make a NICELY FORMATTED table.

You can use this program, with some alterations, to solve other equations, like:

   y = x^4 - 8x^2 + 15
   y = sin(x) - cos(x)
   y = x - sqrt(x+1) 

Or pretty much any other equation in your math textbook.

Using Standard Classes and Objects - 11 Oct 2018

We will be working through some of the notes
and exercises in Chapter 3 of this book:
https://kea.nu/files/textbooks/intro.pdf 3.4-3.6
You should read sections 3.4-3.6

We will discuss the following code:

   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       String price = jTextField1.getText();
       double money = Double.parseDouble(price);
       double tax = money*0.18;
       double total = money + tax;

       DecimalFormat df = new DecimalFormat("0.00");
 
       jTextField2.setText(""+df.format(total));
   }
   
   // HOMEWORK:
      //   Make 4 boxes for 4 prices
      //   a Button ADDS UP the 4 prices
      //   and puts the result in a 5th box
      //   nicely formatted to 2 decimal places

Another Example 

The following code makes a JButton twice as wide.

   private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                        
       System.out.println(jButton1.getWidth());
       int w = jButton1.getWidth();
       int h = jButton1.getHeight();
       int x = jButton1.getX();
       int y = jButton1.getY();
       w = 2*w;
       jButton1.setBounds(x,y,w,h);
       
       // finish this so the second button moves below
       // but does not change its size
   }      

If there is another JButton next to it,
the code needs to move that JButton down
to the next line, below this JButton.
Finish the code to do that.


[HL] Elevator Simulation - 10 Oct 2018

We will look at whether some students produced good simulations.
Otherwise we will use this one:


Times in Strings - 9 Oct 2018

*** Written Test - all the Java we have learned - Wed 17 Oct ***

Today we will discuss yesterday's program.

Then we will write a program that can find the 
elapsed time between a start and finish time -


Dates in Strings - 8 Oct 2018



String Practice - 24-26 Sep 2018

Here are some notes about String commands:
http://ibcomp.fis.edu/Strings/howto.htm

Here are some practice programs involving String variables:

== HOMEWORK ==
Spend 30 minutes programming solutions for
practice #1 and #2.  If you don't finish, that's okay.
We will finish this in the next class meeting.


String Commands - 21 Sep 2018

Reading:  p.118-121 in the textbook

Here are some notes about String commands:
http://ibcomp.fis.edu/Strings/howto.htm

Today we will write a program for a cafeteria cash register:

//==========================================

  private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
 
    String food, item, more ;
    double price, total;
  
    do                       // repeat for each new customer
    { total = 0.00;
      do                            
      {                          // repeat for each food item
        food = input("Food item");
        if( food.equals("ha") )       // hamburger
        {  price = 3.50; }
        else if (food.equals("ff"))   // french fries
        {  price = 1.75; }
        else if (food.equals("ap"))   // apple
        {  price = 0.90; }
        else if (food.equals("dr"))   // drink
        {  price = 1.40; }
        else 
        {  price = 0.00; }            // unknown item
        list1.add(food + "\t" + price);
        total = total + price;      
      } while(!food.equals(""));  // press ENTER after last item
      
      list1.add("Total = " + total);
      more = input("Next customer (or type 'quit')");
    } while (!more.equals("quit"));
  
    }                                        

 public String input(String prompt)
  { return javax.swing.JOptionPane.showInputDialog(null,prompt); }

//================================================


More String Arrays - 20 Sep 2018

Searching for
-  specific names
-  names with a specific starting letter
-  names starting with a specific 3 letters

Adding TIMES at the beginning of each entry

Extracting times before 12:00


[HL] Elevator Rules - 19 Sep 2018

What rules must be implemented as decisions in the embedded controller?

We will try to make an Elevator Simulator, like this one:

Homework:  In NetBeans, make an Elevator Simulator,
with BETTER RULES than the online link (above).
This is due for the next [HL] class.
Don't spend more than 2 hours on this.
You will not complete it (too difficult)
but get as far as you can in 2 hours.
Bring QUESTIONS to class on 10 Oct.

String Arrays - 18 Sep 2018

Download this program:

We will write a program to keep back of students who
leave school in the middle of the day.  A basic starting
version is in the .zip archive - GUILeavers.


Counting in Arrays -  17 Sep 2018

Here is some Java code that simulates flipping a coin.
In this code, 1 represents heads, 0 represents tails.

     int[] coins = new int[1000];
     for(int c = 0;  c < 1000;  c++)
     {
          coins[c] = (int)Math.floor(Math.random() * 2) ;
     }

     int heads = 0;
     for(int c = 0; c < 1000; c++)
     {
            if( coins[c] == 1)
            {   heads = heads + 1; }
     }

     System.out.println( "Heads Fraction = " + (heads / 1000) );

-  Put this code into a GUI
-  Change the output to print into a JTextField
-  Make a button that counts TAILS ( value = 0 )
-  Make a button that counts "pairs" - that is 2 rolls in a row
    that are the same, like head-head or tails-tailsl
-  Make a button that counts the number of times that HHHH occurs
-  Count how many duplicates happen at the beginning


TextFields in a GUI - 14 Sep 2018

Today we will write a GUI Password program, using JTextFields for input and output.

Then we will have a Practice Quiz, so you are prepared for the 10 minute quiz on Monday.
Next week, we will have short quiz at the beginning of each class.


GUI Dice - 12 Sep 2018

We will create a GUI program - with proper windows - using this code:

        int[] dice = new int[4];
        for(int d = 0; d < 4; d++)
        {
            dice[d] = (int)(Math.floor(Math.random()*6 + 1));
        }
        int total = dice[0] + dice[1] + dice[2] + dice[3];
        String info = dice[0] + " " + dice[1] + " " + dice[2] + " " + dice[3] + "=" + total;

        list1.add(info);

The teacher will demonstrate how to create a GUI program in NetBeans.
Then you should copy the code above and create the same program.
Try to add more BUTTONS for the following :
-  clear the list box, using  list1.removeAll();
-  change the program to roll 3 dice instead of 4
-  write commands to check for DUPLICATE dice,
    and display MATCH or NO MATCH after the total
-  add a new button to roll the dice 20 times


 

More Dice Games - 11 Sep 2018

How do we check for matching dice?
What if there are LOTS of dice?  How do we find matches then?
If the goal is to roll EXACTLY ONE 6 (no pairs), what is the best number of dice to roll to maximize chances for success?


Dice Rolls with Arrays - 10 Sep 2018

public class DiceTotals {
  public DiceTotals()
  {
    int over20 = 0;  
      
    int[] dice = new int[4];  
      
    int matches = 0;    
    for(int count=1; count <= 10; count++)    
    {
        for(int d=0; d < 4; d++)
        {
            dice[d] = (int)(Math.floor(Math.random()*6) + 1);
        }
        int total = 0;
        for(int d=0; d < 4; d++)
        {
            total = total + dice[d];
        }
        for(int d=0; d < 4; d++)
        {
            System.out.print(dice[d] + "  ");
        }
        System.out.println(total);
        if(total > 20)
        {
            over20 = over20 + 1;
        }
    }
    System.out.println(">20 = " + over20 + "  fraction = " + over20/10.0);

  }
  
  public static void main(String[] args)
  {  new DiceTotals();  }    
}
//==========================================
// This program demonstrates how to use an ARRAY
// to save multiple dice rolls,  The array is DICE[].
// Loops are used to examine the dice, in this case
// adding up the TOTAL of the 4 dice.  
//
// The advantage of using an ARRAY is that it is
// very easy to change the program to roll any number
// of dice.
//
// (1) Change the program to roll 5 dice instead of 4.
//      It must still calculate a correct total.
//      Now it is much easier to get a total over 20.
//
// (2) Change the program to roll the dice 1000 times
//       instead of only 10 times.  Make sure the FRACTION
//       of rolls over 20 is still correct.
//
// (3) The teacher will lead you through several other
//       useful changes, such as:
// .      counting matches (3 2 3 4)
// .      counting 3 of a kind (5 5 6 5)
// .      counting 4 of a kind (1 1 1 1)
// .      how many times do you need to roll to get 4 of a kind?
// .......
//==========================================


More Dice Rolls - 31 Aug 2018

We will continue discussing the dice rolling program.


More About Loops - 30 Aug 2018

We will continue discussing loops, especially the rest of the programs from Monday.


[HL] Embedded Systems - 28 Aug 2018

We will discuss students' answers to these topics:

A variety of control systems should be examined such as:
- automatic doors .   Tristan Reich 
      Video - automatic doors fail
- heating systems     Benedikt + Sam
- taxi meters            Jesper + Oliver
- elevators               Andrew H + Andrew K
- washing machines  Baldur + David
                                     - process control (?? leave this out)
                                     - device drivers
- domestic robots     Lorenzo + Robert
- GPS systems         John + Julian
- traffic lights          Tristan Roemer + Louis

  1. What input devices (sensors) must exist in the system?
  2. What output devices (actuators/transducers or motors) must exist?
  3. What processing must occur to make the system function correctly (input-processing-output)?
  4. What rules must be implemented as decisions in the embedded controller?

Loops - 27 Aug 2018

We will study the sample LOOPS programs in:


Basic Java Lessons - 24 Aug 2018

After finishing the practice programs from yesterday (below),
look at this set of Basic Java Lessons:
To run a program, you need to copy the Source Code
into a new Java Class in Netbeans.

We will start with the Passwords program.


Starting Java - 23 Aug 2018

First we will discuss the homework - adding up odd numbers in Pseudocode.

Then we will be using NetBeans to write and run Java programs.
NetBeans is a bit complex, so we will spend some time
learning how to use this tool sensibly.  

We will start with these 2 sample programs:

//========= Calculations ===========================

public class Calculations {

   public static void main(String[] args)
   {
       new Calculations();
    }
    public Calculations()
    {   System.out.println(1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9);              // multiplication
        System.out.println(3 * 3 + 4 * 4 - 5 * 5);                             // order of operations like math
        System.out.println(100 - (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10)); // use parentheses when needed
        System.out.println(60 * 60 * 24 + " seconds in a day");             // this + doesn't add
        System.out.println(365 / 7 + " weeks in a year");                   // division with integers ..
        System.out.println(1 / 2 + 1 / 3 + 1 / 6);                             //  .. doesn't produce decimals
        System.out.println(1.0 / 2.0 + 1.0 / 3.0 + 1.0 / 6.0);              // use decimals to get decimals
        System.out.println("5^3 = " + Math.pow(5, 3));                       // Math.pow for power   
    }

}

/********************************************
Practice

1 - Calculate the number of hours in one year.
 
2 - Calculate 1/2 + 1/3 + 1/4 + ... + 1/9.
 
3 - By guessing and calculating, find a solution to this problem:
        X * X * X * X = 100
    You only need to get an approximate answer with 2 decimal places correct.
 
4 - A computer works at a speed of 2 GigaHertz - that means that it can do
    2 BILLION (2 000 000 000) calculations per second. 
    Calculate the number of calculations it can do in 1 minute.
  
5 - Write a command that CORRECTLY calculates a value for 20 !
*******************************************/
//==============================================


//========= Add Up Numbers =======================

public class Addup {
   public static void main(String[] args)
   {
       int sum = 0;
       
       for(int x=0; x < 10; x = x+1)
       {
          System.out.println(x);
          sum = sum + x;
       }
       
       System.out.println(sum);
   }
    
}

/******************************
This adds up the numbers 1+2+3+... ?

-  Where does it stop adding?
-  Change it to add up 1+2+3....+99+100 ==> Correct result = 5050
-  Change it to add up only the odd numbers 1+3+5+7+...+95+97+99
-  Change it to add up 5+10+15+...+95+100
-  Change it to add up 1+2+4+16+...+65536

*******************************/
//===========================================

Java Programming - 21 Aug 2018

First - turn in your homework from yesterday.

== HOMEWORK ==
//***** In Pseudocode, add up all ODD numbers up to 100 **********
//             1+3+5+7+.........+95+97+99

Now the teacher will explain what Pseudocode is, 
what does it mean in IB Computer Science,
and how to practice at :  Pseudocode 
We will discuss the programs listed below -
these are all available in the Pseudocode Tool.

//====== Calculations =========================

output "=== Simple Calculations ==="

output "Adding 1...10 = " , 1+2+3+4+5+6+7+8+9+10

output "10 Factorial = " , 1*2*3*4*5*6*7*8*9*10

output "Fractions = 1/2 + 1/4 + 1/5 = " , 1/2 + 1/4 + 1/5

output "Pythagoras = 3^2 + 4^2 = 5^2 = " , 3*3 + 4*4 , " and " , 5*5

output "Big Numbers = one trillion ^ 2 = " , 1000000000000 * 1000000000000

output "Easier big numbers = " , 2e12 * 3e12

output "10307 is not prime = " , 10307 / 11 , " * " , 11

output "15% of 12345 = " , 15/100*12345

output "Incorrect calculation = " , 1234567890 * 1234567890

output "Another error = " , 1/2 + 1/3 + 1/6

output "One more problem = " , 0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1

output "And another problem = " , 3.2 – 0.3

// --- LOGIC ----------------------------------------------------

// The computer can perform more complex LOGIC

// by using BOOLEAN OPERATORS like AND and OR.


NAME = input("Type your user name")

PASSWORD = input("Type your password")


if NAME = "bozo" AND PASSWORD = "clown" then

output "Correct!"

end if


if NAME = "einstein" AND PASSWORD = "e=mc2" then

output "Correct!"

end if


if NAME = "guest" OR NAME = "trial" then

output "You will be logged in as a GUEST"

end if


//==== Adding Up Numbers =========================

// This program adds up a lot of numbers : 1 + 2 + 3 + ... + max

// ===============================================

MAX = 10

SUM = 0

loop COUNT from 0 to MAX

output COUNT

SUM = SUM + COUNT

end loop

output "Total = " , SUM


== HOMEWORK ==
Change the Adding Up program so that it adds up
all the ODD numbers smaller than 100, e.g.
1+3+5+7+....+95+97+99


System Scenarios - 20 Aug 2018

We will discuss the Smartphone scenario and the Future PCs scenario
in the Systems notes : systems/computerSystems.html

== HOMEWORK ==
Write an answer to these questions:
- Imagine that you are hired by the school as a computer systems consultant
  to implement the planned SmartPhone system for teachers at FIS.
  What questions would you ask?  What advice would you give?


Defining Computers and Computer Systems - 17 Aug 2018

Today's Assignment

 * We will discuss these notes Computer Systems Notes about computer SYSTEMS:
   systems/computerSystems.html

Homework

Robot Fails Video ; https://www.youtube.com/watch?v=COD23cVWcIo

-  Read these notes Computer Systems Notes
     systems/computerSystems.html

     and be prepared to discuss them next class. 


[HL] Embedded Control Systems - 16 Aug 2018

IB Syllabus Topic 7

7.1.1   Discuss a range of control systems.

~~~~~~~~

A variety of control systems should be examined such as:
- automatic doors .   Tristan Re
      Video - automatic doors fail
- heating systems .   Benedikt
- taxi meters           Jesper
- elevators               Andrew H
- washing machines .   Baldur
                                     - process control (?? leave this out)
                                     - device drivers
- domestic robots .   Lorenzo
- GPS systems .      John 
- traffic lights .       Tristan Roemer

. . . and other common devices.

Technical knowledge of specific systems is not expected
but students should be able to analyse a specified system.

7.1.2   Outline uses of microprocessors and sensor input in control systems.

~~~~~~~~

We will study some sample control systems.

In each case, consider the following questions:

  1. What input devices (sensors) must exist in the system?
  2. What output devices (actuators/transducers or motors) must exist?
  3. What processing must occur to make the system function correctly (input-processing-output)?
  4. What rules must be implemented as decisions in the embedded controller?

You might want to think about processing first, and then think about inputs and outputs.

For the most part, there is little storage in embedded controllers, or at least nothing interesting.


IB Computer Science Course Intro - 15 Aug 2018

We will look over the course, including:

- Course Overview : IB CS Overview

- Syllabus : IB CS Course Guide

- Internal Assement : Internal Assessment Java Notes 

- Exams : Notes and Review 2019

- Textbook : Comp Sci Illuminated Book

- Java Notes : Basic Java Lessons     Java Tutor      Java Book

== HOMEWORK ==

1.  Install NetBeans  
   You need to install it and bring it to class tomorrow in working condition.  You can download it at:
     https://netbeans.org/downloads/
   Choose the Java SE version (smallest download).
 -- OR --
   http://www.oracle.com/technetwork/articles/javase/jdk-netbeans-jsp-142931.html
   to download NetBeans WITH the Java JDK.
 -- OR --
   borrow a USB stick from the teacher.

2.  Bring ONE QUESTION (or more) to class about the documents above.  We will discuss these questions tomorrow.