-
41. Data: 2011-09-17 14:11:31
Temat: Re: Nauka programowania od czego zacząć?
Od: BartekK <s...@N...org>
W dniu 2011-09-16 17:26, Piotrek pisze:
> Do języków programowania (ewentualnie) dojdziecie jak będzie potrafiła
> mniej więcej pseudo-formalnie opisać to, co che zrobić.
Otóż to.
Programowanie to nie nauka języka, składni i poleceń, to sposób myślenia
o problemie, o możliwych zdarzeniach, i możliwych sposobach rozwiązania
ich. Najpierw jest algorytm, i sposób jego tworzenia, a dopiero potem
można myśleć o jakimś sposobie jego przelania w jakiś język który coś
wykona. Cała sztuka to umiejętność projektowania algorytmu. Choćby to
było na kartce, i choćby to miał być algorytm "jak zrobić jajecznice"
--
| Bartłomiej Kuźniewski
| s...@d...org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338
173
-
42. Data: 2011-09-17 15:27:32
Temat: Re: Nauka programowania od czego zacząć?
Od: Jarosław Sokołowski <j...@l...waw.pl>
Lelek@ napisał:
> A ja widzę. To ćwiczy mózg i abstrakcyjne myślenie. Przejść z wpisu
> w rejestrze jest dużo łatwiej do pojęcia zmiennej niż zrozumieć komuś
> piszącemu w delphi czy javie co to jest ta zmienna. Oni nigdy tego
> nie zrozumieją, szczególnie, że w jabie nie ma unsigned co okropnie
> komplikuje programowanie.
Ma to też drugą stronę. Jakiś czas temu pomagałem córce znajomych
w (szkolnej) nauce C++ (a może C, nie pamiętam dokładnie). Liceum,
jedno z lepszych, a ona z tych najzdolniejszych i najbardziej
ambitnych. Jakaś taka podstawowa numeryka, liczby pierwsze, równania
kwadratowe itp. Zdziwiła się bardzo informacją, że w tym lub podobnym
języku napisane jest Windows, Office i właściwie wszystko czego używa.
"To musi byc okropnie trudne, tak wszystko zaprogramować żeby działało
i wyglądało" -- na twarzy miała takie współczucie, że chyba gotowa
była w tym momencie zapłacić Gatesowi dziesięć razy więcej niż żąda.
Musiałem jej wytłumaczyć na czym w praktyce wygląda pisanie programów.
W szkole nikt jej tego nie powiedział.
--
Jarek
-
43. Data: 2011-09-17 15:28:21
Temat: Re: Nauka programowania od czego zacząć?
Od: Jarosław Sokołowski <j...@l...waw.pl>
Pan Jacek napisał:
>>> Mam 8 letnią córkę. Chciałbym ją w jakiś sposób zarazić sztuką
>>> programowania.
[...]
>> Ja moją od ponad roku uczę assemblera :-) nawet skutek jest :-)
>> Nie zacznę uczyć programowania w C do czasu aż nie zrozumie, że
>> zmienna to wpis w rejestrze czy pamięci procesora :-)
>
> Nie dziwie sie. Zboczen jest wiele.
Ale tego akurat w żadnym wypadku nie można nazwać pedofilią.
--
Jarek
-
44. Data: 2011-09-17 15:46:27
Temat: Re: Nauka programowania od czego zacząć?
Od: Luke <l...@l...net>
> Może do końca nie jest to zgodne z zakresem tematycznym tego forum ale liczę na
> życzliwe podpowiedzi.
Każdy odpowie inaczej, ja też dorzucę swoje trzy grosze.
Nie wiem czy 8 lat to nie jest za wcześnie. Ja zacząłem programować
gdzieś tak w wieku 10-11 lat. Zaczynałem od BASIC-a na Spectrum i Atari.
Przy czym BASIC na spectrum był teoretyczny (programy pisałem na kartce)
ze względu na brak dostępu do sprzętu.
Następnie po kilku latach po przesiadce na peceta był Pascal. To
wymagało całkowitego przeprogramowania myślenia na strukturalne
konstruowanie algorytmów, zdziwienie że nie ma numerowanych linii i da
się bez goto. W zasadzie w tym wieku (miałem z 15 lat) można się szybko
przestawić i BASIC mi krzywdy nie zrobił, a dodatkowo znam zalety
programowania strukturalnego.
Natomiast uważam za swój największy błąd zajmowanie się Pascalem zamiast
C. Po przyjęciu nawyków pascalowych przejście do C jest niesamowicie
trudne i w zasadzie nigdy mi się w pełni nie udało tego zrobić, bo C
zająłem się już znacznie później. Odpowiednio wczesne uczenie alokacji
pamięci i uważania na indeksowanie zmiennych (aby program nie wywalał
się z niewiadomego powodu), odpowiednio wczesne zwracanie uwagi na pewne
galimatiasy konstrukcyjne pozwoliłoby mi na kodowanie w C "bez
zastanowienia", jednak tego etapu nigdy nie osiągnąłem, gdyż C uczyłem
się w wieku, kiedy umysł nie chłonie wszystkiego i wiele rzeczy się
momentalnie zapomina, a potem godzinę szuka błędu typu wyjście za
tablicę o jeden rekord. Dlatego byłem zmuszony po wejściu windowsa
przejść na Delphi zamiast jakiegoś C++ i to wspominam ze smutkiem. Tutaj
nauczyłem się dopiero myślenia obiektowego (bo Delphi jest obiektowe, a
Pascal nie był) na tyle, na ile musiałem. Potem miałem okres skutecznego
programowania w czystym C, ale to wymagało częstego sięgania do książek,
gdyż zapominałem pewne sprawy bardzo szybko.
Co ja mogę doradzić?
1. Zacznij od nauki Logo. Niech córka spróbuje pisać proste programy
sterujące żółwiem, potem może wprowadzać bardziej skomplikowane
elementy, pętle, instrukcje warunkowe (rysowanie jakichś wielkich
ażurowych wzorków). Trzeba zachęcić do zabawy w eksperymentowanie - co
będzie gdy zmienię tę linię w taki sposób i dlaczego?
2. Przejdźcie potem na czyste C i realizujcie np. książkę "Algorytmy" z
Helionu. Niech to będzie czyste C, nieobiektowe, z samym stdin i stdout.
Tak, żeby wiedzieć co to są pętle for, do-while, repeat-until, co to
jest funkcja, jak grupować kawałki kodu w funkcje, i tak dalej. Do tego
np. rekurencja.
3. Jak czyste C opanujecie dość dobrze, lecimy C++ (uważam i będę
uważał, że od tego języka trzeba się zacząć uczyć programowania
obiektowego). Też na stdin/stdout. Realizujemy myślenie obiektowe, czyli
konstruowanie obiektów, dziedziczenie.
4. Potem można robić GUI i nauczyć się odniesienia obiektowości do
elementów tegoż GUI.
Jeśli córka to zrealizuje (ale to kwestia lat), to nie będzie miała
żadnego problemu z przejściem na dowolny język programowania, bo
elementy, schematy i konstrukcje są w zasadzie identyczne, a zmienia się
tylko składnia i detale. Natomiast to, że opanuje C/C++ z dobrym
zrozumieniem granicy między nimi będzie zaletą i atutem, bo wszystkie
nowsze języki są łatwiejsze i myśleć tam trzeba mniej. Jak na studiach
każą jej przeliczyć 1500 wyników badań w taki sam sposób, to napisze
sobie stronę kodu w R albo Octave i zrobi obliczenia w 15 minut idąc
potem do koleżanki, a inni studenci będą 5 nocy obklikiwać je w mozolnie
zrobionych arkuszach. Jak trzeba będzie przekonwertować 1500 zdjęć, to
napisze sobie skrypt shellowy do imagemagicka, zamiast się zastanawiać
nad makrami albo ręcznie przerabiać każde. Do takich przykładowych
ułatwień życia ma służyć szaremu człowiekowi umiejętność programowania.
Nigdy też nie podzielałem i nie podzielam opinii, że należy się uczyć
programowania od programowania obiektowego, co spotyka się w niektórych
książkach. Znam osoby, które tak zrobiły i mają wielkie problemy z
zakodowaniem pewnych rzeczy (generalnie wszystko robiłyby obiektowo).
Luke
-
45. Data: 2011-09-17 20:14:25
Temat: Re: Nauka programowania od czego zacząć?
Od: Tomasz Pyra <h...@s...spam.spam>
W dniu 2011-09-17 04:05, Maciek pisze:
> Użytkownik J.F napisał:
>> A potem i tak sie okaze ze w szkole szostki z informatyki dostaje sie
>> za umiejetne sformatowanie tekstu w Wordzie.
>>
>
> Bywa gorzej - pani każe założyć blog i z tego rozlicza ... Formatowanie
> tekstu jest przydatne choćby w pracy. Potem całkiem poważni ludzie tekst
> w tabelce worda formatują przy pomocy spacji a nie przeznaczonych do
> tego poleceń.
Umiejętność formatowania tabelek w wordzie umożliwia zdobycie pracy
jakieś 2x lepiej płatnej niż bycie nauczycielem w szkole.
Dlatego kumaty nauczyciel informatyki (czy jak ten przedmiot się teraz
nazywa), to rzadkość.
Czasami się trafi jakiś pasjonat, ale niezwykle rzadko.
-
46. Data: 2011-09-17 20:15:23
Temat: Re: Nauka programowania od czego zacząć?
Od: "Lelek@" <r...@i...iw>
"Jacek" <a...@o...pl> wrote in message
news:u3iciufigl34.llsixalkd9tv.dlg@40tude.net...
> Dnia Fri, 16 Sep 2011 15:52:37 +0200, Lelek@ napisał(a):
>> Ja moją od ponad roku uczę assemblera :-) nawet skutek jest :-) Nie
>> zacznę
>> uczyć programowania w C do czasu aż nie zrozumie, że zmienna to wpis w
>> rejestrze czy pamięci procesora :-)
>
> Nie dziwie sie. Zboczen jest wiele.
Wiesz moja córka już mówi płynnie po angielsku i uczy się też chińskiego, a
twoja ?
-
47. Data: 2011-09-17 20:18:21
Temat: Re: Nauka programowania od czego zacząć?
Od: "Lelek@" <r...@i...iw>
"BartekK" <s...@N...org> wrote in message
news:j52a47$l5j$1@mx1.internetia.pl...
>W dniu 2011-09-16 17:26, Piotrek pisze:
>> Do języków programowania (ewentualnie) dojdziecie jak będzie potrafiła
>> mniej więcej pseudo-formalnie opisać to, co che zrobić.
> Otóż to.
> Programowanie to nie nauka języka, składni i poleceń, to sposób myślenia o
> problemie, o możliwych zdarzeniach, i możliwych sposobach rozwiązania ich.
> Najpierw jest algorytm, i sposób jego tworzenia, a dopiero potem można
> myśleć o jakimś sposobie jego przelania w jakiś język który coś wykona.
> Cała sztuka to umiejętność projektowania algorytmu. Choćby to było na
> kartce, i choćby to miał być algorytm "jak zrobić jajecznice"
Tak ale to trzeba omawiać. Nawet taką prostą czynność jak nakarmienie kota.
Można kazać rozpisac przypadki co należy zrobić i co będzie jak to czy
tamto.
-
48. Data: 2011-09-17 20:25:32
Temat: Re: Nauka programowania od czego zacząć?
Od: "Lelek@" <r...@i...iw>
"Jarosław Sokołowski" <j...@l...waw.pl> wrote in message
news:slrnj79f34.mso.jaros@falcon.lasek.waw.pl...
> "To musi byc okropnie trudne, tak wszystko zaprogramować żeby działało
> i wyglądało" -- na twarzy miała takie współczucie, że chyba gotowa
> była w tym momencie zapłacić Gatesowi dziesięć razy więcej niż żąda.
> Musiałem jej wytłumaczyć na czym w praktyce wygląda pisanie programów.
> W szkole nikt jej tego nie powiedział.
Moja córka ma własny komputer od chyba 4 rokużycia. Najpierw miała laptopa
z core2duo i grała w larę croft, a teraz ma potężną maszynę i dwa monitory,
a ma niecałe 9 lat.
Ja ją cisnę żeby nie szła drogą wykluczenia społecznego. Uczę wszystkiego od
zaznaczania tekstu klawiszami z sziftem i controlem, przez cmd i pingowanie
jak nie działa internet.
Jak coś nie gra to pokazuję gdzie się w windowsie ustawia. No i windows ma w
wersji Angielskiej, a nie Polskiej.
Nigdy nie kupiłem konsoli żeby nie zgłupiała od prostego interfejsu.
Nie wiem ale ja prę z nauką żeby miała szerokie horyzonty. Zapisałem też na
dodatkowe zajęcia po lekcjach na szachy, robotykę i chiński.
-
49. Data: 2011-09-17 20:27:38
Temat: Re: Nauka programowania od czego zacząć?
Od: "Lelek@" <r...@i...iw>
"Luke" <l...@l...net> wrote in message
news:4e74c0d1$0$2441$65785112@news.neostrada.pl...
> Następnie po kilku latach po przesiadce na peceta był Pascal. To
> wymagało całkowitego przeprogramowania myślenia na strukturalne
> konstruowanie algorytmów, zdziwienie że nie ma numerowanych linii i da
> się bez goto. W zasadzie w tym wieku (miałem z 15 lat) można się szybko
> przestawić i BASIC mi krzywdy nie zrobił, a dodatkowo znam zalety
> programowania strukturalnego.
Za to BASCOM robi krzywdę młodym z podstawówek :-)
Po kilku latach z BASCOMEM nie będą już nigdy rozumieli tych wszystkich
bitów w rejestrach :-)
-
50. Data: 2011-09-17 20:30:47
Temat: Re: Nauka programowania od czego zacząć?
Od: "Lelek@" <r...@i...iw>
"Tomasz Pyra" <h...@s...spam.spam> wrote in message
news:4e74ff9e$0$2500$65785112@news.neostrada.pl...
> Dlatego kumaty nauczyciel informatyki (czy jak ten przedmiot się teraz
> nazywa), to rzadkość.
> Czasami się trafi jakiś pasjonat, ale niezwykle rzadko.
Chociaż moją córkę nauczyli w szkole rysować w paincie i formatować w
wordpadzie. W domu ma open office i w nim cos córka pisze. Drukuje na
drukarkach sieciowych :-) Świadomie wybierają na której chce drukować :-)