Ела при нас и порастни!

Специализирани курсове по програмиране

» Научи повече

Core Java Course - Professional Training for Developers

The course objective is to give the students a stable basis of knowledge and skills for working as a software engineer for the Java platform. The course covers the minimal set of knowledge and skills that a Java developer should have: Java language, object-oriented programming, standard Java APIs, database development with Oracle and Hibernate, Swing GUI applications, Web applications. The course is based on Java 6, Eclipse 3.3, Tomcat 5.5 and Oracle 10g.

1. Programming Java

1.1. Course Overview (lectures: 1, exercises: 0, homework: 0)

- Course scope, curriculum, exams, homework, lectures, exercises

1.2. Java Platform Architecture (lectures: 2, exercises: 1, homework: 3)

- The Java Virtual Machine (JVM)

- Creating, compiling and running Java applications

- The structure of JAR archives

- Classpath and class loader

1.3. Java Programming Language (lectures: 2, exercises: 2, homework: 6)

- Java programs structure

- Identifiers; Keywords

- Primitive data types; Enumerations

- Variables; Assignments; Operators;

- Expressions; Statements; Control structures (if, for, while, do … while)

- Console input/output

- Arrays - one-dimensional and multidimensional arrays

- Using the Java API Documentation

1.4. Object-Oriented Programming Concepts (lectures: 2, exercises: 0, homework: 2)

- Object-oriented programming and design fundamentals

- Classes, Objects and Interfaces

- Inheritance, abstraction, encapsulation and polymorphism

1.5. Classes and Objects (lectures: 2, exercises: 2, homework: 2)

- Creating and using objects; Value types and references

- Classes, constructors, methods, fields, constants, access modifiers

- Packages

- Inner classes

- Static methods and static constructors

1.6. Inheritance and Polymorphism (lectures: 1, exercises: 2, homework: 3)

- Inheritance and polymorphism

- Abstract classes and interfaces

1.7. Exceptions Handling (lectures: 1, exercises: 1, homework: 2)

- Error handling and exceptions

- Catching and throwing exceptions

- Defining and using own exception classes

1.8. Generics (lectures: 1, exercises: 1, homework: 3)

- Generic methods and classes

1.9. Javadoc Documentation (lectures: 1, exercises: 1, homework: 3)

- Defining and using Javadoc documentation

1.10. Working with Objects (lectures: 2, exercises: 2, homework: 3)

- java.lang.Object, equality, hash codes, toString()

- Cloning objects

- Comparing objects

- Type conversions and casting

- Value types vs. Objects; Autoboxing/unboxing

1.11. Working with Strings (lectures: 2, exercises: 4, homework: 10)

- The Unicode standard

- Strings and string processing: creating, concatenating, extracting substrings, searching, comparing, and splitting

- Parsing and formatting numbers

- Building and modifying strings: StringBuilder and StringBuffer classes

1.12. Dates, Locales and Internationalization (lectures: 1, exercises: 2, homework: 2)

- Dates and calendars

- Locales, string formatting, formatting numbers and dates

- Parsing numbers and dates

- Character sets and conversions

- Localization with ResourceBundle

1.13. Numeral Systems (lectures: 1, exercises: 1, homework: 1)

- Numeral systems

- Computer representation of numbers

1.14. Algorithms and Complexity (lectures: 2, exercises: 0, homework: 2)

- Algorithms complexity

- Asymptotic notation

- Analyzing and computing complexity

1.15. Data Structures (lectures: 2, exercises: 4, homework: 8 )

- Lists and representation

- Queues and representation

- Stacks and representation

- Trees, binary trees and balanced search trees

- Hash-tables and representation

1.16. Graphs and Traversal Algorithms (lectures: 1, exercises: 2, homework: 4)

- Graphs - basic concepts and representation

- Depth First Search (DFS) algorithm

- Breath First Search (BFS) algorithm

1.17. Arrays Manipulation (lectures: 1, exercises: 0, homework: 1)

- Standard algorithms on arrays: sorting, binary search, printing

1.18. Java Collections Framework (lectures: 2, exercises: 3, homework: 5)

