0% found this document useful (0 votes)
16 views

Lecture 1 Introduction

Uploaded by

Slum Dog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views

Lecture 1 Introduction

Uploaded by

Slum Dog
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 66

CSE110

Introduction to Computers,
Programs, and Java

1
Theory and Lab

• Theory: 3.0
• Laboratory: 1.5
• Total: 4.5

2
Assessment Scheme

•Class Test/Quizzes 10
•Midterm Exam 25
•Final Exam 30
•Laboratory Experiments 10
•LAB Exam, 10
•Lab Project 10
•Assignments 5

3
Text Books

• Text Book:
Y. Daniel Liang, Introduction to Java Programming, Comprehensive Version,
10th edition, Pearson (2015)
• Reference Book:
• Walter Savitch, Absolute Java, Pearson (5th edition)
• Bert Bates and Kathy Sierra, Head First Java, O’Reilly Media (2nd edition)
• Paul Deitel and Harvey Deitel, Java How to Program, Prentice Hall (9th edition)
• Herbert Schildt, Java: The Complete Reference, 10th edition, McGraw-Hill
Education (2017)
• Software/Tools:
• Java Development Kit (JDK 1.8)
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-
downloads-2133151.html
• Any Integrated Development Environment (IDE) supporting Java preferably
Eclipse, NetBeans

4
What is a Computer?

A computer consists of a CPU, memory, hard disk, floppy disk,


monitor, printer, and communication devices.

Bus

Storage Communication Input Output


Devices Memory CPU Devices Devices Devices

e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,


and Tape and NIC Mouse Printer

5
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
Bus you can get an Intel Pentium 4
continuously. If you buy a PC now,
Processor at 3 gigahertz (1 gigahertz is 1000 megahertz).
Storage Communication Input Output
Devices Memory CPU Devices Devices Devices

e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,


and Tape and NIC Mouse Printer

6
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 Communication Input Output


Devices Memory CPU Devices Devices Devices

e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,


and Tape and NIC Mouse Printer

7
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 Memory address Memory content
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, . .


2000 01001010
which is performed automatically by the 2001 01100001
Encoding for character ‘J’

system based on the encoding scheme. The 2002 01110110


Encoding for character ‘a’
Encoding for character ‘v’
encoding scheme varies. For example, 2003 01100001 Encoding for character ‘a’
character ‘J’ is represented by 01001010 in 2004 00000011 Encoding for number 3
one byte. A small number such as three can
be stored in a single byte. If computer needs
to store a large number that cannot fit into
a single byte, it uses a number of adjacent
bytes. No two data can share or split a same
byte. A byte is the minimum storage unit.

8
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 (hard
disks and floppy disks), CD drives (CD-R and CD-RW), and Tape
drives.

Bus

Storage Communication Input Output


Devices Memory CPU Devices Devices Devices

e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,


and Tape and NIC Mouse Printer

9
Output Devices: Monitor
The monitor displays information (text and graphics). The resolution
and dot pitch determine the quality of the display.

Bus

Storage Communication Input Output


Devices Memory CPU Devices Devices Devices

e.g., Disk, CD, e.g., Modem, e.g., Keyboard, e.g., Monitor,


and Tape and NIC Mouse Printer

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

11
Programming Languages
Machine 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:

1101101010011010
12
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
Machine Code File


ADDF3 R1, R2, R3
Assembler …
1101101010011010

13
Programming Languages
Machine Language Assembly Language High-Level Language

The high-level languages are English-like and easy to learn


and program. For example, the following is a high-level
language statement that computes the area of a circle with
radius 5:
area = 5 * 5 * 3.1415;

14
Popular High-Level Languages
Language Description

