Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da ste profesor koji podučava C++...

[es] :: C/C++ programiranje :: Da ste profesor koji podučava C++...

[ Pregleda: 2791 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Da ste profesor koji podučava C++...23.10.2010. u 15:37 - pre 163 meseci
Recimo da imate priliku na fakultetu predavati C++ ljudima koji su već prošli nekakve osnove tog jezika, pa čak i osnove objektnog programiranja. Znači, znaju što su klase te ih sada treba uvesti u Windows (GUI) aplikacije preko VCL-a ili MFC-a. Imate 12 tjedana (24 sata) nastave. Kakve bi vi nastavne cjeline podučavali? Npr., uvod u objekte, event-e, forme, baze podataka, biblioteke, mrežne c-s aplikacije itd.. Što mislite da je najvažnije za naučiti i kojim redoslijedom? Kako bi ispunili ta 24 sata?

Ja imam neku svoju predožbu kako bi koncipirao stvari, no ovo je prilika da i ljudi iz prakse odmah kažu što to zapravo fali onima koji dolaze s faksa? Više iskustva (praktičnih zadataka) ili znanja iz nekih određenih područja?

 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Da ste profesor koji podučava C++...23.10.2010. u 16:49 - pre 163 meseci
Da li si se ti to obavezao da ćeš da predaješ, a da nisi prvo pripremio gradivo? Nadam se da to nije slučaj :-) Evo nekih stavki vezanih za programiranje uopšte, a ne samo za C++:

- Potrebno je objasniti ljudima da je Copy-Paste programiranje Zlo, i da je vreme potrošeno na izbegavanje Copy-Paste kodova Dobro Uloženo Vreme.
- Loše je i počinjanje sa kodiranjem, a da još nije jasna cela slika.
- Neki ignorišu važnost debagovanja i pravljenja log fajlova. Ljudi često ne mogu da postave debagovanje kako valja, kad se sretnu s nekom novom tehnologijom, i onda pokušavaju da se dovijaju na razne načine u zamenu za debagovanje, što je Bad Business.
- Zapravo proces debagovanja je esencijalan, ali ljudi se uče pravilima u letu, umesto da nauče neke stvari odmah na startu. Preporučujem knjigu "Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems".
- Pisanje jasnog i elegantnog koda, sa upotrebljivim komentarima je takođe slabo. Ljudi se ne obaziru na druge koji će možda preuzeti njihov kod, a nisu čak ni svesni da će i njima samima biti teško da se snađu u kodu koji nisu gledali pola godine.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Da ste profesor koji podučava C++...23.10.2010. u 19:11 - pre 163 meseci
Citat:
Mihajlo Cvetanović: Da li si se ti to obavezao da ćeš da predaješ, a da nisi prvo pripremio gradivo? Nadam se da to nije slučaj :-).

Već godinama sudjelujem u nastavi (asistent) ali nikada još nisam imao slobodu da osobno odredim što i kako učiti, sastaviti sav predmet , počevši od predavanja do vježbi. Nije još žurba. Tek za 3 mjeseca to počinjem ;) pa zato sada pitam.

Citat:
Mihajlo Cvetanović
- Potrebno je objasniti ljudima da je Copy-Paste programiranje Zlo, i da je vreme potrošeno na izbegavanje Copy-Paste kodova Dobro Uloženo Vreme.
- Loše je i počinjanje sa kodiranjem, a da još nije jasna cela slika.
- Neki ignorišu važnost debagovanja i pravljenja log fajlova. Ljudi često ne mogu da postave debagovanje kako valja, kad se sretnu s nekom novom tehnologijom, i onda pokušavaju da se dovijaju na razne načine u zamenu za debagovanje, što je Bad Business.
- Zapravo proces debagovanja je esencijalan, ali ljudi se uče pravilima u letu, umesto da nauče neke stvari odmah na startu. Preporučujem knjigu "Debugging: The Nine Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems".
- Pisanje jasnog i elegantnog koda, sa upotrebljivim komentarima je takođe slabo. Ljudi se ne obaziru na druge koji će možda preuzeti njihov kod, a nisu čak ni svesni da će i njima samima biti teško da se snađu u kodu koji nisu gledali pola godine.


