Infoacademy

CISCO Networking Academy Program

Programa Fundamente Java v7

1. Elemente fundamentale Java. Tipuri de date. Operatori
2. Controlul executiei. Tablouri
3. Clase si obiecte
4. Facilitati de limbaj si clase predefinite utile
5. Mostenire
6. Pachete. Accesarea resurselor. Internationalizare
7. Designul interfetelor grafice
8. Tratarea evenimentelor in aplicatii cu interfata grafica. Componente Swing complexe
9. Sistemul de exceptii. Lucrul cu sistemul de fisiere. Stream-uri
10. Colectii. Tipuri de date si metode parametrizate
11. Multi-threading
12. JDBC: interactiunea cu baze de date

1. Elemente fundamentale Java. Tipuri de date. Operatori

  • 1.1. Java, primul contact
    • 1.1.1. Caracteristici generale
    • 1.1.2. Resurse necesare pentru a dezvolta programe Java
      • 1.1.2.1. Platforme Java disponibile
      • 1.1.2.2. Software necesar
    • 1.1.3. Pasii de realizare si rulare a unui program Java
      • 1.1.3.1. Imaginea de ansamblu: un exemplu
      • 1.1.3.2. Ce contine fisierul sursa?
      • 1.1.3.3. Etape de lucru si descrierea acestora
  • 1.2. Variabile si tipul lor de date
    • 1.2.1. Concepte
    • 1.2.2. Declararea unei variabile
    • 1.2.3. Initializarea unei variabile
    • 1.2.4. Tipuri de date in Java
      • 1.2.4.1. Categorii majore de tipuri de date si efectul acestora asupra variabilelor
      • 1.2.4.2. Tipuri de date primitive
    • 1.2.5. Modalitati de reprezentare a valorilor in codul sursa
  • 1.3. Afisarea pe ecran
  • 1.4. Operatori
    • 1.4.1. Concepte
    • 1.4.2. Operatorul de atribuire "="
    • 1.4.3. Operatorul de conversie explicita "( )"
    • 1.4.4. Operatori aritmetici
      • 1.4.4.1. Operatori aritmetici binari
      • 1.4.4.2. Operatori aritmetici unari
    • 1.4.5. Operatori la nivel de bit
    • 1.4.6. Operatori de comparare
    • 1.4.7. Operatori logici
    • 1.4.8. Operatorul ternar conditional

2. Controlul executiei. Tablouri

  • 2.1. Controlul executiei programului
    • 2.1.1. Aspecte generale
    • 2.1.2. Instructiuni decizionale
      • 2.1.2.1. Instructiunea if
      • 2.1.2.2. Instructiunea switch
    • 2.1.3. Instructiuni repetitive (bucle)
      • 2.1.3.1. Instructiunile while si do...while
      • 2.1.3.2. Instructiunea for
      • 2.1.3.3. Modificarea iterarii: break si continue
  • 2.2. Tablouri (arrays)
    • 2.2.1. Concepte
    • 2.2.2. Tablouri unidimensionale
      • 2.2.2.1. Declararea unei variabile de tip tablou unidimensional
      • 2.2.2.2. Crearea obiectului tablou
      • 2.2.2.3. Accesarea membrilor tabloului
      • 2.2.2.4. Popularea tabloului
      • 2.2.2.5. Parcurgerea tabloului
    • 2.2.3. Tablouri multidimensionale
      • 2.2.3.1. Concepte
      • 2.2.3.2. Declararea variabilei de tip tablou
      • 2.2.3.3. Crearea obiectului de tip tablou
      • 2.2.3.4. Accesarea elementelor si popularea tabloului
      • 2.2.3.5. Parcurgerea tabloului
    • 2.2.4. Tablourile si operatorul de atribuire
      • 2.2.4.1. Tablourile nu se pot copia prin simpla atribuire
      • 2.2.4.2. Operatii de atribuire corecte
    • 2.2.5. Clasa Arrays

