Joint Teaching Material

clumpsmackoverΛογισμικό & κατασκευή λογ/κού

2 Δεκ 2013 (πριν από 3 χρόνια και 7 μήνες)

57 εμφανίσεις

1

The Sun’s Java Certification
and its Possible Role in the
Joint Teaching Material

Nataša Ibrajter

Faculty of Science

Department of Mathematics and Informatics

Novi Sad

2

Contents


Kinds of Sun Certified Exams


Why Become Java 2 Certified?


Developer's Certification Exam (SCJD)


The Programmer’s Exam (SCJP)


Some Characteristic Questions


A Proposal for the Joint Java Course


The NS Experience


Impact on the Joint Material

3

Kinds of Sun Certified Exams

4

Kinds of Sun Certified Exams


Sun Certified Programmer (SCJP)


CX
-
310
-
035 Programmer’s Exam


Sun Certified Developer (SCJD)


CX
-
310
-
252A Developer’s Programming
Assignment


CX
-
310
-
027 Developer’s Essay Exam

5

Why Become Java 2 Certified?


It provides proof of professional achievement.


It increases one’s marketability.


It provides greater opportunity for
advancement in one’s field.


It is increasingly found as a requirement for
some types of advanced training.


It raises customer confidence in you and your
company’s services.

6

Developer's Certification Exam
(SCJD)


It consists of two parts:


a project assignment and


a follow
-
up exam


The assignment describes a task that
starts with some code supplied with a
project description. Person who takes
the exam is supposed to finish the
project.

7

Developer's Certification Exam
(SCJD)


The follow
-
up exam has at least three
aspects:


Java's features and libraries,


knowledge and understanding of one's own
classes,


defending the choices one made writing
code.

8

Developer's Certification Exam
(SCJD)


I/O streams


Swing


The AWT event
model


Object serialization


RMI


javadoc


Packages


Threads


Interfaces


9

The Programmer’s Exam (SCJP)


Language fundamentals


Source files


Keywords and identifiers


Primitive data types


Literals


boolean literals


char literals


10

The Programmer’s Exam (SCJP)


integral literals


floating
-
point literals


string literals


Arrays


Class fundamentals


the main() method


variables and initialization


Argument passing: by reference or by
value


Garbage collection

11

The Programmer’s Exam (SCJP)


Operators and assignments


Evaluation order


The unary operators


++ and
--


+ and
-


~


!


cast operator


12

The Programmer’s Exam (SCJP)


The arithmetic operators


* and /


%


+ and
-


arithmetic error conditions


The shift operators: >>, << and >>>


fundamentals of shifting


shifting negative numbers


arithmetic promotion of operands


reduction of the right operand

13

The Programmer’s Exam (SCJP)


The comparison operators


<, <=, > and >=


the instanceof operator


the equality comparison operators: == and !=


Logical operators: &&, || and !


Short
-
circuiting


Bitwise operators: &, |, ^ and ~


The conditional operator: ? :


The assignment operator

14

The Programmer’s Exam (SCJP)


Modifiers


Modifier overview


The access modifiers


public


private


default


protected


subclasses and method privacy

15

The Programmer’s Exam (SCJP)


Other modifiers


final


abstract


static


static initilalizers


native


transient


synchronized


volatile


Modifiers and features

16

The Programmer’s Exam (SCJP)


Converting and casting


Explicit and implicit type changes


Primitives and conversion


primitive conversion: assignment


assignment conversion, narrower primitives and
literal values


primitive conversion: method call


primitive conversion: arithmetic promotion


Primitives and casting

17

The Programmer’s Exam (SCJP)


Object reference conversion


object reference assignment conversion


object method
-
call conversion


Object reference casting


Flow control, assertions and exception
handling


The loop constructs


while


do


for


break and continue statements in loops

18

The Programmer’s Exam (SCJP)


Selection statements


if
-
else construct


switch construct


Exceptions


flow of control in exception conditions


throwing exceptions


Assertions


assertions and compilation


runtime enabling of assertions


using assertions

19

The Programmer’s Exam (SCJP)


Objects and classes


Benefits of object
-
oriented implementation


encapsulation


re
-
use


Implementing OO relationships


Overloading and overriding


overloading method names


method overriding


Constructors and subclassing


overloading constructors

20

The Programmer’s Exam (SCJP)


Inner classes


the enclosing this reference and construction of inner
classes


member classes


classes defined inside methods


Threads


Thread fundamentals


what a thread executes


when execution ends


thread states


thread priorities

21

The Programmer’s Exam (SCJP)


Controlling threads


yielding


suspending


sleeping


blocking


monitor states


scheluduling implementation


Monitors, wait and notify


the object lock and synchronization

22

The Programmer’s Exam (SCJP)


wait and notify


the class lock


beyond the pure model


deadlock


another way to synchronize


java.lang and java.util packages


The Object class


The Math class


The wrapper classes

23

The Programmer’s Exam (SCJP)


Strings


the String class


the StringBuffer class


string concatenation easy way


The collections API


collection types


collections, equality and sorting


the hashCode method


collection implementations in the API


collections and code maintenance

24

Some Characteristic Questions


Language fundamentals


Consider the following line of code:

int[] x = new int[25];


After execution, which statements are
true? Choose all that apply.

1.
x[24] is 0.

2.
x[24] is undefined.

3.
x[25] is 0.

4.
x[0] is null.

5.
x.length is 25.

25

Some Characteristic Questions


Operators and assignments


What results from the following fragment
of code?

1. int x = 1;

2. String [] names = {“Fred”, “Jim”, “Sheila”};

3. names[
--
x] += “.”;

