What's in store in CS1101?

advertisement
CS1101: Programming Methodology
http://www.comp.nus.edu.sg/~cs1101x/
Java Appreciation
OR
What’s In Store In CS1101?
by Aaron Tan
28 July 2008, 9am,
LT16
What's in store in CS1101?
2
Exercising Your Choice
CS1101
or
CS1101S
What's in store in CS1101?
3
CS1101: Course Description
“This module introduces the
fundamental concepts of programming
from an object-oriented perspective,
and is perceived as the first and
foremost introductory course to
computing.”
What's in store in CS1101?
No prior experience
is assumed.
4
CS1101: Objectives
 Learning about programming methodology
and principles, using the object-oriented
model.
 Outcomes:
 Know how to solve simple algorithmic problems.
 Know how to write good small programs.
 JAVA is merely a tool.
 This is not a course on just JAVA alone!
What's in store in CS1101?
5
CS1101: Lecture Groups
 Group X (3 lecture groups):


 Mr Aaron Tan Tuck Choy (Module coordinator)
 For students with more experience
Group Y (3 lecture groups):
 A/P Wynne Hsu
CS1101X, Y and Z all
cover the same syllabus,
 Dr Razvan Voicu
and have common tests.
 A/P Lee Mong Li
Final grading of CS1101X,
Group Z (3 lecture groups):
Y and Z is done together
as a single group.
 A/P Tan Chew Lim
 Dr Anthony Fang
 Mr Henry Chia
What's in store in CS1101?
6
Module Website
 http://www.comp.nus.edu.sg/~cs1101x/
What's in store in CS1101?
7
Workload (5 MCs)
 Lectures:
 3 hours/week in a lab setting.
 Discussion:
 2 hours/week in a lab setting.
 Continual assessment:
 Lab assignments
 Mid-term test
 Practical Exam
What's in store in CS1101?
8
Skills Set (1/2)
Java constructs
Problem solving
Program
What's in store in CS1101?
9
Skills Set (2/2)
 Java constructs (transferable skills)
 Class and objects; types and variables; control constructs
(selection, repetition); APIs; arrays; exceptions;
applications (searching, sorting).
 Problem solving (more transferable skills)
 Programming methodology (development cycle, top-down
design, modularity); testing and debugging; abstraction.
 Others
 Software tools (editor, compiler, debugger,
CourseMarker); mathematical maturity.
What's in store in CS1101?
10
A Java Program (Hello.java)
Comments
// Display a message.
Class name
public class Hello {
Method name
public static void main(String[] args) {
Method
body
System.out.println("Hello World!! :-D");
}
Output
}
What's in store in CS1101?
11
A Java Program (Welcome.java)
API package
// Author: Aaron Tan
// Purpose: Ask for user’s name and display a welcome message.
import java.util.*;
public class Welcome {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("What is your name? ");
String name = scanner.next();
System.out.println("Hi " + name + ".");
System.out.println("Welcome to CS1101!\n");
}
}
What's in store in CS1101?
Creating a
Scanner object
Input
An object of
class String
12
Object-Oriented Programming (OOP)


The fundamental OOP concept:
An object-oriented program uses
objects.
Demo on BlueJ:
 Illustrate concepts of object and class
 Creation of objects
 Sending messages to objects
What's in store in CS1101?
13
Objects and classes (1/2)

Object-oriented language


Objects




Models real-world objects you find in everyday life.
Represent ‘things’ from the real world, or from some problem
domain (“that red 1200cc Honda car”, “my 2-year old Persian
cat with a short tail”).
Have name, state (set of values for its attributes) and
behaviors (via methods).
Perform actions or interact by sending messages.
Classes


Represent all objects of a kind (“car”, “cat”).
A class is a model/blueprint/prototype for an object. An object
is an ‘instance’ of a class. Many instances (objects) can be
created from a single class.
What's in store in CS1101?
14
Objects and classes (2/2)


Class is a concept; object is a concrete entity.
A class defines what attributes an object has, but
each object stores it own set of values, which
contribute its state.


Example: PlayingCards is a class, whose properties are
rank and suit. The queen of clubs and nine of diamonds are
two instances (objects) of this class.
New class (type of objects) can be derived from an
existing class.

Superclass and subclass: the subclass extends/specializes
the functionality of the superclass and inherits the properties
and behaviors of the superclass.
What's in store in CS1101?
15
BlueJ






Designed at Monash University, Australia.
Runs on top of Sun Microsystems’ Java Development
Kit (JDK).
Provides an Integrated Development Environment
(IDE) with editor, compiler and debugger.
Simple user interface, easy to use. Do not need to
write complete application.
Refer to course website
http://www.comp.nus.edu.sg/~cs1101x/ (click on
“Resources…”  “Online”)
Download BlueJ and its documentation.
What's in store in CS1101?
16
BlueJ: Creating objects (1/4)

Choose example shapes.

Classes: Square, Circle, Triangle, Canvas.
What's in store in CS1101?
17
BlueJ: Creating objects (2/4)

Creating a new object
Right click on Circle
class and choose
new Circle() to
create a new Circle
object. Circle() is a
constructor.
What's in store in CS1101?
18
BlueJ: Creating objects (3/4)

Creating a new object
What's in store in CS1101?
19
BlueJ: Creating objects (4/4)

Creating a new object
A new Circle object
circle1 is created.
What's in store in CS1101?
20
BlueJ: Calling methods (1/3)

