Advanced Programming
SUT • Spring 2019
Course information
Programming paradigm
Introduction to Java
Java History
Java Characteristics
Introduction to java language
Java syntax, operators, conditions, loops, …
Strings
Arrays
Object Oriented Programming
Interface
Inheritance
Polymorphism
Software Quality
Refactoring
Test
Pattern
Advanced Java Programming
Exception Handling
Generics
Collections
Threads
Files and Streams
Networking
Reflection
...
Final Exam | 5 points |
Midterm Exam | 3 points |
Quizzes/Take Homes | 2 points |
Home work | 4 points + (20% bonus) |
Project | 6 points + (20% bonus) |
Quera
Assignments
Discussions
Announcements
Books
Java How to Program (11th Edition)
Deitel & Deitel
Bruce Eckel
Refactoring: Improving the Design of Existing Code
Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts
state the order in which operations occur
they allow side effects
#include <iostream>
int n;
int function_one(){
n += 1;
n *= 2;
}
int function_two(){
n *= 3;
}
int main(){
cin >> n;
function_one();
function_two();
cout << n << endl;
return 0;
}
disallows side effects
from functools import reduce
items = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def map_function(x):
return x * x
def filter_function(x):
return x % 2 == 0
def reduce_function(x, y):
return x + y
filtered_items = filter(filter_function, items)
mapped_items = map(map_function, filtered_items)
print(reduce(reduce_function, mapped_items))
do not state the order in which to execute
<!DOCTYPE html>
<html>
<head>
<title>This is a title</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
code is organized into objects that contain state
States only modified by the code that is part of the object
groups code into functions
class Number{
private int a = 0;
public void add(int b) {
this.a += b;
}
}
Java was created in 1991
by James Gosling in Sun Micro systems
Initially called Oak
in honor of the tree outside Gosling's window
Its name was changed to Java
because there was already a language called Oak.
Sun Micro systems released the first public implementation as Java 1.0 in 1995
Java syntax is similar to C and C++.
The need for platform independent language
To be embedded in various consumer electronic products
like toasters and refrigerators
Platform independent?!
Hardware
Operating System
At the same time, the World Wide Web and the Internet were gaining popularity.
Java could be used for internet programming.
Why?
Platform independence
Creation of Applets
A programming language
Java can create all kinds of applications
A development environment
A compiler (javac)
An interpreter (java)
A documentation generator (javadoc)
…
Compare it to C++
Compare to C++ and Assembly
.NET Framework
Some reports on programming languages popularity
According to
Job advertisements
Book sales
Finding code on the web
…
Java is simple
Java is object-oriented
Java is architecture-neutral
Java is portable
Java is interpreted
Java is multi threaded
Java is secure
Java is robust
Create a file named First.java
Java class files have .java extension
Note to naming convention
Copy this lines to the file
Note: File name and class name should be the same.
public class First{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
Download and install JDK
JDK 9
Write a program that prints your name on the console
Compile and run the program