Pytanie:
Jak asystent może pomóc uczniowi, który jest pewien, że jest do bani w programowaniu?
user42273
2018-01-17 02:51:45 UTC
view on stackexchange narkive permalink

Jestem asystentem technicznym na studiach licencjackich w zakresie sygnałów i systemów (elektrotechnika). W ramach tego prowadzę sesję laboratoryjną, podczas której uczymy studentów, jak kodować różne operacje transformacji sygnału w MATLAB-ie i wizualizować transformowane sygnały (na przykład skalowanie czasu, przesuwanie w czasie itp.). Jak dotąd były to tylko podstawowe rzeczy (to dopiero trzeci tydzień), ale złożoność będzie znacznie się zwiększać.

Jeden z moich uczniów ma coś w rodzaju „lęku przed kodem”. Rozumie teorię (ponieważ istnieje laboratorium wstępne, w którym zapisujesz teorię tego, co będziesz kodować w laboratorium, i dobrze sobie tutaj radzi), ale jeśli chodzi o kodowanie, ona po prostu nie mogę zacząć; jej redaktor jest pusty do samego końca i nie prosi o pomoc, kiedy do niej idę; w końcu jest bliska łez i jest wyraźnie bardzo, bardzo zdenerwowana.

Kiedy próbuję porozmawiać z nią o tym, jak powinien wyglądać kod, zadając pytania i próbując skłonić ją do odpowiedzi, po prostu utknęła w wierszu „Nie jestem dobry w programowaniu” . Wielokrotnie powtarzam jej, że ma zanotowaną teorię, a ona musi po prostu napisać ją w MATLAB-ie i delikatnie zapewnić ją, że może to zrobić. Ale to wcale nie pomaga.

Jak jej pomóc? Laboratorium ma 20 uczniów, więc ile bym chciał, nie mogę spędzać z nią więcej czasu. Ale nie chcę, żeby wiecznie myślała, że ​​„jest do niczego w programowaniu”.

EDYCJA - zapomniałem dodać, w tym laboratorium są zespoły. Ale odmawia współpracy ze swoim partnerem (prawdopodobnie dlatego, że chce to zrobić samodzielnie?). Partnerowi udaje się zmusić jej kod do samodzielnego działania.

