Download Lecture 1 - The Department of Computer Science

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Functional programming wikipedia , lookup

Library (computing) wikipedia , lookup

Program optimization wikipedia , lookup

Reactive programming wikipedia , lookup

Abstraction (computer science) wikipedia , lookup

Compiler wikipedia , lookup

Scala (programming language) wikipedia , lookup

Programming language wikipedia , lookup

Structured programming wikipedia , lookup

Object-oriented programming wikipedia , lookup

Go (programming language) wikipedia , lookup

Interpreter (computing) wikipedia , lookup

Assembly language wikipedia , lookup

Java (programming language) wikipedia , lookup

Java performance wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Transcript
Name of Course : Introduction to Java Programming
Lecturer: Alexander Shkolnik
E- mail: [email protected]
Office Hours: Sun 14:00 - 16:00
build 37,room 520
Course number : 202.1.9031
Credits : 4
Course Site : http://www.cs.bgu.ac.il/~ipc161
1
Course
Objectives
• The main purpose of the course - introduction to Java language
programming methods, based on new approaches in computer science.
• On the first part of the course students will acquire procedural
programming: software development technique that imposes a hierarchical
structure on the design of the programs. On the second part of the course
students will learn the principles of object-oriented programming (OOP):
programming technique based on objects.
• Students will learn operation system Windows 7 and Integrated
Development Environment (IDE) Eclipse, which provides first – class Java
programming tools.
• The course includes: algorithm building principles, basic Java commands,
control structure, arrays, different kinds of methods (including recursion
methods), principles of object-oriented programming (OOP), collections,
dynamic data structures and files manipulations.
2
Course requirements :
• 1.
• 2.
• 3.
13 x 3 hours lectures
13 x 2 hours (4 x 2 lab, 9 x 2 frontal) practical lessons
3 programming assignments (about 20 hours each)
(every assignment 10 % of the final grade).
Submissions: alone only.
• 4.
Final exam 3 hours long ( 70% of final grade,
a "Pass" requirement regarding final exam: 56 ) .
No auxiliary material allowed, except for a single two-sided
A4 paper sheet (neither printed nor copied).
3
Our course site
http://www.cs.bgu.ac.il/~ipc161/Main
4
Review computer basics
User
Application Programs
Operating System
Hardware
5
Computer Structure
CPU
Output
Input
Internal
Memory
Monitor
Speakers
Motors
External
Memory
Hard Disk
CD / DVD
Tape
DiskOnKey
Mouse
Keyboard
Microphone
Detectors
6
CPU
( ‫) מעבד‬
The Central Processing Unit (CPU) is the brain of a computer.
It retrieves instructions from memory and executes them. The CPU speed is
measured in megahertz (MHz), with 1 megahertz equaling 1 million pulses
per second. The speed of the CPU has been improved continuously.
Bus
Storage
Devices
e.g., Disk, CD,
and Tape
Memory
CPU
Communication
Devices
Input
Devices
Output
Devices
e.g., Modem,
and NIC
e.g., Keyboard,
Mouse
e.g., Monitor,
Printer
7
Memory ( ‫) זיכרון‬
Memory is to store data and program instructions for CPU to execute.
A memory unit is an ordered sequence of bytes, each holds eight bits. A
program and its data must be brought to memory before they can be
executed. A memory byte is never empty, but its initial content may be
meaningless to your program. The current content of a memory byte is lost
whenever new information is placed in it.
Bus
Storage
Devices
e.g., Disk, CD,
and Tape
Memory
CPU
Communication
Devices
Input
Devices
Output
Devices
e.g., Modem,
and NIC
e.g., Keyboard,
Mouse
e.g., Monitor,
Printer
8
Memory Unit : Byte
• Byte (‫ )בית‬is a unit of digital information.
It is an ordered collection of 8 bits ( binary
digit), in which each bit denotes the binary
value of 1 or 0.
• number of bits (‫ )סיביות‬used to encode a
character of text in the computer, which
depended on computer hardware architecture.
• A byte can represent 28 = 256 distinct values,
such as the integers from 0 to 255.
• ASCII (American Standard Code for Information
Interchange).
9
How Data is Stored?
● Data of various kinds, such as
numbers, characters, and strings,
are encoded as a series of bits
(zeros and ones).
● Computers use zeros and ones
because digital devices have two
stable states, which are referred to
as zero and one by convention.
The programmers need not to be
concerned about the encoding and
decoding of data, which is
performed automatically by the
system based on the encoding
scheme.
● A byte is the minimum storage unit.
Memory address
Memory content
.
.
.
.
.
.
2000
01001010
Encoding for character ‘J’
2001
01100001
Encoding for character ‘a’
2002
01110110
Encoding for character ‘v’
2003
01100001
Encoding for character ‘a’
2004
00000011
Encoding for number 3
1 KB = 1,024 bytes
1 MB = 1,048,576 bytes
1 GB = 1,073,741,824 bytes
Storage Devices ( ‫) התקני אחסון‬
Memory is volatile ( ‫) נדיף‬, because information is lost when the power is off.
Programs and data are permanently stored on storage devices and are
moved to memory when the computer actually uses them.
There are three main types of storage devices: Disk drives, CD drives and
Tape drives.
Bus
Storage
Devices
e.g., Disk, CD,
and Tape
Memory
CPU
Communication
Devices
Input
Devices
Output
Devices
e.g., Modem,
and NIC
e.g., Keyboard,
Mouse
e.g., Monitor,
Printer
11
USB flash drive
● A USB flash drive is a data storage device that includes flash
memory (a special type of memory that can be erased and
reprogrammed ) with an integrated Universal Serial Bus (USB)
interface.
● USB flash drives are typically removable and rewritable, and
physically much smaller than an CD.
12
Operating system ( ‫) מערכת ההפעלה‬
• An operating system ( OS ) is a software program that enables the
computer hardware to communicate and operate with the computer
software.
• An operating system also has a vital role to play in security. Its job
includes preventing unauthorized users from accessing the computer
system.
• Examples of popular modern operating systems include Microsoft
Windows, Android,, Linux, Mac OS X, and IBM z/OS.
13
Operating system, cont.
At the simplest level, an operating system does two things:
1. It manages the hardware and software resources of the computer
system. These resources include such things as the processor, memory,
disk space, etc.
2. It provides a stable, consistent way for applications to deal with the
hardware without having to know all the details of the hardware.
Today's major operating systems provide a
Graphical User Interface - GUI.
( ‫) ממשק משתמש להפעלת גרפיקה‬
Elements of a GUI include such things as:
windows, pull-down menus, buttons, scroll
bars, iconic images.
14
Programs
● Computer programs, known as software, are
instructions to the computer.
You tell a computer what to do through programs.
Without programs, a computer is an empty machine.
Computers do not understand human languages, so
you need to use computer languages to communicate
with them.
● Programs are written using programming
languages ( ‫)שפות תכנות‬.
C
Java
C++
Lisp
Pascal
VB
15
High level languages vs. machine languages
‫שפת מכונה‬
‫שפת סף‬
‫שפת עלית‬
16
Programming
Machine Language
Assembly Language
Languages
High-Level Language
● Machine language is a set of primitive
instructions built into every computer. The
instructions are in the form of binary code, so
you have to enter binary codes for various
instructions.
Program with native machine language is a
tedious process. Moreover the programs are
highly difficult to read and modify.
For example: to add two numbers, you might write an
instruction in binary like this:
1101101010011010
17
Programming Languages
Machine Language
Assembly Language
High-Level Language
● Assembly languages were developed to make
programming easy. Since the computer cannot
understand assembly language, however, a program
called assembler is used to convert assembly
language programs into machine code. For example:
to add two numbers, you might write an instruction in
assembly code like this:
ADDF3 R1, R2, R3
Assembly Source File
…
ADDF3 R1, R2, R3
…
Machine Code File
Assembler
…
1101101010011010
…
18
Programming
Machine Language
Assembly Language
Languages
High-Level Language
● The high-level languages are English-like and easy
to learn and program.
For example 1: the following is a high-level language
statement that computes the area of a circle with
radius 5:
area = 5 * 5 * 3.1415;
For example 2: the following is a high-level language
statement that prints the string:
PRINT(“Welcome to Java course”);
19
Algorithm ( ‫) אלגוריתם‬
An algorithm is a procedure or formula for
solving a problem.
The word derives from the name of the mathematician,
Mohammed ibn - Musa al - Khwarizmi, who was part of the
royal court in Baghdad and who lived from about 780 to 850.
Al-Khwarizmi's work is the likely source for the word algebra
as well.
Algorithms are implementationindependent.
20
Basic computer operators
• INPUT/OUTPUT
( ‫פלט‬/‫)אפרטורים קלט‬
• ASSIGNMENT
( ‫) אופרטורים השמה‬
• ARITHMETIC
( ‫) אופרטורים חשבון‬
• SELECTION
( ‫( אופרטורים בחירה‬
• PROGRAM CONTROL ( ‫) שינוי סדר הוראות‬
operators
operators
operators
operators
operators
21
Flowchart elements
What do the different flowchart shapes mean ?
This shape tells you where the
flowchart begins and ends.
X = 15
In most flowcharts, the rectangle is the most common shape.
It is used to show a process, task, action, or operation.
A decision asks a question. The answer to the question
determines which arrow you follow out of the decision shape.
Grade
A parallelogram represents input or output.
Lines with Arrows. You read a flowchart by following the lines
with arrows from shape to shape.
The lines with arrows determine the flow through the chart. 23
Flowchart examples
24
THREE INTEGER’S MAX VALUE
(FLOWCHART)
25
PSEUDO - CODE
• Pseudo-code is a tool that can be used to express algorithms more
precisely.
• Pseudo-code is a combination of programming code and ordinary English.
• Pseudo-code allows algorithms to be specified precisely without having to
worry about programming language syntax.
• There is currently no firmly established standard for Pseudo Code.
• Pseudo-code is not actually executed on a computer, it simply provides a
means for programmers to "Think out" their programs before they
implement them.
• A carefully prepared pseudo code program can be easily converted to a
programming language such as C++ or Java.
26
HOW TO WRITE PSEUDO-CODE
• INPUT
– READ get input from a file
– GET get input from the keyboard
• ARITHMETIC / CALCULATIONS
– +_ * / ( ) =
• OUTPUT
– PRINT output to a printer
– WRITE output to a file
– DISPLAY output to a monitor
• STORE
– SET total_price to 0
– total_price = cost_price + tax
• COMPARE
– IF student is part time THEN ADD 1 to part time ELSE ADD 1 to full
time ENDIF
27
‫‪THREE INTEGER’S MAX VALUE‬‬
‫) ‪( PSEUDO - CODE‬‬
‫‪.1‬קלוט שלושה מספרים למשתנים ‪ B , A‬ו‪C -‬‬
‫‪ .2‬השם ערך של ‪ A‬למשתנה ‪MAX‬‬
‫‪ .3‬אם ‪ B > MAX‬אז השם ערך של ‪ B‬ל – ‪MAX‬‬
‫‪ .4‬אם ‪ C > MAX‬אז השם ערך של ‪ C‬ל – ‪MAX‬‬
‫‪ .5‬הדפס ערכו של ‪MAX‬‬
‫‪28‬‬
THREE INTEGER’S MAX VALUE
( Java program )
29
Software Development Process
• Understand Problem Definition
• Generalize & Decompose the problem
definition
• Develop Solution Algorithm
• Write the Java program Code
• Test and Debug the program
30
Why Java?
The answer is that Java enables users to develop and
deploy applications on the Internet for servers, desktop
computers, and small hand-held devices.
The future of computing is being profoundly influenced
by the Internet, and Java promises to remain a big part
of that future. Java is the Internet programming
language.
Java
is a general purpose programming language.
Java
is the Internet programming language.
31
Characteristics of Java
•
•
•
•
•
•
•
•
•
•
•
Java Is Simple
Java Is Object-Oriented
Java Is Distributed
Java Is Interpreted
Java Is Robust
Java Is Secure
Java Is Architecture-Neutral
Java Is Portable
Java's Performance
Java Is Multithreaded
Java Is Dynamic
32
Important Java Concepts and Terminology
•
JRE is the Java Runtime Environment and it creates a virtual machine within your
computer known as the JVM (Java Virtual Machine).
JRE is specific to your platform and is the environment in which Java byte code is
run.
•
JDK (formerly SDK) is the Java Development Kit.
JDK = JRE + development tools.
▪ IDE is the Integrated Development Environment, have been created to support the
development of Java programs.
IDEs combine an editor, compiler and other Java support tools
into a single application (Eclipse in this course).
•
To learn more about JDK, JRE, IDE etc., visit
http://java.sun.com/javase/technologies/index.jsp
33
Running and Compiling C/C++
Project Library
for Linux
Linux
binary
C++
Code
Linux
executable
Linux C/C++ linker
Project Library
for Windows
Windows
binary
Windows
executable
Windows C/C++ linker
34
Running and Compiling Java
Java bytecode is the form of
instructions that the JVM executes
Java
Code
Java interpreter translates
bytecode to machine
code in JRE
javac Hello.java
Java compiler
Hello.java
JRE for
Linux
Java
Bytecode
Hello.class
JRE for
Windows
JRE (Java Runtime Environment ) is the base set of
data files and programs (executables) which are
required to run Java Applications.
35
Eclipse
• Eclipse is a multi-language software development
environment comprising an Integrated Development
Environment (IDE) .
•
It is written mostly in Java.
• Before you can work with Eclipse, you'll need to download the
Java Development Kit (JDK).
• Eclipse is free software:
http://www.eclipse.org/downloads
36
Programming
Errors
● Even the most experienced programmers make mistakes, and knowing how to
debug an application and find those mistakes is an important part of programming.
● Before you learn about the debugging process, however, it helps to know the
types of bugs that you will need to find and fix.
37
Programming Errors
• Syntax Errors ( ‫( שגיאות דיקדוק‬
Java, like all other programming languages, has its own syntax.
Syntax errors are a type of compiler error. This means they will be
detected immediately when the programmer tries to convert his source
code into a program.
For example: one rule of Java syntax is that all commands must end with
a semicolon (;).
• Runtime Errors ( ‫) שגיאות זמן ריצה‬
A runtime error means an error which happens, while the program is
running. Causes the program to abort.
• Logic Errors ( ‫) שגיאות לוגיות‬
These kinds of errors are a lot harder to fix, because you don't necessarily
know what causes the error. Produces incorrect result.
38