Title: Lesson 1 - Introduction
1???? ????? ?????
2Lesson A - Introduction
- Unit A1 About This Course
3???? ????? ?????
- ???? ??? ????
- ??? ???? ? 200-300 (???? ???, ??? 218)
- ??????? ??? ?????, ????? ?????, ??????? ???
- ??? ????? www.cs.huji.ac.il/intro2cs
- ??? ?????
- Java software solutions / Lewis Loftus
4???? ????? ????? ???? ???? Java.
????? ?????
- ???? ????? ?????? ???? ??????
- ????? ?????
- ?????? ????? ?????, ???? ??????
- ?????? ????? ??????
- ?????? ?????, ???? ??????, ?????? ?????
- ??????????
- ?????? ??????????, ????????
- ???? ??????
- ?????? ???? ??????, ???? ??????
- ??? ???????
- ?????? ???????, ??????, ????????, ???? ?????,
??????
5????? ?????
- ????? ????? ?????
- ????? ??????????
- ????? ?????????
- ?????
- ??????
- ????? ?????
- ???????
- ???? ?????? ???????
- ??????
- ???? ?????
- ??????? ???????
- ???? ??????? ???????
- ?????? ???????
- ??????
- ??????
- ??????
- ??????
- ??????
- ???????
- ????? ??? ????
- ?? ???? ??????
6?????? ?????
- ????? ????? ?? ???? (?????? ?? ???????).
- ???? ?????. ??? ?????.
- ????? ???? ?? ?????
- ????!!!!! ??????
- ????? ???? ??????? ??? ?? -- ??? ????? ??
????? ?? ???? ???? ?? ?????. - ????
- ???? ???? 50/50
- ???? ??????? ????? ???????? ????? ????? ???? ?????
7??????? ??? ??? ??????
- ????? ????? ??? (??? ??? ??? ?? ???)
- ???? ????? ???? ??? ???? (??? ????? ??? ??? ???)
- ?? ??? ????? ???? "????? ??" ?? ????
- ??????? ????
- ???? ??? ????? ???? ?????
- ????? 2000-1800 ????? ?
- ????? ???????
- ????? ?????? http//www.cs.huji.ac.il/intro2cs/to
ranot.html - ???? ????
- ????? ????
8Lesson A - Introduction
- Unit A2 - Introduction to Hardware
9Our abstraction of a computer
Screen
Keyboard
Java Program
Data
CPU
Memory
10Computer Organization Overview
Modem
Keyboard
Screen
Disk
Bus
Software
Operating System
Compiler
Our Program
CPU
Data
Random Access Memory
11Binary Representations
- Digital Computers only deal with 0 and 1
- We dont care (mostly)
- Anything can be represented by sequences of 0 and
1 - Integers
- 13 0000 1101, 14 0000 1110
- Characters
- A 0010 0001, B 0010 0010 ...
- The number of bits determines the number of items
that can be represented - 2 bits give 4 combinations (00, 01, 10, 11)
- 8 bits (a byte) give 256 combinations
- 32 bits (a word) give more than 4,000,000,000
combinations
12An Example PC Specification
- 1.1 GHz Pentium IV Processor
- 256 MB RAM
- 20 GB Hard Disk
- 17 Display with 1280 x 1024 resolution
- 56 KB Modem
13More about Hardware
- Much more to learn
- Not the topic of this course
- Other courses deal with computer hardware
- Digital Systems course
- Computer Architecture course
- Digital Communications course
- Advanced courses
- In this course, we stick with our abstraction
14Lesson A - Introduction
- Unit A3 Introduction to Software
15Problems and Algorithms
- We need to solve a computational problem
- Simulate an Boeing 767 airplane
- Convert a weight in pounds to Kg
- An algorithm specifies how to solve it, e.g.
- 1. Read weight-in-pounds
- 2. Calculate weight-in-Kg weight-in-pounds
0.455 - 3. Print weight-in-Kg
- Computers must be given exact instructions
- A computer program is a computer-executable
description of an algorithm
16Machine languages
- Each processor has its own machine language
- An assembly language is a human-readable form of
the machine language
load R7, value jgt label3 add R7, bonus
0100 0111 1101 0011 ... 0101 1011 0110 0111
... 0110 0111 1010 1100 ...
17High Level Languages
- Humans prefer programming in a high level
language - A compiler can translate to machine language
- A Interpreter can execute high-level code
load R7, value jgt label3 add R7, bonus
If (value lt 0) value value bonus
Compilation
18Operating Systems
- Provides hardware-dependant services in a
hardware-independent way - Used by application programs
- OS services to users
- Files
- Printing
- Communication
- Running programs
- OS services to application programs
- All of the above
- Memory Management
- User Interface
- Processes
19Lesson A - Introduction
- Unit A4 First Java Program
20The Java Programming Language
- Invented 1995 by James Gosling at Sun
Microsystems. - Based on previous languages C, C, Objective-C,
- Intended to be a safe programming language for
the Internet - Common choice for first programming language
- Object oriented
- Encourages good programming habits
- Very popular commercially
- Simpler and more elegant than C, but similar to
it - Cool
21Hello World Program
// My First Program!! public class HelloWorld
public static void main(String args)
System.out.println(Hello World!)
22Java Program Elements
- Words
- Keywords
- Identifiers
- Constants
- Numbers
- Strings
- Symbols
- ( ) , . - /
- Comments
23Java Elements
Comment
Symbols
Identifier
// My First Program!! public class HelloWorld
public static void main(String args)
System.out.println(Hello World!)
Keywords
String Constant
24Java Program Structure
- A program is composed of a collection of classes
- Each class contains a collection of methods
- Each method is composed of a sequence of
instructions (commands, statements)
25Java Program Structure
Class
Method
// My First Program!! public class HelloWorld
public static void main(String args)
System.out.println(Hello World!)
Instruction
26Lesson A - Introduction
- Unit A5 Running Your Program
27Running a Java Program
- Use an editor to enter (type) the program
- Save to a file named HelloWorld.java
- Use the compiler to translate the program into
bytecode - javac HelloWorld.java
- This produces a file named HelloWorld.class
- Run the program using the Interpreter
- java HelloWorld
28Java Compilation
Xxx.java
Xxx.class
Compiler
Interpreter
Output
29Entering a Java Program into an Editor
30Running a Java Program
31Integrated Development Environments (IDE)
- Include a combination of
- Editor
- Compiler
- Debugger
- Project Management
- Some Commercial IDEs
- Sun Forte
- IBM Visual Age
- Borland Jbuilder
-
32Forte Screen Capture
33Debugging
- You will make many errors!
- Most of your time will be spent finding them and
correcting them -- debugging. - There are several types of errors
- Syntax errors
- detected at compilation time
- Run-time errors
- the program runs and crashes
- Logical errors
- the program does something other than what you
want it to do - It does exactly what you told it to do
- The earlier an error is caught, the easier it is
to correct
34Lesson 1 - Introduction
- Unit A6 Introduction to Objects
35Large Programs
- Commercial software may require millions of lines
of code - Humans can only handle about 7 things together
- To construct large programs
- break the program into components
- then break each component, etc.
- When you use a component you only use its
abstraction. - When you construct a component you forget about
the rest of the program.
36Interfaces
- The interface of a software component is an exact
definition of what it can do - It does not address how it does what it does
- When you use a component you only consider its
interface - A good component will have a clear, narrow
interface
37Objects
- Objects are the basic components in Java
- An object has an interface and an internal state.
- The interface encapsulates (hides) the internal
operation - The interface specifies the services the object
provides
Object A that uses Object B
Object B
38A Turtle Object
39A Turtle Object
- A Turtle object represents a turtle that walks on
the screen with a pen on its tail - Turtle object interface
- moveForward(distance)
- moveRight(degrees)
- moveLeft(degrees)
- tailUp()
- tailDown()
- Turtle object internal state
- Location on screen
- Direction facing
- Tail is up or down
40Using a Turtle
public class TurtleDrawing public static void
main(String args) Turtle leonardo new
Turtle() leonardo.tailDown()
leonardo.moveForward(100) leonardo.turnRight(
60) leonardo.moveForward(100)