Programarea Calculatoarelor (curs): Diferență între versiuni

De la WikiLabs
(Teme)
(Teme)
 
(Nu s-au afișat 15 versiuni intermediare efectuate de același utilizator)
Linia 1: Linia 1:
 +
 +
<div style="font-size: 24pt; color: red; font-weight: bold">Atenție: Platforma Moodle a devenit disponibilă. Toate informațiile relevante despre curs vor fi publicate pe <br><br>http://electronica.curs.pub.ro/2016/course/view.php?id=35</div>
 +
 
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.
 
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.
  
Linia 7: Linia 10:
 
== Repartizarea punctelor ==
 
== Repartizarea punctelor ==
 
Punctajul maxim este de 100 de puncte, corespunzător notei 10. Acest punctaj este repartizat în felul următor:
 
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;
+
* 20 de puncte - 4 teme de casă ce vor fi publicate în saptămânile 4, 6, 8 și 10;
* 40 de puncte - laborator;
+
* 50 de puncte - laborator;
** 20 de puncte - activitatea din timpul semestrului;
+
** 25 de puncte - activitatea din timpul semestrului;
** 20 de puncte - colocviu de laborator;
+
** 25 de puncte - colocviu de laborator;
* 20 de puncte - examen final;
+
* 30 de puncte - examen final;
 
* '''BONUS''' 10 puncte pentru activitate excepțională în timpul semestrului. Punctajul bonus este '''<font color="red">exclusiv</font>''' la latitudinea titularului de curs.
 
* '''BONUS''' 10 puncte pentru activitate excepțională în timpul semestrului. Punctajul bonus este '''<font color="red">exclusiv</font>''' la latitudinea titularului de curs.
  
Linia 17: Linia 20:
 
Condițiile minime de promovare sunt:
 
Condițiile minime de promovare sunt:
 
* cel mult trei absențe la laboratoare;  
 
* cel mult trei absențe la laboratoare;  
* minim 20 de puncte din punctajul de laborator;
+
* minim 25 de puncte din punctajul de laborator;
 
* minim 10 puncte la examenul final;
 
* minim 10 puncte la examenul final;
 
* minim 50 puncte în total.
 
* minim 50 puncte în total.
 +
 +
== Consultații ==
 +
Consultațiile sunt programate joia între orele 14 și 15 în A422.
  
 
= Curricula cursului =
 
= Curricula cursului =
  
# Informații administrative; Prezentare instrumente utilizate (Moodle, Web-CAT, Virtualbox); Utilizarea resurselor online - Stackoverflow; Q&A - [[Fișier:prezentare_1.pdf]]
+
# Informații administrative; Prezentare instrumente utilizate (Moodle, Web-CAT, Virtualbox); Prezentare Infineon - [[Fișier:prezentare_1.pdf]]
# [[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”]] - [[Fișier:pc_curs_1.pdf]]
+
# Ciclul de viață al unei aplicații (Software Development Life-Cycle - SDLC) - Arhitectură și Design; Noțiuni elementare despre Compilator, limbaj și medii de dezvoltare; Variabila - [[Fișier:pc_curs_1.pdf]]
# 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 - [[Fișier:pc_curs_2.pdf]]
+
# Tipuri de date - dimensiuni; Modificatori (short, long, signed, unsigned); Template-uri pentru citirea și scrierea datelor (printf & scanf); Operatori artimetici - [[Fișier:pc_curs_2.pdf]]
# 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; Variabila și contextul curent - [[Fișier:pc_curs_3.pdf]]
+
# 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; Operații pe biți - [[Fișier:pc_curs_3.pdf]]
 +
<!--
 
# Blocuri condiționale (if, switch); Blocuri repetitive (for, while, do-while); Cuvintele cheie '''break''' și '''continue'''
 
# 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
 
# Vectori uni și multi-dimensionali; Operații cu șiruri de caractere
Linia 37: Linia 44:
 
# Lucrul cu fișiere
 
# Lucrul cu fișiere
 
# Q&A pentru examen
 
# Q&A pentru examen
 +
-->
  
 
= Curricula laboratorului =
 
= Curricula laboratorului =
Linia 73: Linia 81:
 
= Teme =
 
= Teme =
  
 +
<!--
 
