Nije potrebno biti ekspert da bi se zaključilo da se u oblasti
računarstva puno toga promenilo u poslednjih par decenija.
Međutim, pre nego što pogledamo šta se sve promenilo i
kakvo je stanje danas, vratimo se za trenutak u 1986. godinu kada
sam kao polaznik seminara informatike po prvi put došao u Petnicu.
Znajući kojim su se tempom računarske tehnologije razvijale (često
se može čuti da je jedna "računarska" godina jednaka pet kalendarskih
godina), ta ne tako davna ‘86. bi, u slučaju da pišem o automobilskoj
industriji, mogla biti davna 1886. kada je Karl Benz
patentirao prvi automobil sa benzinskim motorom. Dakle, evo kako
je sve to izgledalo pre 123 automobilske godine...
VREMEPLOV
Te 1986. godine naši roditelji i profesori su verovatno bili
zabrinuti za naše mentalno zdravlje. A kako i ne bi: pričali smo čudnim
jezikom o stvarima za koje je malo ko verovao da postoje van naučnofantastičnih
filmova, ako su uopšte imali bilo kakvu ideju o čemu
smo to pričali. Možda su mislili "bolje i to nego da se drogira", nesvesni
pritom koliko je POKE-ovanje "mašinca"
direktno u memoriju ili disasembliranje
BIOS-a ozbiljna adikcija. Međutim, premda
je sve ovo bilo "cool", bilo je potrebno poznavati
svaki tehnički detalj hardvera i softvera
kako bi se iz računara izvu-kao maksimum, a ponekad i štogod korisno.
da li smo danas računarski
obrazovaniji ili smo samo
efektno ubeđeni u to?
Da se podsetimo: 80-tih godina prva slika koja bi nekome izašla
pred oči pri pomenu reči "računar" je verovatno bila neka velika
klimatizovana sala sa zelenkastim svetlom, redovima ormana u kojima se vrte kolutovi traka, kao i armija inženjera u belim mantilima koji se zuje okolo.
Ipak, u senci ovakvog shvatanja pojma "računar" dešavala se
tiha revolucija: kućni i personalni računari su dobijali oblik, bilo ih
je sve više, a koristila ih je armija u džinsu i patikama, često neobrijana
i još češće golobrada. Nasuprot golemih računarskih sala, kućni
računari su se mogli staviti na sto (ili barem ispod stola); hardverski
i softverski bili su svedeni na apsolutni minimum kako bi cena sistema
bila najmanja moguća. Međutim, upravo je taj "minimalizam"
bio ključni sastojak manije koja je vladala tih godina: kako mašinu
sastavljnu od svega nekoliko osnovnih komponenti naterati da uradi
nešto interesantno? A tek korisno? Tako smo, i pored neverovatnih
ograničenja tih godina, pravili svoje kompajlere, razvijali simulatore,
celularne automate, igre, jednostavne operativne sisteme, sistemske
alate. A da bismo sve to napravili, često smo sami pisali
drajvere i biblioteke rutina u asembleru, neretko posezali za lemilicom
kako bismo "prežičili" računar i prisilili ga da hardverski uradi nešto što je bilo nemoguće izvesti u softveru. Bili smo pioniri.
POVRATAK U BUDUĆNOST
Da je ovaj tekst namenjen zabavnoj rubrici dnevnih novina, sada
bi sledila serija poređenja performansi današnjih računara sa ondašnjim
parametar po parametar, kako bi se pokazalo i dokazalo kako
su današnji recimo 500 puta brži, imaju 1000 puta više memorije ili
10000 puta veće diskove, ili da je ko zna šta još nekoliko hiljada puta
bolje, brže, manje i slično. Međutim, taj deo ćemo preskočiti, jer verujem
da vam je sve to poznato. Takođe, ovde neću pisati o društvenim
ili ekonomskim promenama koje je široka primena računara
izazvala, jer pretpostavljam da bi svako mogao da navede pregršt primera svega što danas imamo zahvaljujući računarima, a nije bilo moguće pa čak ni zamislivo pre 30, 20 ili svega 10 godina.
Od dana kada je većina računara bila smeštena u neki ERC
(elektronski računski/računarski centar), uglavnom korišćena za primenu
koja se tada zvala EOP (elektronska obrada podataka) i kada
je korisnika bilo malo, promenilo se mnogo toga uz neverovatan rast
mogućnosti računara. Međutim ne bi bilo previše iznenađujuće su
razvoj mogućnosti pratile veličina, potrošnja struje i cena (kao kod
kuća, brodova, raketa), pa da danas imamo sisteme, hiljadu puta
moćnije od onih iz 80-tih koji zauzimaju sto puta više prostora, troše
50 puta više struje, koštaju desetostruko, ali se i dalje koriste na približno
isti način. Da je tako, računari ne bi nikada postali "kućni", "personalni", "prenosni" ili "mobilni", bilo bi ih relativno malo, a
većina laika bi ih i danas opisivala kao tada, s tim što bi zlobnoizgledajuće elektro-energetsko postrojenje možda ipak bilo neophodno dodati kao integralni deo sistema.
Međutim, desilo se obrnuto: današnji računari su mnogo manji,
mnooogo brži, troše manje struje i koštaju malo. Posledica toga je
širenje primene i eksplozija masovne proizvodnje. A kada je nešto
lako dostupno i malo košta, onda takvu robu tretiramo kao potrošnu
koja se kupi, koristi neko vreme i baci. Kako računara ima svuda, svi
smo postali korisnici, želeli to ili ne. Teško da danas postoji neki
složeniji uređaj, a da ne sadrži mikroprocesor. Ne osećate se kao "korisnik
računara" kada uključite TV, veš mašinu ili pozovete nekoga mobilnim telefonom, ali ste to, primetili ili ne.
Dodatno, čak su i sami računari kao
potrošna roba počeli da služe uglavnom za
potrošnju. Potrošnju informacija. Od uređaja
namenjenih prevashodno obradi i proizvodnji
informacija, računari su danas velikom većinom
u upotrebi kao uređaji za potrošnju i razmenu informacija. Ko
je 80-tih godina je verovao da će preko 99% računara danas biti korišćeno za pregled interneta, slušanje muzike, gledanje filmova ili TV programa, igranje igara, telefoniranje ili razmenu poruka?
PROMENE U NAČINU OBRAZOVANJA
Pre široke komercijalizacije i masovne primene računara,
priprema budućih stručnjaka je bila bazirana na receptu: jako znanje
matematike sa puno apstraktne materije direktno povezano sa teorijom
informacija, algoritmima i strukturama podataka, kao i arhitekturama
računarskih sistema. Kao "prljaviji" deo dalo se naći i nešto praktičnih predmeta na temu programskih jezika i operativnih sistema, uz uvežbavanje poneke standardne aplikacije.
Danas univerziteti koji se drže ovog klasičnog pristupa dobijaju
sve veću konkurenciju u obliku manjih privatnih škola koje nude
da za dve godine proizvedu stručnjake za određene proizvode i
primene, bez mnogo trošenja vremena na teorijske osnove. Velike
kompanije, kao na primer Microsoft, IBM, Oracle ili Cisco, opremaju
laboratorije i učionice svojim proizvodima kako bi se studenti na njima obučavali i prenosili naučena rešenja u
praksu, kupujući i koristeći naravno proizvode koje
su tokom obuke upoznali. Takođe postoje i oni koji
izaberu da dobiju paket sertifikata koje sami iskombinuju
u skladu sa svojim planovi-ma. Oni koji žele
mogu brzo krenuti putem profesionalne karijere u
oblasti implementacije rešenja baziranih na postojećim
proizvodima, a koja može da bude interesantna i veoma dobro plaćena i bez dugog studiranja i diplome.
Međutim, loša strana ovog pristupa je ta što
preveliko oslanjanje na diktat proizvođača znači da
postaje nebitno naučiti studente kako sve to zapravo
funkcioniše. U proteklih desetak godina sam na komercijalnim
projektima radio sa programerima od
kojih neki nisu razumeli razlike između tipova podataka,
kako se u memoriju ili bazu podataka smeštaju
ti podaci i kako ih procesor obrađuje, neretko sa
katastrofalnim posledicama po proizvod, rokove i
budžet. Za one koji su zainteresovani da rade na
razvoju novih proizvoda ili tehnologija a možda i
da postanu konkurencija velikim kompanijama, tendencija prihvatanja zanatskog pristupa na štetu teorijskih osnova je veoma loš pristup
.
KAKO SE OVO ODRAZILO NA POLAZNIKE PETNICE?
Dok sam na ovogodišnjem (2009) letnjem
seminaru informatike tražio neke prezentacije koje
smo pravili i koristili na seminarima tokom 90-tih
godina, slučajno sam pronašao testove koje sam dao
polaznicima prolećnog seminara ‘98. godine. Dakle
pre celih 11 godina! Kroz glavu mi je prošla zlobna
ideja da isti test dam današnjoj grupi.
Zapravo radi se o dva testa: prvi test je sa pitanjima
mahom iz oblasti arhitekture računara,
mašinskog programiranja i operativnih sistema, a
drugi test je sa težištem na programskim jezicima,
algoritmima i strukturama podataka. Svaki test ima
po 20 pitanja (dakle ukupno 40), a za svako pitanje
su ponuđena četiri odgovora. A najlepši deo? Pa
pronašao sam i obrađene rezultate testa iz 1998. godine!
Dakle imamo sa čim i da poredimo.
Rezultati me nisu iznenadili. Grupa iz 1998.
je bila očigledno bolja. Skoro dve trećine polaznika
je tada dobilo preko 50% bodova, sa najboljim rezultatom
od 90%. U grupi iz 2009. nešto manje od
četvrtine prešlo je 50% i to sa najboljim rezultatom
od 70%. Već vidljiva razlika, ali najbolje tek sledi.
Kada se rezultati analiziraju posebno po testovima
dolazi se do interesantne razlike. Obe grupe
su sakupile solidan broj tačnih odgovora na pitanja
iz drugog testa, a nekoliko najboljih polaznika iz obe
grupe je u praktično istoj kategoriji sa vrlo sličnim
visokim brojem bodova. Međutim ovogodišnja grupa
je grdno podbacila na prvom testu! Procesori, logičke
kapije, binarni brojevi, mašinski kod, stek?
Stanja procesa, obrada prekida, konkurentno procesiranje?
Ma kome to danas treba?
...I ŠTA PETNICA MOŽE UČINITI?
Prva misao koja se nameće je očigledna:
odlično, pošto sada znamo gde su polaznici tanki, hajde da ih naučimo onome što ne znaju! Prva kontramisao:
hmmm... a možda ipak ne? Da li bi im to
bilo interesantno, potpuno van svakog konteksta
neposredne praktične primene? Pa čak da jeste interesantno,
da li je zadatak Petnice krpljenje rupa u
srednjoškolskim i univerzitetskim programima?
Druga misao: pa dajmo im onda lepe nove
igračke, nešto što nemaju prilike da vide ili koriste
svaki dan! Druga kontramisao: kako ići u korak ili
čak korak ispred onoga što se trenutno nudi kao najsavremenija
softverska i hardverska tehnologija?
To je teško i vrhunskim svetskim univerzitetima i
istraživačkim institutima sa budžetima za projekte i
opremanje laboratorija u kojima bi se novac koji
Petnica ima na raspolaganju za tu svrhu mogao
zanemariti kao sitnija greška u finansijskom planiranju.
A šta god da Petnica nabavi ove godine (ne
zaboravimo, za ograničene pare), većina polaznika
bi verovatno nastavila da sa sobom donosi svoje
računare i potrebne softverske alate, ponekad i bolje
a za koju godinu i većinom bolje. Mrtva trka u koju
se ne bi valjalo upuštati.
Dakle pitanje je kako uprkos trendovima o
kojima je već bilo reči ponuditi nešto originalno i
interesantno? Nešto što će polaznike privući, motivisati
i naučiti nečemu što će biti od praktičnog
značaja u njihovom budućem školovanju i karijeri?
Nastaviti sa uobičajenom koncepcijom seminara
koji se baziraju na malim individualnim projektima
očigledno više ne pije vodu. Šta onda?
Ono što se može uraditi i čiji su glavni sastojci
ne nastava ili najnovija tehnologija, nego okruženje
i iskustvo koje Petnica već ima je sledeće:
prebaciti težište na timski rad i kombinovanje sa
drugim seminarima. Evo šta to znači: umesto rada
na projektima koji iz godine u godinu realno imaju sve manje i manje smisla, polaznici seminara računarstva
bi se mogli angažovati na drugim seminarima
gde je neophodno upotrebiti računar (a svuda
jeste u upotrebi, u manjoj ili većoj meri) i odraditi
računarski deo unutar veće grupe. Ključ? Teme za
projekte bi zapravo bile potrebe polaznika drugih
seminara za primenom računara. Tu bi se moglo raditi
o simulacijama, prikupljanju, obradi i vizuelizaciji
podataka, upravljanju laboratorijskom opremom,
automatizacijom raznih procesa i postupaka, izradom
autonomnih računarski kontrolisanih eksperimenata,
pa čak i uz moguću izradu specijalizovanog
hardvera i softvera za vrlo specijalizovane namene.
Programiranje bi tu bila samo jedna mogućnost, dok
bi i korišćenje gotovih rešenja i već razvijenih paketa
takođe bila odlična opcija.
Na ovaj način bi se dobile tri stvari: (1) projekti
bi imali više smisla, proizvodili bi upotrebljive
rezultate pa bi samim tim bili interesantniji i izazovniji;
(2) rad u timu sa polaznicima drugih seminara
bi bio neophodan što je vrlo korisno iskustvo
ma kojom profesijom polaznici odlučili da se bave
u budućnosti; (3) verovatno najvažnije, takve projekte
bi po prirodi stvari bilo najpraktičnije a često
i jedino moguće izvesti u Petnici, pa bi se Petnica
koristila kao idealna sredina za tu vrstu rada, baš
kao što i treba da bude.
Naravno da ovo nije jedina mogućnost i da
svakako postoje i druge (dok ovo pišem pada mi na
pamet barem još dve-tri... četiri...), ali ova je možda
najvažnija. Ono što je mene stalno vraćalo u Petnicu
i stalno će me vraćati je upravo sredina u kojoj na
jednom mestu mogu da se sretnem sa ljudima koji
se bave najrazličitijim stvarima, da od njih nešto
novo naučim, da vidim šta to oni rade i kako bi se neki hardver ili softver tu mogao uklopiti, pa da u
tim uslovima primenim ono što znam i na druge
oblasti. Mogućnost učenja je prosto neverovatna.
Dosta nas je prošlo kroz neku vrstu takvog međuseminarskog
rada i verujem da bi se svako sa tim
iskustvom složio da je to nešto što im je bilo najkorisnije
i što će im uvek ostati u lepom sećanju.
Možda je došlo vreme da se ovaj način rada koji je
do sada bio povremen i često samoinicijativan, sada
formalno uobliči i postane novi princip organizovanja
seminara računarstva |
[sci-literacy]
challenges in computer science education
Since the early days of personal computers many
things have changed. To understand the evolution of
the technology and impact on current educational
practices, let's go back to 1986 when I attended my
first program in Petnica.
Back then computers were rare, and usually assumed
by general public to be large, expensive, used
only by big companies, military or government. But
small computers very few even knew existed were
spreading like a wildfire. In order to reduce price
those early personal computers were stripped down
to bare minimum, often not capable of doing anything
useful without some programming or hardware modifications.
But despite all the limitations we were developing
simple compilers, simulators, computer
games, operating systems. It was not only challenging,
we simply had to. In short, we were pioneers.
Things are much different today. It would be to no
surprise if computers evolved into powerful machines
supporting a wide range of applications, while continuously
increasing in size and energy consumption,
and remaining relatively rare and expensive. However,
the opposite has happened: modern computers
are more powerful, but small, less energy hungry, and
cheap. This resulted in explosion of mass production
and amazing variety of applications, turning computers
into expendable, consumer items. To most, computers
are absolutely nothing special today.
Before this expansion educating computer professionals
was relatively simple, starting from mathematical
and theoretical foundations, learning
programming languages and operating systems, and
training for some classical applications. It is all different
today. Traditional approach is now challenged by
smaller schools and educational centers offering
short but highly specialized courses mainly tailored
by corporations providing related technology. By getting
selected certificates many can quickly start well
paid careers without the need to spend years to get
full university education. The downside of this approach
is reliance on software and hardware manufacturers
who are aggressively shaping education by
offering what best serves their immediate corporate
needs, but not necessarily long-term interests of the
profession. Omitting theoretical foundations and core
skills negatively impacts complex projects in the form
of low product quality, missed delivery dates, or going
over budget. Although professional certificates are
valuable and very useful, universities must continue
to offer comprehensive programs designed to provide
complete and deep education.
The impact on Petnica is twofold. First, students
today have little understanding on how computers are
built and how they work, which forces us to delay or
avoid advanced topics or projects. Second, due to
short-lived product generations Petnica is not in the
position anymore to offer latest software and hardware
products, so the motivation of prospective students
to come to see and use something new has
entirely disappeared. What Petnica could do then?
Plugging holes in their knowledge is perhaps not
what we should be spending much time on. Also,
buying greatest and latest software and hardware
would be extremely expensive and very short-lived. Is
it then possible to offer something challenging and
exciting? Something that will attract best students
and allow them to learn and apply something new,
something they cannot do elsewhere?
In my opinion there is. Computer science projects
should be integrated with other programs in the supporting
role, with projects relating to scientific simulations,
data acquisition, processing and visualization,
interfacing with laboratory equipment, process automation,
or autonomous computer-controlled experiments
for example. This approach would bring the
following benefits: (1) projects would be much more
interesting and challenging; (2) chance to build teamwork
skills and gain experience in multidisciplinary
projects would be exceptional; (3) and finally, Petnica
would utilize resources more efficiently using unique
advantages very few other schools could offer
|