16
CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Embed Size (px)

DESCRIPTION

CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction. Why three Java courses?. “Traditional” CS1 (201.001 & 201.002) Starts with Python Uses drjava as IDE and interactive Java evaluator Uses “media computation” package Mathematical CS1 (273.002) - PowerPoint PPT Presentation

Citation preview

Page 1: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

CSCI 273.001Processing

CSCI 201.003Introduction to Algorithm Design

An Introduction

Page 2: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Why three Java courses?• “Traditional” CS1 (201.001 & 201.002)

– Starts with Python– Uses drjava as IDE and interactive Java evaluator– Uses “media computation” package

• Mathematical CS1 (273.002)– How to compute it– Use NetBeans as IDE– Closest to the traditional CS1`

• Processing CS1 (201.003 & 273.001)– Uses Processing as IDE– Uses Processing for multimedia packages– Ends with Arduino

Page 3: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Programming Languages

– An abstract "human understandable" language for telling the computer what to do

– The abstract language must be translated into the low level language understood by the machine

Page 4: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Programming Languages– How does a computer work?– The translation from a text source to machine code is

accomplished by an interpreter or compiler– How does a compiler work?– How does an interpreter work?

Instruction 10000 0000 0001 0000 0011 0001 (moving the number from memory location "3" to Register # 1)

Instruction 20000 0000 0001 0000 0100 0010 (moving the number from memory location "4" to Register # 2)

Instruction 30000 0000 0011 0001 0010 0011 (Adding Register #1 and Register # 2, and putting the result in Register # 3)

Instruction 40000 0000 0010 0011 0000 0100 (Moving the contents of Register # 3 in Memory location "4")

Page 5: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Compiler

Page 6: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

A Simple Java Program

/* this is a simple Java program */

class Example {

public static void main(String args[]) {

System.out.println("this is a simple Java program");

}

}

Human Readable??

Page 7: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Java VM assembly code (bytecode)• Bytecode is interpreted by machine-specific Java Virtual

Machines (JVMs).• Bytecode consists of simple, step-by-step instructions for

the JVM.

public static voidmain(java.lang.String[]);Code:0: iconst_01: istore_12: goto 305: getstatic8: new11: dup12: ldc14: invokespecial #2317: iload_118: invokevirtual #2721: invokevirtual #31…

Page 8: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

How Java Works

1. Source code is first written in plain text files ending with the .java extension.

2. Those source files are then compiled into .class files by the javac compiler. A .class file does not contain code that is native to your processor; it instead contains bytecodes — the machine language of the Java Virtual Machine1 (Java VM).

3. The java launcher tool then runs your application with an instance of the Java Virtual Machine.

Page 9: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Java Virtual Machine• Java VM is available on many

different operating systems.• The same .class files are

capable of running on Microsoft Windows, the Solaris TM Operating System (Solaris OS), Linux, or Mac OS.

Page 10: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

But we’re using Processing• Processing is built on top of Java

• Supports script-like coding– Easy to get simple programs up fast– But allows transition to full Java programming

• Has built-in methods and classes to make drawing easy

• Easy to export program to applet

Page 11: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Processing Environment

MenuToolbar (run, stop, new, open, save, export)Tabs

Text editor (this is where you type code)

Message area (feedback, errors)

Text output (print commands)

Page 12: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Drawing in Processing

• Automatic creation of display window

• Window has a coordinate system for drawing

Page 13: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Let's draw a point: point()

• point(x, y) – draws a point at the location x, y

• Try it in Processing:point(50, 50)

Unexpected token: null – what the #@#$ !?!

• Compiler errors appear in the bottom pane

• All lines must be terminated with a semicolon ;

• Try drawing several points

Page 14: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Comments

• Comments are non-program text you put in the file to describe to others (and yourself) what you’re doing

• Important for being able to look back at your code and understand it– Single-line comments begin with //– Multi-line comments begin with /* and end

with */

• Commenting and un-commenting lines useful for figuring out code

Page 15: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Moodle - http://learnonline.unca.edu

• If you are new to Moodle, a new account was created for you and the login instructions, including your password, was emailed to your UNCA email address.  If you forward your UNCA email to an external account, check the Spam/Bulk mail folder of that account for the email.

• If you have forgotten your password, go to the Moodle login screen and select the Lost Password link.

Page 16: CSCI 273.001 Processing CSCI 201.003 Introduction to Algorithm Design An Introduction

Lab 1

• Lab 1: Draw a 200 x 300 white canvas. Add 5 points and 5 lines. Revise the 5 points and 5 lines into a composition.