Punctaje teme: [https://docs.google.com/spreadsheets/d/1n1adj4V2m1HJgWK6n5U4sPFj_wUvQThsvt4q_QYh7Gs/edit#gid=0 aici]
 
Punctaje teme: [https://docs.google.com/spreadsheets/d/1n1adj4V2m1HJgWK6n5U4sPFj_wUvQThsvt4q_QYh7Gs/edit#gid=0 aici]
 
   
 
   
 
* [[PC Tema 1]] - Raport antiplagiat - expirat
 
* [[PC Tema 1]] - Raport antiplagiat - expirat
 
* [[PC Tema 2]] - Raport antiplagiat - expirat
 
* [[PC Tema 2]] - Raport antiplagiat - expirat
* [[PC Tema 3]] - [http://moss.stanford.edu/results/782974030/ Raport antiplagiat]
+
* [[PC Tema 3]] - Raport antiplagiat - expirat
* [[PC Tema 4]] - [http://moss.stanford.edu/results/270197354/ Raport antiplagiat]
+
* [[PC Tema 4]] - Raport antiplagiat - expirat
  
 
<div style="color: red; font-weight: bold;">Atenție: Temele vor fi verificate anti-plagiat cu soft-uri specializate. Orice temă copiată va fi penalizată (atât sursa cât și copia) cu 100% din punctaj, fără posibilitate de refacere.</div>
 
<div style="color: red; font-weight: bold;">Atenție: Temele vor fi verificate anti-plagiat cu soft-uri specializate. Orice temă copiată va fi penalizată (atât sursa cât și copia) cu 100% din punctaj, fără posibilitate de refacere.</div>
Linia 87: Linia 96:
 
# Intrați pe site-ul http://studenti.pub.ro
 
# Intrați pe site-ul http://studenti.pub.ro
 
# Găsiți datele de acces pentru site-ul de cursuri (Moodle)
 
# Găsiți datele de acces pentru site-ul de cursuri (Moodle)
# Odată găsite, folosiți user-ul și parola pentru a vă autentifica pe site-ul de cursuri: http://electronica.curs.pub.ro/2015/
+
# Odată găsite, folosiți user-ul și parola pentru a vă autentifica pe site-ul de cursuri: http://electronica.curs.pub.ro
# După autentificarea pe site-ul de cursuri, folosiți același user și parolă pentru a vă autentifica pe [http://homework.dcae.pub.ro:8888/Web-CAT/WebObjects/Web-CAT.woa WebCat]. <font color="red">Atenție</font> ca numele de utilizatori să nu conțină spații la început sau sfârșit.
+
# După autentificarea pe site-ul de cursuri, folosiți același user și parolă pentru a vă autentifica pe [http://homework.dcae.pub.ro WebCat]. <font color="red">Atenție</font> ca numele de utilizatori să nu conțină spații la început sau sfârșit.
# După autentificarea cu succes pe WebCat, completați-vă datele în tabelul următor: [https://docs.google.com/spreadsheets/d/1Z14KlEXQcwLGa9kvWXHWI0SR4fRjR6xSToYmNSHzDvk/edit?usp=sharing Înscriere utilizatori WebCat]
+
-->
  
 
= Rezultate =
 
= Rezultate =

Versiunea curentă din 3 decembrie 2016 13:40

Atenție: Platforma Moodle a devenit disponibilă. Toate informațiile relevante despre curs vor fi publicate pe

http://electronica.curs.pub.ro/2016/course/view.php?id=35

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:

  • 20 de puncte - 4 teme de casă ce vor fi publicate în saptămânile 4, 6, 8 și 10;
  • 50 de puncte - laborator;
    • 25 de puncte - activitatea din timpul semestrului;
    • 25 de puncte - colocviu de laborator;
  • 30 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 25 de puncte din punctajul de laborator;
  • minim 10 puncte la examenul final;
  • minim 50 puncte în total.

Consultații

Consultațiile sunt programate joia între orele 14 și 15 în A422.

Curricula cursului

  1. Informații administrative; Prezentare instrumente utilizate (Moodle, Web-CAT, Virtualbox); Prezentare Infineon - Fișier:Prezentare 1.pdf
  2. Ciclul de viață al unei aplicații (Software Development Life-Cycle - SDLC) - Arhitectură și Design; Noțiuni elementare despre Compilator, limbaj și medii de dezvoltare; Variabila - Fișier:Pc curs 1.pdf
  3. Tipuri de date - dimensiuni; Modificatori (short, long, signed, unsigned); Template-uri pentru citirea și scrierea datelor (printf & scanf); Operatori artimetici - Fișier:Pc curs 2.pdf
  4. 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; Operații pe biți - Fișier:Pc curs 3.pdf

Curricula laboratorului

  1. Folosirea liniei de comandă în Linux; Compilarea programului HelloWorld; Sisteme de build: Makefile
  2. Sisteme de revision control: Git & Gitlab
  3. Utilizarea preprocesorului; Utilizarea stream-urilor standard ale unui proces (stdin, stdout, stderr)
  4. Exerciții cu variabile cu semn și în virgulă mobilă și operatori pe biți; Tipuri de date și conversii - citirea de la tastatură și afișarea pe stream-urile standard
  5. Exerciții folosind construcții condiționale
  6. Exerciții folosind blocuri repetitive
  7. Exerciții cu vectori
  8. Exerciții cu șiruri de caractere: căutare, concatenare, inserție, citire, scriere.
  9. Exerciții cu funcții; Compilarea unui executabil din mai multe fișiere sursă; Utilizarea fișierelor header
  10. Exerciții cu funcții recursive; Tool-uri de depanare: GDB
  11. Exerciții cu structuri pentru agregarea datelor
  12. Exerciții cu pointeri și alocare dinamică de memorie; Instrumente de evaluare a pierderilor de memorie - valgrind
  13. Exerciții cu scriere și citire din fișiere
  14. Colocviu de laborator

Materiale de studiu

Câte două probleme pe zi, până la Crăciun, ajutați-l pe Moșu`: http://adventofcode.com/

Programele de la curs

Programele scrise în cadrul cursului sunt disponibile pe repository-ul public de Git: https://gitlab.com/rhobincu/ProgramareaCalculatoarelor.git

Puteți rula comanda

git clone https://gitlab.com/rhobincu/ProgramareaCalculatoarelor.git

Coding Style

Aici găsiți lista de reguli pentru scrierea de aplicații în limbajul C.

Teme

Rezultate