Sunteți pe pagina 1din 8

Modulul 1

(disciplinile:
Matematica discret,
Analiza i proiectarea algoritmilor
Structuri de date i algoritmi
Metode Criptografice de Protecie a Informaiei )

1.. 1 Matematica discret

Algebra logicii

Tabele de adevr. Formule echivalente.


Algebra boolean Proprietile operaiilor booleene.
Decompoziia funciilor logice.
Forma canonic disjunctiv (FCD). Forma canonic conjunctiv (FCC).
Sisteme complete de funcii booleene.
Minimizarea FCD i FCC. Metoda lui Quine, Quine-McCluskey, diagrame Karnaugh.
Reprezentarea funciei logice prin scheme logice i diagrame de timp

Grafuri

Grafuri neorientate i grafuri orientate. Definiia de baz n teoria grafurilor.


Metode de reprezentare a grafului. Noiuni generale. Matrici, liste.
Drumuri i circuite n grafuri.
Algoritmi pe grafuri. Algoritmul de cutare n largime i dncime.
Noiune de graf de acoperire. Algoritmul de determinare a grafului de acoperire.
Drum minim (maxim). Algoritmul lui Ford i Bellman-Calaba pentru determinarea drumului
minim (maxim).
Determinarea drumului hamiltonian ntr-un graf orientat fr circfuite. Teorema lui I.C.Chen.
Determinarea drumului hamiltonian ntr-un graf orientat, ce conine circuite.
Determinarea drumurilor elementare.
Reea de transport. Algoritmul Ford-Fulkerson pentru determinarea fluxului maxim.

Probleme tipice la disciplina Matematica discret

1. Pentru funcia logic dat determinai FCD i FCC.


2. Pentru funcia logic de patru variabile s se determine forma disjunctiv minim dup
metoda lui Quine.
3. S se determine forma disjunctiv minim i forma conjunctiv minim a funciei logice
de patru variabile dup metoda lui Quine-McCluskey.
4. Reprezentai prin diagrama n timp funcia logic dat.
5. Pentru funcia logic dat construii schema logic n baza I-NU.
6. Pentru funcia logic dat construii schema logic n baza SAU-NU.
7. Fiind dat matricea de adiacen a unui graf orientat, s se deduc:
a) gradele vrfurilor;
b) dac exist vrfuri izolate;
c) dac graful este complet.
8. Folosind algoritmul lui Ford determinai pentru graful dat drumurile minime i maxime
dintre vrfurile date.
9. Folosind algoritmul lui Belman-Calaba determinai pentru graful dat drumurile minime i
maxime dintre vrfurile date.
10. Folosind algoritmul lui Ford-Fulkerson determinai valoarea fluxului maxim pentru
reeaua de transport dat.
11. Construii tabelele de adevr, determinai forma canonic disjunctiv, stabilii forma
minim i implementai n bazele I-NU, SAU-NU funciile logice:

f ( x1 , x 2 , x3 , x 4 ) x1 x 2 x3 x 4 x1 x3 x 2 x 4 ,

f x1 , x 2 , x3 , x 4 = x 2 x3 | x1 x 4 x1 x 4 x1 x 2 ~ x3 x 4 .

12. Pentru funciile logice date elaborai schemele logice n baza I-NU i n baza SAU-NU
i
reprezentai funciile prin diagrame temporale:

f x1 , x2 , x3 , x4 0 4,6,10,11,13,14

f x1 , x2 , x3 , x4 5,7,8,9,12,15

12.S se determine drumul hamiltonian n graful G X , U , X x1 , x 2 , x3 , x 4 , x5 , x 6


U x1 , x 2 , x1 , x3 , x 2 , x 4 , x 2 , x3 , x 4 , x5 , x 4 , x6 , x5 , x1 , x6 , x3 , x6 , x5
13. S se determine drumurile hamiltoniene n graful G X , U , X x1 , x 2 , x3 , x 4
U x1 , x 2 , x 2 , x 4 , x 2 , x3 , x3 , x 2 , x3 , x1 , x3 , x 4 , x 4 , x1 , x 4 , x3

1.2 . Analiza i proiectarea algoritmilor

1 Algoritmi. Definiia. Aspectele cuprinse n studiul algoritmilor.