Da. Sve ja to razumijem, no to mi više spada pod neku "kulturu" programiranja i pisanja coda. Kao npr. kada od ranog početka treba uvesti praksu uvlačenje linija kod blokova naredbi itd.. I to je u redu. Podrazumijeva se da code mora ličiti na nešto. No sada me više zanima tehnologija tj. na čemu točno najviše zahtjevati. Kako danas gledam tržište i potraživanja nekako bih se najviše orijentirao na baze podataka. Znati raditi db klijent aplikacije u više-klijentskom okruženju, te mrežne klijent-server aplikacije i poznavanje mrežnih protokola bi bila dobra osnova za sve ostalo (čak i industrijske certifikate). Jasno, tu su i osnovne tehnike i mehanizmi koji se ne bi smjeli zapostaviti poput mutex, threadovi, rad s bibliotekama (statičke, dinamičke, activex) itd., dok bih u potpunosti možda zanemario grafičku obradu (opengl i sl.) jer nekako ne vidim isplativost toga.

Pitam jer nisam samo na jednom mjestu vidio omalovažavanje ljudi koji izađu s faksa i tretira ih se kao gomilu štrebera koji tek nakon što se zaposle trebaju naučiti posao. Pa mi nije jasno - u čemu je taj problem :D Jasno, veelika komponenta je i iskustvo, ali i samouk programer s iskustvom obično ima puno rupa u znanju u pojedinim područjima i teže je prilagodljiv novim stvarima i tehnologijama.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Da ste profesor koji podučava C++...23.10.2010. u 20:35 - pre 163 meseci
Najlakši način da studenti nauče nešto konkretno je da naprave nešto konkretno. Treba im dati relativno težak problem koji mora da se raščlani na lakše, i za koji ti trebaju razne tehnologije (uključujući i baze podataka, Unicode (ovo obavezno), klijent-server komunikaciju, klijentsku i serversku komponentu, paralelno procesiranje, polimorfizam, možda i korišćenje nekih specifičnih struktura podataka). I studenti treba da se sastave u timove, i taj problem treba da bude toliko težak da 5 studenata može da ga reši tek za mesec dana. Timu treba predočiti alate (najpre SVN) i gotove biblioteke s kojim treba da rade (najpre boost), ali im ostaviti na izbor da to zaista i iskoriste. Studenti moraju da prave klase koje će koristiti drugi članovi tima, i moraju da se dogovaraju oko interfejsa tih klasa. Mora da postoji i vođa projekta koji će da vodi računa o vremenskim rokovima, i zahtevima korisnika, a korisnik (to jest asistent) treba da simulira prave korisnike koji u sred projekta menjaju zahteve. Kod tih menjanja zahteva se tek vidi koji kod je dobar da izdrži te izmene, a koji se raspada pod težinom da se išta izmeni. Projekat ne treba da bude toliko kompleksan da svaki član tima može da radi na jednoj celini nezavisno od ostalih članova (moraju da zavise jedan od drugog), niti toliko težak da im treba više od sat vremena dnevno po čoveku da ga završe.

Na kraju projekta timovi treba da testiraju rešenja drugih timova (ovo može biti zabavno). Studenti treba da razmisle kako su zaista trebali da reše problem (to jest da li su nešto naučili iz svojih grešaka). Asistent treba da im pokaže kako bi on rešio neke stvari. Projekat nije neuspešan ako tim nije stigao da ga završi. Najvažnija stvar koju studenti treba da nauče je da rade u timu, da cene sopstveno i tuđe vreme, i da ostave svoj ego po strani kad rade sa drugim ljudima. Na kraju kursa treba zadati drugi projekat, u nadi da će biti značajno uspešniji od onog na početku, i to tako da mogu da koriste i onaj kod koji su već napravili (ako su prvi projekat pravili inteligentno).

