CS1101: Programming Methodology http://www.comp.nus.edu.sg/~cs1101x/ - PowerPoint PPT Presentation

About This Presentation
Title:

CS1101: Programming Methodology http://www.comp.nus.edu.sg/~cs1101x/

Description:

Lab assignments. Mid-term test. Practical Exam. 9. What's in store in CS1101? ... Valid colors are 'red', 'yellow', // 'blue', 'green', 'magenta' and 'black' ... – PowerPoint PPT presentation

Number of Views:227
Avg rating:3.0/5.0
Slides: 39
Provided by: aaro3
Category:

less

Transcript and Presenter's Notes

Title: CS1101: Programming Methodology http://www.comp.nus.edu.sg/~cs1101x/


1
CS1101 Programming Methodology
http//www.comp.nus.edu.sg/cs1101x/
2
Java Appreciation
Java Appreciation
  • OR
  • Whats In Store In CS1101?

by Aaron Tan 28 July 2008, 9am, LT16
3
Exercising Your Choice
  • CS1101
  • or
  • CS1101S

Java
Scheme
4
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.

No prior experience is assumed.
5
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!

6
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
  • Dr Razvan Voicu
  • A/P Lee Mong Li
  • Group Z (3 lecture groups)
  • A/P Tan Chew Lim
  • Dr Anthony Fang
  • Mr Henry Chia

CS1101X, Y and Z all cover the same syllabus, and
have common tests. Final grading of CS1101X, Y
and Z is done together as a single group.
7
Module Website
  • http//www.comp.nus.edu.sg/cs1101x/

8
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

9
Skills Set (1/2)
  • Java constructs

Problem solving
Program
10
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.

11
A Java Program (Hello.java)
Comments
  • // Display a message.
  • public class Hello
  • public static void main(String args)
  • System.out.println("Hello World!! -D")

Class name
Method name
Output
12
A Java Program (Welcome.java)
API package
  • // Author Aaron Tan
  • // Purpose Ask for users 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")

Creating a Scanner object
Input
An object of class String
13
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

14
Objects and classes (1/2)
  • Object-oriented language
  • Models real-world objects you find in everyday
    life.
  • Objects
  • 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.

15
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.

16
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.

17
BlueJ Creating objects (1/4)
  • Choose example shapes.
  • Classes Square, Circle, Triangle, Canvas.

18
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.
19
BlueJ Creating objects (3/4)
  • Creating a new object

20
BlueJ Creating objects (4/4)
  • Creating a new object

A new Circle object circle1 is created.
21
BlueJ Calling methods (1/3)
  • Methods implement the behavior of the objects.

Right click on the circle1 object and select the
makeVisible() method.
22
BlueJ Calling methods (2/3)
  • Methods implement the behavior of the objects.

Experiment with other methods makeInvisible(),
moveDown(), moveRight().
23
BlueJ Calling methods (3/3)
  • Methods with parameters
  • changeColor(newcolor), changeSize(newDiameter),
    moveHorizontal(distance).

24
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.
25
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
26
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. _at_author Michael
Kolling and David J. Barnes _at_version 1.0 (15
July 2000) / public class Circle private
int diameter private int xPosition private
int yPosition private String color private
boolean isVisible
27
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
28
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)
29
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( )

30
BlueJ Source code (5/8)
// Slowly move the circle horizontally by
'distance' pixels. public void
slowMoveHorizontal(int distance) int
delta if (distance lt 0)
delta -1 distance -distance
else delta 1
for (int i 0 i lt distance i)
xPosition delta draw( )

31
BlueJ Source code (6/8)
// Slowly move the circle vertically by
'distance' pixels. public void
slowMoveVertical(int distance) int
delta if (distance lt 0)
delta -1 distance -distance
else delta 1
for (int i 0 i lt distance i)
yPosition delta draw( )

32
BlueJ Source code (7/8)
// Change the size to the new size (in
pixels). // Size must be gt 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( )
33
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)
34
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

Read Moon Starer They See Here Come Dots Im A
Dot In Place
35
Problem Solving (2/3)
  • Task 2 Maze

36
Problem Solving (3/3)
  • Task 3 Sudoku

37
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 _at_ 2pm
  • (after Deans Welcome Tea)
  • Questions?

38
End of file
Write a Comment
User Comments (0)
About PowerShow.com