2 Proprietile algoritmilor.
3 Descrierea algoritmilor.
4 Dimensiunea datelor de intrare a algoritmilor
5 Complexitatea calculului. Resursele de calcul.
6 Complexitatea spaial. Complexitatea temporal.
7 Analiza unui algoritm. Timpul de execuie a algoritmului.
8 Complexitatea asimptotic. notaia. O notaia. notaia.
9 Complexitatea asimptotic. o notaia. - notaia.
10 Etapele analizei complexitii
11 Analiza empiric a complexitii algoritmilor
12 Analiza algoritmilor recursivi. Relaii de recuren.
13 Recurene liniare omogene. Metoda ecuaiilor caracteristice de rezolvare a recurenelor.
14 Recurene liniare neomogene. Metoda ecuaiilor caracteristice de rezolvare.
15 Metoda schimbrii variabilei.
16 Metoda master de rezolvare a recurenelor. Teorema master.
17 Metoda divide i stpnete. Exemple.
18 Tehnica greedy. Noiuni generale. Exemple.
19 Programarea dinamic. Exemple.
20 Algoritmi genetici. Calcul evolutiv
1.3. Structuri de Date i algoritmi

1. Liste. Moduri de implementare a listelor.


2. Stive.
3. Cozi.
4. Grafuri. Grafuri orientate si neorientate.
5. Reprezentarea grafurilor.
6. Liste de adiacenta.
7. Matrice de adiacenta.
8. Arbori cu radacina.
9. Arbori binari.
10. Heap-uri.

1.4 MCPI (Metode Criptografice de Protectie a Informatiei)

1.Vulnerabilitatea informationala. Cifruri istorice.Substitutia simpla. Cifruri bazate


pe permutari. Cifruri flux simetrice. Cifrul Lorenz. Substitutia multipla.
Cifrul Vigenere. Cifrul Feistel si DES.Introducere in cifrari bloc.
Steganografia . Tehnici de criptare analogica.

2. Protocoale si Principii criptoanalitice. Criterii de evaluare. Functii hash bazate


pe cifruri bloc. Atacuri criptoanalitice. Operatii de baza in criptoanaliza.

3.Crearea de chei publice. Cifrare.Descifrare.Infrastructura cheilor publice.


Standarte PKI. Hash-functii. Functii hash, bazate pe cifruri bloc.
Autentificarea mesajelor. Protocol de autentificare.Algoritmul DSA.
Notiune de master-key.Generarea cheilor. Protectia cheilor. Cheia
utilizatorului. Arhivarea cheilor criptografice. Distrugerea cheilor
criptografice.

4.Autentificare si schimb de chei. Protocoale cu dezvaluire minima. Criptografia


cu doua chei . Algoritmul RSA.

5. Autentificare reciproca Autentificare univoca. Scheme de semnaturi digitale si


clasificarea acestora.

6.Schema RSA a semnaturii digitale. Managementul cheilor criptografice. Politici


si tehnici de securitate .

7.Standarde nationale si internationale. Legislatia R. Moldova in domeniu.


Modulul 2 (disciplinile: Programarea n C, C++,
MSI,
APPOO
AMSI)

2.1. Programarea n C, C++


Tipuri de date. Declararea variabilelor. Operaiile limbajului C/C++. Clasificarea operaiilor
Operatorii limbajului C/C++. Clasificarea operatorilor (logici, aritmetici, etc.)
Conversia de tip.
Operatori condiionali (if-else), ramificare (switch, break)
Operatori ciclu (for, while, until)
Preprocesorul limbajului C i structura programului
Funciile limbajului C/C++. Prototipul funciei. Argumentele funciei
Tablouri. Definirea tablourilor unidimensionale i bidimensionale
Pointerii n C/C++. Referinele n C++. Pointerii i Tablourile
Pointerii i referinele n calitate de argumente ale funciilor
Aritmetica adreselor. Tablouri de pointeri. Pointer la pointer
Structuri. Definirea structurilor. Structuri i funcii. Tablouri de structuri
Uniuni. Definirea uniunilor. Uniuni vide
Recursia

iruri simbolice. Funcii ce opereaz cu iruri simbolice


Fiiere. Pointeri la fiiere. Funciile ce opereaz cu fiierele
Clase, structuri i uniuni. Funcii inline. Funcii inline n declararea clasei
Atribuirea obiectelor. Transmiterea obiectelor funciilor
Funcii prietene.
Tablouri de obiecte. Utilizarea pointerilor la obiecte. Operatorul THIS
Operatorii NEW i DELETE. Alocarea i eliberarea memorie dinamice n C/C++
Redefinirea funciilor. Redefinirea constructorilor. Definirea i utilizarea constructori copii.
Argumentele implicite.
Redefinirea operatorilor. Redefinirea operatorilor binari, relaionali i logici
Redefinirea operatorilor unari
Motenirea. Gestionarea accesului la clasa de baz. Constructorii, destructorii i motenirea
lor. Motenirea multipl
Clase de baz virtuale. Funcii virtuale. Pointeri la clase derivate. Aplicarea polimorfismului

Probleme tipice la disciplina Programarea n C, C++

1. Recursia. Pentru o secven de program dat i cteva alternative de rspuns s se aleag