4. for(int i =0; i<names.length; i++){

5. System.out.println(names[i]);

6. }

26

Some Characteristic Questions

1.
The output includes Fred. with a trailing period.

2.
The output includes Jim. with a trailing period.

3.
The output includes Sheila. with a trailing
period.

4.
None of the outputs show a trailing period.

5.
An ArrayIndexOutOfBoundsException is thrown.

27

Some Characteristic Questions


Modifiers


Given the following code and making no other
changes, which combination of access modifiers
(public, protected or private) can legally be placed
before aMethod() on line 2 and be placed before
aMethod() on line 6?

1. class SuperDuper{

2. void aMethod(){}

3. }

4.

5. class Sub extends SuperDuper{

6. void aMethod(){}

7. }

28

Some Characteristic Questions

1.
line 2: public; line 6: private

2.
line 2: protected; line 6: private

3.
line 2: default; line 6: private

4.
line 2: private; line 6: protected

5.
line 2: public; line 6: protected

29

Some Characteristic Questions


Converting and casting


Will the following code compile?

1. byte b = 2;

2. byte b1 = 3;

3. b = b * b1;

1.
Yes

2.
No


30

Some Characteristic Questions

class hierarchy for next question


Animal

Mammal

Dog

Cat

implements


Washer

Raccoon

implements


Washer

SwampThing

31


Consider the following code:

1. Dog rover, fido;

2. Animal anim;

3.

4. rover = new Dog();

5. anim = rover;

6. fido = (Dog)anim;


Which of the following statements are
true? Choose one.

Some Characteristic Questions

32

Some Characteristic Questions

1.
Line 5. will not compile.

2.
Line 6. will not compile.

3.
The code will compile but will throw an
exception at line 6.

4.
The code will compile and run.

5.
The code will compile and run, but the cast in
line 6 is not required and can be eliminated

33

Some Characteristic Questions


Flow control, assertions and exception
handling

Consider the following code:

1. for(int i=0; i<2; i++){

2. for(int j=0; j<3; j++){

3. if(i == j){

4. continue;

5. }

6. System.out.println(“i = ”+i+” j = ”+j);

7. }

8. }

34

Some Characteristic Questions


Which lines would be part of the output?
Choose all that apply.

1.
i =0 j = 0

2.
i =0 j = 1

3.
i =0 j = 2

4.
i =1 j = 0

5.
i =1 j = 1

6.
i =1 j = 2


35

Some Characteristic Questions


Objects and classes


Considering this class:

1. public class Test1{

2. public float aMethod(float a, float b){}

3.

4. }


Which of the following methods would be
legal if added (individually) at line 3?
Choose all that apply.

36

Some Characteristic Questions

1.
public int aMethod(int a, int b){}

2.
public float aMethod(float a, float b){}

3.
public float aMethod(float a, float b, int c)
throws Exception{}

4.
public float aMethod(float c, float d){}

5.
private float aMethod(int a, int b, int c){}

37

Some Characteristic Questions


Threads


A Java monitor must either extend
Thread or implement Runnable.

1.
True

2.
False


The java.lang and java.util packages


In the following code fragment, line 4 is
executed.

38

Some Characteristic Questions

1. String s1 = “xyz”;

2. String s2 = “xyz”;

3. if (s1 == s2)

4. System.out.println(“4”);

1.
True

2.
False

1. String s1 = “xyz”;

2. String s2 = new String(s1);

3. if (s1 == s2)

4. System.out.println(“4”);

1.
True

2.
False


39

A Proposal for the Joint Java
Course


Part I
-

Imperative Java programming


Introduction (in case that Java is the first
programming language)



The language overview (elements of Java)


Simple data types


Expressions and control structures


Structured data types: arrays


Methods


Recursion


Complex examples with arrays (searching and
sorting)

40

A Proposal for the Joint Java
Course


Part II
-

OOP in Java and advanced topics


Introduction to OOP (OOP in general, place of
Java, its development...)


Basic notations of OOP


Classes and objects. Class methods and variables.
Object creation


Inheritance and polymorphism


Concatenated list structures


Trees


Packages


Interfaces

41

A Proposal for the Joint Java
Course


Abstract classes


Introduction to UML


Exceptions


GUI development


Class libraries, Java Collection Framework


Reflection in Java


Threads


Basic notions of WWW


Applets


Remote Method Invocation

42

A Proposal for the Joint Java
Course


Part III
-

Environments for Java
programming


Usage of J2SE JDK 1.xx


Part IV
-

Java programming at large


Introducing SE principles in Java
programming

43

The NS Experience


Our students are obliged to take part in not
less than 70% of practical exercises, not less
than 50% of exercises and not less than 30%
of lectures.


The exam consists of the practical part (which
is taken during the practical exercises) and of
the test.


The Java certification is used as a template
for the test.

44

The NS Experience


Students mostly show weakness in
understanding how Java solves OOP issues
like overriding, overloading, program flow
etc, not in understanding theoretical basics of
OOP.


The test tests practical knowledge in Java,
not the theoretical knowledge in OOP.


If the students missed to study some aspect
of a problem taking practical part of the
exam, the test forces them to restudy the
problem.

45

The NS Experience


70% of Programmer’s Exam questions
covered by our course


More than 90% excluding major sections like
threads and assertions


Therefore, we cannot ‘blindly’ use any of the
questions


Should we change our course to cover more
questions?


Suggestion: No


However, some compatibility useful

46

Impact on the Joint Material


From our experience: without references to
the Java Certification we cover about
70%/90% of the questions


For the creation of the Joint Material,
occasional references to Java Certification
exam questions are useful to


see what the industry thinks is important


check for omissions