Title: Cosc 1P02
1Cosc 1P02
"If a man does his best, what else is
there? General George S. Patton (1885-1945)
2COSC 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/cos
c1p02/ - Email
- Dave Hughes hughesd_at_brocku.ca
- Dave Bockus bockusd_at_brocku.ca
- Succeeding in COSC 1P02
- labs/assignments
3Course 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
4Class 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 bockusd_at_brocku.ca
- MSN bockusd_at_hotmail.com
5Computer ScienceWhat 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
Hardware
Data In
Info Out
Algorithm Software
6Hardware Components
- processor (CPU)
- control unit (CU)
- controls system
- follows instructions
- arithmetic logic unit (ALU)
- performs operations (e.g. , -, , lt)
- main memory (RAM)
- volatile
- input devices
- transformation
- keyboard, scanner, sensor
7(No Transcript)
8 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
9Data Representation
Data, what is stored.
Address, where the info is located.
- switchesbi-stable devices
- binary system
- positional (like decimal)
- bit
- byte
- megabyte (MB)
- memory organization
- storage cell
- address
- store(write)/fetch(read)
10 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
11Instruction 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
12(No Transcript)
13(No Transcript)
14(No Transcript)
15Fetch/Decode Cycle
16Coding Schemes
17Machine LanguageAssembly 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.
18High-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
19Software
- 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)
20Computer Programming
21Java
- 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
22Java 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
23 - 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)
24Turtle 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
25Assembly and Machine Language
26Executing an Assembly Language Program
27Executing a High-Level Language Program
28Turtle 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.
29A 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
30Basic Program Components
- package Example_2_1
- import BasicIO.
- import Media.
- import static java.lang.Math.
- public class DrawSquare
-
- private TurtleDisplayer display // display
to draw on - private Turtle yertle // turtle
to do drawing -
- public DrawSquare ( )
-
- display new TurtleDisplayer()
- yertle new Turtle()
- display.placeTurtle(yertle)
-
- yertle.penDown()
- yertle.forward(40)
31Draw Square Program Flow
package Example_2_1 import BasicIO. import
Media. import static java.lang.Math. /
This class is a program to draw a square using
Turtle Graphics. _at_author D. Hughes
_at_version 1.0 (July 2007) new concepts
java program structure, declarations,
constructor, object creation, object
assignment, method calls, turtle displayer,
turtle graphics / public class
DrawSquare private TurtleDisplayer
display // display to draw on private
Turtle yertle // turtle to do
drawing public DrawSquare ( )
/ The constructor. /
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()
display.close() // constructor
public static void main ( String args
) new DrawSquare()
32TurtleDisplayer Methods
33Turtle Methods
34The end