Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 839

Warning: preg_match_all(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 834

Warning: Invalid argument supplied for foreach() in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 835

Warning: preg_replace(): Compilation failed: group name must start with a non-digit at offset 4 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 839

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860

Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /home/e5m7uo8vro0d/public_html/mediawiki/includes/MagicWord.php on line 860
Hogwarts School Of Computer Science - Huben's Wiki

Hogwarts School Of Computer Science

From Huben's Wiki
Jump to: navigation, search
(Created page with "''GLENDOWER: I can call spirits from the vasty deep.<br> ''HOTSPUR: Why, so can I, or so can any man; But will they come when you do call for them?''<br> Henry IV, Shakespeare '...")
 
 
Line 1: Line 1:
 +
[[Image:Welcome To Hogwarts.jpg]]
 +
 
''GLENDOWER: I can call spirits from the vasty deep.<br>
 
''GLENDOWER: I can call spirits from the vasty deep.<br>
 
''HOTSPUR: Why, so can I, or so can any man; But will they come when you do call for them?''<br>
 
''HOTSPUR: Why, so can I, or so can any man; But will they come when you do call for them?''<br>
 
Henry IV, Shakespeare
 
Henry IV, Shakespeare
  
'''Welcome to Hogwarts School Of Computer Science!'''
+
==Welcome to Hogwarts School Of Computer Science!==
  
 
Computers are types of perverse and hostile Demons: we command them as our servants and they perform only exactly what we commanded, even if it was not our intention.
 
Computers are types of perverse and hostile Demons: we command them as our servants and they perform only exactly what we commanded, even if it was not our intention.
  
Computer demons speak many inhuman languages: our goal will be to learn fluency in one of those languages: Java.   
+
Computer demons speak many inhuman languages: our goal will be to learn fluency in one of those languages: JAVA.   
 
* We will read and write lengthy incantations called programs in the arcane language JAVA, and understand how these demons and their servants can be bent to our will.
 
* We will read and write lengthy incantations called programs in the arcane language JAVA, and understand how these demons and their servants can be bent to our will.
 
* We will study the weird processes of demonic computation: how to invoke smaller demons called objects and how to make them dance for us.  
 
* We will study the weird processes of demonic computation: how to invoke smaller demons called objects and how to make them dance for us.  
 
* We will learn the secret words that create and compel them.  
 
* We will learn the secret words that create and compel them.  
* Any little mistake in our incantations will result in our demons ceasing work and cursing at us with dread error messages.  
+
* Any little mistake in our incantations will result in our demons ceasing work and cursing us with dread error messages.  
 
* Thus, it behooves us to continually perfect our understanding of their demonic tongue and repair our program incantations where they show weakness.
 
* Thus, it behooves us to continually perfect our understanding of their demonic tongue and repair our program incantations where they show weakness.
  
Line 17: Line 19:
  
 
==The Mystery Of The Curly Braces==
 
==The Mystery Of The Curly Braces==
 +
Banner.java
 +
<pre>
 +
// This applet displays a message moving horizontally
 +
// across the screen.
 +
 +
import java.awt.*;
 +
import java.awt.event.*;
 +
import javax.swing.*;
 +
 +
public class Banner extends JApplet
 +
  implements ActionListener
 +
{
 +
  private int xPos, yPos;  // hold the coordinates of the banner
 +
 +
  public void init()
 +
  {
 +
    Container c = getContentPane();
 +
    c.setBackground(Color.WHITE);
 +
    xPos = c.getWidth();
 +
    yPos = c.getHeight() / 2;
 +
    Timer clock = new Timer(30, this);  // fires every 30 milliseconds
 +
    clock.start();
 +
  }
 +
 +
  // Called automatically after a repaint request
 +
  public void paint(Graphics g)
 +
  {
 +
    super.paint(g);
 +
    g.drawString("Hello, World!", xPos, yPos);
 +
  }
 +
 +
  // Called automatically when the timer fires
 +
  public void actionPerformed(ActionEvent e)
 +
  {
 +
    Container c = getContentPane();
 +
 +
    // Adjust the horizontal position of the banner:
 +
    xPos = xPos - 1;
 +
    if (xPos < -100)
 +
    {
 +
      xPos = c.getWidth();
 +
    }
 +
 +
    // Set the vertical position of the banner:
 +
    yPos = c.getHeight() / 2;
 +
 +
    repaint();
 +
  }
 +
}
 +
</pre>
 +
 +
* What do you notice about the braces and the words of this incantation?
 +
 +
Braces delimit '''blocks'''.  A block is a series of statements, and statements are easy to spot because they usually are one per line and end with a semicolon.
 +
 +
* How many blocks are there in this incantation?
 +
* How many statements are there in this incantation?
 +
* Guess how many statements can be in a block: smallest number and largest number.
 +
 +
This incantation is called a '''class''' because it has the magic word '''class''' in it.  Muggles call thes magic words '''reserved words'''.
 +
 +
There should be a program on your desktop called  Dr. Java. 
 +
* Start Dr. Java.
 +
* Cut and paste the incantation Banner.java into Dr. Java.
 +
* Use the file menu to save it to your H drive.  Don't change the name from Banner.  Dr. Java automatically knows what to call the file: you just tell it what folder.
 +
* Use the Edit/Preferences menu to check the "Show All Line Numbers" box.  Click apply, and close the preferences box.  Go "oooo, ahhhhhhh!"
 +
* Click "compile", then click "run".
 +
* Enjoy the results!
 +
 +
Now we play with it.
 +
* Look for numbers, and try to change them to make it run differently.  You will need to compile and run to see your changes.
 +
* What numbers do what?
 +
* Bonus if you can find how to make it hop instead of smooth scrolling.
 +
* Double bonus if you can do it the right way.
 +
 +
Here is another incantation:
 +
 +
<pre>
 +
//  This program shows simple graphics in a window.
 +
 +
import java.awt.*;
 +
import javax.swing.*;
 +
 +
public class HelloGraphics extends JPanel
 +
{
 +
public void paintComponent(Graphics g)
 +
{
 +
super.paintComponent(g);  // Call JPanel's paintComponent method
 +
                          //  to paint the background
 +
g.setColor(Color.RED);
 +
 +
// Draw a 150 by 45 rectangle with the upper-left
 +
// corner at x = 25, y = 40:
 +
g.drawRect(20, 40, 150, 45);
 +
 +
g.setColor(Color.BLUE);
 +
 +
// Draw a string of text starting at x = 60, y = 25:
 +
g.drawString("Hello, Graphics!", 55, 65);
 +
}
 +
 +
public static void main(String[] args)
 +
{
 +
JFrame window = new JFrame("Graphics Demo");
 +
// Set this window's location and size:
 +
// upper-left corner at 300, 300; width 200, height 100
 +
window.setBounds(300, 300, 200, 150);
 +
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 +
 +
HelloGraphics panel = new HelloGraphics();
 +
panel.setBackground(Color.WHITE);  // the default color is light gray
 +
Container c = window.getContentPane();
 +
c.add(panel);
 +
 +
window.setVisible(true);
 +
}
 +
}
 +
</pre>
 +
 +
This incantation has not followed the rules of the curly braces, but will still work.
 +
 +
* Cut and paste it into Dr. Java, and save it as HelloGraphics.
 +
* Run it: it should work.
 +
* Now indent it properly so that it looks like Banner.java above.
 +
* Run it: it should still work.
 +
* What does that tell us about spaces in these incantations?
 +
* Why then do we indent according to curly braces?
 +
 +
Let's do it the easy way now!
 +
 +
* Cut and paste it again into Dr. Java, so there is no indentation.
 +
* Select all the code.
 +
* Press the Tab key.  What magic has resulted?
 +
* If you have time, you can play with this program too.

Latest revision as of 12:31, 6 September 2013

Personal tools
translate