joi, 2 iunie 2011

Pe viitor

Notă specială pt. 22.6.2011
Pe data de 22.6.2011 se ţine ultimul curs al acestui modul. Ar fi bine să venim cât mai mulţi, mai ales că este probabil (încercăm) să demarăm în viitor un modul axat pe Java - vedeţi şi comentariile la această postare. Vor rămâne pe grup cei care îşi doresc să înceapă acest modul şi cei care au promovat într-un fel clar cursul.


Urmează încă o sedinţă de introducere în universul Java. Apoi va fi o pauză - nu ştiu încă cât de lungă... depinde de mai mulţi factori, deşi ar fi poate mai interesantă POO în Java, odată trecută (în revistă) faza programării procedurale. Pt. cei care vor să se înscrie la acest curs, atât în prezent cât şi în viitor, reamintim că am pus toate cursurile pe grup (-ul yahoo); cred că, decât să scrieţi prea mult la adresa .gmail, mai bine intraţi pe grup şi vedeţi cursurile, conţinutul, maniera prezentării, eventual veniţi la curs. Ideea este că toţi ne strângem la acest curs de bunăvoie şi vrem să avansăm emulativ (profitând şi de un anumit spirit de echipă) în domeniul programării.

Recomandăm parcurgerea paginilor (temă):
în primul rând)
Introducere java
şi
Alte exemple java

De data asta chiar aplicăm regula temelor: Nu parcurgeţi... , nu are rost să mai veniţi la curs. Nu e nicio nervozitate aici, doar că "vrem să avansăm" trainic şi nu avem cum, dacă nu ne facem temele (tema profesorului fiind proiectarea scheletului cursului, şedinţelor - aţi observat că, deşi "stă în picioare", nu este vorba de o structură rigidă).

Ultima sedinţă va fi axată pe întrebările cursanţilor (dacă există :) ). Vor fi scoşi de pe grup cei care nu au venit cel puţin o dată la cursul de până acum (primul curs nu se pune)... adică n-au făcut decât să se înscrie pe grup şi să "read only". După următoarele două şedinţe, vor rămâne pe grup numai cei care pot participa la un curs ulterior. Acest curs, dacă se va ţine, presupune cunoaşterea abecedarului programării si cunoştinte "java" la nivel de începător - considerăm că noi am înfăptuit această calificare pentru cei care s-au ţinut de curs. După ultima sedinţă, vor rămâne pe grup cei care pot participa fără interview la posibilul curs viitor. Se poate ca la umătoarele două sedinţe, încă introductive în universul java, să apară noi oameni pentru viitorul (posibil) curs. Altfel, cine chiar vrea să ramână/revină pe grup trebuie să-şi facă timp să vină la curs data viitoare - până atunci vom face o primă triere a grupului (ne delimităm natural de aripa "read only"... e vorba de un grup care e activ sau nu e).


P.S. După terminarea doctoratului, pe baza diplomei
, pe lângă ridicarea ştachetei (considerăm că  până acum am parcurs abc-ul) vom încerca să promovăm  oficial (prin minister) cursul  în licee, să găsim o sală într-un liceu.

joi, 21 aprilie 2011

Noua situaţie

Afiş

Precizare suplimentară a locului: dacă vii dinspre Valea Argeşului, de la Mega Image o iei în sensul spre Piaţa Ialomiţei şi imediat ce ai trecut de blocul cu Mega Image, traversezi un părculeţ pe diagonală, spre stânga; după ieşire din părculeţ, continui în acelaşi sens şi pe partea stângă vezi un sediu PNL - acolo se ţine cursul-seminar. Pentru că au apărut şi nişte vorbe la curs, spunem clar: în timpul acestui curs nu facem politică. Altfel, mulţumim PNL că ne-a pus la dispoziţie sala.

@Harta


@Comunicare

Readuc aminte că suntem un grup interesat de programare - încă in faza de construcţie, deci si de promovare (cred că tot grupul vrea să avem discuţii interesante la acest curs-seminar) -, în cadrul căruia, pentru că nu se poate alfel, dacă vrem să fim eficienţi în timpul disponibil, nu facem chat "pe net". Discutăm mai multe la curs: dacă aveţi întrebări speciale, aveţi mai multe şanse să vi se răspundă mai ales dacă veniţi cu ele la curs: eu, cel puţin, nu îmi permit să fiu call center (mai ales în varianta scrisului). Sau, măcar, formulaţi în scris pe grupul yahoo... vă pot răspunde mai mulţi... se poate crea o emulaţie pe grup, în cazul în care nu ne abatem de la tematica cursului.

