W niektórych miejscach na świecie ludzie zwykle nie mają dostępu do komputerów (a zatem i niewielkiej wiedzy na ich temat), a nawet jeśli mają, sprzęt i oprogramowanie są przestarzałe, a korzystanie z nich wiąże się z awarią zasilania i tym podobne. Brakuje też dostępu do (dobrych) książek. Jak mogę uczyć informatyki w takich okolicznościach?
Martwię się, że nie będąc w stanie eksperymentować i stosować tego, czego się uczą, wcale się nie nauczą (dobrze), mimo że są niesamowicie zmotywowani i poświęcają większość swojego czasu na to hobby. Czy można uczyć CS tylko teoretycznie?
Odpowiedzi:
Pytanie o to, jak można studiować informatykę bez komputerów jest trochę jak pytanie o to, jak można studiować kosmologię bez teleskopów. Jasne, miło jest patrzeć na rzeczy, których się uczysz, i często bardzo pomocne jest bawienie się nimi. Ale jest wiele rzeczy, które możesz zrobić bez dostępu do komputera: w ekstremalnych warunkach prawdopodobnie prawdopodobnie zrobiłbyś prawie cały kurs licencjacki bez komputerów.
W praktyce dostęp do komputerów pomaga wzmocnić wiele z wiedzy zdobytej na kursie informatyki. Kursy programowania są oczywiście znacznie bardziej naturalne z dostępem do komputera. Z drugiej strony bycie zmuszonym do pisania kodu na papierze zachęca ludzi do zastanowienia się nad swoim kodem i upewnienia się, że naprawdę działa, zamiast tylko ciągłego uruchamiania go przez kompilator, aż się skompiluje, a następnie powtarzania trywialnych przypadków testowych dopóki oczywiste błędy nie znikną.
Tematy najbardziej naturalne bez komputerów byłyby bardziej matematyczne. Cała matematyka podstawowa, taka jak kombinatoryka i prawdopodobieństwo. Obliczalność, języki formalne, logika, teoria złożoności, projektowanie i analiza algorytmów, teoria informacji i kodowania. Wszystko związane z obliczeniami kwantowymi!
źródło
Istnieje oczywiste użycie papieru i ołówka. Kiedy nauczono mnie przetwarzania sygnałów, specjalny procesor sygnału nie był dla nas bezpośrednio dostępny i po prostu przekazaliśmy raporty papierowe.
Zwróć uwagę, że wielki informatyk Dijkstra najwyraźniej nie korzystał zbyt często z komputerów:
Cytat z pomnika Disjkstry
To pokazuje, że możesz robić świetne informatyki bez komputera!
Oprócz informatyki papierowej i ołówkowej problemy można również rozwiązać „w realnym świecie”, np. Demonstracja algorytmów sortowania z użyciem kart lub - co bardziej niezwykłe - z tańcem wykonywana przez Uniwersytet Sapientia .
źródło
Wiele teorii informatycznych ma charakter czysto teoretyczny i można je rozwiązać za pomocą pióra (cil) i papieru. Uzyskiwanie informacji o nich i przekazywanie ich światu zewnętrznemu wymaga komputera.
źródło
Zobacz wspaniałe pomysły na http://csunplugged.org/ . Google jest jednym ze sponsorów.
Ze strony:
źródło
Możesz, to całkiem oczywiste, jak byś to zrobił. Nie jestem pewien, jak przydatny byłby dla ludzi, ale możesz.
Ale nawet nie wiem, jak nauczyciel informatyki mógłby zapytać, jak można uczyć informatyki bez komputera.
Ponieważ jeśli możesz uczyć informatyki, to wiesz, jak to zrobić.
Jeśli wiesz, że-
Badanie normalizacji, struktury tabel danych dla baz danych, można wykonać na papierze i długopisu. (Zrobiłem to tylko na papierze i długopisie, kiedy studiowałem relacyjne bazy danych)
Podręczniki informatyki nie wymagają komputera.
Gdybyś kiedykolwiek wziął podręcznik informatyki i studiował go w bibliotece, wiedziałbyś, że nie potrzebujesz komputera, aby go zrozumieć.
Ale powinieneś zdawać sobie sprawę, że każdy, kto uczestniczył w zajęciach z informatyki, może zobaczyć, że większość ludzi nie może programować, to po prostu poza nimi. Zbyt abstrakcyjne dla ludzi. Tak jest nawet na poziomie uniwersyteckim.
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
Dodałbym, że nazywanie go znaczną mniejszością jest niedopowiedzeniem. Jest to niewielka mniejszość, która może programować.
Chciałbym jednak zwrócić uwagę na przyczynę spadku, którego był świadkiem. Gdy komputery stały się bardziej popularne, np. W latach 2000–2010 (napisał to w połowie tej dekady), coraz więcej chuliganów było zainteresowanych studiowaniem „informatyki”. Do tego czasu zainteresowani byli tylko bardziej fanatyczni ludzie. A wcześniej korzystanie z komputerów było bardziej techniczne, ale ponieważ komputery stały się łatwiejsze w użyciu dla przeciętnego człowieka i bardziej wydajne w aplikacjach, które mogły uruchamiać, wtedy więcej ich używało i więcej osób zainteresowanych tylko tym, co mogą zrobić zamiast tego, jak to robią i jak to zrobić.
źródło
Mógłby być nauczany pojęć informatyki bez komputera. Oczywiście, bez dostępu do komputera, co naprawdę robi nauka informatyki?
Kiedy uczyłem się informatyki w liceum, nasze pierwsze kilka klas w ogóle nie obejmowało komputerów. Zamiast tego pracowaliśmy z książki o nazwie Karel ++ , która uczyła koncepcji obiektowych. Skompilowany język można dość łatwo „uruchomić” na tablicy lub tablicy, ponieważ cały kod wykonuje działania na wykresie. Nasze pierwsze zadania zostały napisane odręcznie, a profesor zademonstruje prawidłowe rozwiązanie na tablicy na początku następnej klasy.
Kiedy zaczęliśmy dyskutować o algorytmach, nasz profesor wezwał nas wszystkich na front pokoju i kazał stanąć w szeregu. Następnie zademonstrował kilka różnych algorytmów sortowania - zaczynając od czegoś głupiego, co nazywał „sortowaniem małp”, w którym losowo wymieniał nas dwoje, a następnie sprawdzał, czy jesteśmy sortowani przy każdej iteracji, a następnie wykonując sortowanie bąbelkowe i sortowanie powłoki - według „uruchamiając” je na nas.
Rysował schematy na tablicy, wyjaśniając podstawy działania pamięci komputera i stosu. Pokazał zmienne i wskaźniki (była to klasa C ++), a stamtąd do połączonych list i drzew ...
Prawdopodobnie mógłbym to dodać, gdybym przejrzał notatki, które trzymałem z tej klasy, ale to wszystko, co teraz pamiętam. Jeśli te sugestie są interesujące, mogę rozwinąć tę odpowiedź.
źródło
Zrobiłem stopień informatyki i pomyślałem, że nauczyliśmy się dużo programowania (w różnych językach), nauczyliśmy się również wielu aspektów matematycznych (a także sprzętu).
Części matematyczne były ważniejsze w pierwszym roku - pomyśl o matematyce matematycznej, która jest niezbędna w grafice 3d (jak obliczyć normalną powierzchnię do oświetlenia wierzchołka? ). Zrobiliśmy wiele statystyk - pomyśl o analizie przepustowości zadań, jaki wskaźnik zadań możesz przekazać do systemu, zanim się zatka? Jest to bardzo ważne dla wielu scentralizowanych systemów i sieci.
Możesz uczyć wielu algorytmów, wspomniany tutaj jeden plakat daje każdemu numer, a następnie każe im się posortować przy użyciu różnych algorytmów (aktywnych i informacyjnych). W ten sposób można nauczyć się dowolnego algorytmu, który można opisać na animowanym obrazie w Internecie . Podobnie podstawy obliczeń - licznik programów, akumulator i rejestrymożna uczyć w ten sam sposób lub na papierze. Co powiesz na wielowątkowość opartą na uczniach - ustaw grupę uczniów w grę karcianą ze stosem między nimi w klasycznym ćwiczeniu wielowątkowym (lub problem z 1 wspólną łyżką). Lub wzorce projektowe, myślę, że architektura tablicowa jest idealna dla studentów, aby dowiedzieć się, w jaki sposób można wdrożyć komunikację wieloprocesową, lub architekturę wielopoziomową opisaną jako rodzaj gry szeptem po chińsku lub maszyny o stanie skończonym odpowiadałyby uczniom działającym jako moduły w „żywym komputerze”. Możesz uczyć matematyki binarnej lub wykonywania na stosie (tj. Odwrotnego polerowania).
Oczywiście, jeśli masz dostęp do elektroniki, możesz zbudować komputer analogowy ze wzmacniaczy operacyjnych. Oni są fajni.
Niestety, wszystko to będzie bardziej przypominać matematykę niż informatykę, ale większość z nich pozostanie i pewnego dnia zrozumieją, dlaczego ich nauczono (zakładając, że zajmują się branżą komputerową). Pamiętaj, że wszystko, co może zrobić komputer, może zrobić dana osoba - osiągnięcie tego samego rezultatu zajmie mu znacznie więcej czasu i nudy. Musisz tylko podać proste przykłady, aby zademonstrować, co zrobiłby komputer, i wyobraźnię, aby opisać podstawy obliczeń w mniej suchy sposób, niż mnie nauczono, dawno temu :)
źródło
W większości odpowiadam tylko po to, aby zareagować na to oświadczenie i ponieważ zdecydowanie nie zgadzam się z innymi odpowiedziami. Prawidłowe porównanie byłoby moim zdaniem
Informatyka dotyczy komputerów, a nie tylko ich używania. To prawda, że wiele informatyki opiera się na matematyce, więc części matematyczne można badać bez komputerów (więc uczysz matematyki), tak jak zamiast kosmologii możesz uczyć się fizyki, która będzie przydatna, gdy pojawi się kosmos (lub mieć dostęp do teleskopów), ale ostatecznie to, co studiujesz, to fizyka.
Otóż, wszyscy w odpowiedzi tutaj zwracają uwagę, że informatyka na poziomie licencjackim jest głównie teoretyczna i nie wymaga komputerów, a ludzie ci, IMHO, zapominają, że ci sami ludzie używali komputerów do tego momentu. Bez naturalnego zrozumienia bezpośrednie zagłębianie się w teorię teoretyczną spowoduje po prostu, że wielu studentów zrezygnuje lub będzie miało okropnie niedopasowane spojrzenie na informatykę. Naucz więc programowania, rozumiejąc, jakie komputery są pierwsze, a dopiero potem zajmij się teorią teoretyczną.
Zależy od budżetu:
Pozwólcie, że wyrażę się jasno, nie mówię, że informatyki nie można uczyć bez komputerów, po prostu trzeba się przyzwyczaić do komputerów i znać je dość dobrze, zanim zacznie się zastanawiać nad czymś takim.
źródło
Informatyka dotyczy algorytmów, a nie (ściśle) komputerów (i elektroniki).
Jako takie, badanie algorytmów (nawet elementarnej arytmetyki) może przynieść zrozumienie informatyki i programowania. Pamiętaj, że nawet termin „algorytm” jest parafrazą autora książki arytmetycznej ( al-Khwārizmī , około 9 wieku n.e.).
Badanie algorytmów można przeprowadzić za pomocą elementarnych środków, ale powinno ono zapewnić wyjaśnienie, dlaczego algorytm działa, jak powstał i jak można faktycznie wykazać, że działa poprawnie.
Nie można nie doceniać historii ewolucji informatyki, algorytmów i programowania. Na przykład kalkulator Babbage / Ady, maszyna Enigma, deska Konrada Zuse'a , ENIAC itp.
Następnie można wprowadzić programowanie (i języki programowania) jako sposób sformalizowania algorytmów. Można to również zrobić (w dużym stopniu) za pomocą elementarnych środków.
Uwaga : niektóre badania wykazały, że programowanie uczenia się peole ma dwie główne trudności w zrozumieniu (związane z przeciążeniem symboli, na przykład testem przypisania vs testu równości i działaniem maszyny RAM).
Aby upewnić się, że są one zrozumiane i zrozumiane przez ludzi.
Co więcej, jeśli można uzyskać dostęp do dowolnego komputera (nawet kalkulatora, który można zaprogramować), można go użyć do dostarczenia przykładów aplikacji i praktycznego doświadczenia. W przeciwnym razie można użyć symulowanego komputera. Można to zrobić na różne sposoby, na przykład grupa ludzi może symulować części komputera, a klasa może projektować algorytmy w celu rozwiązania różnych problemów dla tego symulowanego komputera i zobaczyć, jak to działa. To może być postrzegane jako gra, bądź kreatywny i makijaż.
Następnie można wprowadzić niektóre (abstrakcyjne) modele obliczeniowe (na przykład Maszyny Turinga ) i powiązać je z poprzednim materiałem na temat algorytmów i formalizacji w języku (programistycznym).
Jeśli chcemy wprowadzić elektronikę rzeczywistego komputera, można to zrobić również w dwóch częściach.
Pamiętaj, że nawet na uniwersytetach niektóre kursy z elektroniki i architektury komputerowej są teoretyczne (w rzeczywistości nie ma się do czynienia z procesorem ani z projektowaniem).
Tak więc można wprowadzić pewne zasady działania elektroniki (i leżącej u jej podstaw fizyki) związane z architekturą komputerową ( półprzewodniki , strefy energii półprzewodnikowej , bramki p-np itp.).
Następnie można wykorzystać poprzedni materiał o programowaniu i algorytmach oraz wprowadzić (nowoczesne) techniki projektowania procesorów (i ich opis), które są stosowane w przemyśle ( bramki logiczne , flip-flops , układy FPGA , VHDL , CMOS itp.).
Można to szerzej zająć się problemami architektury projektowania procesora, takimi jak równoległość, potok, pamięć podręczna, adresowanie wektorów, mikroprogramowanie, DMA itp.
Cóż, ok, może to może być za dużo, ale dodane, aby odpowiedź była samodzielna.
źródło
Czy chcesz uczyć programowania?
Kiedy byłem dzieckiem, pojechaliśmy na wakacje na kemping i zabrałem ze sobą instrukcję obsługi komputera. Udało mi się napisać prostą grę, używając pióra i papieru.
To był mój pierwszy prawdziwy program, więc wymagało to dużo nauki. Wiedziałem, co chcę zrobić, ale zdarzyło mi się wiele fałszywych startów. Ale w końcu udało mi się napisać cały kod.
Myślę, że to, co mówię, to zacząć od pseudo kodu i \ lub schematów blokowych, aby zaplanować projekt, a następnie przełożyć na kod. Byłem w stanie debugować wiele mojego kodu, po prostu go czytając. Tutaj możesz również skorzystać z recenzji użytkowników.
źródło
Aby powtórzyć poprzednie odpowiedzi: wiele można się nauczyć, czytając i wykonując ćwiczenia piórem i kartką. Jeśli potrafisz rozwiązać problem na papierze, masz trudną część. Chciałbym jednak również wspomnieć o istnieniu dość tanich sposobów narażania studentów na CS. Czy znasz projekt Raspberry Pi ? Nawet jeśli kilka osób musi się dzielić lub możesz sobie pozwolić tylko na 1 lub 2 jednostki, nadal warto rozważyć wykorzystanie ich jako technologii.
źródło
postaram się trochę poruszyć i „pomyśleć nieszablonowo”. komputery z pełną funkcjonalnością są naprawdę drogie, czasem wymagające zasobów i trudne w utrzymaniu. ale istnieje wiele niedrogich systemów elektronicznych, które naśladują pełne komputery, np. z ekranami LCD itp. i które można zastosować wiele podstawowych zasad programowania, wiele zasilanych bateryjnie. istnieje również ścisły związek zasad EE z obliczeniami, takimi jak budowanie binarnych obwodów logicznych itp .; także obecnie niektóre zabawki mają możliwości programowania.
programowalne kalkulatory . niektóre mają wbudowane całe języki programowania (nie tak wysoki poziom, ale bardziej języki asemblera). niektóre wspierałyby zaawansowane programy.
Raspberry pi minikomputer / mikrokontroler został opracowany w tym celu i działa w systemie Linux. w wielu przypadkach mniej niż 40 USD.
zestaw paralaksy STAMP mikrokontroler wymaga połączenia USB, ale może wystarczy Raspberry pi. patrz także mikrokontroler PIC
systemy robotyki. istnieje wiele niedrogich, które mają pewną programowalną logikę. Lego Robotics Mindstorms / NXT jest jednym z najlepszych i są tańsze modele.
niektóre gry konsolowe mają wbudowane zasady programowania. np. Little Big Planet ma wbudowane niesamowite funkcje programowania. istnieje kilka podręcznych wersji programowalnych gier. istnieje wiele filmów z youtube złożonych konstrukcji dla inspiracji.
smartfony to nowy świat programowania. mają przeglądarki obsługujące javascript i istnieje wiele aplikacji związanych z programowaniem, a nawet można przeglądać strony programistyczne z dostępem do Internetu (w tym Wi-Fi).
sugeruj także, jak w komentarzach, budowanie programów TM, np. w celu dodania itp. i próbowanie ich ręcznego śledzenia.
źródło