- Java Collections Framework - overview

- Collection Interfaces - Collection, List, Set, Map, Iterable, Iterator

- Collection Classes - ArrayList, Vector, Hashtable, HashMap, TreeMap, HashSet, TreeSet

1.19. Regular Expressions (lectures: 1, exercises: 2, homework: 4)

- The regular expressions language - literals and meta-characters, character classes, quantifiers, grouping characters, etc.

- Regular expressions in Java

- Searching, extracting, validating, splitting and replacing text by regular expressions

1.20. Memory and Resource Management (lectures: 1, exercises: 0, homework: 2)

- Memory management and garbage collection

- Finalizers

1.21. Input/Output (lectures: 2, exercises: 4, homework: 4)

- Binary streams and text streams (readers and writers)

- Files and directories

Intermediate Exam #1 (test: 1, problems: 4, check-up: 3)

- Test - 35 questions (25 required to pass)

- Practical exam - 3 practical problems (70% required to pass)

- Homework check - 25 homework submitted required to pass (at least one for each topic)

- Trainer checks 2 randomly selected homework in class

- Students not passed the exam sit for a second attempt a week later

- Students that fail on the exam at the second try leave the course permanently

2. Databases and GUI Development

2.1. Relational Databases - Fundamental Concepts (lectures: 2, exercises: 0, homework: 1)

- Basic database concepts: RDBMS, tables, relationships, multiplicity, primary keys, foreign keys, E/R diagrams, normalization, constraints, indexes, views, triggers, stored procedures, transactions

2.2. Data Modeling with E/R Diagrams (lectures: 1, exercises: 2, homework: 4)

- Database modeling and entity/relationship diagrams

- E/R modeling tools

- Working with CASE Studio / Toad Data Modeler

2.3. Oracle 10g Database - Introduction (lectures: 1, exercises: 1, homework: 2)

- Introduction to Oracle Database (Oracle 10g Express Edition) - Installing and Configuring; Oracle Database XE Web Based Administration; Oracle SQL Developer, SQL*Plus

2.4. Introduction to SQL (lectures: 3, exercises: 5, homework: 4)

- SQL language (DML; SELECT, INSERT, UPDATE and DELETE statements; joins; aggregate functions; Oracle data types, DDL)

2.5. Introduction to Oracle PL/SQL (lectures: 1, exercises: 2, homework: 4)

- Introduction to PL/SQL - stored procedures and functions, packages, cursors, transactions

2.6. Data Access with JDBC (lectures: 2, exercises: 6, homework: 8 )

- Basic classes (DriverManager, Connection, Statement, ResultSet, PreparedStatement, CallableStatement, DatabaseMetadata, ResultSetMetadata)

- Accessing Oracle database

- Transaction management

- Best practices using JDBC

2.7. Working with XML (lectures: 3, exercises: 7, homework: 5)

- Basic XML concepts (Well-formed XML, namespaces, DTD, XSD, XML parsers)

- Java API for XML Processing (JAXP)

- Using the DOM parser - parsing, processing, modifying and creating XML documents

- Using the SAX parser - high performance XML parsing

- Using XPath

2.8. Hibernate - Data Persistence and Object/Relational Mapping (lectures: 4, exercises: 8, homework: 12)

- Foundations of data persistence and object-relational mapping technologies

- Hibernate object persistence engine - overview and architecture

- Mapping POJO classes to database tables, mapping relationships between classes

- Manipulating persistent entity objects - using Hibernate sessions, fetching persistent objects, creating, modifying and deleting persistent entities, using transactions, using HQL queries

2.9. Threads and Synchronization (lectures: 3, exercises: 5, homework: 6)

- Multithreading (Thread and Runnable)

- Timer and TimerTask

- Synchronization techniques (critical sections, monitors, wait() and notify(), etc.)

- Classical synchronization problems (producer/consumer problem, reader/write problem, etc.)

- Thread pools; Executors

2.10. Reflection (lectures: 1, exercises: 1, homework: 2)

- Loading classes

- Exploring metadata - classes, methods, class members

