İleri Java Programlama Sertifika Programı Eğitim Tarihi : Duyurulacaktır... |
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)
|
Hiç yorum yok:
Yorum Gönder