3. Clase si obiecte

  • 3.1. Notiuni generale de programare obiectuala
    • 3.1.1. Neajunsuri ale abordarii procedurale
    • 3.1.2. Clasa: definitia unui nou tip de date compus
    • 3.1.3. Ce avantaje are abordarea obiectuala?
      • 3.1.3.1. Refolosirea codului
      • 3.1.3.2. Incapsulare
  • 3.2. Un scurt exemplu
  • 3.3. Structura unei clase Java
    • 3.3.1. Elemente de structura
    • 3.3.2. Atributele (campurile) clasei
      • 3.3.2.1. Particularitati fata de o variabila obisnuita
      • 3.3.2.2. Definitia unui atribut
      • 3.3.2.3. Accesarea atributelor obiectelor
    • 3.3.3. Metodele clasei
      • 3.3.3.1. Caracteristici generale
      • 3.3.3.2. Definitia unei metode
      • 3.3.3.3. Apelarea unei metode
      • 3.3.3.4. Returnarea unei valori dintr-o metoda
      • 3.3.3.5. Supraincarcarea metodelor
      • 3.3.3.6. Metode cu numar variabil de argumente
  • 3.4. īncapsularea
    • 3.4.1. Necesitatea incapsularii si avantajele sale
    • 3.4.2. Modificatori si niveluri de acces
    • 3.4.3. Metode de tip getter si setter
  • 3.5. Constructorul
  • 3.6. Distrugerea obiectelor
  • 3.7. Relatia obiecte virtuale - obiecte reale

4. Facilitati de limbaj si clase predefinite utile

  • 4.1. Cuvantul cheie static: ...si nu mai trebuie sa instantiez!
    • 4.1.1. Campuri statice
    • 4.1.2. Metode statice
    • 4.1.3. Blocuri de initializare statice
  • 4.2. Ordinea initializarii
  • 4.3. Lucrul cu constante: cuvantul cheie final
  • 4.4. Tipuri de date enumerate
    • 4.4.1. Necesitatea tipurilor de date enumerate
    • 4.4.2. O solutie intermediara
    • 4.4.3. Definirea tipurilor de date enumerate
    • 4.4.4. Utilizarea unui tip de date enumerat
    • 4.4.5. Metode predefinite ale tipurilor de date enumerate
  • 4.5. Clase predefinite utile
    • 4.5.1. Clasa Math
    • 4.5.2. Clasa Console
    • 4.5.3. Clasele care impacheteaza primitive
      • 4.5.3.1. Utilitatea si modul de creare a obiectelor de impachetare
      • 4.5.3.2. Facilitati ale claselor de impachetare
    • 4.5.4. Clasele String, StringBuffer si StringBuilder
      • 4.5.4.1. Aspecte generale
      • 4.5.4.2. Clasa String
      • 4.5.4.3. Clasa StringBuffer
    • 4.5.5. Clase pentru lucrul cu date calendaristice
      • 4.5.5.1. Clase disponibile si scopul lor
      • 4.5.5.2. Clasa Date
      • 4.5.5.3. Clasele Calendar si GregorianCalendar
      • 4.5.5.4. Formatare si parsare de date: clasa SimpleDateFormat

5. Mostenire

  • 5.1. Necesitatea mostenirii si aspectele sale de baza
    • 5.1.1. Inconveniente ale crearii unui nou tip de date pe baza unuia existent
    • 5.1.2. Solutia eleganta: mostenirea
    • 5.1.3. Relatia introdusa intre clase: terminologie si modalitati de reprezentare
    • 5.1.4. Beneficiile mecanismului de mostenire
    • 5.1.5. Cum apar ierarhiile de clase
    • 5.1.6. Verificarea relatiei ā€œis aā€
  • 5.2. Detaliile tehnice ale mecanismului de mostenire
    • 5.2.1. Libertati si restrictii
    • 5.2.2. Cum se instantiaza o clasa derivata. Relatia intre constructori
    • 5.2.3. Controlul accesului la membrii mosteniti
    • 5.2.4. Redeclararea membrilor in subclase
      • 5.2.4.1. Concepte
      • 5.2.4.2. Redeclararea campurilor
      • 5.2.4.3. Overriding: rescrierea implementarii metodelor mostenite
        • 5.2.4.3.1. Concepte si particularitati
        • 5.2.4.3.2. Refolosirea codului din implementarea clasei parinte
        • 5.2.4.3.3. Clasa Object: overriding-ul este chiar recomandabil
        • 5.2.4.3.4. Relatia overloading-overriding (supraincarcare-rescriere)
    • 5.2.5. Upcasting, downcasting si polimorfism
    • 5.2.6. Mostenirea si membrii statici
    • 5.2.7. Interzicerea mostenirii
  • 5.3. Clase si metode abstracte: instantierea interzisa, implementarea obligatorie in subclase
  • 5.4. Interfete: iata forma, implementati continutul