- Dynamically instantiating classes and invoking methods

2.11. Serialization (lectures: 1, exercises: 1, homework: 1)

- Automatic and custom serialization / deserialization

2.12. JavaBeans Component Model - (lectures: 1, exercises: 0, homework: 2)

- JavaBeans component model - components, properties, events

- Introspection and BeanInfo interface

2.13. Creating GUI with Swing (lectures: 3, exercises: 3, homework: 6)

- AWT/Swing programming model, basic classes

- Frames and dialogs (JFrame, JDialog)

- Adding components to the frames

- Handling events (events, event sources and listeners)

- Basic components (JLabel, JTextField, JButton, JPanel, JScrollPane)

2.14. Advanced Swing Programming (lectures: 4, exercises: 5, homework: 10)

- Layout managers

- Advanced components (menus, status bars, toolbars, tables, trees)

- Using Threads in Swing

Intermediate Exam #2 (test: 1, problems: 4, check-up: 3)

- Test - 35 questions (25 required to pass)

- Practical exam - 3 practical problems (70% required to pass)

- Homework check - 25 homework submitted required to pass (at least one for each topic)

- Trainer checks 2 randomly selected homework in class

- Students not passed the exam sit for a second attempt a week later

- Students that fail on the exam at the second try leave the course permanently

3. Internet and Web Development

3.1. Network Programming (lectures: 3, exercises: 4, homework: 12)

- Basic Internet concepts (OSI Seven-Layer Model, TCP/IP, protocols, services, IP address, network interface, DNS, TCP, UDP, sockets, etc.)

- TCP and UDP sockets

- Accessing Internet resources through URL

- E-mail API

3.2. Java EE Platform Fundamentals (lectures: 2, exercises: 0, homework: 0)

- The Java platform - Java SE, Java EE, Java ME

- Java EE platform architecture - containers and components

- Web container and Web applications

- EJB container and EJB modules

- Web services

- Java EE application servers

- Enterprise applications - EAR, WAR, and JAR deployment standards

- Java EE technologies - JSP/Servlet, EJB, JMS, JTA/JTS, JNDI, JDBC, JavaMail, JAAS, XML/JAXP, JMX

3.3. Web Programming Fundamentals and HTTP Protocol (lectures: 1, exercises: 0, homework: 0)

- The HTTP protocol; Request-response model; The World Wide Web (WWW); Web-programming fundamentals, Web servers, Web browsers

3.4. HTML Fundamentals (lectures: 3, exercises: 5, homework: 5)

- HTML basics: formatting tags, images, hyperlinks, lists, tables, forms

3.5. Cascading Style Sheets (CSS) (lectures: 1, exercises: 1, homework: 2)

- Creating and using CSS files

3.6. JavaScript Language Fundamentals (lectures: 1, exercises: 1, homework: 2)

- Using JavaScript language - first steps

- Manipulating the HTML DOM tree

3.7. Creating Web Sites with HTML and CSS (lectures: 1, exercises: 3, homework: 6)

- Cutting the site design into pieces

- Creating the HTML and CSS

3.8. Java Servlets (lectures: 3, exercises: 4, homework: 8 )

- Java Servlets - creating, running and deploying

- Servlet execution life-cycle

- Using HTML forms with servlets; Processing request parameters

- Session management; Storing and retrieving information in the user’s session

- Controlling the Web browser’s cache

3.9. Java Web Applications and Deployment on Tomcat Server (lectures: 1, exercises: 1, homework: 2)

- Java EE Web applications

- WAR files

- Using Tomcat Web application server, deployment, configuring servlets

3.10. JavaServer Pages Technology (JSP) (lectures: 2, exercises: 5, homework: 8 )

- JavaServer Pages - JSP scriptlets, expressions, declarations

- Basic JSP directives - @page, @include

- Basic JSP objects - application, session, request, response, out, config

- Redirection to another page (client an server redirection)

- HTML escaping problems

3.11. JSP Expression Language (lectures: 1, exercises: 1, homework: 1)

- JavaBeans and EL

