Advanced Programming in Java

advertisement
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
Download