Diferență între revizuiri ale paginii „Programarea Calculatoarelor (curs)”
De la WikiLabs
Jump to navigationJump to searchLinia 16: | Linia 16: | ||
== Condiții de promovare == | == Condiții de promovare == | ||
Condițiile minime de promovare sunt: | Condițiile minime de promovare sunt: | ||
− | * cel mult | + | * cel mult trei absențe la laboratoare; |
* minim 20 de puncte din punctajul de laborator; | * minim 20 de puncte din punctajul de laborator; | ||
* minim 10 puncte la examenul final; | * minim 10 puncte la examenul final; |
Versiunea de la data 15 august 2015 12:30
Dedicat studenților de anul I, semestrul I, cursul de programare a calculatoarelor are ca scop introducerea în domeniul programării și a științei calculatoarelor, precum și a proceselor și a instrumentelor de dezvoltare software.
Structura cursului și metodologia de evaluare
Cursul este structurat în 14 prelegeri de câte două ore și 14 ședințe de laborator, de câte două ore. Prezența în laborator este obligatorie.
Repartizarea punctelor
Punctajul maxim este de 100 de puncte, corespunzător notei 10. Acest punctaj este repartizat în felul următor:
- 40 de puncte - 4 teme de casă ce vor fi publicate în saptămânile 4, 6, 8 și 10;
- 40 de puncte - laborator;
- 20 de puncte - activitatea din timpul semestrului;
- 20 de puncte - colocviu de laborator;
- 20 de puncte - examen final;
- BONUS 10 puncte pentru activitate excepțională în timpul semestrului. Punctajul bonus este exclusiv la latitudinea titularului de curs.
Condiții de promovare
Condițiile minime de promovare sunt:
- cel mult trei absențe la laboratoare;
- minim 20 de puncte din punctajul de laborator;
- minim 10 puncte la examenul final;
- minim 50 puncte în total.
Curricula cursului
- Informații administrative; Prezentare instrumente utilizate (Moodle, Web-CAT, Virtualbox); Utilizarea resurselor online - Stackoverflow; Q&A
- Ciclul de viață al unei aplicații (Software Development Life-Cycle - SDLC) - Arhitectură și Design; Caracteristicile limbajului C - diferențele față de C++; Standarde; Noțiuni elementare despre compilator, limbaj și medii de dezvoltare; GCC și compilarea programului ”HelloWorld”;
- Bazele de numerație binară și hexazecimală; Stocarea unui număr negativ - convenția complement față de 2; Stocarea unui număr în virgulă mobilă - Standardul IEEE 754; Stocarea caracterelor - coduri ASCII și Unicode; Variabila; Operații pe biți
- Tipuri de date - dimensiuni; Variabile globale și locale; Modificatori (short, long, const, signed, unsigned); Conversii (cast); Template-uri pentru citirea și scrierea datelor (printf & scanf); Operatori (artimetici, logici, relaționali, condiționali); Precedența operatorilor;
- Blocuri condiționale (if, switch); Blocuri repetitive (for, while, do-while); Cuvintele cheie break și continue
- Vectori uni și multi-dimensionali; Operații cu șiruri de caractere
- Funcții - definiție și apel; Funcții void; Cuvântul cheie return
- Funcții - exerciții și recursivitate
- Structura memoriei (stack, heap & text); Modelul execuției unui program; Variabile de tip pointer - adrese în memorie
- Pointeri și alocarea dinamică de memorie
- Aritmetica pointerilor și conversii de pointeri
- Structuri (struct, union, enum)
- Lucrul cu fișiere
- Q&A pentru examen
Curricula laboratorului
- Folosirea liniei de comandă în Linux; Sisteme de compilare: Makefile; Compilarea programului HelloWorld; Tool-uri de depanare: GDB
- Utilizarea preprocesorului; Generarea de fișiere obiect prin Makefile; Utilizarea stream-urilor standard ale unui proces (stdin, stdout, stderr); Sisteme de revision control: Git & Gitlab
- Exerciții cu variabile cu semn și în virgulă mobilă
- Exerciții cu tipuri de date și conversii - citirea de la tastatură și afișarea pe stream-urile standard
- Exerciții folosind construcții condiționale și blocuri repetitive
- Exerciții cu șiruri de caractere: căutare, concatenare, insertie, citire, scriere.
- Exerciții cu funcții; Compilarea unui executabil din mai multe fișiere sursă; Utilizarea fișierelor header
- Exerciții cu funcții recursive;
- Exerciții cu pointeri
- Exerciții cu pointeri și alocare dinamică de memorie
- Exerciții cu pointeri și alocare dinamică de memorie; Instrumente de evaluare a pierderilor de memorie - valgrind
- Definirea de structuri pentru agregarea datelor
- Exerciții cu scriere și citire din fișiere
- Colocviu de laborator