Methods implement the behavior of the objects.
Right click on the
circle1 object and
select the
makeVisible()
method.
What's in store in CS1101?
21
BlueJ: Calling methods (2/3)

Methods implement the behavior of the objects.
Experiment with other methods: makeInvisible(),
moveDown(), moveRight().
What's in store in CS1101?
22
BlueJ: Calling methods (3/3)

Methods with parameters:

changeColor(newcolor), changeSize(newDiameter),
moveHorizontal(distance).
What's in store in CS1101?
23
BlueJ: State (1/2)

State: the set of values of all the attributes of an
object.
Right click on the
circle1 object and
select the Inspect
function.
What's in store in CS1101?
24
BlueJ: State (2/2)

Objects of the same class have the same
fields/attributes. But each object may have it own set
of values for its attributes.
State of circle1 object.
Fields:
int diameter
int xPosition
int yPosition
String Color
boolean isVisible
What's in store in CS1101?
25
BlueJ: Source code (1/8)

Right click on class Circle and select “Open Editor”.
import java.awt.*;
import java.awt.geom.*;
/**
* A circle that can be manipulated and that draws itself
* on a canvas.
* @author
Michael Kolling and David J. Barnes
* @version 1.0 (15 July 2000)
*/
public class Circle
{
private int diameter;
private int xPosition;
private int yPosition;
private String color;
private boolean isVisible;
What's in store in CS1101?
26
BlueJ: Source code (2/8)
// Create a new circle at default position with default color.
public Circle( )
{
diameter = 30;
xPosition = 20;
yPosition = 60;
color = "blue";
isVisible = false;
}
// Make this circle visible. If it was already visible, do nothing.
public void makeVisible( )
{
isVisible = true;
draw( );
}
// Make this circle invisible. If it was already invisible, do nothing.
public void makeInvisible( )
{
erase( );
isVisible = false;
}
What's in store in CS1101?
27
BlueJ: Source code (3/8)
// Move the circle a few pixels to the right.
public void moveRight( )
{
moveHorizontal(20);
}
// Move the circle a few pixels to the left.
public void moveLeft( )
{
moveHorizontal(-20);
}
// Move the circle a few pixels up.
public void moveUp( )
{
moveVertical(-20);
}
// Move the circle a few pixels down.
public void moveDown( )
{
moveVertical(20);
}
What's in store in CS1101?
28
BlueJ: Source code (4/8)
// Move the circle horizontally by 'distance' pixels.
public void moveHorizontal(int distance)
{
erase( );
xPosition += distance;
draw( );
}
// Move the circle vertically by 'distance' pixels.
public void moveVertical(int distance)
{
erase( );
yPosition += distance;
draw( );
}
What's in store in CS1101?
29
BlueJ: Source code (5/8)
// Slowly move the circle horizontally by 'distance' pixels.
public void slowMoveHorizontal(int distance)
{
int delta;
if (distance < 0)
{
delta = -1;
distance = -distance;
}
else
{
delta = 1;
}
for (int i = 0; i < distance; i++)
{
xPosition += delta;
draw( );
}
}
What's in store in CS1101?
30
BlueJ: Source code (6/8)
// Slowly move the circle vertically by 'distance' pixels.
public void slowMoveVertical(int distance)
{
int delta;
if (distance < 0)
{
delta = -1;
distance = -distance;
}
else
{
delta = 1;
}
for (int i = 0; i < distance; i++)
{
yPosition += delta;
draw( );
}
}
What's in store in CS1101?
31
BlueJ: Source code (7/8)
// Change the size to the new size (in pixels).
// Size must be >= 0.
public void changeSize(int newDiameter)
{
erase( );
diameter = newDiameter;
draw( );
}
// Change the color. Valid colors are "red", "yellow",
// "blue", "green", "magenta" and "black".
public void changeColor(String newColor)
{
color = newColor;
draw( );
}
What's in store in CS1101?
32
BlueJ: Source code (8/8)
// Draw the circle with current specifications on screen.
private void draw( )
{
if (isVisible) {
Canvas canvas = Canvas.getCanvas( );
canvas.draw(this, color,
new Ellipse2D.Double(xPosition, yPosition,
diameter, diameter));
canvas.wait(10);
}
}
// Erase the circle on screen.
private void erase( )
{
if (isVisible) {
Canvas canvas = Canvas.getCanvas( );
canvas.erase(this);
}
}
}
What's in store in CS1101?
33
Problem Solving (1/3)
 Problem  Algorithm Program
 Task 1: Anagram
 Text that is formed by rearrangement of
letters.
 Examples:
 Dear
 Astronomer
 The Eyes
 The Morse Code
 A Decimal Point
What's in store in CS1101?
=
=
=
=
=
Read
Moon Starer
They See
Here Come Dots
I’m A Dot In Place
34
Problem Solving (2/3)
 Task 2: Maze
What's in store in CS1101?
35
Problem Solving (3/3)
 Task 3: Sudoku
What's in store in CS1101?
36
Think About It
 This set of slides will be available at
 http://www.comp.nus.edu.sg/~cs1101x
 Administrative and registration issues
 Please attend Course Briefing later –
important!
 LT17, 28 July @ 2pm
(after Dean’s Welcome Tea)
 Questions?
What's in store in CS1101?
37
End of file
What's in store in CS1101?
38
Download