Hmm, ni ovde nema ništa posebno vezano za C++, ali to i nije loše. Virtuelno i višestruko nasleđivanje mi do sada nikad nisu ni trebali.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Da ste profesor koji podučava C++...23.10.2010. u 20:59 - pre 163 meseci
E da, sad se setih. Studenti moraju da prihvate rad sa exceptionima. Tek sam u C# shvatio koliko su korisni. Naravno, rad sa exceptionoma znači da svi dinamički objekti moraju da budu zaštićeni od curenja (RAII idiom), a to u C++ ponekad ume da bude smorno za kodiranje. Ako te dve stvari usvoje kurs neće biti uzaludan :-)
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Da ste profesor koji podučava C++...23.10.2010. u 21:06 - pre 163 meseci
Evo jedan primer programa za 4 razred gimnazije, prirodno matematickog smera, cisto da se orjentises. Radi se o Delphiju, ali se naravno sve uklapa u BCB. Kada budes procitao videces da su neke stvari zastarele, neke nisu bas najbolje koncipirane ili su nedorecene, a nekih nema (socekti). Naravno RAII, izuzeci, STL, threadovi,...

Ipak, s obzirom da se radi o akademskom kursu, ja bih isao drugacijim konceptom:
* prvih par casova upoznavanje (kao 1. i 2. stavka)
* zatim bih definisao malo veci projekat (neka baza podataka + slanje emailova korisnicima u bazi + oline provera verzije programa) koji bi se resavao "korak po korak" u preostalom vremenu


Evo programa:

1. Programi zasnovani na prozorima (2)
* Osnovne karakteristike programa zasnovanih na prozorima.
* Elementi grafičke korisničke površine (Graphical User Interface).
* Programi rukovođeni događajima (događaji, izvori događaja i rukovaoci događajima).
* Problemi koje rešava Delphi.

Pri realizaciji tematske celine "PROGRAMI ZASNOVANI NA PROZORIMA" objasniti razliku između klasičnih programa koji dijalog sa korisnikom vode u tekstualnom režimu rada, red po red, i savremenih programa kod kojih se komunikacija sa korisnikom obavlja u grafičkom okruženju. Istaći značaj poštovanja specifikacije koju je postavila firma Microsoft pri projektovanju grafičke korisničke površi (lakše snalaženje u programu bez obzira na proizvođača). Učenicima se mogu prikazati neki od njima poznatih programa (Word, Excel i dr.) kako bi uočili šta im je zajedničko u pogledu dizajniranja (File je uvek prvi podmeni u glavnom meniju; funkcionalno povezane komponente su objedinjene u grupe; svaki prozor ima neku centralnu temu; stilska usaglašenost svih prozora i dr.). Posebnu pažnju obratiti na pojam događaj i na načine nastajanja događaja.

2. Uvod u razvojno okruženje Delphi (8)
* Početak rada i upravljanje Delphi-jem.
* Prazan projekat.
* Čuvanje i otvaranje projekta.
* Obrazac i podešavanje njegovih svojstava.
* Dodavanje komponenata obrascu.
* Komponenta u žiži.
* Jednostavne komponente: oznaka (Label), okvir za tekst (Edit), dugme (Button) i časovnik (Timer).
* Svojstva komponenata i njihovo podešavanje.
* Događaji komponenata i rukovaoci događajima.

Pri realizaciji tematske celine "UVOD U RAZVOJNO OKRUŽENJE DELFI" objasniti najvažnije komande za rukovanje Delphi okruženjem. Izloženu materiju uvežbavati na primerima sa nekoliko okvira za tekst za unos podataka, oznaka za prikaz rezultata i dugmadi za pokretanje izračunavanja. Poželjno je da se prvi primeri, dok učenici ne steknu osnovne navike za rad u razvojnom okruženju Delphi, demonstriraju metodom „korak po korak“ tako da učenici mogu detaljno da isprate sve etape u izradi aplikacije. Rukovaoci događajima za dugmad treba da budu jednostavne linijske strukture, jer pri realizaciji ove tematske celine nije akcenat na izradi logički složenih aplikacija. Nastavnik bi trebalo da insistira da se datotekama i objektima (umesto od Delphija ponuđenih imena) daju osmišljena imena koja bliže odslikavaju njihov tip i namenu korišćenjem Mađarske notacije, tj. zadavanje prefiksa u imenu koji ukazuje na tip datoteke ili objekta. Obavezno tražiti da se za novi projekat napravi novi katalog, da zbog navika iz Pascala ne bi došli u situaciju da ne mogu da razaznaju iz kojih se datoteka sastoji neki projekat.