6. Pachete. Accesarea resurselor. Internationalizare

  • 6.1. Pachete java (packages)
    • 6.1.1. Principii
    • 6.1.2. Declararea apartenentei la un pachet
    • 6.1.3. Numele pachetelor
    • 6.1.4. Accesarea claselor ce fac parte dintr-un pachet
      • 6.1.4.1. Implicatii ale apartenentei la pachet
      • 6.1.4.2. Utilizarea directivei import
        • 6.1.4.2.1. Principii. Forme ale directivei
        • 6.1.4.2.2. Importarea unei clase punctuale
        • 6.1.4.2.3. Importarea tuturor claselor dintr-un pachet
        • 6.1.4.2.4. Importarea membrilor statici ai unei clase
    • 6.1.5. Structura de pachete JRE
    • 6.1.6. Mecanismul implicit de incarcare a claselor
  • 6.2. Arhive .jar
    • 6.2.1. Ce este o arhiva jar si avantajele sale
    • 6.2.2. Utilizare jar
  • 6.3. Accesarea resurselor independent de platforma
    • 6.3.1. Descrierea problemei si solutii
    • 6.3.2. Clasa Class si metoda getResource()
  • 6.4. Internationalizare
    • 6.4.1. Concepte
    • 6.4.2. Lucrul cu locales
      • 6.4.2.1. Ce este un locale
      • 6.4.2.2. Crearea obiectelor Locale
      • 6.4.2.3. Locale-ul implicit
      • 6.4.2.4. Alte metode ale clasei Locale
    • 6.4.3. Lucrul cu resource bundles
      • 6.4.3.1. Principii generale
      • 6.4.3.2. Denumirea si logica de selectie a calupurilor de resurse
      • 6.4.3.3. Clase disponibile si tipuri de calupuri de resurse
      • 6.4.3.4. Accesarea valorilor unui bundle
      • 6.4.3.5. Refolosirea resurselor
      • 6.4.3.6. Popularea cu valori a unui bundle
      • 6.4.3.7. Utilizarea calupurilor de resurse de tip PropertyResourceBundle
      • 6.4.3.8. Utilizarea calupurilor de resurse de tip ListResourceBundle
      • 6.4.3.9. Combinarea tipurilor de bundle
      • 6.4.3.10. Alte metode utile ale clasei ResourceBundle

7. Design de interfete grafice

  • 7.1. Notiuni introductive
    • 7.1.1. Concepte
    • 7.1.2. Seturi de componente grafice disponibile in Java
    • 7.1.3. Arhitectura unei aplicatii cu interfata grafica
  • 7.2. Construirea si afisarea unei interfete grafice Swing
    • 7.2.1. Tipuri de componente grafice
    • 7.2.2. Clase de tip componenta
    • 7.2.3. Etape de lucru
    • 7.2.4. Aplicare: un scurt exemplu
  • 7.3. Plasarea si dimensionarea automatizata a componentelor
    • 7.3.1. Principii
    • 7.3.2. BorderLayout
    • 7.3.3. FlowLayout
    • 7.3.4. GridLayout
    • 7.3.5. CardLayout
    • 7.3.6. GridBagLayout
  • 7.4. Facilitati si detalii de utilizare ale componentelor grafice Swing
    • 7.4.1. Atribute si metode generale
      • 7.4.1.1. Conventii de denumire a campurilor si metodelor
      • 7.4.1.2. Dimensionare si plasare
      • 7.4.1.3. Culori
      • 7.4.1.4. Mnemonice
      • 7.4.1.5. Icon-uri
      • 7.4.1.6. Alte metode utile
    • 7.4.2. Lucrul cu label-uri
    • 7.4.3. Lucrul cu componente de tip buton
      • 7.4.3.1. Clasa AbstractButton si capabilitatile generale ale butoanelor
      • 7.4.3.2. Particularitati ale butoanelor de tip toggle
    • 7.4.4. Lucrul cu componente pentru editare de text
      • 7.4.4.1. Clasa JTextComponent
      • 7.4.4.2. Particularitati JTextField si JTextArea
    • 7.4.5. JSlider
    • 7.4.6. JProgressBar
    • 7.4.7. Lucrul cu componente de tip container
      • 7.4.7.1. Clasa Container
      • 7.4.7.2. Clasa JPanel si subclasele sale
      • 7.4.7.3. Clasa JFrame
      • 7.4.7.4. Clasa JDialog
    • 7.4.8. Meniuri
      • 7.4.8.1. Structura de meniuri a unei ferestre si clasele corespunzatoare
      • 7.4.8.2. Meniuri contextuale

