COSC 1P02 Week 1 - Brock University

Download Report

Transcript COSC 1P02 Week 1 - Brock University

COSC 1P02
Cosc 1P02
Week 1 Lecture slides
"If a man does his best, what else is there?”
General George S. Patton (1885-1945)
Intro. to Computer Science
1.1
COSC 1P02
COSC 1P02
 Audience
 planning to major in COSC
 Staff
 instructors: Dave Hughes (J312) & Dave Bockus (J324)
 mentor: Baoling Bork (J304)
 tutorial leader:
 lab demonstrators:
 Lectures (AS216), labs (J301), tutorials (AS203)
 Web
 COSC: http://www.cosc.brocku.ca/
 COSC 1P02: http://www.cosc.brocku.ca/offerings/cosc1p02/
 Email
 Dave Hughes: [email protected]
 Dave Bockus: [email protected]
 Succeeding in COSC 1P02
 labs/assignments
Intro. to Computer Science
1.2
COSC 1P02
Course Content and Procedures







All course documents available through Computer Science Website:
 www.cosc.brocku.ca/Offerings/1P02/
 COSC home page: www.cosc.brocku.ca
Outline
Instructional labs
 lab participation
Assignment preparation
 Help Desk (J304)
 submission (outside J332)
 return (J333)
 plagiarism
Exams/tests
 lab vs written
course procedures
 plagiarism
students with computers
 Software: JCreator or Dr. Java
 Libraries
 BasicIO
 TurtleGraphics
 Media
Intro. to Computer Science
1.3
COSC 1P02
Class Room
 Ground Rules
 Lecture conduct
 Cell Phones
 Laptops
 Contact information:
 Email messages only accepted from a Brock server.
 Dave Bockus
 Open Door Policy (J324, Day Section)
 E-mail [email protected]
 MSN [email protected]
Intro. to Computer Science
1.4
COSC 1P02
Computer Science
What is it?
 study of computer hardware and algorithms and data structures
and how they fit into information systems.
 computer
 programmable machine.
 processes data into information.
 Algorithm
 well-defined sequence of steps to produce an outcome
 programming language
 Java
Data In
Hardware
Info Out
Algorithm
Software
Intro. to Computer Science
1.5
COSC 1P02
Hardware Components
 processor (CPU)
 control unit (CU)
 controls system
 follows instructions
 arithmetic logic unit (ALU)
 performs operations (e.g. +, -, =, <)
 main memory (RAM)
 volatile
 input devices
 transformation
 keyboard, scanner, sensor
Intro. to Computer Science
1.6
COSC 1P02
Hardware Components.
 output devices
 transformation
 monitor, printer, actuator
 auxiliary storage
 hard disk, floppy disk, CD-ROM, DVD, Data Keys
 communications
 Networks ( wired, broadband)
 modem, cable modem
Intro. to Computer Science
1.8
COSC 1P02
Data Representation
Address, where
the info is
 switches—bi-stable devices located.
 binary system
 positional (like decimal)
 bit
 byte
 megabyte (MB)
 memory organization
 storage cell
 address
 store(write)/fetch(read)
Data, what is
stored.
Intro. to Computer Science
1.9
COSC 1P02
Data Representation (2)
 All information is represented in binary code
 numbers
 characters
 coding scheme
 sound, images
 Digitization
 Important: bytes of data only differ in how they are interpreted.
 The same byte can be viewed as:
 Simple representation
 Numbers (integers and floats)
 Characters (abc…)
 Part of Complex Objects
 Pictures, sounds, video
 Program
 Machine Code which instructs the hardware.
 Its all in the interpretation
Intro. to Computer Science
1.10
COSC 1P02
Instruction Processing
 machine language
 Opcode (operation code)
 Operand (source data to be used in the operation)
 CPU
 registers
 Special Registers IAR, IR
 bus
 machine (fetch/decode/execute) cycle
 fetch
 decode
 execute
 system clock
 1 megahertz (Mhz) = 1,000,000 cycles/second
Intro. to Computer Science
1.11
COSC 1P02
Machine Language
Assembly Language





First generation
One-to-one correspondence with hardware function
Binary representation
Operator (opcode)
Operands
 Developed into Assembly by allowing mnemonics to represent
the actual machine instructions.
 made life easier for the programmers.
Intro. to Computer Science
1.17
COSC 1P02
High-level Language
 Closer to problem domain
 One-to-many translation
 Code much easier to write and understand
 Made writing large programs much easier.
 Required:
 Compiler
 Takes source program
 Converts to object program {something the machine can
understand}
 Libraries
 linker
 Compile time vs Link time vs Execution time
Intro. to Computer Science
1.18
COSC 1P02
Software
 Software
 computer program
 instructions for machine execution
 Compiler
 Translation of a high level language into machine language.
 Program preparation
 edit
 editor
 compile
 compiler
 syntax errors
 link
 add in resources (code) from library
 execute
 execution (logic) errors (bugs)
 Development environment (IDE, e.g. DrJava, JCreator)
