[Android] D'Android Init

Dragos Corlatescu dragos.corlatescu at gmail.com
Wed Aug 19 11:41:50 EEST 2015


Salutare,

Sper că toată lumea se bucură de vară! :)

Acest mail are scopul de a discuta detaliile cursului. Fiecare părere este
binevenită.

Vă voi da drepturi de acces la GoogleDrive-ul [0] unde sunt materialele de
anul trecut și unde, de asemenea, vom lucra și noi.

O descriere generală a cursului și un brainstorming pe care l-am făcut
împreună cu Gina se pot găsi în folder "D'Android 2015".

Pentru a începe discuția mai în detaliu despre cum se va desfășura cursul
voi pleca de la întrebările/observațiile foarte bune ale lui Andrei.

În ce an de studiu se află studenții care participă la acest curs? Care
> sunt cunoștințele lor în ceea ce privește programarea orientată pe obiecte,
> bazele de date, rețelistica, Linux? Care au fost criteriile pe baza cărora
> au fost selectați să participe la acest curs? Au mai lucrat cu Android?


Studenții încă nu au fost selectați, vom face o serie de interviuri pentru
asta în perioada 9 octombrie - 14 octombrie din care vom alege 12 studenți.
Cu privire la cunoștințele lor, vom urmări în special să aibă cunoștințe de
POO. De asemenea, fiind un curs care se vrea a fi introductiv în Android,
vom accepta doar necunoscători și/sau pe cei care au o mică idee cu ce se
mănâncă. Într-un cuvânt, începători (entuziasmați).


