Advanced Programming in Java
Download
Report
Transcript Advanced Programming in Java
Peyman Dodangeh
Sharif University of Technology
Spring 2014
Agenda
Introduction to Course
Administrative Details
Syllabus
References
Evaluation Policy
Spring 2014
Sharif University of Technology
2
Expected Background
“A one-semester college course in programming.”
I assume you can write a program in some language,
understand variables, control structures,
functions/subroutines.
If in doubt, let’s talk.
Evaluation Policy
Spring 2014
How many?
Total Grade
Quiz
8
4
Midterm Exam
1
3
Final Exam
1
5
Assignment
4
4
Project
2
4+
Sharif University of Technology
4
Administrative Details (cont.)
Our teaching assistant is
Administrative Details (cont.)
17 weeks
Two 80-minute lectures per week, a break in between
the lectures.
Course notes in PowerPoint.
Course notes available (usually) Friday before class.
Send course questions to Blackboard’s Discussion
Group, personal questions to me.
Administrative Details (cont.)
Everything is attached to the syllabus. Don’t look
for assignments, etc. on Blackboard. Look at the
syllabus!
Homework usually weekly.
Printing slides? Three to a page, at least. Save a
tree! Remove the PowerPoint background before
printing. Save toner!
Administrative Details (cont.)
Attendance is not required, but…
…you are responsible for everything said in class.
I encourage you to ask questions in class. Don’t guess,
ask a question!
My Policy on Cheating
Cheating means “submitting, without proper
attribution, any computer code that is directly
traceable to the computer code written by another
person.”
I give students a failing course grade for any cheating.
This doesn’t help your job prospects.
My Policy on Cheating
You may discuss homework problems with classmates,
after you have made a serious effort in trying the
homework on your own.
You can use ideas from the literature (with proper
citation).
You can use anything from the textbook/notes.
The code you submit must be written completely by
you.
Course Etiquette
Etiquette is “conduct in polite society”
No cell phones
No random comings and goings
If you are sleepy, go home
If you want to read email or surf the Web, please do it
elsewhere
This Course Covers:
Object Oriented Concepts
Fundamentals of Java programming language
Some Programming Skills
Software Quality
Test
Refactoring
Spring 2014
Sharif University of Technology
12
Object Oriented Programming
Problem Space
the place where the problem exists
such as a business
Solution Space
the place where you’re implementing that solution
such as a computer
The effort required to perform this mapping.
E.g. think about a library, or a phonebook program
Name solution space entities.
Spring 2014
Sharif University of Technology
13
Object Oriented Approach
OOP lets the programmer represent problem space
elements
The elements in the problem space
and their representations in the solution space
are referred to as “objects”
Spring 2014
Sharif University of Technology
14
OOP
The program is allowed to adapt itself to the lingo of
the problem
by adding new types of objects
when you read the code, you’re reading words that also
express the problem.
Spring 2014
Sharif University of Technology
15
OOP (2)
OOP allows you to describe the problem in terms of
the problem
Rather than in terms of the computer
Objects in your code are similar to real objects
Recall the sample programs: phonebook and library
Spring 2014
Sharif University of Technology
16
Object Oriented Languages
Smalltalk
The first successful object-oriented language
One of the languages upon which Java is based
Java
C++
C#
Spring 2014
Sharif University of Technology
17
Java History
Java was created in 1991
by James Gosling in Sun Microsystems
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 Microsystems released the first public
implementation as Java 1.0 in 1995
Java syntax is similar to C and C++.
Spring 2014
Sharif University of Technology
18
Java Motivation
The need for platform independent language
To be embedded in various consumer electronic
products
like toasters and refrigerators
Platform independent?!
Hardware
Operating System
Spring 2014
Sharif University of Technology
19
Java Motivation (2)
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
Spring 2014
Sharif University of Technology
20
The Java technology is:
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++
Spring 2014
Sharif University of Technology
21
High-Level Languages
Spring 2014
Sharif University of Technology
22
Java Virtual Machine
Spring 2014
Sharif University of Technology
23
Compile and Execution Stages
Compare to
C++ and
Assembly
.NET
Framework
Spring 2014
Sharif University of Technology
24
Java is Popular
Some reports on programming languages popularity
According to
Job advertisements
Book sales
Finding code on the web
…
Spring 2014
Sharif University of Technology
25
http://www.langpop.com
updated in 2010
Spring 2014
Sharif University of Technology
26
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html (2012)
Spring 2014
Sharif University of Technology
27
Characteristics of Java
Java is simple
Java is object-oriented
Java is architecture-neutral
Java is portable
Java is interpreted
Java is multithreaded
Java is secure
Java is robust
Spring 2014
Sharif University of Technology
28
First Example
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.
Fall 2011
Sharif University of Technology
29
Oracle, Sun, …
Spring 2014
Sharif University of Technology
30
Further Reading
Read Java page on Wikipedia
http://en.wikipedia.org/wiki/Java_(programming_language)
Google this terms and phrases:
Java
Java and C++
Java Mobile
Java and C#
JVM
Byte code
Java Sun
Spring 2014
Sharif University of Technology
31
Assignment # 0
Download and install JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDK 7
Write a program that prints your name on the console
Compile and run the program
Spring 2014
Sharif University of Technology
32
Course Outline
Let’s See The Syllabi.
Topics
Introduction to java language
Java syntax, operators,
conditions, loops, …
Strings
Arrays
Object Oriented Programming
Interface
Inheritance
Polymorphism
Advanced Java Programming
Exception Handling
Generics
Collections
GUI
Threads
Files and Streams
Networking
Reflection
Software Quality
Refactoring
Test
Spring 2014
Sharif University of Technology
34
References
Java How to Program
Deitel & Deitel
9th Edition (6th+ editions are ok)
Thinking in Java
Bruce Eckel
Fourth Edition
Spring 2014
Sharif University of Technology
35
Course Homepage
https://ce.sharif.edu/courses
Lecture notes and reference books are uploaded here
Spring 2014
Sharif University of Technology
36
Spring 2014
Sharif University of Technology
37