Differences

This shows you the differences between two versions of the page.

Link to this comparison view

uso-ac:teme:tema-1 [2016/10/26 12:37]
tiberiu.barbu created
uso-ac:teme:tema-1 [2017/10/21 17:14] (current)
tudor_cosmin.visan
Line 12: Line 12:
 În cazul în care doriți să publicați un screenshot, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum [[http://​imgur.com/​|imgur]] sau [[http://​www.makeuseof.com/​tag/​4-imgur-alternatives-for-uploading-sharing-images/​|alternativele]] sale, publicând pe forum doar link către screenshot. Dorim să păstrăm o parcurgere ușoară a forumului, din acest motiv, orice poză inserată în răspunsuri,​ __va fi ștearsă__. ​ În cazul în care doriți să publicați un screenshot, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum [[http://​imgur.com/​|imgur]] sau [[http://​www.makeuseof.com/​tag/​4-imgur-alternatives-for-uploading-sharing-images/​|alternativele]] sale, publicând pe forum doar link către screenshot. Dorim să păstrăm o parcurgere ușoară a forumului, din acest motiv, orice poză inserată în răspunsuri,​ __va fi ștearsă__. ​
  
-__Urmăriți__ atât forumul cât și modificările aduse enunțului/​checker-ului,​ modificări ce sunt publicate și explicate în paragrafele de mai jos.+Urmărițatât forumul cât și modificările aduse enunțului/​checker-ului,​ modificări ce sunt publicate și explicate în paragrafele de mai jos.
 </​note>​ </​note>​
  
 <note important>​ <note important>​
-Înainte și în timpul realizării temei, vă rugăm să parcurgeți [[uso-ac:​regulament#​realizarea_temelor|indicațiile legate de realizarea temelor]], încluzând ce înseamnă o temă copiată și cum penalizăm temele copiate. Folosiți cu încredere forumurile de pe [[http://acs.curs.pub.ro/​|acs.curs.pub.ro]] pentru întrebări și neclarități legate de teme.+Înainte și în timpul realizării temei, vă rugăm să parcurgeți [[uso:​regulament#​realizarea_temelor|indicațiile legate de realizarea temelor]], încluzând ce înseamnă o temă copiată și cum penalizăm temele copiate. Folosiți cu încredere forumurile de pe [[http://cs.curs.pub.ro/​|cs.curs.pub.ro]] pentru întrebări și neclarități legate de teme.
  
-În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, să țineți cont, va rugăm, de [[uso-ac:​regulament#​recomandari_de_comunicare_electronica|recomandările de comunicare electronică]].+În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de [[uso:​teme:​intrebari-frecvente|întrebări frecvente întâlnite în cadrul temelor]]. Să țineți cont, va rugăm, ​și de [[uso:​regulament#​recomandari_de_comunicare_electronica|recomandările de comunicare electronică]].
 </​note>​ </​note>​
  
Line 24: Line 24:
  
 <note important>​ <note important>​
-Deadline: **1 Noiembrie, ora 23:55**\\+Deadline: **27 Octombrie 2017, ora 23:55**\\
 Timp de lucru: **7 zile**\\ Timp de lucru: **7 zile**\\
-Punctaj: **0.puncte** din nota finală\\ +Punctaj: **0.puncte** din nota finală\\ 
-Formular pentru trimitere temă: https://​goo.gl/​UlkYBw\\+Formular pentru trimitere temă: https://​goo.gl/​oRrx2P\\
 </​note>​ </​note>​
  
-<​note>​ 
-Actualizări enunț:\\ 
- 
-  * **Nu există actualizări** 
-</​note>​ 
  
 <​note>​ <​note>​
Line 45: Line 40:
 <​note>​ <​note>​
 Actualizări checker:\\ Actualizări checker:\\
-Versiunea curentă: <color red>**versiunea ​1**</​color>​ +  ​* **Actualizat checker la versiunea ​** 
- +      ​Adaugat test pentru a verifica tipul arhivei.
-  * **Nu există actualizări**+
 </​note>​ </​note>​
- 
  
 <note tip> <note tip>
-Toți studenții care răspund la întrebările colegilor de pe forum vor fi recompensați cu până la 10 karma points în WoUSO pentru fiecare temă în funcție de gradul de implicare.  +Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă știți răspunsul la întrebările colegilor sunteți încurajați să le spundeți.
- +
-Vă încurajăm ca atunci când găsiți soluția la o problemă pe care ați postat-o anterior pe forum să postați și soluția găsită. De asemenea dacă stiți răspunsul la întrebările colegilor sunteți încurajați să răspunsurile.+
  
-Singurul lucru de care trebuie să aveți grijă este să nu puneți pe forum rezolvările taskurilor. Puteți să sugerați diferite abordări sau să dați idei celorlalți. Mai multe informații găsiți in [[uso-ac:​regulament#​recomandari_de_comunicare_electronica|Recomandările de comunicare electronică]].+Singurul lucru de care trebuie să aveți grijă este să nu puneți pe forum rezolvările taskurilor. Puteți să sugerați diferite abordări sau să dați idei celorlalți. Mai multe informații găsiți in [[uso:​regulament#​recomandari_de_comunicare_electronica|recomandările de comunicare electronică]].
 </​note>​ </​note>​
  
Line 67: Line 58:
   * Vim   * Vim
  
-===== Testare ​===== +===== Testarea și finalizarea temei =====
- +
-{{section>​uso-ac:​teme:​testare&​noheader&​nofooter}}+
  
 +{{section>​uso:​teme:​testare&​noheader&​nofooter}}
  
 ===== Task-uri ===== ===== Task-uri =====
Line 77: Line 67:
  
 ==== Task 01 (15p) ==== ==== Task 01 (15p) ====
 +
 +<note warning>
 +
 +** ATENTIE! **
 +Dupa prima rulare a comenzii sudo uso check, trebuie sa dati comanda ''​sudo reboot''​! ​
 +
 +</​note>​
  
 Clonați în directorul ''/​home/​student''​ repository-ul disponibil la adresa ''​https://​github.com/​systems-cs-pub-ro/​uso''​. Directorul creat după clonare trebuie să aibă numele ''​uso''​. Clonați în directorul ''/​home/​student''​ repository-ul disponibil la adresa ''​https://​github.com/​systems-cs-pub-ro/​uso''​. Directorul creat după clonare trebuie să aibă numele ''​uso''​.
Line 82: Line 79:
 Adaugați în directorul ''​uso''​ următoarea structură de directoare și fișiere: ​ Adaugați în directorul ''​uso''​ următoarea structură de directoare și fișiere: ​
 <code bash> <code bash>
-TW Warhammer/ +Star Wars 
-├── ​Dwarfs+├── ​First Galactic Empire
-│   ​├── ​Baradun the Kin Lord+│   ├── ​Deathstar
-│   ​└── ​The Slayer King Ungrim Ironfist+│   └── ​TIE Fighter
-└── ​Greenskins+└── ​Rebel Alliance
-    ├── ​Azhag The Slaughterer+    ├── ​Millenium Falcon
-    ├── ​Grimgor Ironhide/ +    ​│   ​├── ​chewie.c 
-    └── ​High King Thorgrim Grudgebearer/​ +    ​│   ​└── ​han.c 
-        └── ​The Great Book of Grudges+    ├── ​X-Wing
-            └── ​book.c+    ​│   ​└── ​luke.c 
 +    └── Y-Wing/ 
 </​code>​ </​code>​
  
Line 97: Line 96:
 Directoarele au după nume caracterul ''/''​ (slash). Directoarele au după nume caracterul ''/''​ (slash).
 </​note>​ </​note>​
- 
-Adăugați toate directoarele și fișierele în git și efectuați un commit cu mesajul ''​initial commit''​ (Hint: [[https://​try.github.io|try.github.io]] și [[http://​git-scm.com/​doc|git-scm.com/​doc]]) 
 <​note>​ <​note>​
-Întreaga ierarhie creată să facă parte din commit! Aveți grijă la adăugarea de directoare! (Hint: [[https://​git.wiki.kernel.org/​index.php/​GitFaq]], ''​empty directories''​)+Adaugati directorul Star Wars si toate fisierele continute ​ intr-o arhiva cu numele archive.tar.gzde tip gzip compressed care sa se afle in directorul ​''​uso''​.  
 + ​(Hint:​ man tar)
 </​note>​ </​note>​
 +
 +
 +
  
 ==== Task 02 (15p) ==== ==== Task 02 (15p) ====
  
 Aflându-vă în directorul ''​uso'',​ folosiți **o singură comandă** pentru fiecare dintre cerințele următoare: Aflându-vă în directorul ''​uso'',​ folosiți **o singură comandă** pentru fiecare dintre cerințele următoare:
-  - Mutați ​directorul ​''​High King Thorgrim Grudgebearer''​ în ''​Dwarfs''​. +  - Mutați ​fisierul ​''​luke.c''​ din ''​X-Wing''​ în ''​Millenium Falcon''​. 
-  - Redenumiți ''​book.c''​ în ''​book-of-grudges.c''​. +  - Redenumiți ''​chewie.c''​ în ''​chewbacca.c''​. 
-  - Redenumiți ''​Baradun the Kin Lord''​ în ''​Baradin the Kin Lord''​.+  - Redenumiți ''​TIE Fighter ​''​ în ''​TIE Advanced''​.
  
-Adăugați toate modificarile în git și efectuați un commit cu mesajul ''​Settle Grudge''​. 
 <note important>​ <note important>​
 +
 Cerințele de mai sus trebuie rezolvate în ordine. Cerințele de mai sus trebuie rezolvate în ordine.
 </​note>​ </​note>​
  
 <note warning> <note warning>
-După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ''​~/​uso/​TW Warhammer/''​. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea taskului.+După rezolvarea cerințelor acestui task, nu ștergeți sau modificați conținutul directorului ''​~/​uso/​Star Wars/''​. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea taskului.
 </​note>​ </​note>​
  
Line 122: Line 123:
  
 <note warning> <note warning>
-Pentru acest task aveți nevoie de fișierul obiect ''​thorgrim.o''​ aflat la adresa  +Pentru acest task aveți nevoie de fișierul obiect ''​force.c''​ aflat la adresa
-https://github.com/​systems-cs-pub-ro/​uso/blob/​master/​tema1/​thorgrim/​thorgrim.o?raw=true+ 
 +https://raw.githubusercontent.com/​systems-cs-pub-ro/​uso/​master/​tema1/​force.
 + 
 +Hint: ''​man wget''​ 
 </​note>​ </​note>​
 +Creați ​ directorul ''​task3''​ în directorul ''​uso'',​ și descărcați în acesta fișierul ''​force.c''​.
  
-Creați directorul ​''​~/​uso/​task3/​''​ și descărcați fișierul obiect ​''​thorgrim.o'' ​(Hint: ​''​man wget''​) în directorul creat anterior. Fișierul obiect ​''​thorgrim.o'' ​conține un apel al funcției ​''​intro_speech()''​ de tip ''​void''​. ​Funcția ​**nu** a fost implementată ​în fisierul obiect descărcat+Folosind o singură comanda, compilați fisierul sursă ​''​force.c''​ în executabilul ''​force''​ și păstrați toate fisierele intermediare (''​force.i''​''​force.o'' ​si ''​force.s''​). 
 + 
 +Păstrați argumentul/​argumentele comenzii într-un fișier separat, numit ''​options.txt''​. ​ 
 +<​note>​ 
 +**NU** dați argumentul/​argumentele direct ​în linia de comanda (hint @). 
 +</​note>​
  
-Fără a modifica fișierul obiect ''​thorgrim.o'',​ trebuie să implementați funcția ''​void intro_speech()''​ într-un fișier sursă ''​quest.c''​. Funcția trebuie să afișeze textul ''​Thorgrim before battle: ''​ 
  
-Fișierul ''​quest.c''​ se va compila în fișierul obiect ''​quest.o''​ și apoi se va genera executabilul ''​battle''​ folosind atât fisierul obiect ''​theorgrim.o'',​ cât si fișierul obiect ''​quest.o''​. Pentru a vi se puncta acest task, trebuie ca fisierele ''​thorgrim.o''​ (nemodificat) , ''​quest.c'',​ ''​quest.o''​ și ''​battle''​ să existe în directorul ''​~/​uso/​task3''​. 
  
 ==== Task 04 (25p) ==== ==== Task 04 (25p) ====
  
-Creați un fișier Makefile cu numele ​''​Makefile'' ​care generează executabilul ​''​battle''​, folosind atât fișierul obiect ​''​thorgrim.o'', ​cât și fisierul obiect ​''​quest.o'' ​obținut în urma compilării sursei ​''​.c'' ​implementată anterior. La primirea oricăreia dintre comenzile ​''​make''​ sau ''​make build''​ trebuie să se genereze fișierul executabil ''​battle'',​ iar în momentul rulării acestuia trebuie să se afișeze textul +<note important>​ 
-<​note>​ +Veti avea nevoie de fisierele ​''​light.o''​ ''​sound.h'' ​si ''​sound.c'', ​ce pot fi descarcate de la adresele \\ 
-Thorgrim before battle: There are grudges to settle and new entries in the 'Book of Grudges' ​to write!+''​https://​github.com/​systems-cs-pub-ro/​uso/​raw/​master/​tema1/​light.o'' ​\\ 
 +''​https://​raw.githubusercontent.com/​systems-cs-pub-ro/​uso/​master/​tema1/​sound.c''​ 
 +''​https://​raw.githubusercontent.com/​systems-cs-pub-ro/​uso/​master/​tema1/​sound.h'' ​\\
 </​note>​ </​note>​
-<note important>​Textul se află pe **o singură linie**.</​note>​ 
  
-Adăugați o regulă în Makefile ​numită ​''​run''​ care recompilează întreg programuldacă este cazul, iar apoi îl ruleazăDe asemeneaadăugați ​și o regulă ''​clean'' ​care șterge ​fișierele obiect **create de voi** și executabilul creat.+Creați un fișier ​Makefile ​cu numele ​''​Makefile''​ in directorul ''​task3''​ care generează executabilul ''​fight''​folosind atât fișierul obiect ''​light.o''​cât și fisierul obiect ''​sound.o''​ obținut în urma compilării sursei ​''​sound.c'' ​implementată anterior. La primirea oricăreia dintre comenzile ''​make''​ sau ''​make build''​ trebuie să se genereze ​fișierul executabil ''​fight''​.
  
 +Adăugați de asemenea o regulă ​ numită ''​optim''​ care să genereze un executabil optimizat la nivelul O2 (Hint ''​man gcc''​ ).
 +Adăugați o regulă în Makefile numită ''​run''​ care recompilează întreg programul, dacă este cazul, iar apoi îl rulează. De asemenea, adăugați și o regulă ''​clean''​ care șterge fișierele obiect **create de voi** și executabilul creat.
 +<​note>​
 +Programul trebuie sa fie recompilat doar dacă fisierele date sunt modificate! ​
 +</​note>​
 <​note>​ <​note>​
 Acest task se punctează **doar** dacă se folosesc, oriunde este posibil, ''​automatic variables''​. Acest task se punctează **doar** dacă se folosesc, oriunde este posibil, ''​automatic variables''​.
Line 150: Line 165:
 ==== Task 05 (25p) ==== ==== Task 05 (25p) ====
  
-După rularea ''​sudo uso check''​ veți găsi în directorul ''​~/​uso''​ următoarele fișiere: ''​origin-of-the-world.txt''​ și ''​edit_origin-of-the-world.txt''​. Scopul acestui exercițiu este de a vă familiariza cu editorul de text ''​vim''​. Va trebui să editați în ''​vim''​ fișierul ''​edit_origin-of-the-world.txt''​ astfel încât să respecte următoarele criterii:+După rularea ''​sudo uso check''​ veți găsi în directorul ''​~/​uso''​ următoarele fișiere: ''​timeline.txt''​ și ''​edit_timeline.txt''​. Scopul acestui exercițiu este de a vă familiariza cu editorul de text ''​vim''​. Va trebui să editați în ''​vim''​ fișierul ''​edit_timeline.txt''​ astfel încât să respecte următoarele criterii:
   - Ștergeți liniile 4, 24, 42. Faceți acești pași în ordine, fiind vorba despre linia 24 de după prima ștergere, apoi linia 42 după cele două ștergeri.   - Ștergeți liniile 4, 24, 42. Faceți acești pași în ordine, fiind vorba despre linia 24 de după prima ștergere, apoi linia 42 după cele două ștergeri.
-  - Înlocuiți apariția ​100 a cuvântului ''​the''​ cu ''​the one and only''​ (exact match ''​the''​). +  - Înlocuiți apariția ​74 a cuvântului ''​is ''​ cu ''​is sadly''​ (exact match ''​is''​). 
-  - Înlocuiți apariția ​10 a cuvântului ''​Dwarfs''​ cu ''​Dwarfs(Tough Little Bastards)''​. +  - Înlocuiți apariția ​20 a cuvântului ''​Sith''​ cu ''​Sith(for now)''​. 
-  - Modificați toate aparițiile ​pattern-ului ​'war' în ''​warPeace''​. +  - Modificați toate aparițiile ​cuvântului ''​BBY''​ în ''​BeforeBY''​. 
-  - Aflați de câte ori apare cuvântul ''​king''​ în text, notați numărul de apariții în fișierul ''/​home/​student/​uso/​info_text'',​ pe prima linie și înlocuiți cu ''​MVP''​ în text.+  - Aflați de câte ori apare cuvântul ''​King''​ în text, notați numărul de apariții în fișierul ''/​home/​student/​uso/​info_text'',​ pe prima linie și înlocuiți cu ''​MVP''​ în text.
  
-<​note ​warning+<​note ​important
-Pentru a primi punctajul ​trebuie ​să urmați ​task-urile ​în ordine!+Pentru a primi punctaj ​trebuie ​sa urmati ​task-urile ​in ordine!
 </​note>​ </​note>​
- 
 ==== Task obligatoriu pentru toate temele (0p) === ==== Task obligatoriu pentru toate temele (0p) ===
  
 Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de [[#​informatii_generale|Informații generale]]. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou, până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte). Asigurați-vă că ați submis tema și ați încărcat codul aferent submisiei în formularul din secțiunea de [[#​informatii_generale|Informații generale]]. Acest lucru este necesar ori de câte ori modificați tema și o submiteți din nou, până la termenul limită. În caz contrar, punctajul aferent temei va fi nul (0 puncte).
uso-ac/teme/tema-1.1477474651.txt.gz · Last modified: 2016/10/26 12:37 by tiberiu.barbu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0