Unde se vor ține aceste cursuri? Care este infrastructura de care
> beneficiază laboratorul în cauză (întreb asta pentru că noi, la PDSD, nu am
> putut folosi Android Studio din cauza dotării necorespunzătoare a mașinilor
> din EG106 - chiar și cu Eclipse + emulator trebuia să folosim un window
> manager / browser foarte simple pentru a limita consumul de memorie? Există
> niște dispozitive mobile pe care se va lucra sau vom utiliza un emulator?


Nu știam de problema cu calculatoarele din săli. Încă nu știu ce sală vom
avea la dispoziție. Am vorbit cu Marius despre asta și când vom avea ceva
sigur vă voi anunța.
Vom lăsa studenții să vină cu calculatoarele proprii. Cel mai probabil
aceștia vor dispune de laptopuri mai puternice decât desktopurile din
laborator.
Cu privire la mediul de lucru, nu vom avea posibilitatea să le oferim
dispozitive mobile. Ori vom lucra cu un emulator, ori vor testa pe
telefoanele proprii.


Ce nivel de API vom folosi? (asta și în funcție de versiunea pe care o au
> dispozitivele mobile)


Aici cred că ar fi o idee bună să fim flexibili. Vom avea ca țintă cea mai
recentă versiune de API, dar acolo unde există modificări majore față de
versiuni anterioare putem menționa care sunt acestea.


Există o listă de proiecte care vor fi asignate echipelor sau fiecare
> echipă își va alege proiectul în funcție de preferințele / preocupările
> proprii? În situația în care sunt 3-4 echipe și 3-4 persoane în echipa de
> organizare a cursului, mă gândesc că ar fi bine ca fiecare echipă să aibă
> câte un coordonator care să urmărească îndeaproape stadiul de dezvoltare a
> proiectului și să răspundă cât se poate de repede la orice fel de întrebări
> ale membrilor echipei.


Proiectele. Un lucru foarte important după mine. După cum spune și Andrei
mai sus, vor exista 3-4 proiecte a câte 3-4 persoane în echipă.
Având în vedere că sunt începători nu cred că ar știi prea bine ce să își
propună să facă. Așa că le vom oferi noi proiectele.
Și da, ideea cu un mentor la echipă sună bine. Și bănuiesc că cu toții vom
fi dispuși să îi ajutăm dacă întâmpină probleme.

Trebuie să ne gândim și la idei de astfel de proiecte și cât mai repede. Să
fie cât de cât simpluțe și să înglobeze cât mai multe cunoștințe de la
curs(cel puțin așa ar fi ideal). Volumul de muncă pentru ele ar trebui să
fie mediu: să îi facă să investească și puțin timp acasă, dar nici să le
ocupe prea mult timp pentru că vor fi teme și vor prioritiza în defavoarea
proiectului.

Un alt motiv pentru care aș dori să stabilim repejor aceste proiecte este
pentru că cel mai probabil vom avea nevoie de niște servere/API-uri cu care
aplicația să comunice. Un prieten de-al meu, Andrei, care face și el parte
din ROSEdu s-a oferit să ne ajute cu partea asta, dar e bine să îi spunem
din timp.

Voi porni un alt thread tot pe această listă legat de proiecte ca să nu ne
aglomerăm.


Care este structura unei întâlniri? Propunerea mea ar fi următoarea: 1 oră
> (maxim 1 oră și jumătate) - curs; 3 ore - laborator, la care fiecare
> cursant să poată lucra individual pentru a-și putea lămuri neclaritățile de
> la curs și să poată formula întrebări și eventual 1 oră - lucru la proiect,
> în echipă. Per total, programul ar putea fi 9-14 sau eventual 9-15 dacă
> decidem să luam o pauză de 30 de minute - 1 ora undeva pe la mijloc.


Cam la asta ne-am gândit și eu cu Gina. Probabil o să varieze de la curs la
curs, dar orientativ, cred că așa e foarte bine.


Iata cum văd eu împărțită tematica de-a lungul celor 8 săptămâni.
>
>
> Nr. Crt.
>
> Data
>
> Tematica
>
> Responsabil
>
> 1
>
> 17.10.2015
>
> Sisteme de versionare a codului sursă. GIT
>
>
>
> 2
>
> 24.10.2015
>
> Introducere în sistemul de operare Android (structura generală,
> funcționalități, versiuni, alegerea nivelului de API – acoperirea cotei de
> piață vs. funcționalități accesibile, Android vs. Apple).
>
> IDE Android Studio (structura unui proiect, Gradle, resurse – fișiere XML,
> manifest, permisiuni)
>
> Activități – ciclul de viață
>
> Mecanisme pentru depanarea unei aplicații Android
>
>
>
> 3
>
> 31.10.2015
>
> Proiectarea și dezvoltarea interfețelor grafice
>
> -          Tipuri de controale grafice; Tratarea evenimentelor asociate
> controalelor
>
> -          Mecanisme pentru dispunerea conținutului
>
>
>
> 4
>
> 07.11.2015
>
> Intenții (asociate unei activități definite de utilizator și asociate unor
> acțiuni standard în Android). Întoarcerea dintr-o intenție (metoda
> onActivityResult()).
>
> Servicii.
>
> Tratarea intențiilor cu difuzare (intent filters, broadcast receivers).
>
>
>
> 5
>
> 14.11.2015
>
> Fragmente – ciclul de viață. Relația fragment – activitate.
>
>
>
> 6
>
> 21.11.2015
>
> Liste și Adaptoare. Meniuri.
>
>
>
> 7
>
> 05.12.2015
>
> SQLite – baze de date în Android pentru asigurarea persistenței (eventual
> și Shared Preferences).
>
>
>
> 8
>
> 12.12.2015
>
> Comunicația prin HTTP (eventual și TCP sockets). Volley vs. Apache HTTP
> Components. Interogarea unor servicii web care întorc rezultate în format
> JSON și prelucrarea acestora (clasele JSONObject și JSONArray).
>
>
>
> 9
>
> 19.12.2015
>
> Evaluare proiecte. Premiere.
>

Ce cred că ar fi cel mai bine este să oferim informații care să îi ajute să
înceapă lucrul la proiect cât mai repede. Deci, temele sunt bune. Ordinea
poate o putem modifica cumva. Sau poate să combinăm unele. De exemplu, un
curs întreg pentru Git mi se pare cam mult.

Aștept păreri în legătură cu această temă.


Cursurile au un pronunțat caracter practic și pentru fiecare ar trebui să
> gândim niște sarcini de laborator pe care cursanții ar trebui să le rezolve
> individual. Pentru fiecare curs ar trebui să stabilim un responsabil (din
> cei 3-4) care va avea următoarele sarcini:
>
>    - va elabora textul cursului și prezentarea aferentă (poți partaja și
>    template-ul pentru prezentare?);
>
>
>    - va gândi niște exerciții care vor fi rezolvate de fiecare cursant
>    pentru a asimila toate noțiunile / conceptele prezentate anterior (ar fi
>    frumos dacă toate aceste exerciții ar fi și ele integrate în cadrul unui
>    proiect unitar); scheletul de cod (pentru laboratoarele mai avansate)
>    precum și rezolvările ar putea fi puse pe un cont Github / Bitbucket al
>    cursului;
>
>
>    - va preda materialul conceput anterior și va supraveghea desfășurarea
>    activităților de laborator oferind cursanților suport tehnic acolo unde
>    acesta este solicitat (fiecărei persoane îi vor reveni probabil 2-3
>    cursuri);
>
> Sunt de acord. Imediat ce stabilim exact ce cursuri putem să le împărțim.


Așa cum se poate observa, densitatea de informații per curs este destul de
> mare și, din experiența mea anterioară am observat că studenților le este
> destul de greu să le asimileze într-o singură bucată. În planificarea
> propusă nici nu am avut loc pentru framework-uri de testare automată (putem
> renunța la prezentarea despre Git - majoritatea studenților au deja aceste
> cunoștințe sau putem face prezentarea despre fragmente odată cu cea despre
> activități sau cu cea despre interfețe grafice pentru a mai câștiga un
> curs). Pentru a surmonta acest neajuns am avea două posibilități:
>
>    - filtrăm cantitatea de informație; le predăm mai puțin, dar insistăm
>    mai mult pe anumite concepte;
>
>
>    - spargem un curs în mai multe module tematice: se predă un modul,
>    apoi se aplică informațiile dobândite prin activitate de laborator, apoi o
>    scurtă pauză, apoi se trece la următorul modul; odată ce am avea stabilită
>    tematica pe săptâmâni, putem face și împărțirea pe  module.
>
> Amândouă opțiunile îmi par valide și mi-e greu să zic care e mai bună.
Probabil că depinde de situație?



[0] https://drive.google.com/drive/folders/0Bx_bxR-luXRzUEdOcXZaS1c1dXM

Scuze pentru mail-ul lung!

Spor și aștept întrebări/sugestii,
Dragoș Corlătescu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rosedu.org/pipermail/android/attachments/20150819/342430b3/attachment-0001.html>


More information about the Android mailing list