Ada Named for Ada Lovelace, who worked on mechanical general-purpose computers. The Ada
language was developed for the Department of Defense and is used mainly in defense projects.
BASIC Beginner’s All-purpose Symbolic Instruction Code. It was designed to be learned and used easily
by beginners.
C Developed at Bell Laboratories. C combines the power of an assembly language with the ease of
use and portability of a high-level language.
C++ C++ is an object-oriented language, based on C.
C# Pronounced “C Sharp.” It is a hybrid of Java and C++ and was developed by Microsoft.
COBOL COmmon Business Oriented Language. Used for business applications.
FORTRAN FORmula TRANslation. Popular for scientific and mathematical applications.
Java Developed by Sun Microsystems, now part of Oracle. It is widely used for developing platform-
independent Internet applications.
Pascal Named for Blaise Pascal, who pioneered calculating machines in the seventeenth century. It is a
simple, structured, general-purpose language primarily for teaching programming.
Python A simple general-purpose scripting language good for writing short programs.
Visual Visual Basic was developed by Microsoft and it enables the programmers to rapidly develop
15
Basic graphical user interfaces.
Interpreting/Compiling Source Code
A program written in a high-level language is called a source program or
source code. Because a computer cannot understand a source program, a
source program must be translated into machine code for execution. The
translation can be done using another programming tool called an interpreter
or a compiler.

16
Interpreting Source Code
An interpreter reads one statement from the source code, translates it to the
machine code or virtual machine code, and then executes it right away, as
shown in the following figure. Note that a statement from the source code
may be translated into several machine instructions.

High-level Source File

… Output
area = 5 * 5 * 3.1415; Interpreter
...

17
Compiling Source Code
A compiler translates the entire source code into a machine-code file, and the
machine-code file is then executed, as shown in the following figure.

High-level Source File Machine-code File

… … Output
area = 5 * 5 * 3.1415; Compiler 0101100011011100 Executor
... 1111100011000100

...

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

19
Java, Web, and Beyond
• Java can be used to develop Web
applications.
• Java Applets
• Java Web Applications
• Java can also be used to develop applications
for hand-held devices such as cell phones

20
Examples of Java’s Versatility (Applets)

21
PDA and Cell Phone

22
Java’s History
• JAVA was developed by Sun Microsystems Inc in 1991
• later acquired by Oracle Corporation 2010.
• It was developed by James Gosling and Patrick Naughton.
• It is a simple programming language.
• Writing, compiling and debugging a program is easy in java.
• It helps to create modular programs and reusable code.

23
Phases of program execution

1) Writing of the program is of course done by java programmer like


you and me.

2) Compilation of program is done by javac compiler, javac is the


primary java compiler included in java development kit (JDK). It takes
java program as input and generates java bytecode as output.

3) In third phase, JVM executes the bytecode generated by compiler.


This is called program run phase.
So, now that we understood that the primary function of JVM is to
execute the bytecode produced by compiler. Each operating system
has different JVM, however the output they produce after execution
of bytecode is same across all operating systems. That is why we call
java as platform independent language

24
Java Virtual Machine (JVM)

• Java Virtual Machine (JVM) is a virtual machine that resides in the


real machine (your computer) and the machine language for JVM is
byte code.
• This makes it easier for compiler as it has to generate byte code for
JVM rather than different machine code for each type of machine.
• JVM executes the byte code generated by compiler and produce
output. JVM is the one that makes java platform independent.

25
Java Terminology

• bytecode
javac compiler of JDK compiles the java source code into bytecode so that it
can be executed by JVM. The bytecode is saved in a .class file by compiler.
• Java Development Kit(JDK)
While explaining JVM and bytecode, I have used the term JDK. Let’s discuss
about it. As the name suggests this is complete java development kit that
includes JRE (Java Runtime Environment), compilers and various tools like
JavaDoc, Java debugger etc.
In order to create, compile and run Java program you would need JDK
installed on your computer.
• Java Runtime Environment(JRE)
JRE is a part of JDK which means that JDK includes JRE. When you have JRE
installed on your system, you can run a java program however you won’t be
able to compile it. JRE includes JVM, browser plugins and applets support.
When you only need to run a java program on your computer, you would
only need JRE.

