Sabancı Üniversitesi Bilişim Teknolojileri Eğitim Merkezi
İleri Java Programlama Sertifika Programı

 
Eğitim Tarihi : Duyurulacaktır... [] Eğitim Yeri : Beşiktaş / İstanbul
Kontenjan : 20 Kişi Süre : 4 Gün Cumartesi − Pazar 9:30−16:30
Amaç
İleri Java Programlama, genellikle ileri seviyede programlama API'leri ve teknikleri konusunda derinlemesine deneyim kazanmak isteyen yazılım geliştiriciler için tasarlanmış 4 günlük, kapsamlı ve pratik uygulamalara dayalı bir kurstur.
Katılım Şartları
Orta ve ileri seviye yazılım geliştiriciler için tasarlanmıştır. İdeal olarak katılımcıların "Java ile Nesne-tabanlı Programlama" kursunu almış olmaları veya eş düzeyde Java ile programlama deneyimine sahip olmaları beklenmektedir. Katılımcıların nesne-tabanlı programlama konusunda bilgi ve gerçek hayatta programlama deneyimi sahibi oldukları kabul edilmektedir.
Sertifika Hakkında
Programa % 100 devam koşulunu sağlayan katılımcılar, Sabancı Üniversitesi tarafından verilecek resmi bir sertifika almaya hak kazanacaktır.
Eğitim İçeriği

Session 1: Writing High-Performance Applications
Lesson: Performance: Process and Issues

  • List four possible metrics for measuring software performance
  • Explain the effect of OO design on software performance
  • Explain where performance tuning resides in the overall OOSD cycle

Lesson: Profiling and Benchmarking

  • List and describe the two types of benchmarks
  • Describe the criteria that should be considered when constructing a benchmark plan
  • Name the three most useful targets for profiling
  • List four common tools/techniques for profiling
  • Describe two strategies for improving performance as a result of profiling data
  • List and explain the five most common problem areas for good performance with Java

Lesson: Profiling Tools

  • Use the JDK to collect runtime profiling data
  • Successfully read the profiling data generated by the JDK to detect performance bottlenecks
  • Instrument your own code to collect method execution time data

Lesson: Code Optimization Techniques

  • List three potential problems with strings
  • List two ways to optimize loops
  • Describe the advantages of private and final methods
  • List two advantages of Java 1.2 collections over vectors and hashtables
  • List 4 other code and system optimizations

Lesson: Design Optimization Techniques

  • List five ways to optimize Java program design

Session 2: JAAS
Lesson: JAAS Overview

  • Recap Java Security
  • Explain the concept of a Protection Domain
  • Recap enforcing code-based (including signature) authorization
  • Understand the role of the AccessController and the AccessControlContext
  • Understand the role of the Protection
  • Understand the sequence of events for permission
  • Understand permission checking and the (call) stack
  • Understand the concept of PrivilegedAction and its effect on the permission checking sequence
  • Introduce the JAAS concept
  • Introduce the JAAS Authentication architecture
  • Understand the role of login modules
  • Understand the Subject and the relation with Principals
  • Introduce the JAAS Authorization architecture
  • Understand how Java security is enhanced to support principal-based authorization

Lesson: Applying JAAS Authentication and Authorization

  • Understand how to configure a JAAS configuration file
  • List the standard LoginModule implementations
  • Understand the different between the different requirement flags set on a login module declaration
  • Understand how to initiate the login process
  • Understand the Callback and CallbackHandlers
  • Be able to implement a CallbackHandler
  • How to configure principal-based Authorization
  • Understand different ways of associating a Subject with an AccessControllContext
  • Understand the difference between doAs and doAsPrivileged

Lesson: Developing a custom Login Module

  • Understand the steps to develop a custom login module
  • Understand in more detail the login sequence of JAAS
  • Understand the semantics and proper implementation of the LoginModule methods

Session 3: Java Object and Class management
Lesson: Class loaders

  • Understand the responsibilities of a Java class loader
  • Understand class loader hierarchy
  • Understand the class loading sequence
  • Understand the related security
  • Understand how to use class loaders in your design/architecture
  • Understand how to re-load classes into the JVM
  • Write your own class loader
  • Understand how to write a class loader in a security enabled environment (SecurityManager)

Lesson: End of Object lifetime

  • Understand the garbage collector's responsibilities
  • List the kinds of object references available in Java
  • Understand the Weak, Soft and other references.
  • Implement a caching collection using weak references

Session 4: The Regular Expression API
Lesson: The Regular Expression API

  • Introduce the Java Regular expression API
  • Explain the use of Pattern objects
  • Explain the use of Matcher objects
  • Give an overview of Regular expressions

Session 5: Overview of Reflection
Lesson: Reflection

  • Explain the advantages and disadvantages of Reflection
  • Dynamically load classes
  • Become familiar with the Class class
  • Use Reflection to discover properties of a class
  • Dynamically invoke methods of a class
  • Dynamically set and get values of fields
  • Become familiar with the Method and Field classes
  • Understand the Modifier class
  • Explain the different between Integer.class and Integer.TYPE
  • Use the java.beans.Introspector and java.beans.BeanInfo classes

