Вы находитесь на странице: 1из 21

1

Welcome to
Advanced programming
Fall 2014
Introduction
Instructor
Atif Aftab Ahmed Jilani
Email: atif.jilani@nu.edu.pk
Office: Room (114-F 1st Floor Computer
Science Block)
Office Ext: 325
TA : Shahroz Nadeem
Office Hours:
Will soon be displayed outside my office.
Dont visit other than these hours without a prior appointment, through email

Overview of Course
Goal is to give students a roadmap and make it
easier for them to learn the details on their own
If you work hard, you will know the basics of a lot of different
technologies and libraries
You will understand when they are used and the relative strengths
and weaknesses
The course will help to utilize the incredible power of
component oriented, Network Centric and
distributed computing of JAVA J2SE and J2EE to
create effective, scalable, maintainable, and
adaptable applications to solve an extremely wide
range of problems.
Target Student
Comfortable with Java
Has built, or could build, a single-user application
Wants an overview of recent developments
Wants an overview of client-server
programming in Java
Seeking for good carrier as a Sun Certified
Java Developer
Lecture Format
Start with Q & A
Main Lecture
No any short break in the middle
This is not entirely a lecture course
There are in-class labs

Outside of Class
Download code and lecture materials from the
Slate course folder
Walk through examples and browse Javasoft
documentation (2 to 3 hours)
Do homework (some number of hours)
7
Feel welcome
with stupid questions
to help your peers with new bright
ideas.
(never share syntax though)
to have fun and explore
8
Cheating vs. Helping
Read the Code of honor.
Dare to talk with your peers.
Share ideas, not code/syntax.
Mention it in the report.
Dont get stuck for too long.
This is a high pace course.
Dont sit at home. Get up early and join your
peers on campus.
Dont cheat.
There are two kinds of people. Those who listen,
and those who should listen.
What is Java?

New and Effective OOP language
Run-time Environment (tools, class library,
documentation)
Compiled for speed
Interpreted
Portable (architectural-neutral via JVM)
Directly supported by major OSs
Apple, Linux, HP, Hitachi, IBM, Windows, Novell,
Silicon Graphics, Sun, Tandem
Write Once Run Anywhere
What Can Java Do?

Two types of Java Programs
Applets
run within a Java-enabled browser
Applications
a standalone program that runs directly on the Java
platform, examples
servers
servlet
Object Oriented Benefits
Better software design
different way of thinking about software
software can more closely models real world problem
being addressed
domain experts can more easily participate in initial
software design
Easier to maintain
changes are more localized
Easier to extend
easy to make extensions to existing functionality
Less code to write
Features Important for Internet
Language
Secure
Portable
sizes of primitive data types are the same in all
implementations
dont have to recompile to run on another
platform
Fast
Simple to release
Features Important to Developer
Object-Oriented (benefits discussed earlier)
Productive
fewer compiles are needed than with C/C++
faster development cycle since linking is not
required
Familiar
syntax resembles C and C++
Garbage collection
avoids memory leaks (failing to free memory that
will no longer be used)
avoids accessing freed memory
Extensible
Aspects of C/C++ Improved in
Java
Time consuming links
Confusing features
multiple inheritance, operator overloading,
templates
Dangerous features
unsafe casts between unrelated types(Now
controlled through generics)
array access w/o bounds checking
lack of memory management (garbage collection)
Non-OO features
Reasons to Select Java
Web-based applications
common interface to applications/data inside and
outside company
Portability
even for non-web-based applications
applications will run on all major platforms
Distributed Applications
RMI is easier and less expensive than CORBA but
lacks services
Networking
supports TCP and UDP sockets
can access remote data using a variety of protocols
Reasons to Select Java (Contd.)
Multithreading
can utilize multiple processors (avoids waiting on a single processor)
more natural style of coding for some applications
(especially simulations)
Object-oriented
encourages better software design
easier to maintain, extend and reuse
Garbage collection
software is less prone to errors
Productivity
fewer source files need to be compiled when changes
are made
eliminates time to repeatedly link executables during
development
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 and Java ServerPages.
Java Micro Edition (J2ME).
J2ME can be used to develop applications for mobile
devices such as cell phones.
19
Java IDE Tools
Borland JBuilder
NetBeans Open Source by Sun
Sun ONE Studio by Sun MicroSystems
Eclipse Open Source by IBM
And so on
20
Tentative Marks Distribution

Tentative Marks Distribution

Assignments Marks
10
%
Quizzes 10
Quizzes Marks
5
%
Assignme
nts
7
Projects Marks
15
%
<5 >5&<10 >10
Labs
10
%
Sessional I Marks
10
%
* Note : Majority of the
quizzes will be held in lab
using Computer systems.
Sessional II Marks
10
%
Final Marks
40
%
Total Marks
100

21

Вам также может понравиться