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/  Email  Dave Hughes: [email protected]

 COSC 1P02: http://www.cosc.brocku.ca/offerings/cosc1p02/ 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 Info Out Hardware 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

switches—bi-stable devices binary system  positional (like decimal)  bit  byte  megabyte (MB) memory organization  storage cell  address  store(write)/fetch(read)

Address, where the info is located.

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 the actual machine instructions.

 made life easier for the programmers.

to represent 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 understand} {something the machine can  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 draws on a canvas Drawing a square  create displayer  create turtle  put turtle on canvas  put pen down  draw line  turn corner  repeat library 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 begin execution DrawSquare class to Intro. to Computer Science 1.29

} COSC 1P02

Basic Program Components

package Example_2_1; import BasicIO.*; import Media.*; import static java.lang.Math.*;

Import, make libraries visible.

public class DrawSquare {

Declare the variable 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();

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; * * @author D. Hughes *

Yertle is instructed to put draw a square.

Draw Square Program Flow

import BasicIO.*; import Media.*; import static java.lang.Math.*;

Variables declared in the class body are called instance variables. Each new Object

/** This class is a program to draw a square using Turtle Graphics.

* @version 1.0 (July 2007) * new concepts: java program structure, declarations, constructor, object creation,

its pen down and

// display to draw on private Turtle yertle; // turtle to do drawing

yertle

public DrawSquare ( ) { /** The constructor. */

yertle

} display = new TurtleDisplayer(); yertle = new Turtle(); display.placeTurtle(yertle); yertle.penDown();

Wait until the display

yertle.right(PI/2);

close button is

yertle.right(PI/2);

pressed, then exit

yertle.right(PI/2); yertle.forward(40); yertle.right(PI/2); yertle.penUp();

display

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