@Perspective

Nu mai avem mult şi trecem de partea introductivă: un fel de abecedar al programării. Urmează în ordine cronologică, în următoarele două module:
1) o tratare mai aprofundată a stucturilor de date şi algoritmilor - în C;
2)
- programarea orientată pe obiecte (POO), întâi în C++, cu aspecte specifice ale implementării stucturilor de date şi algoritmilor în acest limbaj;
- apoi în Java (care cred ca poate fi cunoscut mai în profunzime dacă venim dinspre C++)

Şi rămanem la java. Un modul final ar fi dedicat tehnicilor de programare în java ... se poate aborda şi o certificare SJCP.

Să vedem însă şi câţi ne strângem în direcţia asta.

vineri, 8 aprilie 2011

Ca sa ne lamurim comunicarea

1) Impreuna cu cei interesati de subiectul cursului am hotarat ca dupa Paste sa dam un test - nu va fi greu, trebuie doar sa testam o oarecare consistenta a comunicarii in cadrul acestui curs ... daca este cazul sa continuam. Cine vine nou la curs, dupa acesta data, va avea de sustinut o proba tehnica - se presupune ca pana atunci vom avea o "pojghita de programare" comuna. Ideea este sa favorizam natural interesatii de programare.

2) Regula temelor: incepand de la tema pt. cursul 3 se va face verificarea temelor. Temele se prezinta la curs sau se trimit pe adresa mea (nu pe grup). Preferam prezentarea (se trimite tema doar daca nu puteti veni la curs) : o tema prezentata nu trebuie si trimisa. La curs mai putem discuta despre tema, fiind important - conditie de participare in continuare la curs - sa se vada ca s-a facut macar o incercare serioasa. Daca trimiteti se da un calificativ - suficient sau insuficient - conditia de participare in continuare la curs fiind calificativul suficient. Termenul de trimitere a unei teme este Lunea ulterioara cursului la care trebuia predata tema.

3) Se apreciaza si se dezbat initiativa, propunerile. Este un grup orientat pe initiativa personala. Chiar si aceea de a iesi din grup (ne bucuram daca intra cineva interesat, suntem indiferenti si ceva mai limpeziti daca iese) : puteti iesi de pe grupul yahoo fara nici o problema. Adresa voastra nu va fi data vreunui tert - asta a fost o conditie ca sa pot incepe cursul de fata.

miercuri, 6 aprilie 2011

Carti

Am fost intrebat de carti - voi da sugestii. Asa cum spuneam, modulul final al acestui curs - spre ceea ce tindem - este insusirea unei bune programari in limbajul Java, un limbaj standard de facto, de la care s-a inspirat chiar si C# (concurentul Microsoft). Avem aici doua aspecte, in general fiecare aspect fiind abordat in carti cu profil corespunzator, arta fiind a le impleti (desi, in prima faza invatam limbajul, ar fi pacat sa nu atingem si algoritmica ... notiunile se leaga mai trainic):

1) "Buna programare" implica stapanirea tehnicilor de programare: algoritmi si structuri de date. Carte:
http://www.buybooks.ro/structuri-date-algoritmi-java.html

2) insusirea limbajul Java. Carte:
http://www.buybooks.ro/java-de-la-0-la-expert-editia-a-.html

*) Se zice ca Java e mai usor decat C/C++, dar in Java exista aspecte deghizate din C++ (cuma ar fi pointerii, care in Java devin referinte), deci, pentru o cunoastere mai buna (neurechista) a lb. Java, recomandam inceperea cu C++, mai ales ca C++ ne face atenti la resursele calculatorului. O introducere oarecum suficienta in C++ gasiti la:
http://www.buybooks.ro/ghid-pentru-incepatori.html

... defapt la toate putem adauga "oarecum". Programarea de calitate se deprinde in timp, prin dezbatere interioara si nu numai.

Revizie de primavara ... in perspectiva

Astazi vrem sa sriem/rulam macar cateva mici programe pe calculator. Pentru asta ne trebuie:
- un laptop (eu sper sa pot veni cu unul)
- un mediu de dezvoltare (voi veni cu unul)
si, ar fi bine, inernet - nu stiu daca avem acolo.

Veniti si voi cu ce puteti ...