26
27
JDK Versions
• JDK 1.02 (1995)
• JDK 1.1 (1996)
• JDK 1.2 (1998)
• JDK 1.3 (2000)
• JDK 1.4 (2002)
• JDK 1.5 (2004) a. k. a. JDK 5 or Java 5
• JDK 1.6 (2006) a. k. a. JDK 6 or Java 6
• JDK 1.7 (2011) a. k. a. JDK 7 or Java 7

28
JDK Editions
• Java Standard Edition (J2SE)
• J2SE can be used to develop client-side
standalone applications or applets.
• Java Enterprise Edition (J2EE)
• J2EE can be used to develop server-side
applications such as Java servlets, Java
ServerPages, and Java ServerFaces.
• Java Micro Edition (J2ME).
• J2ME can be used to develop applications for
mobile devices such as cell phones.

29
Program Execution

• Java Virtual Machine (JVM) is a virtual machine that resides in the


real machine (your computer) and the machine language for JVM is
byte code.
• JVM is the one that makes java platform independent.
• Each operating system has different JVM, however the output they
produce after execution of byte code is same across all operating
systems.

30
Main Features of JAVA

• Java is a platform independent language


• Compiler(javac) converts source code (.java file) to the byte
code(.class file). As mentioned above, JVM executes the bytecode
produced by compiler. This byte code can run on any platform such
as Windows, Linux, Mac OS etc. Which means a program that is
compiled on windows can run on Linux and vice-versa. Each
operating system has different JVM, however the output they
produce after execution of bytecode is same across all operating
systems. That is why we call java as platform independent language.

31
Main Features of JAVA

• Java is an Object Oriented language


• Object oriented programming is a way of organizing programs as
collection of objects, each of which represents an instance of a class.
• 4 main concepts of Object Oriented programming are:
• Abstraction
• Encapsulation
• Inheritance
• Polymorphism

32
Main Features of JAVA

• Simple
• Java is considered as one of simple language because it does not
have complex features like Operator overloading, Multiple
inheritance, pointers and Explicit memory allocation.
• Robust Language
• Robust means reliable. Java programming language is developed in a
way that puts a lot of emphasis on early checking for possible errors,
that’s why java compiler is able to detect errors that are not easy to
detect in other programming languages. The main features of java
that makes it robust are garbage collection, Exception Handling and
memory allocation.

33
Main Features of JAVA

• Secure
• We don’t have pointers and we cannot access out of bound arrays (you get
ArrayIndexOutOfBoundsException if you try to do so) in java. That’s why several security flaws like
stack corruption or buffer overflow is impossible to exploit in Java.
• Java is distributed
• Using java programming language we can create distributed applications. RMI(Remote Method
Invocation) and EJB(Enterprise Java Beans) are used for creating distributed applications in java. In
simple words: The java programs can be distributed on more than one systems that are connected to each
other using internet connection. Objects on one JVM (java virtual machine) can execute procedures on a
remote JVM.
• Multithreading
• Java supports multithreading. Multithreading is a Java feature that allows concurrent execution of two or
more parts of a program for maximum utilisation of CPU.
• Portable
• As discussed above, java code that is written on one machine can run on another machine. The platform
independent byte code can be carried to any platform for execution that makes java code portable.

34
Popular Java IDEs

• NetBeans
• Eclipse

35
A Simple Java Program

Listing 1.1
//This program prints Welcome to Java!
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

36
Creating and Editing Using NotePad
To use NotePad, type
notepad Welcome.java
from the DOS prompt.

37
Creating and Editing Using WordPad

To use WordPad, type


write Welcome.java
from the DOS prompt.

38
Creating, Compiling, and Running
Programs
Create/Modify Source Code

Source code (developed by the programmer)


Saved on the disk
public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!"); Source Code
}
}

Compile Source Code


Byte code (generated by the compiler for JVM i.e., javac Welcome.java
to read and interpret, not for you to understand)

Method Welcome() If compilation errors
0 aload_0 stored on the disk