8. Evenimente. Componente Swing complexe

  • 8.1. Tratarea interactiunii utilizatorului cu interfata grafica
    • 8.1.1. Principii: sistemul de evenimente
    • 8.1.2. Tipuri de evenimente si tratarea lor
    • 8.1.3. Un exemplu
    • 8.1.4. Clase de adaptare
    • 8.1.5. Evenimentele si firele de executie Swing
  • 8.2. Clase interioare si utilitatea lor in tratarea evenimentelor
    • 8.2.1. Concepte
    • 8.2.2. Clase interioare anonime (anonymous inner classes)
  • 8.3. Lucrul cu componente complexe pentru afisare/editare date
    • 8.3.1. Arhitectura componentelor Swing
    • 8.3.2. Afisarea si editarea informatiei intr-o componenta complexa
    • 8.3.3. Modalitati de a crea un model de date pentru o componenta complexa
    • 8.3.4. Utilizarea componentelor de tip JList
      • 8.3.4.1. Capabilitati. Clase si metode aferente
      • 8.3.4.2. Evenimente specifice si tratarea acestora
      • 8.3.4.3. Definirea modelului pentru date
        • 8.3.4.3.1. Principii de functionare
        • 8.3.4.3.2. Variante de obtinere a unui model
        • 8.3.4.3.3. Modelul ca array de Object
        • 8.3.4.3.4. Modelul ca DefaultListModel
        • 8.3.4.3.5. Modelul ca instanta a unei clase care extinde AbstractListModel
      • 8.3.4.4. Definirea unui Renderer particularizat
    • 8.3.5. Utilizarea componentelor de tip JComboBox
      • 8.3.5.1. Capabilitati si principii de functionare
      • 8.3.5.2. Evenimente specifice
      • 8.3.5.3. Crearea modelului de date
    • 8.3.6. Utilizarea componentelor de tip JSpinner
      • 8.3.6.1. Evenimente specifice
      • 8.3.6.2. Modele si editoarele atasate
    • 8.3.7. Utilizarea componentelor de tip JTable
      • 8.3.7.1. Caracteristici si principii de functionare
      • 8.3.7.2. Evenimente specifice
      • 8.3.7.3. Crearea modelului de date

9. Sistemul de exceptii. Lucrul cu fisiere si stream-uri

  • 9.1. Tratarea erorilor unei aplicatii folosind exceptii
    • 9.1.1. Probleme in managementul erorilor
    • 9.1.2. Sistemul de exceptii: principii si avantaje
    • 9.1.3. Aruncarea unei exceptii
      • 9.1.3.1. Cine si cum arunca exceptii?
      • 9.1.3.2. Ce tipuri de obiecte pot fi ā€œaruncateā€?
    • 9.1.4. Obiectul exceptie si capabilitatile sale
    • 9.1.5. Propagarea exceptiilor
    • 9.1.6. Prinderea si tratarea unei exceptii
      • 9.1.6.1. Constructia try...catch
      • 9.1.6.2. Cazul exceptiilor inrudite
      • 9.1.6.3. Tratarea identica a mai multor exceptii distincte
      • 9.1.6.4. Blocul finally
      • 9.1.6.5. Inchiderea automata a resurselor externe
    • 9.1.7. Exceptii "checked"
    • 9.1.8. Exceptii definite de catre programator
    • 9.1.9. Exceptiile si constructorul
  • 9.2. Lucrul cu sistemul de fisiere
    • 9.2.1. Principii, categorii de operatii si solutii disponibile
    • 9.2.2. Operatii de baza cu sistemul de fisiere
      • 9.2.2.1. Particularitati ale sistemelor de fisiere si independenta de platforma
      • 9.2.2.2. Solutia clasica: clasa File
      • 9.2.2.3. Solutia noua: pachetul java.nio.file
        • 9.2.2.3.1. Clase disponibile si rolul acestora
        • 9.2.2.3.2. Operatii asupra unei cai: clasele Path si Paths
        • 9.2.2.3.3. Operatii asupra fisierelor si directoarelor: clasa Files
    • 9.2.3. Accesarea continutului fisierelor
      • 9.2.3.1. Clasa java.io.RandomAccessFile
      • 9.2.3.2. Lucrul cu stream-uri
        • 9.2.3.2.1. Principii generale si tipuri de stream-uri
        • 9.2.3.2.2. Ierarhiile de clase stream
        • 9.2.3.2.3. API-ul claselor stream. Inlantuirea stream-urilor
    • 9.2.4. Selectia fisierelor/directoarelor in aplicatiile cu interfata grafica
  • 9.3. Serializare: salvarea starii obiectelor