3. Komponente izbora i kontejnerske komponente (10)
* Komponente izbora: okvir za potvrdu (CheckBox), radio-dugme (RadioButton), grupa radio-dugmadi (RadioGroup), okvir s listom (ListBox), kombinovani okvir (ComboBox).
* Kontejnerske komponente: okvir za grupu (GroupBox), ploča (Panel).
* Vizuelno grupisanje komponenata: ram (Bevel).

Pri realizaciji tematske celine "KOMPONENTE IZBORA I KONTEJNERSKE KOMPONENTE" korišćenje obrađenih komponenti uvežbavati programima sa razgranatim strukturama. Uslovi treba da se oslanjaju na stanje potvrđenosti okvira za potvrdu i radio-dugmadi. Za grupisanje logičke celine komponenata koristiti kontejnerske komponente.

4. Komponente za rad s nizovima (6)
* Višeredni okvir za tekst (Memo).
* Mreže podataka (StrigGrid).
* Projektovanje aplikacija korišćenjem jednodimenzionalnih i dvodimenzionalnih nizova.

Pri realizaciji tematske celine "KOMPONENTE ZA RAD S NIZOVIMA" višeredni okvir za tekst može da se koristi za unos i prikaz jednodimenzionalnih nizova: jedan red po podatku, a mreža podataka za dvodimenzionalne nizove.

5. Multimedijalne aplikacije i štampanje (8)
* Platno za crtanje (Canvas).
* Crtanje linija i prostih figura.
* Štampanje crteža i teksta.
* Komponenta za sliku (Image).
* Reprodukcija zvuka i video snimaka (MediaPlayer).

Pri realizaciji tematske celine "MULTIMEDIJALNE APLIKACIJE I ŠTAMPANJE" učenicima pri izradi grafičkih aplikacija skrenuti pažnju da koordinatni sistem platna (Canvas) i svih komponenti, što je standard u Delphiju, ima kao početak gornji levi ugao. Ako im ovakva orijentacija predstavlja problem (zbog navika iz matematike), u početku im se može dati funkcija koja preračunava koordinate zadate pod pretpostavkom da je koordinatni početak donji levi ugao. Istaći značaj preslikavanja prirodnih koordinata (koji su realni brojevi) na celobrojne ekranske pri crtanju matematičkih funkcija, jer ako im se zada da nacrtaju grafik funkcije, na primer y=sin(x), skoro bez izuzetka će meri 1 u Dekartovom koordinatnom sistemu dodeliti jednu tačku (piksel) na ekranu i tako umesto sinusoide dobiti pravu. Takođe, skrenuti pažnju na neophodnost menjanja razmere pri štampanju grafičkih elemenata zbog različitih rezolucija ekrana i štampača (lik koji na ekranu ima normalne dimenzije, na hartiji može izgledati minijaturno).

6. Prozori za dijalog i izrada menija (6)
* Potprogrami za prozore za dijalog (ShowMessage, MessageDlg, InputBox).
* Prozori za dijalog za otvaranje i zatvaranje datoteka (OpenDialog, SaveDialog) i za izbor boje (ColorDialog).
* Izrada menija.
* Komponente glavnog (MainMenu) i pomoćnog menija (PopupMenu).

Pri realizaciji tematske celine "PROZORI ZA DIJALOG I IZRADA MENIJA" istaći razliku između uslovljenih (modal) i neuslovljenih (modeless) prozora za dijalog. Na jednostavnom primeru izložiti kako mogu samostalno napraviti prozore za dijalog. Pri tom ukazati na značaj svojstva Modal Result dugmadi koje preuzima prozor i na osnovu njega preduzima odgovarajuće akcije.