Bytecode
Method void main(java.lang.String[])
0 getstatic #2 …
3 ldc #3 <String "Welcome to
Java!">
5 invokevirtual #4 …
8 return Run Byteode
i.e., java Welcome

Result

39
If runtime errors or incorrect result
Trace a Program Execution
Enter main method

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

40
animation

Trace a Program Execution


Execute statement

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

41
animation

Trace a Program Execution

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

print a message to the


console

42
Companion
Website Compiling and Running Java
from the Command Window

• Set path to JDK bin directory


• set path=c:\Program Files\java\jdk1.6.0\bin
• Set classpath to include the current directory
• set classpath=.
• Compile
• javac Welcome.java
• Run
• java Welcome

43
Compiling and Running Java from
TextPad
Companion
Website

44
Anatomy of a Java Program

• Class name
• Main method
• Statements
• Statement terminator
• Reserved words
• Comments
• Blocks

45
Class Name
Every Java program must have at least one class. Each class has a name. By
convention, class names start with an uppercase letter. In this example, the
class name is Welcome.

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

46
Main Method
Line 2 defines the main method. In order to run a class, the class must contain
a method named main. The program is executed from the main method.

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

47
Statement
A statement represents an action or a sequence of
actions. The statement System.out.println("Welcome to
Java!") in the program in Listing 1.1 is a statement to
display the greeting "Welcome to Java!“.

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

48
Statement Terminator

Every statement in Java ends with a semicolon (;).

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

49
Reserved words
Reserved words or keywords are words that have a
specific meaning to the compiler and cannot be used for
other purposes in the program. For example, when the
compiler sees the word class, it understands that the
word after class is the name for the class.

//This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}

50
Blocks

A pair of braces in a program forms a block that groups


components of a program.

public class Test {


Class block
public static void main(String[] args) {
System.out.println("Welcome to Java!"); Method block
}
}

51
Special Symbols

Character Name Description

{} Opening and closing Denotes a block to enclose statements.


braces
() Opening and closing Used with methods.
parentheses
[] Opening and closing Denotes an array.
brackets
// Double slashes Precedes a comment line.

" " Opening and closing Enclosing a string (i.e., sequence of characters).
quotation marks
; Semicolon Marks the end of a statement.

52
{ …}

// This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
53
( … )

// This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
54
;

// This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
55
// …

// This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
56
"…"

// This program prints Welcome to Java!


public class Welcome {
public static void main(String[] args) {
System.out.println("Welcome to Java!");
}
}
57
Programming Style and
Documentation

•Appropriate Comments
•Naming Conventions
•Proper Indentation and Spacing
Lines
•Block Styles

58
Appropriate Comments

Include a summary at the beginning of the program to explain what the


program does, its key features, its supporting data structures, and any
unique techniques it uses.

Include your name, class section, instructor, date, and a brief description at
the beginning of the program.

59
Naming Conventions
• Choose meaningful and descriptive names.
• Class names:
• Capitalize the first letter of each word in the name. For example, the class
name ComputeExpression.

60
Proper Indentation and
Spacing
• Indentation
• Indent two spaces.

• Spacing
• Use blank line to separate segments of the code.

61
Block Styles
Use end-of-line style for braces.

Next-line public class Test


style {
public static void main(String[] args)
{
System.out.println("Block Styles");
}
}

End-of-line
style
public class Test {
public static void main(String[] args) {
System.out.println("Block Styles");
}
}

62
Programming Errors
• Syntax Errors
• Detected by the compiler
• Runtime Errors
• Causes the program to abort
• Logic Errors
• Produces incorrect result

63
Syntax Errors
public class ShowSyntaxErrors {
public static main(String[] args) {
System.out.println("Welcome to Java);
}
}

64
Runtime Errors

public class ShowRuntimeErrors {


public static void main(String[] args) {
System.out.println(1 / 0);
}
}

65
Logic Errors

public class ShowLogicErrors {


public static void main(String[] args) {
System.out.println("Celsius 35 is Fahrenheit degree ");
System.out.println((9 / 5) * 35 + 32);
}
}

66

You might also like