40
Name of Course : Introduction to Java Programming Lecturer: Alexander Shkolnik E- mail: [email protected] Office Hours: Sun 15:00 - 17:00 build 37,room 520 Course number : 202.1.9031 Credits : 4 Course Site : http://www.cs.bgu.ac.il/~ ipc172 1

Name of Course Introduction to Java Programming - …ipc172/wiki.files/Class_Java_1.pdf · Name of Course : Introduction to Java Programming Lecturer: Alexander Shkolnik E- mail:

Embed Size (px)

Citation preview

  • Name of Course : Introduction to Java Programming

    Lecturer: Alexander Shkolnik

    E- mail: [email protected]

    Office Hours: Sun 15:00 - 17:00 build 37,room 520

    Course number : 202.1.9031

    Credits : 4

    Course Site : http://www.cs.bgu.ac.il/~ipc1721

    mailto:[email protected]://www.cs.bgu.ac.il/%7E

  • 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. 13 x 3 hours lectures 2. 13 x 2 hours (4 x 2 lab, 9 x 2 frontal) practical lessons 3. 5 programming assignments (about 20 hours each)

    (every assignment 6 % 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-sidedA4 paper sheet (neither printed nor copied).

    3

  • Our course site

    4

    http://www.cs.bgu.ac.il/~ipc172/Main

  • Review computer basics

    User

    Application Programs

    Operating System

    Hardware

    5

    Hardware

    Operating System

    Application Programs

    User

  • Computer Structure

    CPU

    Internal Memory

    InputOutput

    MouseKeyboardMicrophoneDetectors

    MonitorSpeakersMotors

    External Memory

    Hard DiskCD / DVDTapeDiskOnKey

    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.

    CPU

    e.g., Disk, CD, and Tape

    Input Devices

    e.g., Keyboard, Mouse

    e.g., Monitor, Printer

    Communication Devices

    e.g., Modem, and NIC

    Storage Devices

    Memory

    Output Devices

    Bus

    7

    Bus

    e.g., Monitor, Printer

    Output Devices

    Input Devices

    e.g., Modem, and NIC

    e.g., Keyboard, Mouse

    Communication

    Devices

    CPU

    Memory

    Storage

    Devices

    e.g., Disk, CD, and Tape

  • 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.

    CPU

    e.g., Disk, CD, and Tape

    Input Devices

    e.g., Keyboard, Mouse

    e.g., Monitor, Printer

    Communication Devices

    e.g., Modem, and NIC

    Storage Devices

    Memory

    Output Devices

    Bus

    8

    Bus

    e.g., Monitor, Printer

    Output Devices

    Input Devices

    e.g., Modem, and NIC

    e.g., Keyboard, Mouse

    Communication

    Devices

    CPU

    Memory

    Storage

    Devices

    e.g., Disk, CD, and Tape

  • Memory Unit : Byte Byte () is a unit of digital information.

    It is an ordered collection of 8 bits ( binarydigit), in which each bit denotes the binaryvalue 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.

    .

    .

    . 2000 2001 2002 2003 2004

    .

    .

    . 01001010 01100001 01110110 01100001 00000011

    Memory content

    Memory address

    Encoding for character J Encoding for character a Encoding for character v Encoding for character a Encoding for number 3

    1 KB = 1,024 bytes 1 MB = 1,048,576 bytes

    1 GB = 1,073,741,824 bytes

    .

    .

    .

    2000

    2001

    2002

    2003

    2004

    .

    .

    .

    .

    .

    .

    01001010

    01100001

    01110110

    01100001

    00000011

    .

    .

    Encoding for number 3

    Encoding for character a

    Encoding for character v

    Encoding for character a

    Encoding for character J

    Memory content

    Memory address

  • 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.

    CPU

    e.g., Disk, CD, and Tape

    Input Devices

    e.g., Keyboard, Mouse

    e.g., Monitor, Printer

    Communication Devices

    e.g., Modem, and NIC

    Storage Devices

    Memory

    Output Devices

    Bus

    11

    Bus

    e.g., Monitor, Printer

    Output Devices

    Input Devices

    e.g., Modem, and NIC

    e.g., Keyboard, Mouse

    Communication

    Devices

    CPU

    Memory

    Storage

    Devices

    e.g., Disk, CD, and Tape

  • 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 andreprogrammed ) with an integrated Universal Serial Bus (USB) interface.

    USB flash drives are typically removable and rewritable, andphysically 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

    http://en.wikipedia.org/wiki/Microsoft_Windowshttp://en.wikipedia.org/wiki/Android_(operating_system)http://en.wikipedia.org/wiki/Linuxhttp://en.wikipedia.org/wiki/Mac_OS_Xhttp://en.wikipedia.org/wiki/IBM_z/OS

  • What's the difference between Mac/Apple, Windows and Linux ?If operating systems could talk, this is what they would say:

    14

    Operating system ( )

    Do whatever you want, BUT stay within these boundaries, and use what tools I give you.

    Do only what I allow you to do, in the way that I make it possible. Don't try to be smart. You aren't.

    Do whatever you want with whatever you need to make it work. You will have the minimal tools available, and you have to look for it, otherwise, someone else will have the appropriate tool for you. Use them.

  • Operating system, cont.At the simplest level, an operating system does two things:

    1. It manages the hardware and software resources of the computersystem. These resources include such things as the processor, memory,disk space, etc.

    2. It provides a stable, consistent way for applications to deal with thehardware 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.

    15

  • 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, soyou need to use computer languages to communicatewith them.

    Programs are written using programminglanguages ( ).

    LispPascal

    VB

    CJavaC++

    16

  • History of software Alan Turing is credited with being the first person to come up with a theory

    for software, which led to the two academic fields of computer science and software engineering.

    The first generation of software for early stored program digital computersin the late 1940s had its instructions written directly in binary code.

    Software would not be where it is today without Bill Gates and Steve Jobs, two pioneers in the industry that had monumental impactson the history of software.

    17

  • High level languages vs. machine languages

    18

  • Programming LanguagesMachine Language Assembly Language 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:110110001101010011010

    19

  • Programming LanguagesMachine 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 inassembly code like this:

    ADDF3 R1, R2, R3

    ADDF3 R1, R2, R3

    Assembly Source File

    Assembler

    1101101010011010

    Machine Code File

    20

    Machine Code File

    1101101010011010

    Assembler

    ADDF3 R1, R2, R3

    Assembly Source File

  • Programming LanguagesMachine Language Assembly Language High-Level Language

    The high-level languages are English-like and easyto learn and program.

    For example 1: the following is a high-level language statement that computes the area of a circle withradius 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);

    21

  • 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 algebraas well.

    Algorithms are implementation-independent.

    22

  • Basic computer operators INPUT/OUTPUT / ) ) operators ASSIGNMENT ) ) operators ARITHMETIC ) ) operators SELECTION ) ) operators PROGRAM CONTROL ( ) operators

    23

  • Flowchart elementsWhat do the different flowchart shapes mean ?

    25

    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.

    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.

    Grade A parallelogram represents input or output.

  • Flowchart examples

    26

  • THREE INTEGERS MAX VALUE( FLOWCHART )

    27

  • 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.

    28

  • 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

    29

  • THREE INTEGERS MAX VALUE( PSEUDO - CODE )

    AB .1 C-,

    MAX A . 2

    MAX B B > MAX. 3

    MAX C C > MAX. 4

    MAX . 530

  • THREE INTEGERS MAX VALUE( Java program )

    31

  • Software Development Process Understand Problem Definition Generalize & Decompose the problem

    definition Develop Solution Algorithm Write the Java program Code Test and Debug the program

    32

  • 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.

    33

  • 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

    34

  • 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 toolsinto a single application (Eclipse in this course).

    To learn more about JDK, JRE, IDE etc., visit

    http://java.sun.com/javase/technologies/index.jsp

    35

    http://java.sun.com/javase/technologies/index.jsp

  • Running and Compiling C/C++

    C++ Code

    Linux binary

    Windowsbinary

    Linux executable

    Windowsexecutable

    Project Library for Linux

    Project Library for Windows

    Linux C/C++ linker

    Windows C/C++ linker

    36

  • Running and Compiling Java

    JavaCode

    JavaBytecode

    JRE for Linux

    JRE for Windows

    Java compiler

    Hello.java

    javac Hello.java

    Hello.class

    Java interpreter translates bytecode to machine

    code in JRE

    JRE (Java Runtime Environment ) is the base set of data files and programs (executables) which are required to run Java Applications.

    Java bytecode is the form of instructions that the JVM executes

    37

  • 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

    38

  • 39

    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.

  • 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 isrunning. Causes the program to abort.

    Logic Errors ( )These kinds of errors are a lot harder to fix, because you don't necessarilyknow what causes the error. Produces incorrect result.

    40

  • 41

    I wish you all the very best for your exams ( not only Java programming ), my students !

    Name of Course : Introduction to Java Programming Lecturer: Alexander ShkolnikE- mail: [email protected] Hours: Sun 15:00 - 17:00 build 37,room 520Course number : 202.1.9031Credits : 4 Course Site : http://www.cs.bgu.ac.il/~ipc172Course ObjectivesCourse requirements :Our course siteReview computer basics Computer StructureCPU ( )Memory ( )Memory Unit : ByteHow Data is Stored?Storage Devices ( )USB flash driveOperating system ( )Operating system ( )Operating system, cont.ProgramsHistory of softwareHigh level languages vs. machine languagesProgramming LanguagesProgramming LanguagesProgramming LanguagesAlgorithm ( ) Basic computer operatorsFlowchart elementsFlowchart examplesTHREE INTEGERS MAX VALUE( FLOWCHART )PSEUDO - CODEHOW TO WRITE PSEUDO-CODETHREE INTEGERS MAX VALUE( PSEUDO - CODE )THREE INTEGERS MAX VALUE( Java program )Software Development ProcessWhy Java?Characteristics of JavaImportant Java Concepts and TerminologyRunning and Compiling C/C++Running and Compiling JavaEclipseProgramming ErrorsProgramming ErrorsSlide Number 41