Lecture 1 Introduction
Lecture 1 Introduction
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?
Bus
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
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
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 . .
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
9
Output Devices: Monitor
The monitor displays information (text and graphics). The resolution
and dot pitch determine the quality of the display.
Bus
10
Programs
11
Programming Languages
Machine Language Assembly Language High-Level Language
1101101010011010
12
Programming Languages
Machine Language Assembly Language High-Level Language
…
ADDF3 R1, R2, R3
Assembler …
1101101010011010
…
…
13
Programming Languages
Machine Language Assembly Language High-Level Language
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.
… 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.
… … 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.
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
24
Java Virtual Machine (JVM)
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
30
Main Features of JAVA
31
Main Features of JAVA
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
38
Creating, Compiling, and Running
Programs
Create/Modify Source Code
Result
39
If runtime errors or incorrect result
Trace a Program Execution
Enter main method
40
animation
41
animation
42
Companion
Website Compiling and Running Java
from the Command Window
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.
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.
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!“.
48
Statement Terminator
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.
50
Blocks
51
Special Symbols
" " Opening and closing Enclosing a string (i.e., sequence of characters).
quotation marks
; Semicolon Marks the end of a statement.
52
{ …}
•Appropriate Comments
•Naming Conventions
•Proper Indentation and Spacing
Lines
•Block Styles
58
Appropriate Comments
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.
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
65
Logic Errors
66