CURSURI OPŢIONALE DE
INFORMATICĂ
PROPUSE
PENTRU ANUL
UNIVERSITAR 2015-2016
SEM. I
DOMENIUL DE LICENŢĂ:
INFORMATICĂ
SPECIALIZAREA:
INFORMATICĂ
Lista cursurilor opţionale – sem. I
5.1 Aplicații distribuite în cloud
5.2 Aplicații Web dezvoltate cu Ruby on Rails
5.3 Aplicații Web în Python
5.4 Cloud Computing
5.5 Combinatorică enumerativă și aplicații
5.6 Concepte geometrice în grafica pe calculator
5.7 Concepte și aplicații în vederea artificială
5.8 Programare Web utilizând limbajul Java – Servleți
5.9 Proiectarea și implementarea unei platforme web scalabile
5.10 Undergraduate Research Opportunities
Fiecare student face 5 opțiuni,
în ordinea preferințelor
FIȘA UNITĂȚII DE CURS
TITLU: APLICAȚII DISTRIBUITE ÎN CLOUD
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SĂPTĂMÂNĂ: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Robert Hasna (Adobe Romania)
OBIECTIVE:
Cursul își propune să ofere studenților o introducere în tot ce înseamnă dezvoltarea
aplicațiilor internet ce lucrează cu cantități mari de date si au un grad ridicat de scalabilitate,
aplicații care rulează în cloud-ul oferit de Amazon sub sistemul de operare Linux.
În cadrul cursului vor fi prezentate tehnologii și metode de actualitate în construirea
aplicațiilor ce ruleaza in cloud iar accentul este pus pe serviciile oferite de Amazon Web
Services. Cursul este unul de tip hands-on, studenții având posibilitatea să pună în practică toate
cunoștințele dobândite.
La finalul cursului, studenții vor putea crea și gestiona resurse în cloud-ul Amazon,
dezvolta aplicații care rulează în cloud, sunt scalabile si manipulează cantități mari de date.
PROGRAMĂ:
1. Introducere in Cloud. Ce este? Avantaje si dezavantaje.
2. Scalabilitate. Anatomia unei aplicatii modulare si scalabile.
3. Servicii de calcul si comunicare in AWS. (EC2, SQS, ELB)
4. Servicii de stocare in AWS. (S3, DynamoDB, RDS)
5. Utilizarea SDK-ului Java pentru AWS.
6. Introducere in Hadoop. Hadoop pe cluser in Amazon.
BILBIOGRAFIE:
[1] Documentatia online AWS: http://aws.amazon.com/documentation/
[2] Documentatia online Hadoop: http://hadoop.apache.org/docs/r2.3.0/
NOTĂ: Numărul maxim de studenți participanți este de 25.
FIȘA UNITĂȚII DE CURS
TITLU: APLICAȚII WEB DEZVOLTATE CU RUBY ON RAILS
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SĂPTĂMÂNĂ: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Specialiști din cadrul Cronian Academy
OBIECTIVE:
Cursul își propune să ofere studenților o introducere în tot ce înseamnă dezvoltarea
aplicațiilor web utilizând framework-ul Ruby on Rails, în sistemul de operare Linux. În cadrul
cursului va fi prezentată arhitectura MVC (Model-View-Controller), pe care este construit
framework-ul Ruby on Rails, precum și alte tehnologii precum HTML5, CSS3, Javascript, XML.
Cursul este unul de tip hands-on, studenții având posibilitatea să pună în practică toate
cunoștințele dobândite. La finalul cursului, studenții vor putea dezvolta aplicații web conform
ultimelor standarde.
PROGRAMĂ:
1. Introducere în universul aplicațiilor web. Introducere în MVC. Instalarea și cunoașterea
pachetului Ruby on Rails.
2. Structura unei aplicații. Introducere în HTML5, CSS3, Javascript.
3. Sintaxa Ruby on Rails. Testare (TDD). Configurarea mediului de deployment.
4. Modele și vizualizări I. Crearea unei baze de date și operații asupra ei (creare, modificare,
ștergere de utilizatori și parole, etc.).
5. Modele și vizualizări II. Creare de vizualizări (interfață grafică, formulare, metode de
autentificare, înregistrare, etc).
6. C-ul din MVC - controlerul. Sesiuni și securitatea aplicației.
7. Dezvoltarea unei aplicații web.
BILBIOGRAFIE:
[1] Ghidul online Ruby on Rails: http://guides.rubyonrails.org/
[2] Michael Hartl, Ruby on Rails 3 Tutorial Book: Learn Rails by Example, Addison-Wesley,
2010. (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)
[3] Sam Ruby, Dave Thomas, David Heinemeier Hansson, Agile Web Development with Rails,
4th
edition, Pragmatic Programmers, 2011.
NOTĂ: Cursul și laboratorul său vor fi organizate pe grupe de 15-20 de studenți.
FIȘA UNITĂȚII DE CURS
TITLU: APLICAȚII WEB IN PYTHON
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SĂPTĂMÂNĂ: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Specialiști din cadrul Eau de Web și ROSEdu
OBIECTIVE:
Cursul își propune să ofere studenților o introducere în programarea web folosind
limbajul de programare Python și platforma Django. În prima parte a cursului, studenții sunt
familiarizați cu limbajul, cu sintaxa și construcțiile specifice programării de nivel înalt. În cea de
a doua parte, se pune accentul pe dezvoltarea unei aplicații web, pornind de la partea de
proiectare şi parcurgând cu atenţie toate etapele de dezvoltare, până la finalizarea aplicaţiei.
Cursul este interactiv, în timpul prezentării studenții fiind încurajați să participe cu
sugestii și întrebări. Partea practică de tipul hands-on se face în paralel cu prezentarea, anumite
părți de cod fiind puse la dispoziție pe proiector sau online pe pagina de resurse a cursului.
La finalul cursului, un absolvent va avea atât noțiunile necesare înțelegerii programării
web, cât și abilitatea de a dezvolta o aplicație web de la zero.
PROGRAMĂ:
1. Introducere în Python. Lucrul cu interpretorul, sintaxa.
2. Operații de bază. Funcții built-in.
3. Programare orientată pe obiect. Clase și obiecte. Moștenire
4. Noțiuni specifice Python. Liste şi tupluri. Dicţionare.
5. Introducere în Django. HTTP. Modele, view-uri și template-uri
6. Lucrul cu baza de date din Django. Modele și interogări
7. Formulare. Formulare mapate pe modele, template-uri
8. Django extras: autentificare, sesiune, paginare
9. Frontend: CSS, Javascript. Platforma Bootstrap
BILBIOGRAFIE:
[1] Documentatia online PurePython: http://purepython.eaudeweb.ro/wiki/Home.html
[2] Documentatia online Python: https://docs.python.org/3/
NOTĂ: Numărul maxim de studenți participanți este de 30. Studenții care optează pentru acest
curs vor fi supuși unei proceduri suplimentare de selecție.
FIȘA UNITĂȚII DE CURS
TITLU: CLOUD COMPUTING
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Conf. dr. Cristian Kevorchian (profesor asociat FMI)
OBIECTIVE:
Scopul cursului este de a prezenta viitorilor specialişti în domeniul IT un mix de
tehnologii sub numele de cloud computing care, potrivit predicţiilor Gartner, pînă la sfîrşitul
anului 2016, 50% din companiile din Global 1000 vor utiliza servicii din public cloud. Cursul
integrează cunoştinţe din zona arhitecturilor de calcul a reţeleor de calculatoare şi programării
calculatoarelor într-unul dintre cele mai dinamice domenii ale tehnologiei informaţiei – a se
vedea şi experienţa unor universităţi de prestigiu, cum ar fi Stanford,
(http://scpd.stanford.edu/search/publicCourseSearchDetails.do?method=load&courseId=11815).
Nu sunt vizate, in acest curs, decat aspecte legate de virtualizarea infrastructurilor de
calcul şi înţelegerea arhitecturilor de tip public cloud, privat cloud şi hybrid cloud, precum şi
utilizarea softwareului şi platformelor de dezvoltare ca serviciu. În contextul problematicii cloud
computing vom aduce în discuţie şi subiecte larg dezbătute în comunităţile tehnologice de genul
Serviciile WEB din perspectiva SOAP(Simple Object Access Protocol) sau
REST(Representational State Transfer).
PROGRAMA:
1. Cloud computing-definiţii, tipuri de cloud, caracteristici, avantaje şi dezavantaje, utilizare de
standarde deschise.
2. Arhitecturi cloud-stiva cloud computing, conectarea la cloud, sisteme de operare în Cloud:
Windows Azure OS, Chrom OS, JolieCloud OS.
3. Abstractizare şi virtualizare-tehnologii de virtualizare, load balancing şi virtualizare,
hipervizoare, imagini ale maşinilor virtuale, portarea aplicaţiilor.
4. Servicii şi aplicaţii, SOA(Service Oriented Arhitecture)-Infrastructure as a Service(IaaS),
Platform as a Service(PaaS), Software as a Service(SaaS), Identity as a Service(IdaaS),
Compliance as Service(CaaS), Security-as-a-Service, ESB(Enterprise Service
Bus),BPEL(Business Process Execution Language), Modelarea proceselor de business,
Managementul şi monitorizarea SOA, SOA şi Cloud Computing, REST şi Cloud Computing.
5. Planificarea capacităţii de calcul – metrici de bază, metrici de sistem, testarea nivelului de
încărcare, tipuri de servere şi instanţe, capacitatea reţelei.
6. Stocarea ca serviciu în CLOUD – Prezentarea serviciilor de stocare, ca fiind persistente şi
redundante şi în plus analiza serviciilor:BLOB, QUEUE şi TABLE împreună cu API-ul
Windows Azure Storage REST Service.
7. Platforma Windows Azure-software plus servicii, Servicii Windows Azure, Windows Azure
AppFabric, SQL Azure. Interconectarea serviciilor cu .NET Service Bus.
8. Transferul aplicaţiilor în cloud- aplicaţii în cloud, asocierea funcţionalităţilor, atributele
aplicaţiilor, atributele serviciilor cloud, aplicaţii şi API-uri în cloud
9. Cloud, Grid şi HPC – Prezentarea soluţiilor Amazon Elastic Compute Cloud EC2,
TWESTER4Azure şi MR4Azure
BIBLIOGRAFIE:
[1] B. Sosinsky CLOUD COMPUTING BIBLE, Wiley Publishing Inc., 2011
[2] R. Jennings CLOUD COMPUTING with Windows Azure Platform, Wiley Publishing Inc.,
2009
[3] R. Buyya, J. Broberg, A. Goscinski CLOUD COMPUTING. Principles and Paradigms,
Wiley Inc., 2011
[4] T.Velte, J. Velte, R. Elsenpeter CLOUD COMPUTING: A Practical Approach, MacGrow
Hill, 2010
FIȘA UNITĂȚII DE CURS
TITLU: COMBINATORICA ENUMERATIVA SI APLICATII
DOMENIUL DE LICENTA: INFORMATICA
SPECIALIZAREA: INFORMATICA
STATUTUL: OPȚIONAL
NR. ORE/SAPTAMANA: 3 (Curs=2; Seminar=1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
TITULAR: Conf. dr. Dragos-Radu Popescu
OBIECTIVE:
Cursul își propune o introducere în teoria numărării cu largi aplicații în toate domeniile
teoretice și practice ale cercetării matematice. Astfel, cursul se adresează atât studenților care
vor să devină profesori cât și celor ce vor să se specializeze în informatică sau care doresc să-și
continue activitatea de cercetare în cadrul unui program de studii aprofundate sau de doctorat.
PROGRAMA:
1. Principii de numărare.
2. Inegalitățile lui Bonferroni și Hunter. Aplicații.
3. Funcții de numărare. Numere Stirling, Bell, Fibonacci, Catalan și Lucas.
4. Drumuri laticiale.
5. Formule de inversiune binomială și Stirling.
6. Numărarea arborilor. Teoremele lui Cayley, Temperley, Austin.
7. Funcții generatoare.
8. Teoria lui Polya.
9. Aplicații în teoria probabilităților și teoria numerelor.
BIBLIOGRAFIE:
[1] Aigner Martin: Combinatorial Theory, Springer-Verlag, 1979.
[2] Bondy J. A.,Murty U. S. R.: Graph theory with Applications, The Macmillam Press ltd.,
1977.
[3] Popescu Dragos-Radu: Combinatorica si teoria grafurilor, Societatea de Stiinte Matematice
din Romania, 2005.
[4] Popescu Dragos-Radu, Marinescu-Ghemeci Ruxandra: Combinatorica si teoria grafurilor
prin exercitii si probleme, Matrix Rom, Bucuresti, 2014
[5] Tomescu Ioan: Probleme de combinatorica si teoria grafurilor, Ed. Didactica si
Pedagogica,1981.
[6] Tomescu Ioan, Popescu Dragos–Radu: Elemente de Matematica discreta, Teoria Grafurilor si
Analiza Combinatorie, Matrix Rom, Bucuresti, 2013
[7] Wilf, H. S.: Generatingfunctionology, 2nd ed. New York: Academic Press, 1994.
FIȘA UNITĂȚII DE CURS
TITLU: CONCEPTE GEOMETRICE ÎN GRAFICA PE CALCULATOR
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Lect. dr. Sorin Stupariu
OBIECTIVE:
Cursul are două componente complementare. Prima dintre ele are o natură teoretică: în
cadrul cursului vor fi prezentate noțiuni și rezultate geometrice esențiale pentru dezvoltarea
aplicațiilor grafice, precum și câțiva algoritmi de bază în grafica pe calculator. Cea de-a doua
componentă are o natură aplicativă și include o introducere în utilizarea OpenGL și dezvoltarea
unor aplicații interactive de grafică pe calculator. Proiectele de laborator, concretizate prin
proiecte, vor reprezenta componenta principală a verificării de la sfârșitul semestrului.
PROGRAMA:
1. Primitive grafice. Atribute ale primitivelor grafice.
2. Transformări geometrice. Modelarea deplasării unui obiect.
3. Proiecții paralele și proiecții centrale.
4. Reprezentarea imaginilor 2D.
5. Elemente de grafică 3D.
6. Modele de iluminare. Efecte vizuale (netezirea contururilor, ceață, umbre).
7. Aplicații grafice interactive. Animații pe calculator.
8. Texturarea suprafețelor.
9. Utilizarea unităților programabile (shaders).
BIBLIOGRAFIE:
[1] G. Albeanu, Grafica pe calculator. Algoritmi fundamentali, Editura Universitatii din
Bucuresti, 2001.
[2] R. Baciu, Programarea aplicatiilor grafice 3D cu OpenGL, Editura Albastra, 2005.
[3] W. Boehm, H. Prautzsch: Geometric Concepts for Geometric Design, AK Peters, Wellesley,
1994.
[4] J. Hughes, A. van Dam, M. McGuire, D. Sklar, J. Foley, S. Feiner, K. Akeley, Computer
Graphics: Principles and Practice (3rd edition), Addison Wesley, 2013.
[5] D. Hearn, M. Baker, W. Carithers, Computer Graphics with OpenGL (4th edition), Prentice
Hall, 2010.
[6] P. Shirley, M. Ashikhmin, M. Gleicher, S. Marschner, E. Reinhard, K. Sung, W. Thompson,
P. Willemsen, Fundamentals of Computer Graphics (3rd edition), AK Peters, Wellesley,
2009.
[7] D. Shreiner, G. Sellers, J. Kessenich, B. Licea-Kane, OpenGL Programming Guide, Eighth
Edition, Addison-Wesley, 2013.
FIȘA UNITĂȚII DE CURS
TITLU: CONCEPTE ȘI APLICAȚII ÎN VEDERE ARTIFICIALĂ
DOMENIUL DE LICENȚĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR. ORE / SĂPTĂMÂNĂ: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Dr. Bogdan Alexe (profesor asociat FMI), Lect. Dr. Radu Ionescu
OBIECTIVE:
Oamenii interpretează fără efort ceea ce văd. Scopul Vederii Artificiale este de a înzestra
un sistem computerizat cu caracteristici asemanatoare, care "vede" și "înțelege" ceea ce se
intâmplă în imagini. Pentru realizarea acestui deziderat este nevoie de algoritmi eficienți care să
extragă informații din pixeli pentru interpretarea imaginilor.
Cursul are ca obiectiv atât studierea conceptelor de bază cât și prezentarea unor tehnici de
actualitate din domeniul Vederii Artificiale. În ultimii ani, tehnicile și metodele folosite în
vederea artificială și-au dovedit aplicabilitatea din ce în ce mai răspândită pentru rezolvarea unor
probleme importante cum ar fi recunoașterea facială, detectarea și recunoașterea obiectelor în
imagini, detectarea și urmărirea obiectelor în video, recunoașterea caracterelor, recunoașterea
semnelor de circulație, căutarea imaginilor după conținut și multe altele. Din acest motiv, cursul
va pune un foarte mare accent pe partea de aplicabilitate a tehnicilor prezentate. Mai precis,
fiecare curs va conține exemple practice și aplicații. În cadrul laboratorului se va folosi limbajul
de programare Matlab. Vor fi prezentate funcțiile din librăria Image Processing Toolbox, dar se
vor folosi și funcții implementate în librării open source, cum ar fi VLFeat sau Deep Learning
Toolbox. La finalul cursului, studenții vor putea înțelege și aplica tehnicile de ultimă oră din
domeniu pentru rezolvarea unor probleme interesante precum segmentare background-
foreground, detectare facială, supraveghere video, etc.
Dat fiind caracterul aplicativ al cursului, studenții vor fi evaluați pe baza unui proiect
(50%) și a activității din cadrul laboratorului (50%). Temele de proiect vor fi prezentate în
primul curs. În funcție de complexitatea temei abordate, proiectele pot fi abordate individual sau
în echipe de până la 3 membri. Activitatea de laborator constă în rezolvarea exercițiilor ce
însoțesc aplicațiile predate la curs.
PROGRAMĂ:
1. Introducere în vederea artificială. Concepte de bază.
2. Filtre pentru imagini. Muchii și gradienti. Textură și culoare.
3. Segmentare și grupare: k-means, mean-shift, etc.
4. Puncte de interes. Trăsături locale pentru imagini. Descriptorii SIFT și HOG.
5. Metode de învățare. Concepte de bază. Modelul Nearest Neighbors.
6. Metode kernel. Funcții de similaritate și clasificatori liniari: SVM, KRR, KDA.
7. Modele de învățare deep. Rețele neuronale convoluționale. Metode pentru recunoașterea
caracterelor.
8. Recunoașterea obiectelor folosind modelul bag of visual words.
9. Detectarea facială folosind metoda ferestrei glisante.
10. Recunoașterea expresiilor faciale folosind modelul bag of visual words și învățarea locală.
11. Recunoașterea obiectelor folosind rețele convoluționale.
12. Urmărirea traiectoriilor obiectelor în filme video: filtrul de particule. Aplicație: urmărirea
oamenilor în filme video.
BIBLIOGRAFIE:
[1] R. Szeliski. Computer Vision: Algorithms and Applications. Springer, 2010.
[2] J. Shawe-Taylor, N. Cristianini. Kernel Methods for Pattern Analysis. Cambridge
University Press, 2004.
[3] Simon Prince: Computer Vision: Models, Learning and Inference, Cambridge University
Press, 2012. Draft disponibil online.
[4] David Forsyth, Jean Ponce: Computer Vision: A modern approach (second edition),
Prentice Hall, 2011.
[5] R.T. Ionescu. Machine Learning in Computer Vision and String Processing. PhD. Thesis,
University of Bucharest, 2013.
[6] R.T. Ionescu, M. Popescu. PQ kernel: A rank correlation kernel for visual word histograms.
Pattern Recognition Letters, 55(1):51–57, 2015.
[7] R.T. Ionescu, M. Popescu, C. Grozea. Local Learning to Improve Bag of Visual Words
Model for Facial Expression Recognition. Workshop on Challenges in Representation
Learning, ICML, 2013.
[8] L.P. Dinu, R.T. Ionescu, M. Popescu. Local Patch Dissimilarity for Images. In Proceedings
of ICONIP, 7663:117–126, 2012.
[9] http://www.vlfeat.org
[10] http://fr.mathworks.com/matlabcentral/fileexchange/38310-deep-learning-toolbox
FIȘA UNITĂȚII DE CURS
TITLU: PROGRAMARE WEB UTILIZÂND LIMBAJUL JAVA – SERVLEȚI
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Seminar = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Conf. dr. Andrei Baranga
PROGRAMA:
I. Preliminarii
I.1 Despre arhitectura client-server:
I.2 Aplicatii de tip web:
I.3 Dezvoltarea de aplicatii WEB pe WINDOWS utilizând server-ul Tomcat.
I.4 Exemplu de realizare si execuţie a celui mai simplu servlet
II. Servleţi.
II.1 Elemente de bază
II.2 Servleţi şi package-uri.
II.3 Alte detalii despre servleţi
II.4 Parametrii de iniţializare
II.5 Proiectarea unui client de Web
II.6 Parametrii unui servlet
II.7 Invocarea servletilor din HTML
II.8 Caractere speciale in textul HTML
II.9 Utilizarea headerelor cererii trimise de către client
II.10 Transmiterea răpunsului în formă compactată
II.11 Protejarea paginilor cu ajutorul parolelor
II.12 Variabile CGI (Common Gateway Interface)
II.13 Codul de răspuns al servletului
II.14 Headerele răspunsului
II.15 Utilizarea conexiunilor persistente
II.16 Obiectele din clasa Cookie
II.17 Gestionarea sesiunilor
BIBLIOGRAFIE:
[1] Athanasiu, Irina; Costinescu, Bogdan; Drăgo, Octavian Andrei; Popovici, Florentina Irina;
Gaburici, Vasile, Limbajul Java - O Perspectivă pragmatică Agora, 2000
[2] Baranga A.,Programare Web Utilizand JAVA, Editura Albastra, Cluj-Napoca, 2007
[3] Hall, Marty, Core Servlets and JavaServer Pages (JSP), Prentice Hall PTR, 2000
FIȘA UNITĂȚII DE CURS
TITLU: PROIECTAREA SI IMPLEMENTAREA UNEI PLATFORME WEB SCALABILE
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Seminar = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
INSTRUCTORI: Specialisti din cadrul eMAG
OBIECTIVE:
Cursul își propune să ofere studenților o introducere în technologiile moderne care oferă
posibilitatea de a dezvolta aplicaţii web modulare și scalabile.
În cadrul cursului vor fi prezentate principalele tehnologii și metode de implementare a
aplicaţiilor web capabile să proceseze un număr foarte mare de cereri şi de asemenea să se
adapteze unor nevoi de procesare variabile. Principalele framework-uri ce facilitează
implementarea acestui tip de aplicaţii vor fi prezentate împreună cu exemple practice şi cu
detalierea modului de funcţionare al acestora precum şi al avantajelor tehnice oferite.
La finalul cursului, studenții vor putea construi o aplicaţie folosind aceste tehnologii,
aplicaţie având capacitatea de a integra noi servicii sau de a elimina servicii existente, într-un
mod transparent, fără a afecta funcţionalitatea de bază a aplicaţiei.
PROGRAMĂ:
1. Introducerea noţiunii de scalabilitate. Importanţa caracteristicii de scalabilitate.
2. Introducerea conceptului de microservicii.
3. Structura unei aplicaţii construită pe microservicii.
4. Introducerea conceptului de modularitate.
5. Structura unei aplicatii modulare și scalabile.
6. Conceptul de scalare orizontală – introducere în Hazelcast.
7. Conceptul de bază de date în memorie (cache cheie – valoare) – introducere în Redis.
8. Conceptul de bază de date distribuită – introducere în Riak.
9. Conceptul de distribuţie a sarcinilor de procesare – introducere în Gearman.
10. Dezvoltarea unei platforme web scalabile de e-commerce – aplicație practică.
BILBIOGRAFIE:
[1] http://hazelcast.org/
[2] http://redis.io/
[3] http://basho.com/riak/
[4] http://gearman.org/
NOTĂ: Numărul maxim de studenți participanți este de 30. Studenții care optează pentru acest
curs vor fi supuși unei proceduri suplimentare de selecție.
FIȘA UNITĂȚII DE CURS
TITLU: UNDERGRADUATE RESEARCH OPPORTUNITIES
DOMENIUL DE LICENŢĂ: INFORMATICĂ
SPECIALIZAREA: INFORMATICĂ
STATUTUL: OPȚIONAL
NR.ORE/SĂPTĂMÂNĂ: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 5 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5
COORDONATOR CURS: Prof.Dr. Gheorghe Stefanescu;
INSTRUCTORI POTENTIALI: Cadrele didactice de la Departamentul de Informatica
care propun teme de cercetare (studentii interesati vor primi un link la care pot gasi lista
cu temele de cercetare propuse pentru anul curent; cele de anul trecut se găsesc aici:
https://dl.dropboxusercontent.com/u/24589701/UROP-CS-UB_teme-2014.pdf)
OBIECTIVE:
Acest curs ofera studentilor de la licenta posibilitatea de a se implica in probleme de
cercetare actuale, interesante sub directa indrumare a unor profesori care sunt cercetatori activi si
cu experienta in cercetare. Profesori de la alte universitati din tara ori strainatate, ori cercetatori
din institute de cercetare, pot fi cooptati in cadrul acestui curs in calitate de co-supervizori. In
masura posibilitatilor existente, temele de cercetare pot fi parte a unor proiecte de cercetare aflate
in derulare.
PROGRAMA:
In primele 2 spatamani (1-15 Oct, intensiv, 28 ore), studentii vor audia prezentarile de
domenii si teme de cercetare oferite. Studentii care la sfarsitul celor 2 saptamani nu vor gasi o
tema si un supervizor potrivit vor fi redistribuiti la unul din celelalte cursuri optionale existente.
In cursul semestrului studentul studiaza literatura de specialitate si va prezenta o expunere de
circa 1 ora in cadrul unor intalniri saptamanale consacrate acestei activitati. Activitatea de baza
este cercetarea si se va finaliza cu un Raport de Cercetare care va fi prezentat la sfarsitul
semestrului.
In evaluarea studentilor, 20% din nota este pe baza activitatii din timpul anului si este
bazata pe studiul literaturii de specialitate si a prezentarii facute. Restul de 80% din nota este pe
baza Raportului de Cercetare care va fi predat la sfarsitul semestrului. O pondere de 20% din
nota o constituie evaluarea rezultatelor noi ori a elementelor de originaliate prezente in Raport.
Raportul va fi evaluat de o comisie formata 3 persoane (Presedinte, Supervizor si un Raportor
independent), numita separat pentru fiecare student.
O activitate suplimentara, care va veni in sprijinul formarii unor deprinderi sanatoase de
cercetare la studentii participanti, este organizarea de activitati legate de: (a) indrumare privind
modul de redactare a unei lucrari (Latex, formatare, stilistica, etc.); (b) expuneri legate de etica
cercetarii; (c) deprinderi de participare la viata stiintifica a comunitatii; (d) colaborarea cu colegii
ori cu studentii mai mici ori mai mari pe teme de cercetare comune; etc.
NOTĂ: Numărul maxim de studenți participanți este de 20 (fiecare cadru didactic participant
putand superviza cel mult 3 studenti).
CURSURI OPŢIONALE DE
INFORMATICĂ
PROPUSE
PENTRU ANUL
UNIVERSITAR 2015-2016
SEM. II
DOMENIUL DE LICENŢĂ:
INFORMATICĂ /
MATEMATICĂ
SPECIALIZĂRILE:
INFORMATICĂ /
MATEMATICĂ-INFORMATICĂ
Lista cursurilor optionale – sem. II
6.1 Algoritmi genetici. Aplicaţii în bioinformatică şi web mining
6.2 Aplicații mobile pentru iOS
6.3 Data warehouse
6.4 Inițiere în cercetare și bioinformatică
6.5 Introducere în lingvistică matematică și computațională
6.6 JavaScript ca limbaj pentru servere. Detalii despre NodeJS
6.7 Paradigme de programare în Cloud Computing
6.8 Programare Web utilizând limbajul Java-JSP
6.9 Tehnici de programare a aplicațiilor grafice
6.10 Testarea sistemelor software
Fiecare student face 5 opțiuni,
în ordinea preferințelor
FIȘA UNITĂȚII DE CURS
TITLU: ALGORITMI GENETICI. APLICAȚII ÎN BIOINFORMATICĂ ȘI WEB MINING
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Prof. dr. Denis Enachescu, Asist. dr. Bianca Mogos
OBIECTIVE:
Algoritmii genetici reprezintă tehnici de căutare şi optimizare euristică având ca sursă de
inspiraţie o ramură a biologiei – genetica.
Cursul prezintă principiile algoritmilor genetici şi modalităţi de aplicare a acestora pentru
rezolvarea unor probleme de învăţare supervizată şi nesupervizată. De asemenea, cursul
recomandă studiul unor aplicaţii din domeniile bioinformatică şi web mining.
Cursul îşi propune să completeze cunoştinţele necesare urmării ulterioare, de către
studenţi, a unor programe de Masterat/Doctorat în domeniul Inteligenţei Artificiale şi al
Bioinformaticii.
La laborator se poate lucra în Java/C/C++/Matlab (la alegerea studentului), punând
accent pe aplicarea algoritmilor genetici (implementaţi de către studenţi) pentru rezolvarea unor
probleme particulare.
PROGRAMĂ:
1. Algoritmi genetici – metodologie generală
2. Analiza convergenţei algoritmilor genetici
3. Clasificare supervizată folosind algoritmi genetici
4. Clasificare nesupervizată folosind algoritmi genetici
5. Generalizări ale algoritmilor genetici
6. Optimizare multiobiectiv folosind algoritmi genetici
7. Aplicaţii ale algoritmilor genetici în bioinformatică
8. Aplicaţii ale algoritmilor genetici în web mining
BIBLIOGRAFIE:
[1] Bandyopadhyay, S. and Pal, S.K. (2007), Classification and Learning using Genetic
Algorithms, Springer
[2] Mitchell, M. (1996), An Introduction to Genetic Algorithms, MIT Press
[3] Haupt, R.L. and Haupt, S.E. (2004), Practical Genetic Algorithms, Second edition, John
Wiley & Son
[4] Marczyk, A. (2004), Genetic Algorithms and Evolutionary Computation, online:
http://www.talkorigins.org/faqs/genalg/genalg.html
[5] Pohlheim, H. (2005), Evolutionary Algorithms: Overview, Methods and Operators,
Documentation for GEATbx version 3.7 (Genetic and Evolutionary Algorithm Toolbox for
use with Matlab)
[6] Genetic Algorithms, online: http://www.obitko.com/tutorials/genetic-algorithms/index.php
[7] Genetic Algorithms Tutorials, online: http://geneticalgorithms.ai-depot.com/Tutorials.html
FIȘA UNITĂȚII DE CURS
TITLU: APLICAȚII MOBILE PENTRU IOS
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Specialiști din cadrul Cronian Academy
OBIECTIVE:
Cursul prezintă principiile de bază ale dezvoltării aplicațiilor mobile utilizând limbajul de
programare Objective-C în sistemul de operare iOS. În cadrul cursului vor fi prezentate atât
particularitățile limbajului Objective-C, cât și cele mai bune practici de dezvoltare de aplicații
mobile. În cadrul laboratorului va fi prezentat mediul de dezvoltare Xcode.
PROGRAMĂ:
1. Dezvoltarea de aplicații mobile în general: diferența între dezvoltarea de aplicații Desktop și
aplicații mobile, limitările și capacitățile dispozitivelor mobile, generalități despre mediile de
dezvoltare de aplicații mobile (Android, Windows 8, iOS).
2. Introducere în Objective-C: tehnologia iOS, conceptul de design MVC, mecanismele de bază
ale limbajului Objective-C, introspecția, framework-ul Foundation, protocoale.
3. View: obiectul UIView, subclase custom ale lui UIView, metode de desenare, suport pentru
auto-rotație, tehnici de recunoaștere a gesturilor.
4. Controller: ciclul de viață al unui UIViewController, controller-e de navigație în aplicație
(UINavigationController și UITabBarController), tranziții între controller-e.
5. Controale UI standard (framework-ul UIKit): UITableView, UIImageView, UIScrollView,
UIWebView, etc.
6. Folosirea capacităților telefonului: serviciul de localizare GPS, accelerometrul, busola,
integrarea harților, etc.
7. Persistența datelor: liste de proprietăți, arhivarea obiectelor, SQLite, CoreData, etc.
8. Topici avansate: transmiterea de notifcări între obiecte, categorii, blocuri, măsurarea
performanței aplicației.
BIBLIOGRAFIE:
[1] Documentația Apple: https://developer.apple.com/library/ios/navigation/
[2] Erik Buck, Donald Yacktman. Cocoa Design Patterns. Addison-Wesley, 2009.
[3] Stephen Kochan. Programming in Objective-C. Sams Publishing, 2004.
[4] Matt Neuburg. Programming iOS 4. O’Reilly Media Inc., 2011.
[5] Scott Stevenson. Cocoa and Objective-C: Up and Running. O’Reilly Media Inc., 2010.
FIȘA UNITĂȚII DE CURS
TITLU: DATA WAREHOUSE
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Lect. dr. Gabriela Mihai
OBIECTIVE:
- Familiarizarea cu cele mai noi concepte de stocare a datelor istorice prin integrarea acestora
într-o singură structură care constituie baza pentru aplicațiile de Business Intelligence.
- Însuşirea tehnicilor de modelare, proiectare şi optimizare specifice tehnologiei Data
Warehouse.
- Exploatarea acestor tipuri de baze de date cu scopul de a obţine informaţii necesare în
procesul de luare a deciziilor la nivel managerial.
PROGRAMA:
1. Modelarea şi implementarea unei baze de date de tip Data Warehouse (Componente
arhitecturale în Data Warehouse. Data Mart-uri. Modelarea dimensională. Fapte şi
dimensiuni. Schema stea. Schema fulg. Extragerea, transformarea, transportul şi încărcarea
datelor în Data Warehouse).
2. Tehnici de optimizare în Data Warehouse (Constrângeri de integritate pentru modele
dimensionale. Indecşi specifici modelului dimensional. Obiecte de tip dimensiune.
Dependenţe prin ierarhii. Partiţionare şi paralelism în Data Warehouse. Rescrierea cererilor
utilizând vizualizări materializate).
3. Data Warehouse – componentă esențială a oricărei strategii de Business Intelligence.
4. Interogarea eficientă şi analiza datelor în scopuri decizionale (Definirea ferestrelor pentru
agregări. Funcţii de clasare. Funcţii pentru analiză).
BIBLIOGRAFIE:
[1] Inmon W., Bulding the Data Warehouse, J.Wiley, 2005
[2] Kimball R., Ross M., Thornthwaite W., Mundy J., Becker B., The Data Warehouse Lifecycle
Toolkit: Practical Techniques for Building Data Warehouse and Business Intelligence
Systems, J.Wiley, 2007
[3] *** - Oracle11g Database Data Warehousing Guide, Oracle Corporation, 2010
FIȘA UNITĂȚII DE CURS
TITLU: INIȚIERE ÎN CERCETARE ȘI BIOINFORMATICĂ
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Prof. dr. Andrei Păun
OBIECTIVE:
Cursul se adreseaza studentilor interesati in cercetare in bioinformatica. Studentii vor fi
expusi atat la elemente de baza din bioinformatica cat si la si rezultate recente din bioinformatica
si biologia sistemelor. Studentii vor dobandi la acest curs si experienta in cercetare: cum se
citeste o lucrare, structurarea lucrarilor stiintifice, cum se scrie o lucrare stiintifica, modelul de
recenzie al lucrarilor stiintifice: peer-review, clasificarea revistelor si a conferintelor.
PROGRAMĂ:
1. Notiuni elementare de biologie celulara, genetica si biochimie.
2. Experimentul lui Adleman pentru rezolvarea unei probleme NP completa folosind ADN si
unelte biochimice.
3. Experimentul lui Lipton pentru rezolvarea SAT, alte rezultate din calculabilitatea bazata pe
ADN.
4. Autoasamblare: experimentele lui Eric Winfree, Ned Seeman, Paul Rothemund, etc.
5. Alinierea secventelor (sequence alignment): Algoritmii optimali de aliniere pentru secvente
ADN sau proteine, pentru aliniere globala sau locala: Smith-Waterman, Needlman- Wunsch.
Algoritmii heuristici pentru alinieri: Blast si variante, Fasta, PatternHunter, PatternHunter2.
6. Biologie evolutionara: Aliniere afina, matrici de substituire: BLOSUM50, BLOSUM62,
PAM150, aliniere multipla.
7. Modele abstracte de calculabilitate bazata pe ADN si celule: Sisteme H, Sisteme P.
8. Introducere in cercetare: revista, articol, peer-review, referinte, cuvinte cheie, factor de
impact pentru revista, LaTeX, ordinea autorilor, structurarea articolelor, elemente
introductive despre redactarea tehnica.
BILBIOGRAFIE:
[1] Leonard M. Adleman, Molecular computation of solutions to combinatorial problems,
Science, Vol. 266, Iss. 5187, 1994, pp. 1021-1024.
[2] Richard J. Lipton, DNA Solution of Hard Computational Problems, Science, Vol. 268, Iss.
5210, 1995, pp. 542-545.
[3] Erik Winfree, Furong Liu, Lisa A. Wenzler, Nadrian C. Seeman, Design and self-assembly
of two-dimensional DNA crystals, Nature, Vol. 394, 1998, pp. 539-544
[4] Paul W. K. Rothemund, Folding DNA to create nanoscale shapes and patterns, Nature, Vol.
440, 2006, pp. 297-302
[5] Arthur M. Lesk, Introduction to Bioinformatics, Oxford University Press, 2002, 290 pp.,
ISBN: 0199251967.
[6] Neil C. Jones, Pavel A. Pevzner, An Introduction to Bioinformatics Algorithms
(Computational Molecular Biology), The MIT Press, 2004, 456 pp., ISBN: 0262101068.
[7] Gheorghe Paun, Grzegorz Rozenberg, Arto Salomaa, The Oxford Handbook of Membrane
Computing, Oxford University Press, 2010, 696 pp., ISBN: 0199556679.
[8] Temple F Smith, Michael S Waterman, Comparison of biosequences, Advances in Applied
Mathematics, Vol 2, Iss. 4, 1981, pp. 482-489.
[9] Saul B. Needleman, Christian D. Wunsch, A general method applicable to the search for
similarities in the amino acid sequence of two proteins, Journal of Molecular Biology, Vol.
48, Iss. 3, 1970, pp. 443-453.
[10] Steven Henikoff, Jorja G. Henikoff, Amino acid substitution matrices from protein blocks,
PNAS, Vol. 89, 1992, pp. 10915-10919.
[11] Stephen F. Altschul, Warren Gish, Webb Miller, Eugene W. Myers, David J. Lipman,
Basic local alignment search tool, Journal of Molecular Biology, Vol. 215, Iss. 3, 1990, pp.
403-410.
[12] Bin Ma, John Tromp, Ming Li, PatternHunter: faster and more sensitive homology search,
Bioinformatics, Vol. 18, Iss. 3, 2002, pp. 440-445.
FIȘA UNITĂȚII DE CURS
TITLU: INTRODUCERE ÎN LINGVISTICA MATEMATICĂ ȘI COMPUTAȚIONALĂ
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INCTRUCTOR: Conf. dr. Liviu Dinu
OBIECTIVE:
Cursul isi propune sa ofere studentilor o perspectiva moderna si la zi asupra domeniului.
Fiecare tema abordata va fi insotita de aplicatii concrete care vor viza diverse aspecte ale
limbajului natural, cu o atentie speciala acordata limbii romane. Vor fi abordate aspecte
computationale, cantitative si formale ale limbajului natural, facand distinctia clara intre analiza
textelor si cea a limbilor naturale in general.
PROGRAMA:
1. Lectie de deschidere: probleme curente (practice, teoretice si de cercetare) in lingvistica
matematica si computationala si in procesarea limbajului natural.
2. Aspecte cantitative ale limbajului natural. (Legi de tip minim efort, principiul lui Menzerath,
legea lui Zipf, Legea lui Fenk, Altmann, comportari probabilistice si statistice ale limbajului
natural, etc).
3. Cum comparam limbile naturale? Analiza computationala a similaritatii, inteligibilitatii,
lizibilitatii (readability) limbilor naturale. Aplicatii pe limba romana.
4. Abordari si rezolvari computationale eficiente ale unor probleme lingvistice grele: predictia
accentului in limba romana, silabificarea cuvintelor din limba romana, conjugarea verbelor
(analiza alternantelor), analiza predictiei pluralului substantivelor din romana (analiza
neutrului). (In general aceste probleme au fost declarate intratabile de catre lingvisti; in
aceasta sectiune vom prezenta rezolvari cu acuratete cuprinsa intre 96%-99.7%).
5. Poate fi recunoscut autorul unor texte cu autor controversat? Analiza computationala a
amprentei stilistice. Aplicatii in detectarea pastiselor, a fraudelor electronice, detectarea
comentariilor false.
6. Categorizare si clasificare automata de texte in functie de topic.
7. Analiza de corpus. Detectarea de colocatii, detectare automata si analiza ortografica a
cuvintelor inrudite (cuvinte mostenite, perechi cognates). Aplicatii in simplificarea textelor.
8. Detectarea automata din texte a opiniilor, analiza computationala a polaritatii sentimentelor,
deception detection. Aplicatii in predictia optiunii politice din analiza discursurilor.
BIBLIOGRAFIE:
[1] G. Altmann (ed). Handbook of Quantitative Linguistics, 2003
[2] R. Dale (ed) The Handbook of Natural Language Processing, Marcel Dekker, New York,
2000.
[3] Liviu P. Dinu. Metode Formale si de Clasificare in Lingvistica Matematica si
Computationala. Ed. Universitatii Bucuresti, 2004.
[4] Liviu P. Dinu. Rank distance and applications. Ed. Universitatii Bucuresti, 2011
[5] Alina Maria Ciobanu, Liviu P. Dinu, 2014. An Etymological Approach to CrossLanguage
Orthographic Similarity. Application on Romanian. In Proc. EMNLP 2014, p 1047–1058.
[6] Manning, C., H. Schutze. Foundations of statistical natural language processing, MIT Press,
1999
[7] Mosteller, Frederick and David L. Wallace. Inference and Disputed Authorship. Distributed
for the Center for the Study of Language and Information. 320 p. 6 x 9 Series: (CSLI-DHS)
Center for the Study of Language and Information - The David Hume Series, 2007
[8] Arhivele revistelor: Computational Linguistics, Literary and Linguistic Computing,
Quantitative Linguistics
[9] Volumele conferintelor LREC si ale celor patronate de ACL (ACL, EACL, NAACL,
COLING, CICLING, RANLP). Disponibile on-line la http://aclweb.org/anthology-new/
FIȘA UNITĂȚII DE CURS
TITLU: JAVASCRIPT CA LIMBAJ PENTRU SERVERE. DETALII DESPRE NODEJS
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Specialiști din cadrul Arnia Software
OBIECTIVE:
Cursul își propune să ofere studenților o introducere în mediul de dezvoltare JavaScript
pentru server-side cu o aprofundare mai detaliată a platformei NodeJS apărută nou în aceasta
direcţie.
În cadrul cursului va fi introdus, în primă fază, limbajul JavaScript, concepte de bază şi
concept avansate necesare dezvoltării de aplicaţii web atât client-side cât şi server-side. A doua
parte a cursului se va concetra pe aprofundarea platformei NodeJS urmând ca la final, accentual
să fie pus pe un framework cum ar fi ExpressJS.
La finalul cursului, studenții vor avea abilităţile necesare pentru a putea proiecta şi
dezvolta o aplicaţie full-stack JavaScript.
PROGRAMĂ:
1. JavaScript ca limbaj de programare: fundamente, concepte, pattern-uri
2. Arhitectura aplicaţiilor web: concepte, n-tier, DDD (Domain Driven Design) etc.
3. Concepte de bază NodeJS
4. Concepte avansate NodeJS
5. Introducere ExpertJS
BILBIOGRAFIE:
[1] Documentatia online: https://nodejs.org/api/
[2] Documentatia online: https://github.com/vndmtrx/awesome-nodejs
NOTĂ: Numărul maxim de studenți participanţi este de 30.
FISA UNITATII DE CURS
TITLU: PARADIGME DE PROGRAMARE ÎN CLOUD COMPUTING
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Conf. dr. Cristian Kevorchian (profesor asociat FMI)
OBIECTIVE:
Cloud computing este o modalitate inovatoare de programare și utilizare a
calculatoarelor. Se deschid importante oportunități tehnologice pentru dezvoltatorii de produse
software în sensul că sunt disponibilizate platforme complexe destinate dezvoltării de noi tipuri
de aplicații. Contextul tehnologic generat de cloud computing va aduce în perioada următoare
schimbari majore în livrarea soluțiilor IT în sensul livrarii acestora ca servicii(IT-as-a-Service).
Este important pentru absolvenții noștri de a înțelege această transformare a IT-ului care se
bazează pe trei tendințe importante: mobilitate, cloud computing și big data. . Categoriile de
aplicații care operează în cloud și care fac obiectul cursului nostru, aliniate fiind tendințelor
menționate anterior sunt:
1. Aplicațiile colaborative
2. Serviciile
3. Procesele de calcul distribuit de dimensiuni mari.
În programa propusă ne-am orientat către HDInsight, care este un serviciu bazat pe
Hadoop și care se impune ca fiind 100 la sută Apache Hadoop în cloud. Platforma de date se
bazează pe cloud și permite gestiunea datelor de orice tip, fie structurate sau nestructurate,
precum și de orice dimensiune. HDInsight permite o exploatare la un nivel de complexitate
superior a datelor furnizate la nivel global.
HDInsight și limbajul funcțional F# împreună cu Hive, Pig și Mahout furnizează un
complex computational deschis operațional în cloud. Puterea de analiza a datelor oferită de
Hadoop pune la dispozitia dezvoltatorilor de solutii BI, instrumente extrem de puternice care sa
fie utilizate de viitorii data scientists, ale căror competențe trebuie să îmbine cunoștințe de
tehnologia informației, matematică și business.
PROGRAMA:
1. Interacțiunea dintre WCF si Azure Service Bus ca serviciu al AppFabric.
2. API-uri REST pentru lucrul cu servicii BLOB
3. Utilizarea serviciului BLOB Storage in C#.
4. Mutarea datelor in/din serviciile de baze de date din cloud cu JDBC and ODBC.
5. Incarcarea datelor în SQL Services din Hadoop prin intermediul YARN.
6. Hadoop și paradigma de programare MapReduce.
7. Implementarea paradigmei MapReduce cu F# .
8. Utilizarea serviciului HDInsight(Hadoop în Azure) și F# pentru serializarea/deserializarea
obiectelor. Utilizare Apache AVRO.
9. Lucrul cu partiții Hive. Sesiuni Hive în Azure Power Shell.
10. Utilizarea HDInsight si Apache Mahout în clustering(k-mean clustering, fuzzy k-mean și
spectral clustering - o masina/MapReduce).
11. Utilizare Apache Mahout în machine learning(Latent Dirichlet Allocation-o
masina/MapReduce)
12. Utilizarea HiveQL si HDInside pentru interogarea unor volume mari de date.
13. Utilizarea ”Pig latin”, ca limbaj de scripting si HDInsight în operații ETL si aplicatii in
business intelligence.
14. Utilizarea bibliotecilor matematice ”Cloud Numerics” în C# și F#.
15. Hadoop-Sharp interfață CLR pentru HADOOP.
BIBLIOGRAFIE:
[1] R. Buyya, J. Broberg, A. Goscinski CLOUD COMPUTING. Principles and Paradigms,
Wiley, Inc., Hoboken, New Jersey, 2011
[2] T.Velte, J. Velte, R. Elsenpeter CLOUD COMPUTING: A Practical Approach, MacGrow
Hill, 2010
[3] Mark C. Chu-Carroll Code in the Cloud - Programming Google AppEngine Raleigh, North
Carolina Dallas, Texas, 2011
[4] Sriram Krishnan Programming Windows Azure Programming O’Reilly Media, 2010
[5] Scott Densmore, Alex Homer,,Masashi Narumoto, John Sharp, Hanz Zhang Building
Hybrid Applications in the Cloud Microsoft Press, 2012
FIȘA UNITĂȚII DE CURS
TITLU: PROGRAMARE WEB UTILIZAND LIMBAJUL JAVA – JSP
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Conf. dr. Andrei Baranga
PROGRAMA:
I.Java Server Pages (JSP)
I.1 Generalităţi
I.2 Elemente de cod JAVA în JSP
I.3 Atribute şi metode ale unei clasa obţinută din JSP
I.4 Alte directiva JSP
I.5 Tratarea exceptiilor în paginile JSP
I.6 Includerea de fişiere în paginile JSP
I.7 Invocarea applet-urilor din JSP
I.8 Utilizarea claselor de tip Java Bean în JSP
I.9 Tag-uri
I.10 Clasa BodyTagSupport
II. Alte tehnici diverse folosite în programarea Web
II.1 Redirecţionarea cererilor către alte pagini
II.2 Folosirea formularelor HTML
II.3 Folosirea applet-urilor ca interfete pentru servleţi
III. Arhitectura three-tier
III.1 Accesarea bazelor de date utilizând JDBC
III.2 Principalii paşi în lucrul cu JDBC şi bazele de date
III.3 Câteva exemple de lucru cu JDBC şi bazele de date
III.4 Obiectele de tip PreparedStatement şi CallableStatement
III.5 Tehnica de conectare Connection Pool pentru aplicaţii Web
BIBLIOGRAFIE:
[1] Athanasiu, Irina; Costinescu, Bogdan; Drăgo, Octavian Andrei; Popovici, Florentina Irina;
Gaburici, Vasile, Limbajul Java - O Perspectivă pragmatică Agora, 2000
[2] Baranga A.,Programare Web Utilizand JAVA, Editura Albastra, Cluj-Napoca, 2007
[3] Hall, Marty, Core Servlets and JavaServer Pages (JSP), Prentice Hall PTR, 2000
FIȘA UNITĂȚII DE CURS
TITLU: TEHNICI DE PROGRAMARE A APLICATIILOR GRAFICE
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Lect. dr. Sorin Stupariu
OBIECTIVE:
Grafica pe calculator este omniprezenta, avand aplicatii in domenii variate, cum ar fi medicina,
ingineria asistata de calculator, dezvoltarea jocurilor, realizarea filmelor, etc. Pentru a obtine
efecte cat mai realiste, este utilizata o gama extrem de variata de tehnici si metode. Obiectivul
cursului este de a prezenta cateva tehnici fundamentale de programare grafica, atat la nivelul
graficii bidimensionale de tip raster, cat si la nivelul modelarii geometrice 3D. Expunerea
fundamentelor teoretice ale acestor metode de lucru este insotita de prezentarea si utilizarea unor
aplicatii software dedicate. Cursul va fi completat de un laborator, unde vor fi realizate proiecte
care sa ilustreze conceptele si rezultatele expuse si care vor reprezenta componenta principala a
verificarii semestriale.
PROGRAMA:
1. Procesarea imaginilor. Utilizarea unui editor de grafica rasteriala (GIMP - GNU Image
Manipulation Program).
2. Convolutie si aplicatii: efecte vizuale, detectarea contururilor, compresia imaginilor.
3. Modelare 3D in grafica – principii generale.
4. Retele poligonale (polygon meshes) si modelarea obiectelor in context 3D. Formate specifice.
Utilizarea unui mediu de modelare 3D (Blender) pentru scene si animatii tridimensionale.
5. Metodele Ray Casting si Ray Tracing.
6. Simularea unor modele fizice. Sisteme de particule in grafica pe calculator.
BIBLIOGRAFIE:
[1] J. Hughes, A. van Dam, M. McGuire, D. Sklar, J. Foley, S. Feiner, K. Akeley, Computer
Graphics: Principles and Practice (3rd edition), Addison Wesley, 2013.
[2] P. Schneider, D. Eberly, Geometric Tools for Computer Graphics, Morgan Kaufmann, 2003.
[3] P. Shirley, M. Ashikhmin, M. Gleicher, S. Marschner, E. Reinhard, K. Sung, W. Thompson,
P. Willemsen, Fundamentals of Computer Graphics (3rd edition), AK Peters, Wellesley,
2009.
[4] A. Watt, M. Watt, Advanced Animation and Rendering Techniques: Theory and Practice,
Addison-Wesley, 1992.
FIȘA UNITĂȚII DE CURS
TITLU: TESTARE SISTEMELOR SOFTWARE
DOMENIUL DE LICENŢĂ: INFORMATICĂ (MATEMATICĂ)
SPECIALIZAREA: INFORMATICĂ (MATEMATICĂ-INFORMATICĂ)
STATUTUL: OPȚIONAL
NR.ORE/SAPTAMANA: 3 (Curs = 2; Laborator = 1)
SEMESTRUL: 6 / anul III de studiu
FORMA DE EXAMINARE: VERIFICARE
CREDITE: 5 (3)
INSTRUCTORI: Prof. dr. Florentin Ipate
OBIECTIVE:
Cursul prezinta principalele tehnici si metode de testare a sistemelor software. Sunt
prezentate atat metodele ingineresti de larga utillizare practica, cat si metode teoretice si/sau care
fac obiectul cercetarilor recente.
PROGRAMA:
1. Testarea sistemelor software: probematica; testare vs verificare formala; tehnici de generare
de date de test; unit testing; JUnit.
2. Metode de testare functionala (black-box): partitionarea ın clase de echivalenta, analiza
valorilor de frontiera; metoda partitionarii in categorii, testarea folosind analiza cauza-efect.
3. Metode de testare structurala (white-box): acoperiri la nivel de instructiune, ramura,
conditie/decizie, conditii multiple, etc.; complexitatea ciclomatica (McCabe), generarea de
circuite liniar independente; strategii de generare de date de test la nivel de cale; utilitare de
code coverage.
4. Testarea bazata pe mutatie (mutation testing): weak mutation, strong mutation; operatori de
mutatie; utilizarea mutantilor pentru evaluarea seturilor de test; utilitarul MuJava.
5. Generarea datelor de test folosind metode de cautare metaeuristice: metode de cautare locale
si metode globale; folosirea metodelor metaeuristice in testarea structurala si testarea
functionala.
6. Metode de testare bazate pe formalisme cu stari: metodele W, Wp(W partial), UIO (unique
input/output), DS (distinguishing sequence) pentru masini cu stari finite; testare bazata pe
formalisme extinse cu stari (extended finite state machines).
7. Testare si analiza pe baza modelului: proprietati de safety si liveness, invarianti, stari
acceptoare, stari moarte; explorarea scenariilor folosind compunere de automate; tehnici de
reducere a modelului (pruning techniques); exemplificare folosind utilitarul NModel.
BIBLIOGRAFIE:
[1] MuJava home page: http://cs.gmu.edu/~offutt/mujava
[2] MuClipse home page http://muclipse.sourceforge.net/
[3] NModel home page http://nmodel.codeplex.com/
[4] M. Holcombe, F. Ipate: Correct Systems: building business process solutions, Springer
Verlag, 1998.
[5] F. Ipate: Testare functionala; Testare structurala; Mutation testing; Search based testing –
note de curs.
[6] J. Jacky, M. Veanes, C. Campbell, W. Schulte. Model-based Software Testing and
Analysis with C#. Cambridge University Press, 2008.
[7] R. Lefticaru, F. Ipate: Automatic State-Based Test Generation Using Genetic Algorithms.
SYNASC 2007, 188-195, 2007.
[8] A. Mathur: Foundations of Software Testing, Addison-Wesley Professional, 2007.
[9] P. McMinn. Search-based software test data generation: a survey. Softw. Test., Verif.
Reliab., 14(2):105–156, 2004.
[10] M. Roper: Software Testing, McGraw-Hill, 1994