Intro. to Computer Science
1.19
COSC 1P02
Computer Programming
Intro. to Computer Science
1.20
COSC 1P02
Java
 Gosling (1990-92)
 Originally for consumer electronics
 embedded systems
 Platform independence
 Object-oriented
 programming as modeling
 Java as a better C++
 Execution of Java programs
 platform independence
 machine language?
 Java bytecode
 Java interpreter
Intro. to Computer Science
1.21
COSC 1P02
Java Programming Concepts
 library (package)
 e.g. Media
 collection of useful classes
 imported to be used
 class
 e.g. Turtle
 definition of a kind of entity (object)
 defines operations (methods) entities can perform
 object
 one entity from a class (a turtle)
 created using new
Intro. to Computer Science
1.22
COSC 1P02
 variable
 e.g. yertle
 name that refers to an object or value
 method
 e.g. forward
 an operation that can be performed by an object
 statement
 a line of Java code
 method call statement
 request for an object to perform a method
 object.methodName(parameters)
 e.g. yertle.forward(40)
Intro. to Computer Science
1.23
COSC 1P02
Turtle Graphics
 Simple graphics facility
 Derived from Logo
 TurtleDisplayer
 a class in the BasicIO library
 canvas of 300 by 300 drawing units
 Turtle
 a class in the Media library
 draws on a canvas
 Drawing a square
 create displayer
 create turtle
 put turtle on canvas
 put pen down
 draw line
 turn corner
 repeat
Intro. to Computer Science
1.24
COSC 1P02
Turtle Displayer
 This is equivalent to a piece of paper which the turtle will draw
on.
 Create the Displayer
 Put the turtle on the Displayer
 This also implies we can have more then 1 turtle on the same
displayer.
 Displayer and Turtle are resources provided by libraries.
 We do not make the paper we use. We let someone else do
this for us.
 Code is linked in to our program
 If you want a piece of paper you have to have a access to
it.
 Same for a pencil
 Import statement allows us access to these libraries.
Intro. to Computer Science
1.28
COSC 1P02
A Java Program
 Draw a square
 Framework
 a program is a class
 code for a class is stored in a file
 a class is part of a package
 establish (import) environment (libraries)
 define names (variables) being used
 constructor is a method that is executed when an object is
created
 contains actions (statements) to be performed
 main method creates an instance of the DrawSquare class to
begin execution
Intro. to Computer Science
1.29
COSC 1P02
Basic Program Components
package Example_2_1;
Import, make
libraries visible.
import BasicIO.*;
import Media.*;
import static java.lang.Math.*;
public class DrawSquare {
private TurtleDisplayer
private Turtle
display;
yertle;
public DrawSquare ( ) {
display = new TurtleDisplayer();
yertle = new Turtle();
display.placeTurtle(yertle);
yertle.penDown();
yertle.forward(40);
yertle.right(PI/2);
yertle.forward(40);
yertle.right(PI/2);
yertle.forward(40);
yertle.right(PI/2);
yertle.forward(40);
yertle.right(PI/2);
yertle.penUp();
Declare the variable
yertle.
// display to draw on
&
// turtle to display
do drawing
Create the Objects we
need to use, Drawing
Surface -> display and
the Turtle -> yertle.
Put the Turtle on
the Surface.
Use yertle by
calling methods.
display.close();
};
// constructor
public static void main ( String[] args ) { new DrawSquare(); };
}
Intro. to Computer Science
1.30
COSC 1P02
package Example_2_1;
Draw
Square
Program
Flow
Variables declared in the class body are
import BasicIO.*;
import Media.*;
import static java.lang.Math.*;
/**
*
*
*
*
*
*
*
This class is a program to
called instance variables. Each new Object
will
haveusing
its own
variables.
draw
a square
Turtle instance
Graphics.
@author D. Hughes
@version 1.0 (July 2007)
Yertle
is
new concepts: java program structure, declarations, constructor, object
object assignment,
instructed
to putmethod calls, turtle displayer, turtle graphics
public
class
DrawSquare
its pen
down
and{
yertle
private
TurtleDisplayer display; // display to draw on
draw
a square.
private
Turtle
yertle;
// turtle to do drawing
public DrawSquare ( ) {/** The constructor. */
creation,
*/
yertle
display = new TurtleDisplayer();
yertle = new Turtle();
display.placeTurtle(yertle);
yertle.penDown();
Wait yertle.forward(40);
until the display
yertle.right(PI/2);
closeyertle.forward(40);
button is
yertle.right(PI/2);
yertle.forward(40);
pressed,
then exit
yertle.right(PI/2);
display
yertle.forward(40);
yertle.right(PI/2);
yertle.penUp();
display.close();
};
// constructor
public static void main ( String[] args ) { new DrawSquare(); };
}
Program starts by
creating a new
Square Object
Constructor
finishes and
program ends
Intro. to Computer Science
1.31
COSC 1P02
The end
Intro. to Computer Science
1.34