PS. Peste cateva cursuri preconizam sa ne definim interesatii sa mearga mai departe. Nu e nicio emfaza: in mod necesar, daca vrem sa inaintam, trebuie sa facem aceasta operatie. Data trecuta am avut placuta surpriza sa constat ca o persoana, care nu venise la primul curs, a fost constructiva. V-ati prins ca acest curs ia forma pornirilor bune ale cursantilor, baza de pornire fiind un nivel decent :).

marți, 15 martie 2011

Cateva clarificari - modificat

* Cursul incepe pe 23 martie

* Au aparut intrebari de genul: Gratis? Suspiciuni: nu cumva platim altfel ... ca sa ni se dea o diploma, nu cumva vom fi folositi la cine-stie-ce etc? Nu domne', pot exista lucruri care se fac serios, la care se pune suflet, fara a se cere bani pentru asta. Persoanele care se ocupa de asa ceva le putem numi voluntari. In plus, unii cred ca pentru a sparge un cerc vicios este nevoie de "munca patriotica". Sa speram ca, pana la urma, lumea sacoselor va deveni din ce in ce mai mica. Sentimentul ca participi la un asemenea proces te poate face sa te simti recreat in raport cu aceasta lume, care aparent ne invadeaza, o lume trista. Petre Tutea spunea: "Cand vorbesti cu un om inteligent, parca faci o baie".

* O politica nu valoreaza pentru noi decat in sensul concretizarii celor de mai sus. Gasim nesimtite reclamele gratuite. Acest curs nu isi propune sa umfle un balon, ci dimpotriva ... dar natural, fara sa se abata de la continutul sau intelectual.

* Prima parte a cursului se va incheia odata cu inceperea vacantei scolare / studentesti (in jur de 15 iunie)

* Certificat SJCP - exemplu:

vineri, 11 martie 2011

Schita

(Nota: Intrucat pe grupul yahoo si nu numai ... e mai complicat cu diacriticele, renuntam temporar la ele.)

Detaliem primele 3 module, M0 + M1 + M2, suma pe care o vedem unitar - M0 si M1 constituind o antecamera pentru un aspirant interesat a fi creator in domeniul IT - ca pe o introducere consistenta in informatica.

M0) Introducere in informatica: notiuni fundamentale si prezentarea uneltei numita calculator
- se va incepe cu o popularizare, o vorbire pe intelesul celor inca nefamiliarizati si nu numai a lor despre stiinta calculatoarelor (‘computer science’). Detaliem primul curs pe ore:
1) Informatica (asemeni matematicii), limbaj universal. O trecere in revista a unor domenii reprezentative ale aplicatiilor informatice (ale IT-ului)
2) Calculatorul - principalele sale functionalitati si echipamente. Reprezentarea informatiei. Limbaje de programare - cateva mostre. Etapele pana la executarea codului scris intr-un limbaj de programare.

La sfarsitul acestui modul – va acoperi una-doua sedinte – studentul ar trebui sa aiba o idee in mare despre ce vom incerca sa “cultivam” in continuare.

M1) Deprinderea gandirii algoritmice: algoritmi simpli pt. prelucrarea datelor de tipuri primitive. Programarea structurata. O introducere pragmatica in limbajul C

1. Algoritmi si scheme logice
2. Recursivitate
3. Structura generala a unui program (variabile si functii)
4. Operatori. Instructiuni: de decizie, repetitive si de salt
5. Tablouri. Operatii cu matrici
6. Pointeri
7. Siruri de caractere
8. Fisiere

M1 este practic o intrare in domeniul informaticii, nu numai pentru studentul “chitit” sa aiba intervina in IT. Cel putin 7 intalniri (fiecare punct se poate intinde pe 1-2, in mod exceptional 3 cursuri), ar epuiza M1 si ar cerne studentii pentru modulul urmator. Putem numi aceasta materie bazele informaticii. Totodata se prezinta un limbaj de programare de larga aplicabilitate - limbajul C - , a carui cunoastere, imbogatita in modulul urmator, da studentului un bagaj consistent, care sa-l faca apt sa se conecteze relativ usor la comunitatea programatorilor din IT (C-ul, el insusi un limbaj de maxima importanta si, de multe ori, de neinlocuit, este stramosul celor mai importante limbaje actuale – C++, java, C# -, putand fi considerat un standard de facto al limbajelor de programare) .

M2) Structuri de date si algoritmi

1. Liste
2. Arbori binari
3. Tipuri de data abstracte (TDA). Implementarea unor TDA prin tablouri vs. implementarea prin pointeri
4. Tabele de dispersie
5. Grafuri
6. … mai vedem in functie de feedback