alternativa corect.
2. Pentru o secven de program dat scris n C++, s se gseasc erorile posibile i s se
explice sensul lor. Ca exemple pot fi secvene de form general, secvene ce conin
operatori condiionali, ramificare, de luare a deciziilor, etc.
3. Clase. Constructori, destructori. Motenirea claselor. Obiecte. Structuri i Uniuni. S se
scrie scrie o secven de program cu utilizarea tehnicilor menionate.
4. Obiecte. Pointeri la obiecte. Referine la obiecte. Transmiterea obiectelor funciilor.
Transmiterea obiectelor n funcii prin utiizarea pointerilor i referinelor. S se scrie o
secven de program cu utilizarea tehnicilor menionate.
5. Masive de obiecte. Alocarea memoriei dinamice cu ajutorul operatorilor NEW i
DELETE. S se scrie o secven de program cu utilizarea tehnicilor menionate.
6. Funcii prietene. Redefinirea funciilor. Redefinirea operatorilor binari, logici, unari,
index, etc. S se scrie o secven de program ce va efectua redefinirea unei
funcii/operator i va declara o funcie prieten crei-va clase.
7. Exemple cu formatarea Intrrii/Ieirei. Gestiunea operaiilor de Intrare/Ieire. Funciile
utilizator ce efectuiaz operaiile de Intrare/Ieire.
8. Exemple cu operaii de Intrare/Ieire n fiiere. Accesul necondiionat la coninutul
fiierului.

2.2 Managementul securitii informaionale

Cadrul de management al securitii informaiei


Standarde internaionale n domeniu (familia de standarde ISO 27000).
Relaia ntre standarde i aplicabilitatea lor.
Seciunile standardului de securitate ISO/IEC 27002.
Politica de securitate.
Organizarea securitii.
Clasificarea i controlul activelor.
Securitatea personalului.
Securitatea fizic.
Managementul comunicaiilor i al operrii.
Controlul accesului.
Criptografia.
Dezvoltarea i ntreinerea sistemului.
Planificarea continuitii afacerii.
Conformitatea.

Sistemul de Management al Securitii Informaionale


Etapele procesului de implementare a SMSI conform ISO 27001.
Stabilirea obiectivelor i definirea sferei SMSI.
Definirea politicii de securitate i stabilirea rolurilor i responsabilitilor.
Identificarea i clasificarea resurselor.
Identificarea i evaluarea riscurilor.
Planul de management al riscurilor.
Strategia de diminuare a riscurilor.
ntocmirea declaraiei de aplicabilitate.
Instruirea i pregtirea personalului.
Monitorizarea i controlul performanelor SMSI.
Meninerea SMSI i mbuntirea continu.

Analiza i evaluarea riscurilor de securitate


Managementul riscurilor securitii informaionale.
Ameninri i vulnerabilitilor.
Evaluarea cantitativ i calitativ.
Etapele procesului de analiz i evaluare riscuri conform ISO 27005.

Metodologii i instrumente de analiza a riscurilor informaionale


Metodologia Microsoft.
Metodologia CRAMM/Cramm.
Metodologia MEHARI/Risicare.
Metodologia Ebios.
Metodologia Octave.
Instrumentele RiskWatch, Grif.
Politici, modele i programe de securitate
Modele de securitate multinivel i multilaterale.
Modelul Ball-LaPadula.
Modelul Biba.
Modele de politici de securitate.
Exemple de politici de securitate.
Aspecte practice ale politicii de securitate.

2.3 APPOO i AMSI (Analiza, proiectarea i programarea obiect-orientat


Analiza i modelarea sistemelor informaionale)

1. Dezvoltarea orientat pe obiecte