7. Osnovi rada s bazama podataka (10)
* Pojam baze podataka (relaciona baza, tabele, atributi, n-torke).
* Pojam primarnog ključa, stranog ključa i sekundarnog indeksa.
* Integritet baze podataka.
* Tipovi baza podataka (lokalne, klijent/server, distribuirane).
* Organizacija veze s bazama podataka.
* Tehnologija BDE (Borland Database Engine).
* Stvaranje baze podataka korišćenjem programa Database Desktop. Projektovanje aplikacije za rad s bazama podataka korišćenjem čarobnjaka.

Pri realizaciji tematske celine "OSNOVI RADA S BAZAMA PODATKA" potrebno je izložiti teorijske osnove rada sa bazama podataka. Kao ilustracija izloženog materijala može da se napravi jednostavna baza podataka od par tabela korišćenjem Borland Database Engine.

8. Komponente za vezu s bazama podataka (12)
* Komponente za vezu s tabelom baze podataka (Table, DataSource).
* Komponente za prikaz i menjanje podataka u bazi (DBGrid, DBText, DBEdit, DBMemo, DBImage), Filtriranje podataka.
* Navigacija kroz tabelu (DBNa-vigator).
* Obrada tabele iz programa (kretanje po tabeli - First, Last, Next, Prior, Locate, GotoNearest, brisanje zapisa - Delete, umetanje zapisa - Insert).

Pri realizaciji tematske celine "KOMPONENTE ZA VEZU S BAZAMA PODATAKA" skrenuti pažnju na razliku između tabela (Table) baze podataka koje su fizički smeštene na disku i skupa podataka (DataSet) koji omogućava pristup podacima tabela. Istaći da se skup podataka ne može poistovećivati sa tabelom, jer on predstavlja skup slogova formiranih od podataka jedne ili više tabela. Ukazati na grešku koju početnici često prave: zaboravljaju da zatvore skup podataka (Table1.Close) pre nego što pristupe izmeni svojstava DatabaseName i TableName). Učenicima mora biti potpuno razjašnjeno koji su to režimi u kojima se može nalaziti baza podataka (dsInactive, dsBrowse, dsEdit, dsInsert) i njihova svojstva. U protivnom, biće prijavljena greška, na primer, pri pokušaju izmene sloga a da prethodno skup podataka metodom Edit nije doveden u stanje dsEdit. Učenicima skrenuti pažnju da pri pristupu polju tabele moraju voditi računa o njegovom tipu, da se ne bi desilo da se zbog pokušaja pristupa polju tipa string korišćenjem svojstva AsFloat prijavi greška. Pošto učenici obično komponentu DataSource smatraju suvišnom, prirodno postavljaju i pitanje zašto se vizuelne komponente ne bi mogle direktno povezati sa skupom podataka, treba im navesti neke primere prednosti upotrebe ove komponente. Kako ona predstavlja ventil koji vizuelnim komponentama omogućava ili blokira pristup podacima (korišćenjem svojstva Enabled), korisna je kada zbog nekog izračunavanja nad podacima treba privremeno raskinuti vezu da bi se ubrzalo izračunavanje. Ili, ako vizuelne komponente treba da „vuku“ podatke iz neke druge baze iste šeme podataka (prelazak sa jednokorisničke na višekorisničku aplikaciju koja treba da radi na mreži) dovoljno je samo preusmeriti svojstvo DataSet komponente DataSource, umesto da se to radi za svaku vizuelnu komponentu posebno.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Da ste profesor koji podučava C++...23.10.2010. u 21:14 - pre 163 meseci
Timski rad nije loša ideja ali u praksi malo to fakulteta prakticira i to zbog razloga prebacivanja odgovornosti. Dovoljno je nekad da se jedan od njih razboli ili iz nekog razloga ne odradi svoj dio posla i odmah i drugi se počnu izvlačiti/odugovlačiti i onda cijeli projekt zna djelovati neozbiljno. A da ne spominjem i to da se neki izvlače na druge. Obično u timu će biti jedan ili dvojica koji će znati odraditi svoj dio posla, a ostali će se tek potpisati na papir.