10. Colectii. Tipuri de date parametrizate

  • 10.1. Colectii
    • 10.1.1. Principii
    • 10.1.2. Modalitati de stocare a obiectelor in interiorul colectiei
    • 10.1.3. Ierarhia de interfete colectie
    • 10.1.4. De la interfata la implementare: ā€¦pana la urma ce instantiem?
    • 10.1.5. API-ul interfetelor colectie
      • 10.1.5.1. Interfata Collection
      • 10.1.5.2. Colectii de tip lista: interfata List
      • 10.1.5.3. Colectii de tip multime
        • 10.1.5.3.1. Interfata Set
        • 10.1.5.3.2. Interfata SortedSet
        • 10.1.5.3.3. Interfata NavigableSet
      • 10.1.5.4. Colectii de tip coada
        • 10.1.5.4.1. Interfata Queue
        • 10.1.5.4.2. Interfata Deque
      • 10.1.5.5. Colectii de tip set de corespondente
        • 10.1.5.5.1. Interfata Map
        • 10.1.5.5.2. Interfata SortedMap
        • 10.1.5.5.3. Interfata NavigableMap
    • 10.1.6. Parcurgerea unei colectii
      • 10.1.6.1. Modalitati
      • 10.1.6.2. Bucla for (pentru colectii de tip List)
      • 10.1.6.3. Bucla for-each
      • 10.1.6.4. Iteratori
    • 10.1.7. Operatii cu colectii: clasa Collections
    • 10.1.8. Ordonarea obiectelor
      • 10.1.8.1. Principii
      • 10.1.8.2. Ordonarea dupa criteriul default (ā€œnative sortingā€)
      • 10.1.8.3. Ordonarea dupa criterii aditionale
    • 10.1.9. Interfata Enumeration
  • 10.2. Generics: tipuri de date si metode parametrizate
    • 10.2.1. Concepte
    • 10.2.2. Mecanismul de functionare al parametrizarii
    • 10.2.3. Sintaxa de definire si utilizare a tipurilor de date si metodelor parametrizate
      • 10.2.3.1. Ce forme iau si unde pot fi utilizati parametrii-tip?
      • 10.2.3.2. Tipuri de date parametrizate
        • 10.2.3.2.1. Sintaxa de definire
        • 10.2.3.2.2. Sintaxa de utilizare - invocarea de tipuri parametrizate
      • 10.2.3.3. Metode si constructori parametrizati
        • 10.2.3.3.1. Sintaxa de definire
        • 10.2.3.3.2. Sintaxa de utilizare
      • 10.2.3.4. Deducerea automata a valorii unui parametru-tip (type inference)
    • 10.2.4. Problema relatiilor intre tipuri de date parametrizate
    • 10.2.5. Parametri-tip ce folosesc wildcard-uri
    • 10.2.6. Interoperabilitatea cu cod care nu foloseste tipuri parametrizate

11. Multi-threading

  • 11.1. Concepte
    • 11.1.1. Procese vs thread-uri
    • 11.1.2. De ce este necesara executia concurenta
    • 11.1.3. Modalitati de lucru cu fire de executie in Java
  • 11.2. Utilizarea claselor de nivel inalt
    • 11.2.1. Clasa javax.swing.Timer
    • 11.2.2. Clasa java.util.Timer
  • 11.3. Utilizarea claselor low-level
    • 11.3.1. Functionarea multi-threading-ului in Java
      • 11.3.1.1. Concepte
      • 11.3.1.2. Starile posibile ale unui thread
    • 11.3.2. Lucrul cu obiecte Thread
      • 11.3.2.1. Crearea unui obiect Thread
      • 11.3.2.2. Pornirea si rularea thread-urilor
      • 11.3.2.3. Prioritatile thread-urilor
      • 11.3.2.4. Plasarea voluntara a unui thread in asteptare
        • 11.3.2.4.1. Situatii
        • 11.3.2.4.2. Renuntarea la statutul de thread activ: metodele sleep() si yield()
        • 11.3.2.4.3. Asteptarea incheierii executiei unui alt thread: metodele join()
      • 11.3.2.5. Intreruperea unui thread
      • 11.3.2.6. Alte facilitati si metode utile ale clasei Thread
  • 11.4. Accesul concurent la date comune
    • 11.4.1. Identificarea problemei
    • 11.4.2. Sincronizarea thread-urilor
    • 11.4.3. Sincronizarea in cazul metodelor statice
    • 11.4.4. Semnalizarea inter-thread-uri: asteptarea unui eveniment
  • 11.5. Pachetul java.util.concurrent
    • 11.5.1. Prezentare. Principii
    • 11.5.2. Executia task-urilor folosind obiecte de tip Executor
  • 11.6. Clase si metode thread-safe