1.1. Ciclul de dezvoltare
1.1.1. Procesul Unificat (UP)
1.1.2. Caracteristici generale
1.1.3. Etape, faze i iteraii
1.1.4. Analiz
1.1.5. Proiectare
1.1.6. Construcie
1.1.7. Meninere
1.2. Criterii de calitate ale unui produs software
1.2.1. Reutilizare
1.2.2. Fiabilitate
1.2.3. Robustee
1.2.4. Securitate
1.2.5. Integritate
1.2.6. Extensibilitate
1.2.7. Scalabilitate
2. Analiz i proiectare utiliznd UML
2.1. Specificarea cerinelor funcionale
2.2. Proiectarea structurii
2.3. Proiectarea comportamentului
3. Proiectare obiectual
3.1. Principii de proiectare obiectual
3.1.1. Low Coupling
3.1.2. High Cohesion
3.1.3. Polymorfism
3.2. abloane de proiectare (inclusiv GoF)
3.2.1. abloane creaionale
3.2.1.1. Builder
3.2.1.2. Factory
3.2.1.3. Singleton
3.2.1.4. Prototype
3.2.1.5. Object Pool
3.2.1.6. Factory Method
3.2.1.7. Abstract Factory
3.2.2. abloane comportamentale
3.2.2.1. Visitor
3.2.2.2. Iterator
3.2.2.3. Strategy
3.2.2.4. Mediator
3.2.2.5. Memento
3.2.2.6. Observer
3.2.2.7. Command
3.2.2.8. Interpreter
3.2.2.9. Template Method
3.2.2.10. Chain of Responsibility
3.2.3. abloane structurale
3.2.3.1. Adapter
3.2.3.2. Bridge
3.2.3.3. Composite
3.2.3.4. Decorator
3.2.3.5. Flyweight
3.2.3.6. Proxy
4. Concepte ale abordrii obiectuale
4.1. Principii de progrmare obiectual
4.1.1. Abstractizarea
4.1.2. ncapsularea
4.1.3. Ierarhizarea
4.1.3.1. Ierarhii de clas
4.1.3.2. Ierarhii de obiecte
4.1.4. Mesaje
4.2. Obiecte i clase
4.2.1. Identificarea obiectelor
4.2.1.1. Caracteristica unui obiect
4.2.1.2. Tehnici de analiz OO
4.2.2. Crearea obiectelor
4.2.2.1. Simbolul this
4.2.2.2. Constructorii
4.2.2.3. Iniializarea cmpurilor unui obiect
4.2.3. Eliberarea resurselor
4.2.4. Membrii statici ai claselor
4.2.5. Closure i abordarea OO
4.2.5.1. Variabie locale persistente (C++)
4.2.5.2. Delegate (C#)
4.2.5.3. Clase anonime mbricate (Java)
4.2.6. Modularizarea
4.2.6.1. Principiile lui Parnas
4.2.6.2. Pachete i spaii de nume
4.2.6.3. Reguli de vizibilitate
4.3. Motenire
4.3.1. Subclase i subtipuri
4.3.1.1. Clase abstracte
4.3.1.2. Interfee
4.3.2. Motenire multipl
4.3.3. Funcii virtuale
4.3.3.1. Funcii virtuale private
4.3.3.1.1. ablobul Template Method
4.3.3.2. Destructori virtuali
4.3.4. Formele logice de motenire
4.3.4.1. Specializarea
4.3.4.2. Specificarea
4.3.4.3. Construire
4.3.4.4. Generalizarea
4.3.4.5. Extinderea
4.4. Polimorfism
4.4.1. Polymorfism universal
4.4.1.1. Polimorfismul de motenire (runt-time, inclusion)
4.4.1.2. Polimorfismul parametric (compile-time)
4.4.2. Polimorfism ad-hoc
4.4.2.1. Overloading
4.4.2.2. Coercion

Referene

1. Cursuri online
1. Coursera, http://https://www.coursera.org/
1. Pattern-Oriented Software Architectures for Concurrent and
Networked Software, https://www.coursera.org/course/posa
2. Visual Paradigm Online Training Center,
http://www.viswiser.com/search.jsp#free
2. Pagini Web
1. Object Mentor, http://objectmentor.com/index.html
2. Martin Fowler, http://martinfowler.com/
3. Data & Object Factory[TM], dofactory.com[TM],
http://dofactory.com/Default.aspx
4. C#Corner, http://www.c-sharpcorner.com/
5. Codeprojec, http://www.codeproject.com/
6. uml-diagrams.org, http://www.uml-diagrams.org/
7. Sourcemaking.com, http://sourcemaking.com/design_patterns
3. Cri
1. Erich Gamma i alii, Design Patterns: Elements of Reusable Object-
Oriented Software, 1994, http://www.amazon.com/Design-Patterns-
Elements-Reusable-Object-Oriented/dp/0201633612
2. Timothy Budd, An Introduction to Object-Oriented Programming, 2001,
3. http://www.amazon.com/Introduction-Object-Oriented-Programming-3rd-
Edition/dp/0201760312
4. Elisabeth Freeman i alii, Head First Design Patterns, 2004,
http://www.amazon.com/gp/product/0596007124
5. Brett D. McLaughlin i alii, Head First Object-Oriented Analysis and
Design , 2006, http://www.amazon.com/gp/product/0596008678
6. Grady Booch i alii, Object-Oriented Analysis and Design with
Applications, 2007, http://www.amazon.com/Object-Oriented-Analysis-
Design-Applications-3rd/dp/020189551X
7. Bjarne Stroustrup, The C++ Programming Language: Special Edition, 2000,
http://www.amazon.com/C-Programming-Language-Special/dp/0201700735
8. Jacquie Barker i Grant Palmer, Beginning C# Objects: From
Concepts to Code, 2004
9. Larry O'Brien i Bruce Eckel, Thinking in C#, 2002
10. Avinash C. Kak, Programming with Objects: A Comparative Presentation of
Object-Oriented Programming with C++ and Java, 2003