Session 6: JNI
Lesson: Java Native Invocation (JNI)

  • Understand the JNI architecture
  • Understand the capabilities of JNI
  • Interface to a C function from Java
  • Exchange data from a JVM to a C function

Session 7: Advanced Threading
Lesson: Java SE Concurrency API

  • Understand the Lock API
  • Use Condition objects
  • Understand and use Semaphores
  • Understand and use the CountDownLatch
  • Understand and use the CyclicBarrier
  • Appreciate the Exchanger
  • Appreciate the Executor framework
  • Start and manage tasks
  • Understand how to schedule task execution
  • Work with the Callable interface
  • Appreciate Future
  • Use and configure thread pools

Session 8: NIO
Lesson: NIO packages

  • Introduce the Java NIO API
  • Explain the use of Buffers
  • Explain the use of Channels
  • Write a file using the FileChannel
  • Provide an overview of SocketChannels

Appendix 1: Developing JMX MBeans
Lesson: Brief overview of JMX

  • Explain the JMX three level architecture
  • Understand the role and relationships for each level
  • Get an understanding of MBeans and the different ways of implementing them
  • Understand the relation between an MBean Server and its MBeans
  • Discuss different MBean deployment scenarios
  • Understand the concept of an MLET
  • Introduce JBoss sar files
  • Understand the JBoss -service.xml file

Lesson: Developing standard MBeans

  • Understand the three different ways of developing standard MBeans
  • Understand what aspects of a standard MBean are considered static, and which are dynamic
  • Understand the registration process of an MBean on a local MBean Server
  • Discuss the limitations of local MBean Server registration
  • See a real-life application of JMX to monitor a web application
  • Develop a real-life application of JMX to manage document caching in a J2EE environment

Lesson: Developing Dynamic MBeans

  • Understand the rational behind Dynamic MBeans
  • Understand the need to a metamodel
  • Explain how a Dynamic MBean exposes its behavior
  • Correctly handle attribute support implementation
  • Correctly handle constructor and operation support implementation
  • Describe how MBeans can acts as event sources
  • Understand how to support notifications
  • Introduce proper exception handling for Dynamic MBeans

Lesson: JMX Remoting (client side)

  • Discuss the two different mechanisms for clients to work with a server
  • Contrast Adapters and Connectors
  • Understand what JSR160 (JMX Remoting) adds to the JMX arena
  • Understand the different mechanism of connecting with a JMX MBeanServer using JMX Remoting
  • Understand client configuration to connect with a remote server
  • Understand the two ways of connecting a client with the server using connectors
  • Understand the way URLs are described.
  • Understand the relation between JMX and technologies such as LDAP, Jini and SLP
  • Describe the role of JMXMP
  • Understand what a JMX client can do, when connected
  • Briefly describe the query mechanism
  • Understand how a client can operate with the MBeans on the server
  • Discuss class loading and registration of MBeans
  • Understand how to listen to notification

Appendix 2: Java Encryption (JCA and JCE)
Lesson: Overview of Encryption

  • Set the context for encryption and related security technologies
  • Understand the different technologies
  • Introduce the different algorithms used in encryption technologies
  • Understand symmetric encryption and what to use it for
  • Understand asymmetric encryption and what it used for
  • Understand the role and concept of Message Digests
  • Understand the role and concept of Digital signatures
  • Understand the role and concept of Message Authentication Code (MAC)
  • Understand the role and concept of Certificates
  • Understand the role and concept of key agreement technologies
  • Introduce PKI architectures

Lesson: Introduction to Java's Cryptography APIs (JCA/JCE)

  • Introduce basics of implementing cryptographic functionality in Java (focus on keys and ciphers)
  • Understand on a high-level the security architecture in J2SE
  • See a few examples of how to achieve concepts explained in the previous lesson
  • Generate a symmetric key
  • Generate asymmetric (private/public) key pairs
  • Configure key generation
  • Understand encryption modes (such as CBC, ECB, CFB, OFB and PCBC)
  • Understand padding modes (such as ISO10126Padding, OAEP, PKCS 1 and 5 Padding)
  • Configure ciphers
  • Perform encryption/decryption using different strategies
  • Understand how to encrypt/decrypt files
  • Understand how to digest a message
  • Understand how to produce a MAC
  • Understand how to sign and verify digital signatures
Eğitim Kadrosu
  • Ahmet Demirelli (Sabancı Üniversitesi Öğretim Üyesi)
  • Altuğ Tanaltay (Sabancı Üniversitesi Öğretim Üyesi)
  • Gülşen Demiröz (Sabancı Üniversitesi Öğretim Üyesi)
Kayıt FormuEğitim Kayıt Formu   Mail Order FormuMail Order Formu    
Bulunduğunuz Sayfa : http://www.istanbulinstitute.com/egitim/ileri-duzey-java-programlama.html