Możesz być zainteresowany [cseducators.se].
Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (http://chat.stackexchange.com/rooms/71893/discussion-on-question-by-convexityftw-how-can-i-as-a-ta-help-a-studenci, którzy).
Moja odpowiedź brzmiałaby: „Ja też nie byłem w tym dobry, kiedy zaczynałem”.
@Dom lub naturalne rozszerzenie tego, „prawie nikt nie jest dobry, kiedy zaczynają”
Czy faktycznie próbowałeś * przeprowadzić ją przez kod *?Nie „rozmawiaj z nią, jak by to wyglądało, gdyby go wpisała”, ale w rzeczywistości usiadł z nią i powiedział jej, co ma wpisać („y = funkcja (x)` ... ”) i kazał jej stopniowo uzupełniać puste miejsca?
Czternaście odpowiedzi:
#1
+245
B. Goddard
2018-01-17 09:57:41 UTC
view on stackexchange narkive permalink

Kiedy mówisz jej, że nie jest do niczego w programowaniu, słyszy tylko, że nie rozumiesz, jak bardzo jest do bani. Ważna jest tu psychologia, a nie pedagogika. Gdybym był w twojej sytuacji, powiedziałbym coś w stylu: „Tak, jesteś do dupy w programowaniu. W rzeczywistości większość z nas jest do dupy w programowaniu. (Heck, czy kiedykolwiek zauważyłeś, że Windows nie działa ???). wykonując niektóre z tych ćwiczeń, stajemy się nieco lepsi w programowaniu. Prawdopodobnie nigdy nie zostaniesz największym programistą świata ani nawet programistą, ale jeśli zmagasz się, nawet bezskutecznie, z niektórymi z tych ćwiczeń, staniesz się silniejszy myśliciel. A zatem lepsza osoba ”.

Zrobiłem o wiele więcej kilometrów dzięki „Wszyscy jesteśmy do niczego, więc zróbmy, co w naszej mocy” niż udawanie, że każdy jest geniuszem.

Głosowano za pozytywnymi opiniami, ponieważ to prawda (i to nie tylko ze strony programistów; większość profesjonalistów jest do dupy ze swojej pracy), ale nie jestem pewien, czy przyniesie to pożądany efekt.
Jako profesjonalny programista z około dziesięcioletnim doświadczeniem ... to jest świetne pytanie ... i prosta, ale świetna odpowiedź.Nadal mam „kodowanie frachtu” i udaje mi się tylko dlatego, że jestem głupio uparty.Kodowanie jest szalenie skomplikowane („szybko się skaluje” to mało powiedziane).Za każdą odnoszącą sukcesy osobą stoją lata walki i porażki.Wiem, że zawiodłem bardziej niż udało mi się.Wiem, że jestem do dupy i ciężej z tego powodu pracuję.
Zgoda, głos za prawdą, ale proszę, nie mów: „Jesteś do dupy ...”, „nigdy nie będziesz PROGRAMISTĄ”, bo ona będzie się czepiać tylko tych słów.trzymaj się sformułowania „prawdopodobnie nie będę największym na świecie” i bardziej skup się na sobie: „Nie jestem w tym dobry. Nikt nie jest”.co jest bardziej rozsądne.mogłaby też wiele skorzystać na zrozumieniu, jak używać psuedokodu, którego niestety nie używa, jak zauważyłem.Musi zrozumieć, że problem jest fragmentaryczny i że na tym etapie nie będzie mogła po prostu usiąść i napisać tego jak rozmowę;jej rówieśnicy prawdopodobnie też nie mogą.
Jako programista mogę powiedzieć, że ta odpowiedź jest świetna.Powiedziałbym uczniowi brzydką prawdę - dobry kod jest bardzo rzadki w branży, większość ludzi nie ma kwalifikacji do odpowiedzialnego wykonywania swojej pracy, a bezpieczeństwo komputera to krwawy żart.Musi ubrudzić sobie ręce, żeby przyzwyczaić się do składni, reszta jest wtedy łatwa.
Być może mniej ostro, ale TAK, to!Napisałem okropny kod, czasami NADAL piszę okropny kod, ale zawsze możesz usunąć, ulepszyć, zrobić od nowa, o ile zaczniesz pisać.Być może dodatkowa zachęta: samo kodowanie zmienia się w rutynę z pewną praktyką.Fakt, że rozumie TEORIĘ, stawia ją już przed wieloma!
Trenowałem drużynę piłkarską moich 13-letnich córek, a dziewczyna w drużynie była sfrustrowana i powiedziała: „Jestem do dupy w piłce nożnej”.Odpowiedziałem: „Cóż, zrobiłeś to na początku sezonu”.Miała dość zszokowany wyraz twarzy, najwyraźniej nie przyzwyczajony do tego, że dorośli są tak tępi.Kontynuowałem: „Kiedy dołączyłeś do drużyny, kuliłem się, kiedy wstawiałem cię do gry, zwłaszcza gdy wynik był bliski. Ale bardzo się poprawiłeś i jesteś jednym z lepszych obrońców w drużynie.Waham się, czy w ogóle cię w to wtrącać, niezależnie od wyniku ”.Po tym praktycznie się promieniała.
„Psychologia jest tutaj ważna” - odrzuciłem głos, ponieważ sugerujesz, że asystent powinien spróbować wykonać pracę psychologa lub doradcy.
Wszyscy nauczyciele zajmują się psychologią.To nie jest tylko praca doradcy.
Mogę ręczyć, że większość programistów śmierdzi programowaniem.Naprawdę potrzeba 10000 godzin (* minimum *) doświadczenia, zanim zaczniesz pisać kod, który nie sprawi, że będziesz chciał zwymiotować następnym razem, gdy na niego spojrzysz.I wydaje się, że wielu ludzi nie wychodzi poza to nawet przy 10000 godzin.
@jaia Nie, to jest złe i nieetyczne podejście.Większość profesorów i asystentów nie ma formalnego wykształcenia psychologicznego (łącznie ze mną).Ponadto w wielu miejscach praktyka psychologiczna i / lub doradcza wymaga posiadania licencji.Wydaje mi się oczywiste, na podstawie bardzo podstawowej wiedzy o zaburzeniach lękowych, że ten student potrzebuje pomocy eksperta.
@AnonymousPhysicist Myślę, że przejście od ucznia, który mówi, że jest kiepski z programowania, do wniosku, że potrzebuje profesjonalnej pomocy, to trochę przeskok.Poza tym nie ma możliwości, aby asystent mógł dokonać takiego skierowania, chyba że, na przykład, student powie coś w stylu „Bardzo się denerwuję, kiedy próbuję napisać jakikolwiek kod”, a nawet wtedy skierowanie powinno być dodatkiem do szybszej pomocy.
@jaia Twój komentarz w ogóle nie pasuje do okoliczności opisanych w powyższym pytaniu.Myślę, że asystent może dokonać skierowania w dowolnym momencie z dowolnego powodu;decyzja, czy potrzebne jest działanie, zależy od specjalisty i pacjenta.TA powinien błądzić po stronie ostrożności. --- Myślę, że cała ta rozmowa opiera się na błędnym przekonaniu, że wysłanie ucznia na poradę, której może nie potrzebować, ma jakąś istotną wadę.Nie, chyba że jesteś ubezpieczycielem (w krajach, w których wiem, że ubezpieczenie opłaca opiekę psychiatryczną, a studenci muszą mieć ubezpieczenie).
@jaia Nie wiem zbyt wiele na temat niepokoju, ale siedzenie przed zupełnie pustym redaktorem płaczącym z powodu długości laboratorium wydaje mi się o wiele bardziej ekstremalne niż zwykłe mówienie, że jest do dupy w programowaniu.Przynajmniej coś więcej niż „wszyscy jesteśmy do niczego, więc po prostu zrób wszystko, co w twojej mocy” wydaje się uzasadnione.
@11684 To nie jest „Wszyscy jesteśmy do niczego, więc po prostu zrób wszystko, co w twojej mocy”, ale „Wszyscy jesteśmy do niczego, ale możemy być lepsi”.Twoja wersja jest rzeczywiście przytłaczająca.Po drugie, nie chodziło o to, co może zrobić biuro doradcze, ale co może zrobić asystent.Współczucie wydaje się właściwą drogą we wszystkich przypadkach.Zawsze jestem zaskoczony na tym stosie, jak ktoś umieści dobrą, ogólną odpowiedź, ale jest on rozrywany przez osoby proponujące marginesy, specjalne przypadki."Ale jeśli uczeń ma wściekliznę i pochodzi z kultury, która czci banany, twoje rozwiązanie w ogóle nie zadziała !!!!"
A dodawanie, że AT powinien zalecać poradnictwo, jest bezcelowe.OP jest już świadomy tej oczywistej opcji.Stąd jego pytanie: „Co mogę zrobić?”
@B.Goddard Przykro mi, że czujesz się zaatakowany.Jednak mój komentarz nie był odpowiedzią na twoją odpowiedź, ale na komentarz Jai, który wydawał się nie doceniać wagi problemu, o którym mowa.Myślę, że się zgadzamy, pisząc, że „pomoc techniczna powinna zalecić poradnictwo”.Jednak komentarz Jai sugeruje, że uważają, że to za dużo.Nie zgadzam się z podejściem przedstawionym w Twojej odpowiedzi, ale wydaje się, że oboje uważamy, że to prawdopodobnie nie wystarczy do całkowitego rozwiązania problemu i należy zbadać inne opcje (ponownie: „TA powinien zalecić doradztwo”).
@11684 Nie czuję się atakowany.To tylko internet.Królowa Elżbieta i ja wysłaliśmy nasze pierwsze e-maile w tym samym roku.
Zgadzam się z tą odpowiedzią.Jestem zdecydowanie jednym z tych, którzy nie mają kwalifikacji do kodowania (BÓG, że dostałem tak wiele wglądu po prostu zamieszczając mój kod frankena na Code Review!), Ale nadal walczę z tym i mój kod w końcu działa.Nie jestem programistą, ale dzięki temu kawałkowi kodowania dodam ogromną wartość i mogę w rezultacie zrozumieć bardziej logiczne sposoby myślenia.Nawet jeśli teraz patrzę na swoje analizy (jestem analitykiem), jeśli wystąpi błąd, debuguję go w taki sam sposób, jak gdyby był to kod!
#2
+55
aparente001
2018-01-17 03:38:43 UTC
view on stackexchange narkive permalink

O tym, że nie chce pracować ze swoim kolegą z zespołu - może mieć pewne obawy, na przykład:

  • że poczuje się zażenowana przed kolegą z zespołu
  • że będzie zbytnio polegać na kompetencjach kolegi z zespołu
  • że jej fobia i / lub niekompetencja będą zaraźliwe

Oto, co moim zdaniem pomogłoby:

  • Potrzebuje nauczyciela do pracy z nią poza laboratorium, jeden na jeden, kilka godzin tygodniowo, najlepiej przez 30-40 minut dziennie.
  • Profesor powinien przyniesiony na pokład i powinien mieć możliwość tymczasowego włączenia pseudokodu.
  • W każdej sesji korepetytora nauczyciel powinien zadać ćwiczenie programistyczne i poprosić ją o napisanie pseudokodu, ponieważ (jeśli dobrze zrozumiałem) czuje się komfortowo.
  • Następnie, aby stworzyć kod Matlab, prowadzący powinien pisać dla niej (pisać z jej dyktanda), używając ołówka i papieru, z dala od komputera - najlepiej nie w laboratorium komputerowym.
  • Kiedy utknie w składni, nauczyciel powinien jej na to pozwolić spójrz na łatwy w użyciu arkusz do ściągania składni (jeśli taki nie istnieje, nauczyciel powinien go utworzyć).
  • Na ile to możliwe, nauczyciel powinien pomóc jej naprawić błędy, zanim dotrą do
  • Kiedy program zostanie napisany w całości ołówkiem i papierem, powinni usiąść razem przed komputerem, ale z nauczycielem na miejscu kierowcy. Początkowo nauczyciel powinien pisać i klikać.
  • Może nadal płakać i nadal mówić, że nie jest dobra w programowaniu. Nauczyciel nie powinien tracić czasu na zachęcające rozmowy i nie powinien się z nią kłócić. Pod koniec każdej sesji prowadzący powinien przekazać krótką pozytywną opinię, utrzymując kontakt wzrokowy, ale bez tryskania wodą.
  • Po kilku sesjach prowadzący powinien powiedzieć na koniec sesji: „Następnym razem, wpiszesz drugą połowę programu. ”
  • Podczas następnej sesji, kiedy przenoszą się do komputera, nauczyciel przypomina uczniowi: „Dzisiaj napiszesz drugą połowę programu”. Następnie prowadzący wpisuje pierwszą połowę, a następnie podaje klawiaturę i mysz. Teraz nauczyciel musi być cool jak ogórek i po prostu czekać. W razie potrzeby korepetytor może rozwiązać Sudoku podczas oczekiwania.
  • Następna sesja, to samo, ale na koniec korepetytor informuje ucznia, że ​​następnym razem napisze cały program.
  • Następnym wyzwaniem może być przejście do komponowania przy komputerze - ale ten etap może nie być potrzebny.

To trochę jak terapia ekspozycyjna. Prowadzący powinien od czasu do czasu przekazywać pozytywne opinie, ale bardzo rzeczowe. Ty wiesz i ja wiem, a nauczyciel będzie wiedział, że uczeń przejdzie przez piekło. Ale najbardziej szanuje się pozwolić jej przejść przez to bez robienia z tego wielkiej sprawy.

Jeśli podejmie inicjatywę, aby opowiedzieć o swoich uczuciach, nauczyciel nie powinien przerywać - ale powinien skup się na programowaniu (nie na terapii rozmową).

Przed rozpoczęciem może być pomocne, aby uczeń udał się do lekarza w celu omówienia możliwego wsparcia farmaceutycznego dla tego projektu. Ta część jest opcjonalna, a decyzja jest bardzo indywidualna.

Nie wiem, jak mógłbyś się tym zająć. Jedną z oczywistych opcji jest znalezienie prywatnego korepetytora, który mógłby wykonać dobrą robotę z tego typu korepetycjami i zaproponować, aby zapłacił korepetytorowi z własnej kieszeni. Możesz zapytać w swoim dziale, czy są jakieś inne opcje.


Edytuj: Zerknąłem na sekcję Rozwiązania w artykule Wikipedii, do której linkował Daniel, i uświadomiłem sobie, że powinienem był wyjaśnić, gdzie moja zarysowana interwencja pochodziła z.

Wynikała z moich doświadczeń z moim synem, który ma zespół Tourette'a, OCD i lęk. W szczególności udzielając mu korepetycji w kilku kluczowych, trudnych okresach oraz pomagając w domowych ćwiczeniach w leczeniu OCD.

Pisanie w okresach, w których występują duże objawy, umożliwiło mu postępy akademickie. Udało nam się przenieść z miejsca, w którym panowały wielkie emocje i wiele odmawianych prac domowych, do miejsca, w którym zaczynałam sesję od pisania, aż on wziął ode mnie ołówek i notatnik, a ostatecznie w miejsce niezależności.

Zabiegi ekspozycyjne działają na zasadzie wystawiania osoby na to, co jest bardzo przykre, ale w kontrolowany sposób, przy czym wzrost następuje małymi krokami. To wymaga cierpliwości. Ciało nie może wiecznie utrzymywać stanu alarmowego, więc na każdej sesji nakładasz stresor w niewielkiej ilości i czekasz. W końcu reakcja „walka-ucieczka-zamrożenie” znika. Ćwiczenie wykonujesz wielokrotnie. To bardzo uproszczone wyjaśnienie, ale mam nadzieję, że pomoże.

Problem tego ucznia przypomina trochę klasyczne fobie, np. strach przed lataniem, strach przed pająkami itp., ale jest trochę inny, dlatego wykorzystałem swoje doświadczenie, pisząc dla mojego syna jako model.

„[S] powinien mieć możliwość tymczasowego podania pseudokodu”.To jedyna część, z którą naprawdę nie mogę się zgodzić - lepiej byłoby dać część zadania w zwykłym pseudokodzie dla _ewszystkich_.Robienie specjalnych zwolnień dla samotnych uczniów nie jest w porządku, chyba że istnieje polecenie z odpowiedniego biura administracyjnego.
Podoba mi się ta odpowiedź, ale obawiam się trochę wymagań dotyczących zatrudnienia dodatkowej osoby.Wiem na pewno, że na naszym wydziale brakuje gotówki (do tego stopnia, że niektórzy studenci doktorantów nie mają pieniędzy - raz mi się to przytrafiło).Ale masz rację, prostą odpowiedzią wydaje się być jej więcej praktyki.
@convexityftw - to, co nakreśliłem, sprowadza się do wariantu terapii ekspozycyjnej dla OCD i fobii specyficznych.To, co sugeruję, to coś więcej niż tylko zdobycie jej większej praktyki.// Gdyby miała więcej czasu, mogłaby uzyskać medyczną diagnozę zaburzenia lękowego i 504 zakwaterowanie, ale w większości szkół jest to proces, który nie zachodzi z dnia na dzień.Czy mógłbyś spotkać się z administratorem działu i udostępnić tę stronę?
@aeismail - Ogólnie podoba mi się to podejście.Nie wiem, czy byłoby to zgodne z tym, co należy zrobić w laboratorium.
@convexityftw Uważam, że sugestia aparente001 jest taka, aby student zatrudnił korepetytora.Jako wydział nie powinieneś oczekiwać, że będziesz ponosić koszty nauki indywidualnej.
@aparente001 Z pewnością możesz uczynić pseudokod „odskocznią” na drodze do ostatniego zadania.
@aeismail tak, to nie jest zły pierwszy krok.Jeśli oceniany przez sprawdzenie kodu, aby upewnić się, że używane są pojęcia, pseudokod powinien być na tyle łatwy, aby nagrodzić _ jakimś_ kredytem.Pełny kredyt będzie niemożliwy do uzyskania, ponieważ kodu nie da się uruchomić, ale jest to początek, a uczeń przejdzie od niepowodzenia do tworzenia wyników, do możliwości wyprodukowania czegoś i uzyskania za to pewności.Już samo to powinno być dobrym krokiem ku poczuciu się ucznia pewniejszego (jeśli nie bardziej kompetentnego) w wykonywaniu pracy.Każda podróż zaczyna się od pierwszego kroku i tak dalej.
Nie należy sugerować, aby terapię podjęła osoba niewykwalifikowana.
To byłaby świetna rada dla kogoś z długą historią niepowodzeń, ale OP mówi o 3 tygodniu kursu podstawowego.Na tym etapie korepetytor wydaje się przesadą, a student może nie chcieć go zatrudnić.(Kiedy zmagałem się z matematyką, a mój dziadek zaproponował, że zapłaci za korepetytora, odmówiłem, ponieważ nie sądziłem, że to coś dobrego).
Moja szkoła zatrudnia korepetytorów, ale nie dla jednego ucznia Nie wiem, jakie są limity / wskaźniki, ale 5 lub więcej uczniów może korzystać z jednego korepetytora w zależności od ich potrzeb.Jednak wynagrodzenie jest tylko nieznacznie wyższe niż płaca minimalna.
@cybernard - Masz ucznia w podobnej sytuacji?Jeśli tak, radzę porozmawiać ze swoim działem, aby zobaczyć, co można zrobić, aby wesprzeć ucznia.
@aparente001 Nie, nie mamy takiego ucznia, ponieważ nasza szkoła faktycznie zatrudnia korepetytorów, z których mogą korzystać uczniowie, oczywiście po wypełnieniu dokumentów.Jednak korzystanie z niego przez ucznia jest bezpłatne.
Nie sądzę, żeby podejście nauczyciela cokolwiek naprawiało.Przejdzie przez sesje laboratoryjne, być może z dobrymi uwagami, ale co z przyszłością?A co następnym razem, gdy nie będzie mogła / nie chce czegoś zrobić?A co z partnerstwem i poleganiem na innych?Nie możesz po prostu dołączyć do pracowników i iść „przy okazji, potrzebuję korepetytora po mojej stronie, inaczej nie oddam przydzielonej mi pracy”.Czuję, że to tylko przedłuża problem, a co gorsza, pogłębia go.Może pomóc OP „pozbyć się” (zwróć uwagę na cytaty, wiem, że OP próbuje pomóc) niechętnego ucznia, ale to nie pomoże uczniowi.
@tfrascaroli - Piękno terapii ekspozycyjnych polega na stopniowym rozszerzaniu ekspozycji do tego stopnia, że osłabiający objaw już nie osłabia.W tym przypadku jest to stopniowe usuwanie podpory (rysowanie).// Uwaga, jeśli z innych powodów zapewniono by przystosowanie do bazgrołów, byłoby to kontynuowane i byłoby to objęte sekcją 504 ustawy o rehabilitacji.
Znalazłem zadania, które wymagają od uczniów ** czytania ** ** kodu i pisania interpretacji tego, co według nich robi kod, są _wspaniaj_ pomocne dla nowych / studentów pierwszego roku uczących się pisać kod.
#3
+35
Daniel R. Collins
2018-01-17 20:28:06 UTC
view on stackexchange narkive permalink

Miałem kilka takich przypadków przez lata i zawsze źle się kończyły. Dla mnie „nie prosi o pomoc, kiedy do niej idę” jest tutaj najgorszym sygnałem. Z mojego doświadczenia wynika, że ​​uczeń w takiej sytuacji nie może się poprawić.

To brzmi trochę jak niepokój matematyczny, który jest niesamowicie głębokim problemem i prawdopodobnie wykracza poza Twoje możliwości jako asystentka technicznego. W moim rozumieniu literatury jest to, że interwencje w klasie nie działają; student potrzebuje leczenia jeden na jeden; więc może powinieneś skierować ich do doradcy szkolnego, jeśli jest dostępny. Możesz również zapoznać się z sugerowanymi rozwiązaniami tutaj, ale są one głównie skierowane do dzieci w wieku szkolnym i szczerze mówiąc, nawet kilka najważniejszych pozycji jest sprzecznych z badaniami, jakie rozumiem.

Na dłuższą metę przekonasz się, że jeśli uczeń nie chce, abyś mu pomagał, po prostu nie możesz być dla niego przydatny jako asystent nauczyciela.

Nie zgadzam się, ponieważ myślę, że patologizujesz, i naprawdę nie zgadzam się z postawą, że student nie chce pomocy.Trudno jest dokładnie wiedzieć, co się dzieje bez znajomości ucznia, ale ponieważ * rozumie * teorię, wydaje się bardziej prawdopodobne, że jest coś w procesie kodowania prezentowanym na tym kursie - siadając przededytor i wbijanie kodu - co wywołuje u ucznia niepokój, a nie uogólniony paraliż przy wykonywaniu jakichkolwiek zadań związanych z kodowaniem.
@ElizabethHenning Zgadzam się z twoimi ogólnymi odczuciami w tym miejscu - zwłaszcza z oporem wobec sentymentu „po prostu daj sobie spokój z tym uczniem” i zmęczeniem ryzykiem przedwczesnego określenia czegoś jako patologicznego problemu psychicznego.Jednak jedna uwaga na marginesie: z mojego doświadczenia wynika, że „niepokój matematyczny” jest również spowodowany przede wszystkim przez problem z „czymś w procesie” - w jaki sposób jako społeczeństwo uczymy / wykonujemy / reprezentujemy matematykę, która nie łączy się z podstawową zdolnością danej osoby do pracyz liczbami i logiką.
Skierowanie ucznia na poradę nigdy nie jest przedwczesnym etykietowaniem.Ten student absolutnie musi spróbować porady.Istnieją dowody, że terapia łagodzi te objawy.Ta odpowiedź nie jest wystarczająco sformułowana i nie zgadzam się z komentarzami.
Anegdotycznie nauczyciele mogą mieć potężny wpływ na niepokój matematyczny.Byłem na tym końcu.http://perceivingwholes.blogspot.com/2011/10/on-not-being-fish.html
#4
+20
Kevin Krumwiede
2018-01-17 10:20:38 UTC
view on stackexchange narkive permalink

Nie byłem zaznajomiony z MATLAB-em, więc przyjrzałem się kilku przykładom kodu na stronie o nazwie Pierwsze kroki z MATLABem. Jeśli twoje własne wprowadzenie do MATLAB-a wygląda tak, może to być problem. Nawet te niezwykle podstawowe operacje wymagają dużej wiedzy, którą programiści przyjmują za pewnik, na przykład, jakie są zmienne i funkcje, najpierw koncepcyjnie, a następnie w ich ogólnym wyglądzie w kodzie. Myśl, która kryje się za stwierdzeniem „Jestem do dupy w programowaniu”, może brzmieć: „Czym do cholery jest programowanie?”

Zazwyczaj studenci elektrotechniki na kursie dotyczącym sygnałów i systemów mieli po drodze przynajmniej wprowadzenie do kursu programowania, więc nie jest tak, że student nigdy wcześniej nie programował.
@MadJack, jeśli jedyne doświadczenie ucznia w programowaniu dotyczy jednego języka na zajęciach, są szanse, że nie wystarczy, aby móc po prostu przejść do zupełnie innego języka.Zwłaszcza jeśli jakość tego kursu wprowadzającego nie była na początku wysoka.(naucz całą składnię bez pojęć) Z tego, co pamiętam, składnia i struktura MATLAB-a nie przypomina języków zwykle używanych w kursach wprowadzających.
Większość uczniów, których spotkałem, nie zdawała sobie sprawy z pierwszego kursu programowania.Nie dlatego, że nie rozumieli, jak napisać kod, ale dlatego, że powód, dlaczego i jak odnosi się on do innych posiadanych umiejętności, jest niejasny.
Należy również dodać, że MATLAB różni się znacznie od innych języków nie tylko pod względem składniowym, ale także koncepcyjnym.Ci, którzy pisali dokumentację MATLAB-a, często zakładają, że * każdy na świecie * cały dzień myśli o operacjach macierzowych (zamiast proceduralnych / lub obiektowych).
Jako zawodowy programista z wykształceniem informatycznym zmagam się z MATLAB-em i nigdy nie korzystałem z niego poza jednym kursem, na którym musiałem.Większość inżynierów elektryków wydaje się to lubić (prawdopodobnie dlatego, że to wszystko, czego używają do programowania podczas studiów ...)
@Mr.Mindor Rzeczywiście.Nawet profesjonalny programista nie może po prostu wskoczyć na nowy język.Nauczenie się składni może zająć tylko dzień lub dwa, ale dokładne poznanie biblioteki standardowej zajmuje miesiące lub lata, nie wspominając już o popularnych bibliotekach, konwencjach i najlepszych praktykach innych firm.
Robią to programiści grafiki 3D @AndreaLazzarotto.O to chodzi.
Z pewnością odpowiedź brzmi:Ludzie, którzy wiedzą, jak kodować, przyjmują za pewnik ogromną wiedzę na temat tła.Biedny student prawdopodobnie rozumie kodowanie w hipotetycznym sensie matematycznym, ale tak naprawdę nie wie, czym jest edytor ani gdzie umieścić pierwszą linię kodu.
#5
+16
Konrad Höffner
2018-01-17 18:53:40 UTC
view on stackexchange narkive permalink

Programowanie to złożona umiejętność, której nie można opanować tak szybko. Więc powiedzenie jej, że może to zrobić, kiedy może mieć dokładną ocenę swoich umiejętności, w żaden sposób nie pomoże. Gdybym poszedł na zajęcia i dowiedziałem się, że jest on prowadzony w języku chińskim, nie pomoże mi żadne powiedzenie „nie, właściwie rozumiesz chiński, po prostu spróbuj”. Istnieje takie nastawienie „Możemy robić, co chcemy, jeśli tylko zechcesz”, ale zapomina się o tym, że niektóre rzeczy wymagają lat treningu.

Potrzebuje tylko kursu wstępnego programowania, gdzie poznaje podstawowe pojęcia i założenia, na przykład, że jest procesor i wykonuje instrukcje w kolejności sekwencyjnej, istnieją zmienne i tak dalej.

„jest procesor i wykonuje instrukcje w kolejności sekwencyjnej” Gdyby to była prawda, nie mielibyśmy Meltdown.
Zacząłbym od prostego modelu, a później zająłbym się szczegółami.
@Acccumulation: To prawda.Podstawową zasadą wykonywania poza kolejnością jest zachowanie iluzji, że pojedynczy wątek działa w kolejności programu.To samo dotyczy zmiany kolejności w czasie kompilacji w językach takich jak C ++.Ten model mówi tylko o stanie architektury, a nie o czasie i jest wszystkim, o co musisz dbać, aby napisać poprawne programy.Meltdown opiera się na bocznym kanale taktowania, który zmienia stan mikroarchitektury w stan architektoniczny, więc tak, to jest problem: /.Myślę, że już to wszystko wiesz i nie oznaczało to, że uczniowie muszą rozumieć OoOE.
To dość pedantyczne krytykowanie (stycznego) komentarza, który mówi, że powinieneś nauczyć się "podstawowych pojęć i * założeń *", takich jak procesory wykonywane w kolejności sekwencyjnej ... to jest rzeczywiście założenie, a nauka programowania z takim założeniem jest podstawową umiejętnościąkażdy programista powinien wiedzieć.
#6
+13
CPHPython
2018-01-17 21:21:00 UTC
view on stackexchange narkive permalink

Ponieważ nikt wcześniej tego nie zasugerował, po prostu zapytaj ją, dlaczego . 3 minuty po tym, jak wykonasz ćwiczenie dla wszystkich, podejdź do niej i sprawdź jej ekran.

Jeśli będzie powtarzać to samo zdanie, przełam schemat „zamrożenia mózgu”, zadając sekwencję podobnych pytań to:

  1. "dlaczego nie możesz zacząć?" (przytakuje i zignoruje, jeśli powtarza tę samą frazę)
  2. „czy zapoznałeś się z kodem ćwiczeń z ostatnich zajęć?” Lub po prostu „czy studiowałeś podstawową składnię programu MATLAB?”
    • jeśli nie, a jeśli powodem jest to, że nie miała kodu, zapytaj ją, dlaczego nie uczyła się z kodu swojego partnera?
    • jeśli się uczyła, dlaczego nie może zacząć od wypróbowania struktury podobnej do kodu w klasie X lub z tego, co widziała w książce / samouczku Y?
  3. Co ważniejsze, przypomnij jej, że jest to ćwiczenie grupowe, że oboje wydają się rozumieć logikę ćwiczeń, więc musi pracować ze swoim partnerem. Następnie zapytaj ją: „dlaczego nie współpracujesz ze swoim partnerem?”
    • jeśli odpowie, że „jej„ poziom programowania ”(cokolwiek to jest) jest dla mnie zbyt zaawansowany”, a następnie powiedz jej: „co liczy się tutaj to, że grupa implementuje logikę, jeśli oboje rozumiesz jej części, możesz zapytać się nawzajem o pewne kwestie, na przykład, który zestaw warunków byłby lepszy w tym przypadku, jakie wyrażenie lepiej by ich zadowoliło itd. li>
    • jeśli znowu pojawi się pytanie „Chcę to zrobić sam”, bądź szczery , powiedz jej, że jest to ćwiczenie grupowe z jakiegoś powodu i że grupa ( nie ona) musi dostarczyć kod na końcu. Możesz jej zasugerować, że może spróbować wykonać to ćwiczenie samodzielnie po zajęciach, ale jeśli nadal zdecyduje się nie brać udziału, weź pod uwagę, że rozczłonkowanie zespołu i ocena każdego z nich z osobna jest opcją. Najpierw zapytaj partnera, jak by się z tym czuł.

Przynajmniej na podstawie tej sekwencji będziesz w stanie rozwiązać prawdziwy problem, o którym niektórzy tutaj spekulowali (darmowe ładowanie może być dorozumiane), ale jeśli kiedykolwiek odkryjesz prawdziwy powód, dostosuj swoją strategię, aby ona albo zacznij coś zapisywać (nawet jeśli tłumacz nie działa, przynajmniej będzie proces debugowania do zrobienia) lub zacznij pracować ze swoim partnerem.

Wydaje się, że jest to dobre / najlepsze podejście - najlepszą nauką jest uczenie ludzi, jak uczyć siebie.Danie uczniowi modelu typu pytań, które mają sobie zadać, gdy utknie, jest prawie na pewno znacznie bardziej pomocne na dłuższą metę niż zebranie spersonalizowanego, tandetnego wprowadzenia do składni Matlaba.
+1, ale uwaga: osoby z tego rodzaju blokadami psychicznymi mogą czuć się zestresowane / defensywne, jeśli czują się pod presją podczas badania * dlaczego * - mogą nie być w stanie sformułować źródła problemu, a nawet w pełni go zrozumieć.Naciskani na odpowiedzi, mogą udzielać odpowiedzi, które są szczere, ale niepoprawne lub racjonalizujące próby ujęcia problemu w słowa.Najlepszą radą, jaką mogę dać, jest upewnienie się, że kilkakrotnie podkreślasz, że pytasz, ponieważ chcesz zrozumieć, i tymczasowo wycofujesz się, gdy pojawiają się oznaki rosnącego niepokoju.
Nie rozumiem, dlaczego ta odpowiedź nie ma więcej głosów pozytywnych, to prowadzi do sedna sprawy.„Ssę z X” nie jest problemem do rozwiązania, ale „Ssę z X, ponieważ Y” już tak.
#7
+11
Luke Sawczak
2018-01-19 22:43:23 UTC
view on stackexchange narkive permalink

Podkreśl odwagę nowych programistów

Kiedy przygotowywałem się do nauczania 13-letniej dziewczynki w zakresie programowania, ponieważ wcześniej pomagałem tylko studentom, przeprowadziłem kilka drobnych badań, aby zobaczyć, jaki ton powinienem nadać. Trafiłem na ten wykład TED:

Naucz dziewczyny odwagi, a nie doskonałości | Reshma Saujani
(Reshma Saujani jest założycielką Girls Who Code).

Saujani twierdzi, że dziewczyny są uspołecznione bądź doskonały, podczas gdy chłopcy są uspołecznieni, by „bawić się szorstko i wspinać się na szczyt małpich krat”. Jedno z badań, które cytuje, wykazało, że dziewczęta z klas 5, które miały do ​​czynienia z materiałem, który był zbyt trudny, poddały się, podczas gdy chłopcy podwoili swoje wysiłki, pomimo ogólnie lepszych wyników w nauce. (Właściwie, im mądrzejsza dziewczyna, tym większa szansa, że ​​zrezygnowała.)

Rozważmy teraz, że programowanie wymaga ogromnej ilości prób i błędów zarówno podczas pisania, jak i debugowania , nie tylko dla uczących się, ale nawet dla większości profesjonalistów.

Scenariusz, który opisuje w Girls Who Code, brzmi bardzo podobnie do twojego własnego ucznia:

Od razu widzimy w naszym programie nasz strach dziewcząt, że nie zrobią tego dobrze, nie będą doskonałe. Każda nauczycielka Girls Who Code opowiada mi tę samą historię: w pierwszym tygodniu, kiedy dziewczynki uczą się kodować, zadzwoni do niej uczeń, a ona powie: „Nie wiem, jaki kod napisać”. Nauczyciel spojrzy na swój ekran, a ona zobaczy pusty edytor tekstu. Gdyby nie wiedziała nic lepszego, pomyśli, że jej uczeń spędził ostatnie 20 minut tylko wpatrując się w ekran. Ale jeśli kilka razy naciśnie Cofnij, zobaczy, że jej uczeń napisał kod, a następnie go usunął. Próbowała, podeszła blisko, ale nie zrobiła tego dokładnie. Zamiast pokazywać postępy, które poczyniła, wolałaby pokazać nic w ogóle.

Wspomina również o schemacie, który przypomina mi o swoim uczniu przy programowaniu ”komentarze:

Kiedy faceci zmagają się z zadaniem, przyjdą i powiedzą: „Profesorze, coś jest nie tak z moim kodem”. Dziewczyny przyjdą i powiedzą: „Profesorze, coś jest nie tak z mną."

Nie wszyscy mogą się zgodzić z tą oceną (zniechęcające komentarze w YouTube są dowodem wystarczy), a uogólnienia mają wyjątki. Nie ma gwarancji, że te obserwacje odnoszą się do przypadku twojego ucznia. Ale przynajmniej uważam, że byłaby to obiecująca ścieżka.

Stosowanie tego

Daj jej do zrozumienia, że ​​błędy są niezbędnymi krokami do opanowania i że postęp można osiągnąć tylko w tym pole metodą prób i błędów. Błędy, które popełni, nie zaszkodzą ani nie uszkodzą komputera. Ale pokazanie ich tobie pozwoli jej ominąć je.

Skoncentruj się na procesie, a nie na wyniku. Chwal rozwój, a nie (postrzeganą) zdolność.

Opowiedz o swojej własnej historii pokonania tych wzniesień. Wielu uczniów lubi słyszeć, że ich nauczyciel nie zawsze był „wszechwiedzący”. Widzą, że jesteś człowiekiem i masz takie same problemy jak oni. Ergo, oni też mogą je pokonać.

Możesz także zrobić coś takiego jak „ Mój ulubiony nie”, gdzie zapraszasz uczniów do prób. Następnie zidentyfikuj błąd, którego poprawka najprawdopodobniej pomoże wszystkim, i omów go z uczniami. W dzisiejszych czasach aplikacje takie jak Padlet ułatwiłyby to anonimowo.

Połączenia teoretyczne

Jak Kevin komentuje poniżej, istnieją powiązania między rozwojem a stałym nastawieniem i opanowaniem a perspektywami wydajności . Istnieją również powiązania z teorią atrybucji („Czyja to wina, kiedy mi się nie udaje? Komu przypisuje się sukces? Dlaczego mi się nie udało?”). Wiemy na przykład, że pomaganie uczniom w przypisywaniu sukcesu wysiłkowi, a nie wrodzonej inteligencji, jest dobrym predyktorem chęci podjęcia nowych, trudniejszych zadań (sama w sobie jest warunkiem odniesienia sukcesu).


Dodatek: wypełnienie kieszeni powietrznych

Nie oznacza to zmniejszenia rygoru. Nie musisz mówić, że błędy są w porządku lub można je zignorować. Wręcz przeciwnie: uczniowie muszą je wykonać, ponieważ ważne jest, aby je zidentyfikować. Błędy nie są dobre; robienie ich jest.

Zilustruję. Mam innego ucznia, 10-letniego chłopca * Uczę francuskiego. Przez długi czas wydawał się nienawidzić czytania, mimo że był w tym całkiem dobry. Podczas jednej lekcji zdarzyło mu się wypowiedzieć uwagę, która ujawniła problem: „Nie będę czytać. Po prostu popełnię błędy.”

„Więc?” Powiedziałem. „Po to tu jestem! Nie jestem tutaj, aby słuchać, jak już czytasz doskonale!”

Następnie wykonałem ten improwizowany rysunek:

Empty box

„To okienko pokazuje, jak rozumiesz, jak czytać po francusku” - powiedziałem. „Kiedy całkowicie go wypełnimy, zrozumiesz wszystko. Ale teraz są tam małe bąbelki - kieszenie powietrzne. To są luki w Twojej wiedzy”.

Box with air pockets

„Za każdym razem, gdy czytasz, skanujemy to pudełko. Za każdym razem, gdy znajdujemy bąbelek,„ przebijamy ”go. Rozmawiamy o błędzie i ćwiczymy, aż go zrozumiesz. Na koniec, oto co mamy. ”

Box filled in

Nie wiem, czy to zadziała ze wszystkimi, ale z nim zadziałało. Przezwyciężył strach przed czytaniem.

* Ci, którzy przeczytają ten odcinek jako dowód, że chłopcy też mają ten problem, mogą czuć się wolni. Punkt pedagogiczny jest taki sam.

To brzmi jak ponowne odkrycie lub przeformułowanie mistrzostwa kontra orientacja na wyniki w teorii celów.(Wszystkie wyszukiwane hasła).
Myślę, że jest coś głębokiego w tej odpowiedzi, ponieważ rozwiązuje ona podstawowy problem ucznia, który pozornie odmawia * rozpoczęcia prób *.Próbowanie przez dwie godziny, a następnie poczucie satysfakcji ze znalezienia na wpół działającego rozwiązania może wydawać się naturalne dla doświadczonego programisty stojącego przed nowym problemem, ale takie nastawienie prawdopodobnie nie jest naturalne dla niektórych (większości?) Ludzi.Dotyczy to również wielu różnych odmian rozwiązywania problemów (z mojego doświadczenia przynajmniej matematyki, fizyki i programowania).
Jako moderator GWC: Zaufanie, a nie inteligencja, to często to, czego brakuje: W przeszłości zwykle mówię dziewczynom w moim klubie: „Każdy musi gdzieś zacząć. Nie urodziłem się, wiedząc więcej od Ciebie. Musiałem też pracowaćTrudno nie tylko rozwiązać problemy, ale naprawdę je zrozumieć. ”, mówiąc w istocie„ To normalne, że potrzebuję pomocy / walki: ja też potrzebowałem ”.Dodatkowo, [syndrom oszusta] (https://en.wikipedia.org/wiki/Impostor_syndrome) jest czymś, co często widziałem podczas zdobywania dyplomu z zakresu informatyki i często zdarza się, że mówienie o tym, czym jest, i dyskusja wystarczało, abyrozwiać to.
#8
+9
Crowley
2018-01-18 03:18:58 UTC
view on stackexchange narkive permalink

Myślę, że ich problem jest początkową przeszkodą w „programowaniu”. Myślą, że „programista” jest geniuszem, który myśli kodem, kocha kod, oddycha kodem i wie wszystko.

Jeśli potrafią zrobić to ręcznie na papierze, wyłącz komputer i poproś go o instrukcje ty , aby wykonać wszystkie kroki na papierze.

Zacznij od pustej strony i poproś o podanie sygnału, narysuj wejście sygnału lub zapytaj, jak narysować wykres Następnie zapytaj, co robić dalej i dlaczego. „Zastosuj transformację Fouriera” to dobra instrukcja. Na koniec powinieneś otrzymać polecenie narysowania wykresu wyjściowego. Zapewnij ich, że to takie proste.

Następnie zacznij ponownie od pustej strony. Wyjaśnij im, że teraz jesteś bardziej nudny niż wcześniej i że rozumiesz tylko prostsze zadania. Wyjaśnij im, że jedna instrukcja z poprzedniego przykładu musi być podzielona na kilka następujących po sobie kroków. Instrukcje tutaj również powinny być złożone, ale nieco prostsze. Zapewnij ich, że to wciąż takie proste.

Powtarzaj, aż instrukcje, o które jesteś proszony, będą dokładnie takie, jak instrukcje zapisane w jednym wierszu kodu komputerowego.

Teraz napisali rzeczywisty program w języku, który rozumieją. Zapewnij ich, że to takie proste i że byłeś na tyle tępy, by być uważanym za komputer, a oni i tak mogą uzyskać od ciebie wyniki.

Następnie uruchom komputer i napisz funkcję „Hello World”. Zapewnij ich, że to takie proste.

Pokaż im, jak przetłumaczyć krótką część instrukcji, którą Ci przekazali, na kod zrozumiały dla MATLAB-a. Coś w rodzaju „przejdź przez X i dołącz każdą wartość większą niż Y do Z” oznacza:

  Z = zera (0,1); dla ii = 1: length (X) if X ( ii) >Y Z = [Z; X (ii)]; endend  

Wyjaśnij im każde polecenie i zapewnij, że faktycznie użyli tego polecenia, ale z nieco inną nazwą.

Niech napiszą nieco dłuższy kod na podstawie prostego przykładu właśnie wyjaśniłeś.

Myślę, że jest tylko jedna lekcja, której muszą się nauczyć: wszystko składa się z prostych części. Wszystko, czego potrzebują, to wiedzieć o tych prostych częściach i o tym, jak je połączyć, aby zbudować coś bardziej złożonego.

Nie ukrywaj także funkcji help i doc od nich.

Unikaj czegoś w stylu „To proste, wszystko, co musisz zrobić, to [napisać zaawansowany kod]”. Uniemożliwi to wielu ludziom myślenie o tym, co robisz.

Nie ucz nikogo, kto powinien uczyć się języka Matlab, zapętlania.
#9
+8
jaia
2018-01-17 10:23:54 UTC
view on stackexchange narkive permalink

Uczę matematyki i programowania studentów nauk przyrodniczych, więc widziałem takich uczniów, chociaż może nie aż tak ekstremalnych. Oto, czego chciałbym spróbować.

  1. Zacznij z nią kontaktować się w zwykły sposób. Poczekaj, aż powie: „Jestem do dupy w programowaniu”.

  2. Nie zaprzeczaj jej. Zamiast tego powiedz „OK, załóżmy, że tak dla argumentacji, jesteś do dupy w programowaniu”. Jeśli czujesz, że możesz to zrobić, sprowadź to i zobacz, czy możesz się pośmiać. „W rzeczywistości możesz być po prostu najgorszym programistą, jaki kiedykolwiek żył!” Jeśli to ci nie pasuje, po prostu zrób pierwszą linię.

  3. Odwróć to. „Założę się, że nawet jeśli naprawdę jesteś najgorszym programistą w historii ludzkości, możesz zakodować tę linię”. Wskaż coś bardzo prostego z jej pseudokodu. Zapewnij wsparcie, jeśli to konieczne, i entuzjastycznie, gdy je otrzyma. Jeśli zawiesza się, wpisz odpowiedź z oczywistym błędem w jej edytorze. Pozwól jej naprawić błąd.

  4. Przejdź do następnej najprostszej linii. W tym momencie nie planujesz w pełni działającego programu, tylko stopniowy rozwój.

  5. W tym miejscu powiedz jej, aby popracowała z partnerem przez kilka minut i powiedz wrócisz wkrótce. (Powtórz kilka razy). Dobrze jest też poinformować całą klasę, ile czasu poświęcają profesjonalni programiści na debugowanie.

Zachęć ją też do przyjścia do biura godziny. To może być dobry sposób na indywidualną pracę z uczniem bez poświęcania dodatkowego czasu.

„Założę się, że nawet najgorszy programista w historii ludzkości może zakodować tę linię” lub cokolwiek o tym, że określone zadanie jest łatwe, może być okropną rzeczą do powiedzenia niektórym ludziom.Właśnie potwierdziłeś, że jestem głupi, jeśli tego nie rozumiem.
Nie, jeśli jest powiedziane humorystycznie.Chodzi o to, aby przekazać wiadomość: „Nie wierzę, że jesteś okropny, ale ja się bawię”.Jeśli humor nie jest mocną stroną OP, mogą po prostu powiedzieć: „Ale założę się, że potrafisz zakodować tę linię”.
@jaia łatwo czy nie, humorystycznie lub nie, jeśli ktoś ma jakąś psychiczną blokadę, może nie przyjąć dobrze tego, co zostało powiedziane.Wiemy, co masz na myśli, ale mogą zinterpretować to zupełnie inaczej.Celem jest bycie jednoznacznym, jak to tylko możliwe, więc nie mogą tego źle odebrać.Nie zawsze jest to łatwe.Humorystyczne stwierdzenia są zwykle celowo niejednoznaczne, jeśli chodzi o sformułowanie lub ton._Mogą_ działać, ale musisz znać osobę, aby wiedzieć, jak zareaguje.
Zgadzam się z Baldrickkiem - gdybym miał problem ze studentem, a asystent zrobił to, co zasugerowałeś, i nie znalazłem odpowiedzi, wniosek byłby natychmiastowy: „ten asystent jest z natury lepszy / inteligentniejszy niż ja i nie jestnie mogę / nie rozumieją, jaki jestem głupi, ponieważ są tak sprytni, że nie mogą sobie wyobrazić, że są tak głupi, i dlatego są i zawsze nie będą w stanie mi pomóc w żaden znaczący sposób ”.To znaczy.byłoby to niezwykle szkodliwe.
@jaia Problem nie polega na tym, że przesadzasz.Jeśli powiesz: „Załóżmy dla dobra argumentacji, że jesteś najgorszym programistą, jaki kiedykolwiek żył (którym nie jesteś). Nawet * wtedy * byłbyś w stanie zakodować tę linię”.A co, jeśli * nie może * zakodować tej linii?Teraz nagle jest do bani nawet gorzej niż twój dowcipnie przesadzony najgorszy programista w historii.Zgadzam się, że nie powinieneś jej zaprzeczać, ale lepiej powiedzieć: „Wszyscy jesteśmy do niczego na początku. Gdyby wszyscy to dostali od razu, nie zatrudniłby mnie do pomocy.wiem, więc mogę pomóc. W końcu kliknie ”.
Ważna jest tutaj kalibracja - humor nigdy nie polega tylko na tym, czy dasz radę, czy nie, ale także na byciu wrażliwym na spektrum możliwości, w jaki sposób twoje wypowiedzi wpłyną na drugą osobę.Poprzez inne interakcje z osobą możesz wczuć się i * wpłynąć * (budując komfort / dobre relacje itp.) Na masę prawdopodobieństwa interpretacji.Ryzyko związane z zalecaniem takiego humoru polega na tym, że wiele osób, które go próbują, nie jest wrażliwych na to, kiedy * nie * go używać, albo z powodu niezrozumienia problemów psychicznych, które mogą się z tym wiązać, albo braku dostrojenia interpersonalnego.
(cd.) Warunkiem koniecznym pomyślnej kalibracji interpersonalnej jest rozpoczęcie od dostatecznie szerokiego pomysłu na wszystkie sposoby, w jakie dana osoba może reagować na nasze wypowiedzi - tak naprawdę chodzi o to wszystko: zwrócenie uwagi na drogi, którymi może pójść ten humorźle, co oznacza mniej mówienie, że nigdy nie możemy go używać, a bardziej pomaganie nam w określaniu, kiedy powinno, a kiedy nie powinno być używane.
To obraźliwa i prawdopodobnie szkodliwa rada.
W kroku 3 zredagowałem wiersz, wobec którego ludzie się sprzeciwiali.Nie zapomnij o rozwiązaniu awaryjnym - podaj jej kod, ale z błędem i poproś o jego naprawienie.
@Ray: „W końcu kliknie”.Ale jest to po prostu fałszywe jako uniwersalne stwierdzenie.Jedna trzecia studentów CS1 na całym świecie nie zdaje egzaminu.Trzy czwarte studentów rozpoczynających studia komputerowe nie kończy studiów.http://cs.au.dk/~mec/publications/journal/25--bulletin2007.pdf
@DanielR.Collins Tak.Ale to działa jako uogólnienie.W końcu dwie trzecie studentów CS1 na całym świecie zdaje egzamin.(cs.au.dk/~mec/publications/journal/25--bulletin2007.pdf).Mówiąc poważnie, nie sądzę, żebym kiedykolwiek miał studenta, który regularnie przychodził do biura, kiedy miał problemy i nadal oblał zajęcia wprowadzające.Ci, którzy ponoszą porażkę, to ci, którzy próbują oszukiwać, i ci, którzy mają kłopoty, ale nigdy nie szukają pomocy.(Niektórzy z tych, którzy walczą, ale szukają pomocy, mogą nie przejść przez cały program, ale mogę ich przeprowadzić przez zajęcia wprowadzające, jeśli pozwolą mi pomóc.)
@Ray: "Ci, którzy ponoszą porażkę, to ci, którzy próbują oszukiwać i ci, którzy mają kłopoty, ale nigdy nie szukają pomocy."Więc wracamy do fundamentalnego faktu, że student w sprawie OP odmawia pomocy.Co, jak zauważyłem w mojej odpowiedzi, jest najgorszym atrybutem w tym przypadku.
@DanielR.Collins Stąd moja sugestia, aby podkreślić, że większość ludzi początkowo boryka się z problemami, ale w końcu je dostaje, i że asystent został zatrudniony specjalnie, aby pomóc ludziom dojść do tego punktu.Jeśli PO może doprowadzić ją do punktu, w którym prosi o pomoc, kiedy jej potrzebuje, zamiast panikować, problem staje się możliwy do rozwiązania.
@Ray: „większość ludzi początkowo boryka się z problemami, ale w końcu je dostaje” to nie to samo, co uniwersalne „W końcu kliknie”.
@DanielR.Collins Chętnie przyznam, że „W końcu kliknie” to uogólnienie, które w niektórych przypadkach się nie powiedzie.Osobiście nie przeszkadza mi to (to zachęta, a nie twierdzenie), ale jestem gotów zastąpić to stwierdzeniem „Większość ludzi początkowo ma problemy, ale w końcu to łapie” jako moją oficjalną sugestię.Ważne jest to, że jest to coś bardziej skłonnego do szukania pomocy i mniej skłonnych do odwrotu niż odpowiedź: „Założę się, że nawet jeśli naprawdę jesteś najgorszym programistą w historii ludzkości, możesz zakodować tę linię”.
#10
+8
dowskee
2018-01-17 19:30:19 UTC
view on stackexchange narkive permalink

Czy kiedykolwiek słyszałeś o zespole oszusta? Mój bootcamp z kodowania przedstawił nam to na początku naszego szkolenia programistycznego. Zasadniczo podsumowuje poczucie nieadekwatności, zwłaszcza w obliczu rówieśników. Nauka kodu może wydawać się zadaniem nie do pokonania. Ten film pomógł sobie i innym uczniom, gdy czuliśmy, że znaleźliśmy się w złym miejscu:

https://www.youtube.com/watch?v=eqhUHyVpAwE

Może się to wydawać trochę głupie, ale myślę, że dla umysłu ucznia jest to odpowiednie.

Nie jestem pewien co do nagrania, ale Syndrom oszusta był pierwszą rzeczą, która przyszła mi do głowy, kiedy to przeczytałem.
#11
+5
Rufus
2018-01-18 08:18:04 UTC
view on stackexchange narkive permalink

Chciałbym dodać, że kod początkowy / podstawowa infrastruktura może pomóc osobie, która nie jest zbyt zaznajomiona z programowaniem, w rozpoczęciu wpisywania rzeczy w edytorze.

Na przykład w c ++, puste fourier_transform.cpp może wyglądać przerażająco, ale jedno z

  ... doFourierTransform (...) {/ * Dane wejściowe: ta funkcja przyjmuje jako dane wejściowe ... Wyjście: Ta funkcja powinna zwrócić ... * / // ==== WPISZ TUTAJ SWÓJ KOD ==== // ==================== ========}  

nagle znacznie ułatwia rozpoczęcie pracy.

Wybacz tę drobną osobistą opinię ... ale Python może być łatwiejszy język dla początkujących niż MATLAB

MATLAB jest najprawdopodobniej wymagany - jest bardzo popularny w nauce.
W rzeczywistości jest to znacznie bardziej powszechne wśród inżynierów niż naukowców.
@Pharap, ale Python zyskał na popularności w nauce w ciągu ostatnich 5-10 lat (przynajmniej).
@mathreadler Jest popularny dla początkujących i niektórych aplikacji, ale mogą istnieć powody, dla których używany jest Matlab, na przykład fakt, że jest on nastawiony na macierze, więc nie ma potrzeby tworzenia pętli.Ostatecznie jednak uprawnienia, które zdecydowały, że uczniowie muszą programować w Matlabie i próba przekonania ich do przejścia na Python może nawet nie rozwiązać problemu, o który pyta OP.
@AndreaLazzarotto Engineering to nauka stosowana.
@Pharap Kiedy ostatnio byłem na studiach kilka lat temu, Python z bibliotekami numpy, scipy i innymi przeżywał wielki rozkwit w kilku działach inżynieryjnych.
Mathreadler niczego takiego nie sugeruje, odpowiedzieli tylko na twoje oświadczenie o rozpowszechnieniu MATLAB-a.Przestań się kłócić ze względu na kłótnie.
@mathreadler Może, ale A) to tylko jeden uniwersytet, który niekoniecznie reprezentuje inne uniwersytety i B) zmiana języka, którego używają na Python, zajęłaby trochę czasu, jeśli nie ma jeszcze możliwości korzystania z niego, inawet jeśli przełączą się przed zakończeniem kursu, może to nie pomóc temu konkretnemu studentowi.
+1 Do głównego punktu tutaj.Rok temu zacząłem korzystać z książki, do której dołączono ćwiczenia laboratoryjne tego rodzaju („Wpisz kod nowej struktury tutaj, a tutaj…”).Pracuję znacznie lepiej niż ćwiczenia typu „napisz program, który dos X”, które wykonywałem lata temu.
Chociaż nie traktuję rusztowania jako narzędzia dydaktycznego, dostaję studentów, którzy ukończyli i przeszli nasze wprowadzenie do kursu programowania, którzy nie potrafią pisać * niczego *, zaczynając od samego edytora.Prawdopodobnie dlatego, że każde zadanie było dla nich rusztowaniem.Więc proszę, w pewnym momencie zakończ rusztowanie.
#12
+2
Andrea Lazzarotto
2018-01-19 02:11:44 UTC
view on stackexchange narkive permalink

Nie pracuję dokładnie jako programista , właściwie jestem zawodowym programistą , stąd moja perspektywa może być nieco inna. Co więcej, studiowałem informatykę, więc naprawdę nie znam się zbytnio na inżynierskiej stronie środowiska akademickiego (po prostu wiem, że jest inna).

Jednak dużo uczyłem się programowania (to tylko w końcu niewielka część rozwoju oprogramowania) iz tego, co napisałeś, myślę, że jest coś, co można i powinno zostać naprawione lub przynajmniej może bardzo pomóc temu uczniowi.

W szczególności , wspomniałeś, że:

Rozumie teorię (ponieważ istnieje laboratorium wstępne, w którym zapisujesz teorię tego, co będziesz kodować w laboratorium, i dobrze sobie tutaj radzi), ale jeśli chodzi o kodowanie, po prostu nie może zacząć.

Mogę się mylić, ale wydaje mi się, że najpierw robisz wstępne laboratorium, kiedy coś piszą, a potem zdobądź je tuż przed ekranem, gdy MATLAB jest otwarty.

Jest to niebezpieczne (i nieproduktywne) dla profesjonalistów, nie mówiąc już o nowicjuszach.

Rozpoczęcie pisania kodu bez po dokładnym ustaleniu, co masz iść al jest, a struktura będzie miała to jak wyjazd na 2-letnią podróż bez bagażu, bez pieniędzy, bez środków transportu i bez pojęcia, dokąd się wybierasz. Prawdopodobnie możesz to zrobić, ale wolisz tego nie robić.

Nie pamiętam, ile razy nas tego uczono, kiedy uczyłem się programowania w liceum i na studiach licencjackich. Właściwie nawet nas do tego zmusili. Niewiele podczas studiów magisterskich, prawdopodobnie pomyśleli, że nie byłoby nas, gdybyśmy jeszcze tego nie wiedzieli.

Zaczynając bezpośrednio przed pierwszym ekranem:

  • spędza dużo czasu na poprawianiu składni, wciąż myśląc o tym, jak będzie działać rozwiązanie
  • pisze niechlujny kod, któremu brakuje jasnej wizji
  • odczuwa frustrację i ból związany z brakiem precyzyjnych pomysłów

Można to naprawić, stosując Poprawny sposób (: P) z:

  • zaczynając od: podanych danych wejściowych, wyników, które chcemy uzyskać / pożądany efekt
  • zapisywanie procesu krok po kroku, opisującego szczegółowo, jak problem zostanie rozwiązany, jak zachowa się główna funkcja itp. (zwykły angielski, a następnie pseudokod jako drugi krok)
  • (jeśli jest to większy program) projektowanie listy różnych funkcji i / lub struktur danych, myśląc najpierw o tym, co zrobią, a następnie o tym, jak
  • w końcu skopiować rzeczy zapisane na papierze do rzeczywistego kodu, krok krok po kroku i dopiero w tym momencie myśląc o składni / błędach

W przypadku małych programów lub skryptów profesjonaliści zwykle radzą sobie z projektowaniem całej struktury kodu w myślach przed rozpoczęciem, jednak jest to dość trudne ( jeśli nie niemożliwe) dla nowicjuszy lub ludzi, którzy myślą, że „są do niczego w programowaniu”. Zwykle zapisuję rzeczy na wszystko, co zajmie więcej niż 2 godziny pracy.

Pióro i papier to pierwsze narzędzia, które powinny być używane do programowania, a zwłaszcza do tworzenia oprogramowania przez początkujących. To podejście powinno być stosowane zamiast bezpośredniego pisania kodu przez uczniów.


Uwaga dodatkowa

Inne podejście jest zwykle dobre do zaznajomienia się ze składnią języka, zwłaszcza w środowisku REPL. Zaczyna się od kodu dostarczonego przez kogoś innego (małe fragmenty) i próbuje zmienić wartości parametrów, aby zobaczyć, co się stanie.

Jednak tego podejścia nie należy mylić z nauką programowania. Ta metoda ma sens tylko w „trybie eksploracyjnym”, którego celem nie jest napisanie określonego fragmentu kodu.

„Nie pracuję dokładnie jako programista, właściwie jestem zawodowym programistą” - Programista to typ programisty.(Chyba że faktycznie nie napiszesz żadnego kodu).
@Pharap tak, piszę kod, ale programista robi znacznie więcej niż programowanie.:)
Co robi „programista”?
@Wildcard zadaniem programisty jest przekształcanie kawy w kod.: P Serio, programista pisze kod z jakiegokolwiek powodu.Statystycy są programistami, biorąc pod uwagę, że używają R. Inżynierowie są programistami podczas korzystania z MATLAB-a itp. Programista to ktoś, kto musi zaprojektować całą strukturę aplikacji, jej schemat bazy danych, klasy, moduły i tak dalej, dla produktu, który jeststanie się gotowym oprogramowaniem lub aplikacją.Następnie programiści mogą wziąć projekt i wdrożyć go lub w przypadku małego zespołu programiści sami piszą kod.
Zakładanie, że głosy przeciwne są głosami zemsty, to przepis na wrogość.Generalnie nie zgadzam się z twoją oceną: nie ma nic złego w tym, co proponujesz, po prostu nie sądzę, że jest to najlepszy sposób.Uczę małe dzieci (10-13) CS i potrafią kodować „w locie”.W moim doświadczeniu brakuje pewności siebie, by spróbować (i potencjalnie się nie udać).Ponadto dokonane przez ciebie rozróżnienie: programista vs * programista * jest w dużej mierze semantyką.Mówienie, że R i MATLAB to królestwo programistów, a nie deweloperów, wydaje się elitarne: „Nie jestem śmieciarzem, jestem profesjonalnym * ekspertem w usuwaniu śmieci *”.
Głosy przeciw @TemporalWolf, mogą być używane jako „Nie zgadzam się” * na Meta. * Na głównych stronach głosów przeciw należy używać tylko ** do oznaczania wyraźnie nieprawidłowych odpowiedzi. ** Więcej informacji można znaleźć w przewodniku po witrynie i sekcji pomocy.Nie powiedziałem też nic o tym, że R lub Matlab są domeną programistów.Wyjaśniłem, że jest kilka osób, które kodują ważne zadania niezwiązane z tworzeniem oprogramowania.Jestem odpowiedzialny za to, co napisałem, a nie za to, co ludzie myślą, że powiedziałem.I nie ma nic elitarnego w mówieniu, że jestem programistą, wiem, na czym polega moja praca.
Prawdę mówiąc, użyłem zarówno R, jak i Matlab podczas studiów i całkiem mi się podobały.Ale nigdy nie używałem ich do tworzenia oprogramowania, używałem ich do rozwiązywania problemów naukowych ... dlatego w tym kontekście byłem programistą.:)
Nie było złośliwości w wyborze zawodu, to po prostu [pierwsza rzecz, która przyszła mi do głowy] (http://dilbert.wikia.com/wiki/The_Garbageman).Jeśli wolisz: „Nie jestem tancerką, jestem zawodową baletnicą”.Nie znam żadnych programistów z twojej definicji i może 1 lub 2 programistów.Spośród kilkudziesięciu znanych mi osób zajmujących się programowaniem.Ogromna większość ludzi w naszym zawodzie mieści się gdzieś w spektrum między tym, co opisałeś.
DOBRZE.Rozumiem, co mówisz, ale wydaje mi się, że sugerujesz, iż „programista” i „programista” to synonimy, podczas gdy tak nie jest.Tak, jest kilku programistów, którzy nazywają siebie „programistami”, ponieważ nie myślą zbyt wiele o tym, co robią przez pozostałe 50% swojego czasu.:) Niektórzy programiści w większych firmach jeszcze więcej myślą, a jeszcze mniej kodują.
PS: dziękuję za ciekawostki Dilberta, bardzo doceniane.
#13
+1
gnasher729
2018-01-20 21:27:30 UTC
view on stackexchange narkive permalink

Twoja uczennica prawdopodobnie nie będzie w stanie tym razem zaliczyć kursu - jest już daleko w tyle i raczej nie nadrobi zaległości. Więc może przygotować się na odejście następnym razem.

Problemem nie jest nic intelektualnego, jest to zwykły i prosty strach. Absolutnie wie, że nie umie programować, więc musi zacząć bez programowania lub bez myślenia, że ​​programuje. Ostatecznie „programowanie” oznacza, że ​​wpisujesz program, komputer robi to, co mówi program, a jeśli wpiszesz właściwe rzeczy, komputer zrobi to, czego faktycznie chciałeś.

Aby więc spróbować zrobić to w najprostszy możliwy sposób, poproś ją, aby odwiedziła https://www.w3schools.com, która uczy HTML. Zaczyna się naprawdę łatwo. Pokazują program, trochę go zmieniasz, klikasz na przycisk i pokazuje wynik twoich zmian. Nie wygląda to na programowanie („prawdziwi” programiści powiedzą, że to nie jest programowanie, ale jest wystarczająco blisko), więc jest nadzieja, że ​​może to zrobić bez strachu, zobaczyć małe sukcesy i poprawić stamtąd.

I w pewnym momencie MatLab nie będzie już wzbudzać w niej strachu. Mam nadzieję, że uda jej się zdobyć materiały do ​​kursu, więc powinna móc zacząć samodzielnie, a następnie wziąć udział w kursie w przyszłym roku.

Cóż, kodowanie HTML _ obiektywnie_ nie jest programowaniem i nie pomoże w narzekaniu na MATLABA (mam skłonność, _ subiektywnie_), czuć, że większość skryptów MATLAB napisanych przez studentów kierunków ścisłych / inżynieryjnych również nie kwalifikuje się jako właściwe programowanie (bardziej jako _abacus move batching_), ale jest to zupełnie inny rodzaj „niewłaściwego programowania” ...) To powiedziawszy, ta odpowiedź może nadal nie być złą radą, ponieważ kodowanie HTML _ może_ pomóc z ogólnym strachem przed kodowaniem nieprzetworzonych plików tekstowych, co jest być może pierwszą przeszkodą.
#14
+1
mk mcmahon
2018-01-23 11:06:16 UTC
view on stackexchange narkive permalink

Spóźniam się, ale chcę przedstawić inny punkt widzenia. Większość ludzi mówi „powiedz jej coś, a ona się zmieni” lub „zmieni ją”: to nie zadziała. Pomyśl, co by było, gdyby to była twoja rodzina. Co byś wtedy zrobił? Na przykład, gdyby twój syn odmówił poskładania prania? Myślę, że musielibyśmy po prostu złożyć razem pranie, aż on to zrozumie. Mógłbym to dla niego zrobić od czasu do czasu, żeby nie byli sfrustrowani, ale w końcu będą musieli nauczyć się robić to sami lub nie zostanie to zrobione. Niektórzy ludzie po prostu nie składają ubrań, niektórzy po prostu nie lubią komputerów.

Trudno to zrozumieć z naszej perspektywy, ale jest to nie mniej wyjątkowe lub wyjątkowe. Z pewnością trudna lekcja dla każdego nauczyciela i pokazuje, jak ważne jest pozytywne nastawienie. Nawet jeśli nie nauczą się, czy potrafisz zachować pozytywne nastawienie, nadal był to sukces dla ucznia. Mam nadzieję, że moja perspektywa rzuci światło na tę sytuację i powodzenia.



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...