A exceptioni se već rade u uvodu objektnog programiranja. Znam da sam kao jedan od primjera baš naveo i bad_alloc exception. Jasno, svugdje je upotrebljivo, kao i proširenje __finally.
 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Da ste profesor koji podučava C++...23.10.2010. u 21:25 - pre 163 meseci
E super X-Files! Ovo je stvarno izvrsno. Lijepo i kategorizirano složeno. Zahvaljujem ;)

I ja bih tako započeo. Prvo malo oćenito o C++ bibliotekama pa onda specifično VCL. C++ Builder razvojno okruženje, opcije, editor, vrste aplikacija... pa onda prvi VCL projekt, ShowMessage funkcija, a naknadno preći na standardni set komponenti (namjena, događaji, način korištenja), dijalozi itd.. I jasno, to gledati kao temelj za ostale tehnologije (ADO, Indy itd..).
 
Odgovor na temu

lermi
Freelancer

Član broj: 230692
Poruke: 62
*.crnagora.net.



+5 Profil

icon Re: Da ste profesor koji podučava C++...29.10.2010. u 20:47 - pre 163 meseci
Citat:
Mihajlo Cvetanović: I studenti treba da se sastave u timove, i taj problem treba da bude toliko težak da 5 studenata može da ga reši tek za mesec dana.


Metodološki to nije jednostavno. Potrebno je imati visokomotivisane učenike i grupe vrlo mudro sastaviti.

Inače, teški zadaci leže introvertitnim inteligentnim učenicima. One prosječne će bacati u očaj, i eto copy/paste programiranja.
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1249



+96 Profil

icon Re: Da ste profesor koji podučava C++...30.10.2010. u 17:05 - pre 163 meseci
Ne moraju zadaci da budu komplikovani za rešavanje, nego samo dovoljno zahtevni da timu od 5 studenata treba mesec dana da ga završi ako mu posveti sat vremena dnevno. Cilj nije da oni na kraju naprave nešto bitno, nego da nauče šta je dobro a šta loše u projektovanju i kodiranju, i zašto je to tako. Naravno, veliki je problem proceniti težinu, pošto razlika u kvalitetu može da bude ogromna, ali zato sam i predložio stvaranje timova, da bi se to statistički malo poravnalo. Naravno da će najbolji student biti najzaslužniji za krajnje rešenje, ali i prosečni imaju svoje mesto u timu, jer nisu svi delovi koda komplikovani.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4901
*.dynamic.sbb.rs.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Da ste profesor koji podučava C++...30.10.2010. u 18:55 - pre 163 meseci
Ja bih "akademsku" nastavu koja se dotice "Windows Forms" aplikacija organizovao postavljanjem jednog "veceg" projekta. Kada kazem "veceg" pod time ne mislim "slozenijeg", vec samo zahtevnijeg u smislu vremena (mesec dana) i broja tema kojih ce se dotaci (klasicne komponente, rad sa bazama, izvestaji, soketi, klase, tehnke: threadovi, ...).

Poenta bi i bila u tome da se od delova sklopi skladna celina, pri cemu bih nastavu organizovao tako da predavac na projektoru demonstrira konkretne korake (i dotice se detalja kada dodju na dnevni red) a studenti (recimo po dva-tri u grupi) to isto rade na svojim racunarima. Time bi imali elemente i frontalnog i grupnog rada, monoloske i dijaloske metode, prakticnog rada, ... i problemske nastave kao strategije...

Simulirao bih tok razvoja od idejne skice do realizacije, pri cemu ne bih prepustio studentima da sami resavaju problem (sem implementacije kreativnih detalja), vec bih glavnu nit vodio ja.

Mislim da bi ovako organizovana nastava bila daleko interesantnija od taksativne obrade tema.


Konacno, pored klasicnih ishoda koje bi ovakva nastava dala, podvukao bih stvaranje realne slike o vremenskoj perspektivi i slozenosti razvoja konkretnih WF aplikacija.

 
Odgovor na temu