- Using EL: accessing scoped variables, beans, properties and collections

3.12. JSTL - JavaServer Pages Standard Tag Library (lectures: 1, exercises: 1, homework: 1)

- The concept of custom tags and tag libraries

- JSTL overview

- Structural, localization, XML and SQL tags

3.13. JSP Custom Tags (lectures: 1, exercises: 1, homework: 1)

- Custom tags and tag libraries

- Creating custom tags with .tag files

- Using tag libraries and custom tags

Intermediate Exam #3 (test: 1, problems: 4, check-up: 3)

- Test - 35 questions (25 required to pass)

- Practical exam - 3 practical problems (70% required to pass)

- Homework check - 25 homework submitted required to pass (at least one for each topic)

- Trainer checks 2 randomly selected homework in class

- Students not passed the exam sit for a second attempt a week later

- Students that fail on the exam at the second try leave the course permanently

4. Software Engineering and Team Working

4.1. Software Engineering - Overview (lectures: 2, exercises: 0, homework: 4)

- Software engineering fundamentals

- Processes, methodologies and typical project development lifecycle

- Project plan

- Analysis and Specification

- Architecture and design

- Implementation

- Testing: unit testing, integration testing, stress testing

- Deployment

4.2. Source Control Systems - Subversion (lectures: 2, exercises: 2, homework: 2)

- Software configuration management and source control repositories

- Versioning models: Lock-Modify-Unlock and Copy-Modify-Merge

- Using Subversion (SVN) source control repository

- Using TortoiseSVN and Subeclipse SVN clients

4.3. Unit Testing Tools - JUnit (lectures: 1, exercises: 1, homework: 2)

- Unit testing fundamentals

- Introduction to JUnit

- Creating test cases and test suits

- Executing test cases and test suits

4.4. Build Tools - Ant (lectures: 1, exercises: 0, homework: 2)

- Build tools - creating and using Ant build scripts

- Ant build files

- Ant build process

- Using properties, conditional tasks and multiple build files

5. IT English

5.1. Job descriptions and working conditions (lectures: 4)

5.2. Company history and company activities (lectures: 4)

5.3. Exam focus: Vocabulary (lectures: 4)

5.4. Telephoning and internal communication (lectures: 4)

5.5. Facts and figures and performance (lectures: 4)

6. Practical Project (lectures: 0, exercises: 54, homework: 120)

Each practical project will cover these technologies (but not only):

- Tomcat Web application server

- Oracle database

- Hibernate - relational database access

- Web applications - HTML, servlets, JSP, JSTL, custom tags

- Swing - desktop GUI front-end

The project covers the following elements of the software engineering:

- Analyzing the software requirements documentation and defining UI prototype

- Creating system architecture, designing the database and designing the modules of the system

- Implementing the modules of the system and integration

- Testing and debugging

- Using source control repository (Subversion)

Each project is done by a team of 3-5 students.

7. Final Exam

The final exam is an assignment for development of a small project with Oracle, Tomcat, Hibernate, Servlets/JSP and Swing and should be implemented in 6 hours in class. The exam consists of the following tasks:

- Defining database schema and entering sample data

- Design and implement Hibernate based data access layer

- Design and implement Web application

- Design and implement Swing GUI application

To successfully pass the exam 75% of the tasks should be solved.

Training Duration

Lectures: 108 hours

Exercises: 114 hours

Homework: 185 hours

Practical project (in class): 54 hours

Practical project (at home): 120 hours

Exams: 30 hours

Total: ~ 620 hours

Time Allocation

On even weeks: 2 times / week: 18-22 h -> 16 h / month

On odd weeks: 3 times / week: 18-22 h -> 24 h / month

Two weekends / month: 9-18 h -> 32h

Total: 72 h / month -> ~ 5 months

Discussion Forum

Visit the official discussion forum of the course if you have any technical questions regarding the lectures, exercises or homeworks.

Актуално

Тестове към Prometric - вече и през уикенда

Поради големия интерес към сертификационните тестове, центърът на Prometric към НАРС вече ще работи и в събота и неделя.

Научи повече »