12. JDBC: interactiunea cu baze de date

  • 12.1. Concepte JDBC
  • 12.2. Pasi de urmat in lucrul cu JDBC
  • 12.3. Instalarea si incarcarea driverului
  • 12.4. Deschiderea unei conexiuni cu baza de date
  • 12.5. Crearea unui obiect Statement
  • 12.6. Interogarea bazei de date
  • 12.7. Prelucrarea rezultatelor obtinute
    • 12.7.1. Cazul interogarilor care modifica informatie (INSERT,UPDATE si DELETE)
      • 12.7.1.1. Obtinerea numarului de inregistrari afectate
      • 12.7.1.2. INSERT: obtinerea valorilor cheilor generate automat
    • 12.7.2. Cazul interogarilor care extrag informatie (SELECT)
      • 12.7.2.1. Clasa ResultSet
      • 12.7.2.2. Pozitionarea cursorului si obtinerea pozitiei curente
      • 12.7.2.3. Obtinerea numarului de randuri ale ResultSet-ului
      • 12.7.2.4. Extragerea informatiei inregistrarii curente
      • 12.7.2.5. Modificarea informatiei prin intermediul obiectului ResultSet
        • 12.7.2.5.1. Conditii pentru reusita
        • 12.7.2.5.2. Modificarea inregistrarii curente
        • 12.7.2.5.3. Introducerea unei noi inregistrari
        • 12.7.2.5.4. Stergerea unei inregistrari
    • 12.7.3. Interogari care produc rezultate multiple
  • 12.8. Extragerea de meta-informatie
  • 12.9. Tratarea warning-urilor si erorilor
  • 12.10. Utilizarea obiectelor de tip RowSet
    • 12.10.1. Principii. Tipuri de RowSet-uri
    • 12.10.2. Ierarhia de interfete rowset
    • 12.10.3. Modalitati de creare a unui obiect RowSet
    • 12.10.4. Configurarea si popularea cu informatie a obiectelor RowSet
    • 12.10.5. RowSet-uri de tip connected: obiecte JdbcRowSet
      • 12.10.5.1. Crearea si popularea unui JdbcRowSet
      • 12.10.5.2. Utilizarea obiectelor de tip JdbcRowSet
    • 12.10.6. RowSet-uri de tip disconnected
      • 12.10.6.1. Obiecte de tip CachedRowSet
        • 12.10.6.1.1. Particularitati
        • 12.10.6.1.2. Crearea obiectelor de tip CachedRowSet
        • 12.10.6.1.3. Utilizarea obiectelor de tip CachedRowSet
      • 12.10.6.2. Interfata WebRowSet
    • 12.10.7. Filtrarea locala a datelor dintr-un rowset: interfata FilteredRowSet
    • 12.10.8. Join-uri locale: interfata JoinRowSet
ATENTIE!

Am lansat
Pachete de cursuri
CCNA 1 - 4
CCNA 2 - 4
CCNA 3 - 4
la preturi foarte avantajoase. Detalii (click)
ATENTIE!

InfoAcademy dispune de programul
SUSTINE PERFORMANTA
.
Prin program se acorda
MODULE GRATUITE
si alte facilitati celor care au rezultate deosebite.
ATENTIE!
InfoAcademy este centru de testare VUE pentru orice tip de certificari. Au prioritate la inscrieri absolventii Infoacademy
ATENTIE!

Inscrierea on-line este utilizata pentru estimarea cererii diverselor cursuri si nu va garanteaza locul. Inscrierea efectiva se face prin semnarea contractului si plata partiala sau totala a modulului pentru care se opteaza.
ATENTIE!

InfoAcademy isi rezerva dreptul de a repozitiona sau amana anumite clase pentru care nu exista suficiente solicitari. Veti fi anuntati din timp despre efectuarea unor astfel de modificari