itf
Zagreb

Član broj: 59794
Poruke: 993
*.adsl.net.t-com.hr.



+9 Profil

icon Re: Da ste profesor koji podučava C++...31.10.2010. u 09:50 - pre 163 meseci
Citat:
Mihajlo Cvetanović: Ne moraju zadaci da budu komplikovani za rešavanje, nego samo dovoljno zahtevni da timu od 5 studenata treba mesec dana da ga završi ako mu posveti sat vremena dnevno. Cilj nije da oni na kraju naprave nešto bitno, nego da nauče šta je dobro a šta loše u projektovanju i kodiranju, i zašto je to tako. Naravno, veliki je problem proceniti težinu, pošto razlika u kvalitetu može da bude ogromna, ali zato sam i predložio stvaranje timova, da bi se to statistički malo poravnalo. Naravno da će najbolji student biti najzaslužniji za krajnje rešenje, ali i prosečni imaju svoje mesto u timu, jer nisu svi delovi koda komplikovani.

Sve bi to bilo u redu da su oni svi zainteresirani. Ali kažem to je kao lanac - čim najslabija karika pukne sve se raspade. Umjesto toga vrlo često se studentima daju zasebni seminari tako da se na nikoga ne može izvlačiti ili tražiti izgovor.

Citat:
X Files: Ja bih "akademsku" nastavu koja se dotice "Windows Forms" aplikacija organizovao postavljanjem jednog "veceg" projekta. Kada kazem "veceg" pod time ne mislim "slozenijeg", vec samo zahtevnijeg u smislu vremena (mesec dana) i broja tema kojih ce se dotaci (klasicne komponente, rad sa bazama, izvestaji, soketi, klase, tehnke: threadovi, ...)..

Ta praksa je dobra i dosta profesora ju već koristi. Uzmu jedan projekt koji kroz nastavne cjeline samo proširuju novim stvarima. Mislio sam tako nešto smisliti, no teško je na ovoj razini izmisliti projekt koji bi mogao integrirati toliko tehnologija (biblioteke lib i dll, sockete, activex, baze..). Nekako mi jednostavnije upotrijebiti taj model više puta tj. smisliti 2-3 projekta gdje bi se jedan dio nastave radilo na jednom, drugi dio na drugom projektu itd...

Citat:
X Files: Poenta bi i bila u tome da se od delova sklopi skladna celina, pri cemu bih nastavu organizovao tako da predavac na projektoru demonstrira konkretne korake (i dotice se detalja kada dodju na dnevni red) a studenti (recimo po dva-tri u grupi) to isto rade na svojim racunarima. Time bi imali elemente i frontalnog i grupnog rada, monoloske i dijaloske metode, prakticnog rada, ... i problemske nastave kao strategije...

Simulirao bih tok razvoja od idejne skice do realizacije, pri cemu ne bih prepustio studentima da sami resavaju problem (sem implementacije kreativnih detalja), vec bih glavnu nit vodio ja.

Mislim da bi ovako organizovana nastava bila daleko interesantnija od taksativne obrade tema.


Konacno, pored klasicnih ishoda koje bi ovakva nastava dala, podvukao bih stvaranje realne slike o vremenskoj perspektivi i slozenosti razvoja konkretnih WF aplikacija.


Ovo već ovisi o broju studenata. I meni osobno je puno bolje kada nakon jednog dijela gradiva mogu im dati zadatak na tu temu da time utvrde ono što smo prošli, no kada imaš 90 studenata onda to nije moguće jer ne mogu svi stati u labos koji je namjenjen za 20-25 ljudi. Tada se nema izbora već razdjeliti nastavu: Za sve studente odjednom se drži predavanje, a vježbe se rade naknadno u grupama od po 20ak ljudi. U pravilu imam 4 sata (2 predavanja, 2 vježbi) svakih 7 dana. I tako 12 puta (službeno 45 sati)
 
Odgovor na temu

[es] :: C/C++ programiranje :: Da ste profesor koji podučava C++...

[ Pregleda: 2791 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.