Pytanie:
Dlaczego stopnie z informatyki zawierają dużą część matematyki?
Jimmy
2019-10-07 18:20:04 UTC
view on stackexchange narkive permalink

Około 17 lat temu uczęszczałem do 10 najlepszych brytyjskich uniwersytetów, aby uzyskać stopień naukowy z informatyki.

Matematyka nigdy nie była dla mnie szczególnie mocną stroną. Jednak miałem (tylko) wymagane kwalifikacje na poziomie A, aby zostać przyjętym na kurs bez żadnych problemów.

Po dwóch semestrach zrezygnowałem i przeniosłem się do innej 10 najlepszych brytyjskich uczelni, aby studiować na kierunku informatyka. Powody, dla których zrezygnowałem z tej pierwszej były po prostu dlatego, że uważałem wykłady matematyczne za niewiarygodnie trudne. Uczelnia nie zapewniła (moim zdaniem) dobrego wsparcia osobom, które nie były mocne w tej dziedzinie. Jednak nigdy też nie zrozumiałem, dlaczego naucza się matematyki na tym poziomie.

Niedawno przejrzałem kilka notatek z wykładów zamieszczonych na stronie byłego uniwersytetu z bieżącego roku. I rzeczywiście, poziom złożoności wydaje się taki sam.

Kiedy przeszedłem na studia informatyczne, częścią mojej logiki było to, że rezultatem byłby bardziej praktyczny / przydatny zestaw umiejętności do faktycznego tworzenia oprogramowania , wraz z wymaganym logicznym myśleniem (które moim zdaniem wymaga niewielkiej wiedzy matematycznej). Dla mnie to zadziałało, ponieważ od ukończenia studiów miałem dobrą karierę jako programista. Nigdy nie stwierdziłem, że żadna z moich prac wymaga dużo matematyki, poza poziomem złożoności na poziomie GCSE / A.

Co ciekawe, patrząc na LinkedIn, ogromna liczba osób na byłym uniwersytecie zajmowała się inżynierami oprogramowania lub podobnymi rolami. Wynagrodzenia w organizacjach, w których pracują te osoby, wydają się współmierne do stanowiska, w którym obecnie pracuję.

Biorąc to pod uwagę, zastanawiam się, jaki jest ostateczny cel i cel nauczania tej złożonej matematyki na stopniach CS? Rozumiem, że niektórzy ludzie będą pracować ze sprzętem, a nawet produkować oprogramowanie, które zawiera złożone elementy matematyczne. Ale wydaje się, że jest to mniejszość - z bardzo dużym marginesem - pod względem tego, co ludzie faktycznie robią. Rozmawiałem również z ludźmi o karierze, w której się znaleźli, a nie tylko o tym, by patrzeć na LinkedIn itp.

Wydaje mi się, że kursy CS uczą umiejętności, które - chociaż są istotne - nie są tak istotne jak one mógł kiedyś być. Jeśli tak jest, to dlaczego nikt się tym nie zajął? Wydaje się to absurdalne.

Moje doświadczenie w tym zakresie opiera się na dwóch najlepszych uniwersytetach w Wielkiej Brytanii 10, ale patrząc na kilka innych (w Wielkiej Brytanii i USA) wydaje się, że jest to przypadek ogólny.

Jeśli ludzie przyjmują role, które wymagają tego poziomu wiedzy matematycznej, jakie są te role? Ponieważ nie widzę wielu dowodów na to, że dzieje się to po ukończeniu studiów.

Komentarze nie służą do rozszerzonej dyskusji;ta rozmowa została [przeniesiona do czatu] (https://chat.stackexchange.com/rooms/99761/discussion-on-question-by-jimmy-why-do-computer-science-degrees-contain-a-high-p).Komentarze zamieszczone poniżej tego powinny wymagać wyjaśnienia tylko od pytającego (ponieważ nie ma mechanizmu przenoszenia przyszłych komentarzy do dyskusji na czacie, mogą zostać usunięte)
Inny facet nie potrafi odróżnić SDE od CS.SDE jest przeznaczone do kodowania i inżynierii, podczas gdy CS jest bardziej do prowadzenia badań i nauki.Pochodzenie * komputera * jest w rzeczywistości * myślą matematyczną *, ale nie organizmem programowym.Ale to nie twoja wina, ludzie zawsze to robią.Wielu studentów CS nie ma możliwości i / lub zainteresowania, aby pójść dalej w CS po ukończeniu studiów licencjackich, a następnie przejść na SDE, aby rozwijać rzeczy i zarabiać pieniądze.Ale to nie jest to, co CS oznacza na początku.
Dwanaście odpowiedzi:
Spark
2019-10-07 18:51:06 UTC
view on stackexchange narkive permalink

Przegląd ich dyplomów z zakresu CS na Uniwersytecie Oksfordzkim mówi wszystko:

Informatyka polega na zrozumieniu systemów i sieci komputerowych na głębokim poziomie. Komputery i uruchamiane przez nie programy należą do najbardziej złożonych produktów, jakie kiedykolwiek stworzono; ich zaprojektowanie i efektywne wykorzystanie stanowi ogromne wyzwanie. Stawienie czoła tym wyzwaniom jest celem informatyki jako dyscypliny praktycznej, co prowadzi do kilku podstawowych pytań:

  1. W jaki sposób możemy precyzyjnie uchwycić to, co chcemy, aby system komputerowy zrobić?

  2. Czy możemy matematycznie udowodnić, że system komputerowy robi to, co chcemy?

  3. W jaki sposób komputery mogą nam pomóc modelować i badać złożone systemy, takie jak klimat Ziemi, systemy finansowe lub nasze własne ciała?

  4. Jakie są ograniczenia w obliczeniach? Czy komputery kwantowe przekroczą te granice?

Innymi słowy, językiem informatyki jest matematyka, a nie C ++. Jeśli szukasz szkolenia zawodowego w zakresie obsługi komputera, CS jest prawdopodobnie niewłaściwym wyborem.

Część dotycząca szkolenia zawodowego mogłaby być bardziej widoczna.Wydaje się, że właśnie tego szukał operator.
„Czy komputery kwantowe zwiększą te ograniczenia?”.Lol nie.Ta sama obliczalność / inna złożoność obliczeniowa.Dlaczego używają pytania otwartego do zapowiedzi uczniów, skoro odpowiedź brzmi „Nie, komputery tego nie potrafią”.
@BlueWizard * ograniczenia obliczeniowe * można również przyjąć jako * praktyczne * ograniczenia.Jeśli zadanie zajmowałoby eony z tradycyjnymi komputerami, wykracza poza te ograniczenia, mimo że jest * teoretycznie * możliwe.
„Jeśli szukałeś szkolenia zawodowego w zakresie obsługi komputera, CS jest prawdopodobnie niewłaściwym wyborem” - słowa, które chciałbym, żeby ktoś mi powiedział na * początku * mojej próby uzyskania stopnia naukowego z informatyki.
@BlueWizard, poza tematem, ale klasyczne komputery obsługujące obliczenia oparte na równaniach dla systemów kwantowych szybko osiągają punkt ciężkiej granicy, podczas gdy systemy kwantowe działające bezpośrednio na komputerze kwantowym są w rzeczywistości opłacalne.Więc do pewnego stopnia powiedziałbym, że tak, komputer kwantowy rozszerza granice (niektórych wyspecjalizowanych) obliczeń.Pomyśl o materiałoznawstwie i innych, w których zachowanie makr jest częściowo spowodowane efektami kwantowymi (jak nadprzewodniki).
„Innymi słowy, językiem informatyki jest matematyka, a nie C ++” Nie zgadzam się z tym, ale nie widziałem jeszcze czysto teoretycznego kursu informatyki.Kurs na poziomie Oxfordu uczy Scala jako część ich imperatywnych modułów programowania.Haskell dla FP.Warwick uczy Javy i Haskella.Kursy te są * nie * przeznaczone tylko dla studentów do prowadzenia badań, wszystkie zawierają pewne praktyczne treści inżynierii oprogramowania obok teorii.
@Adam Oczywiście, osobiście uważam, że osoby z kursów zawodowych zbyt mocno koncentrują się na tym, co jest obecnie modne.Nie obchodzi mnie, że mój nowy pracownik nigdy wcześniej nie widział Angulara, chcę, aby zrozumieli podstawy.I tak będziesz musiał uczyć się nowego frameworka / języka przez cały czas, jeśli zrozumiesz podstawy, możesz to zrobić w krótkim czasie.Chcę, aby zrozumieli współbieżność, struktury danych, sposób działania komputerów i implikacje oraz wszystkie inne dobre rzeczy.
@Voo Zgoda, zdecydowanie (a zwłaszcza w świecie JS wydaje się, że co 5 minut otrzymujemy nowy framework do nauki).Myślę, że tutaj ważna jest zdrowa równowaga: np.narażenie się na powszechne koncepcje języka programowania poprzez pisanie kodu w ramach kursu, uczenie się koncepcji kontroli wersji, a także zagadnień teoretycznych: złożoność czasowa algorytmu i struktury danych itp. Nie sądzę, żebym chciał zatrudniać kogoś z _brak_ wcześniejszego praktycznego programowaniadoświadczenie niezależnie od ich teoretycznego zrozumienia.
@Adam Całkowicie się zgadzam.Szczerze mówiąc, każdy program CS warty uwagi powinien dać swoim studentom kontakt z wieloma różnymi paradygmatami programowania.OOP, funkcjonalne, logiczne (na pewno nigdy nie użyjesz prologu w praktyce, ale są tam cenne rzeczy do nauczenia się).Mam na myśli, że w praktyce musisz zrozumieć programowanie dla tych algorytmów, konstrukcji kompilatorów lub kursów uczenia maszynowego, więc myślę, że to nie jest duże zmartwienie.Jeśli potrafisz napisać kompilator w jakimś języku, na pewno nauczysz się tam przynajmniej podstaw;)
@AdamWilliams Co uważasz za „czysto teoretyczne”?Kurs, który obecnie prowadzę (zatytułowany „Wprowadzenie do algorytmów i modeli obliczeniowych”) nie ma żadnego _programowania_.(Ponadto „teoretyczne” nie jest przeciwieństwem „przydatne”!)
@JeffE Zakładam jednak, że studenci zrobiliby coś więcej niż tylko ten „kurs”, prawda, aby ukończyć szkołę i uzyskać dyplom?NB: Myślę, że w moich komentarzach można spokojnie zastąpić kurs „program”, bo jestem Brytyjczykiem.Zrobiłem więcej niż kilka modułów na moim kursie licencjackim, który nie zawierał żadnego nauczania programowania - projektowanie algorytmów, sieci neuronowe, algebra liniowa itp.!Były one jednak zawarte w kursie * obok * modułów programowania, więc nadal istniało bardzo wiele mieszanki tych dwóch.Rzeczywiście, najlepsze praktyczne moduły programistyczne zbudowane na modułach teoretycznych.
W dzisiejszych czasach prawie żadna dziedzina nie jest pomijana, jeśli chodzi o matematykę.CS zawiera wiele takich rzeczy, zwłaszcza jeśli wybierasz się na wyższy stopień.Powodem jest to, że wyższy stopień oznacza bardziej teoretyczne podejście.Wynika to z prostego faktu, że wyższe stopnie (magisterskie, doktoranckie) skierowane są do osób, które chcą podjąć naukę, która wymaga solidnego przygotowania matematycznego.Oczywiście rzeczywisty świat różni się (jak zwykle) od tego, co myślą niektórzy akademicy, więc jest wielu specjalistów CS z tytułem magistra, którzy trzymają się z daleka od badań.
@Voo To jest powód, dla którego wybrałem kierunek studiów na University of York.Wyszedłem z doświadczeniem w 18 różnych językach w różnych paradygmatach.Myślę, że tylko dwa moduły, które zajęły mi cztery lata, a które nie były kontynuacją poprzedniego modułu, miały wspólny język.Założeniem jest to, że uczą nas informatyki, a nie języka programowania.Podobało mi się to założenie.
Niestety, jeśli przeszukujesz ogłoszenia o pracę w jakiejkolwiek standardowej firmie (banku, ubezpieczycielu itp.), Poszukują osoby z tytułem „Comp Sci” lub równoważnym.To, czego naprawdę chcą, to ktoś z „odpowiednikiem”, czyli dyplomem z systemów informatycznych.IS uczy kodowania i podstawowych procesów biznesowych.Branża nigdy się na tym nie skupiła, więc dzieci próbują zdobyć stopnie naukowe, a nie bardziej przyswajalne stopnie IS, które są bardziej odpowiednie dla typowego biznesu.Uzyskujesz stopień naukowy w zakresie pisania kodu.Uzyskujesz dyplom z CS, aby napisać kompilator, który zbuduje ten kod.
@RLH Ale tak naprawdę nie potrzebujesz uniwersytetu, aby uczyć cię programowania.Możesz to zrobić znacznie wydajniej i lepiej samodzielnie, korzystając z dostępnych zasobów (tak jakby każda uczelnia była w stanie być na bieżąco z nowym frameworkiem JavaScript co 6 miesięcy).Szczególnie jeśli nauczyłeś się podstaw, które leżą u podstaw tych wszystkich „nowych” rzeczy (jeśli rozumiesz monady, rozumiesz już wszystkie LINQ, opcje i w pewnym sensie async / await).Dlatego chcę mieć kogoś z tytułem Comp Sci.
„Innymi słowy, językiem informatyki jest matematyka, a nie C ++. Jeśli szukasz szkolenia zawodowego w zakresie obsługi komputerów, prawdopodobnie CS jest niewłaściwym wyborem”.Doskonały opis różnicy.Moja * praca * to programista, a ja * jestem * to naukowiec.Informatyk.
@Voo Istnieje skala uczenia się w kierunku „czystego” CS.Tak, wielu z tych rzeczy możesz nauczyć się samodzielnie, ale dyplom powinien dać ci walidację na poziomie podstawowym.Niezależnie od tego, czy jesteś magiem, który sam podjął programowanie, czy kimś, kto rozpoczął naukę w ramach edukacji na uczelni, musisz nauczyć się podstaw inżynierii, aby być skutecznym inżynierem.Dowiedziałem się tych informacji na moim stopniu magisterskim, chociaż nie zagłębiały się one w tę mechanikę.Nauczyłem się podstaw asemblera i jak działa elektronika.To była tylko ankieta, zasady nauczania i dobrze mi to odpowiadało.
Boaty Mcboatface
2019-10-07 19:35:43 UTC
view on stackexchange narkive permalink

Byłeś na wydziale informatyki , a nie na wydziale inżynierii komputerowej . Byłoby rozsądnym oczekiwaniem, że zrozumiesz podstawowe mechanizmy „rzeczy komputerowych” i prawdopodobnie będziesz kontynuować swoje badania naukowe. Nie jestem informatykiem, więc przykłady mogą być tutaj ograniczone.

  • kryptografia: poza zrozumieniem schematów RSA istnieje wiele interesujących obszarów badawczych i zastosowań. Na przykład kryptografia krzywych eliptycznych wykorzystuje poważny poziom matematyki lub szyfrowanie homomorficzne wykorzystuje schematy szyfrowania imitujące matematyczną koncepcję morfizmu do przetwarzania zaszyfrowanych danych bez deszyfrowania ( na przykład porządkowanie numerów)
  • teoria komunikacji: teoria kodowania jest mocno matematyczna. Ma pewne podpola, które wymagają czegoś więcej niż tylko podstawowego zrozumienia algebry liniowej. Słyszałem, że badanie kodów korygujących błędy jest dość nietrywialne. Ich główną właściwością jest wykrywanie i korygowanie ewentualnych błędów w komunikacji. Jest to prawdopodobnie bardziej przydatne w przypadku aplikacji, w których istnieje większe prawdopodobieństwo wystąpienia błędów w komunikacji. Weź pod uwagę eksplorację kosmosu, polarności lub głębin oceanów. Jeśli chodzi o teoretyczną stronę teorii kodowania, ktoś użył geometrii algebraicznej, aby pokazać, że teoretyczna górna granica niezmiennika (nie pamiętam jego nazwy) była najlepsza, na jaką mogliśmy mieć nadzieję. (Oznaczałoby to, że istnieją kody, które podają tę dokładną wartość niezmiennika, zgodnie z przewidywaniami górnej granicy)
  • Rozpoznawanie obrazów i uczenie maszynowe również wykorzystuje poważne poziomy algebry liniowej. Poważne w tym sensie, że intuicja trójwymiarowych przestrzeni wektorowych i możliwość mnożenia niektórych macierzy nie byłyby wystarczające, ponieważ porównywałbyś przestrzenie wektorowe o wymiarach dużej liczby . Jestem pewien, że bardziej piśmienna osoba byłaby bardziej pomocna w tej kwestii.
  • Haskell to język programowania oparty na języku nazywanym przez matematyków teorią kategorii. Nie znam korzyści płynących z używania tego Haskella, ale niektórzy ludzie go uwielbiają. Powiedziałbym jednak, że teoria kategorii jest bardzo nietrywialna. Powiedziałbym, że przeciętny student po ukończeniu studiów licencjackich z matematyki miałby bardzo podstawową wiedzę na ten temat. Jest wysoce konceptualny, a jego pochodzenie i większość jego przykładów to zwykle materiały dla absolwentów. Dlatego bardzo pomocne byłoby posiadanie ogólnej wiedzy matematycznej, aby móc odnieść się do tego, co się dzieje.
O rany, zostawiłem komentarz do głównego pytania, żeby od razu zauważyć, że twoje pierwsze zdanie to w zasadzie mój komentarz, podkreślenie i wszystko: D
@penelope zdarza się najlepszemu z nas :)
Nie rozumiem twojego pierwszego zdania.Czy naprawdę myślisz, że stopnie "inżynierii komputerowej" mogą wymagać * mniej * matematyki?To nie pasuje do mojego doświadczenia ani do powszechnego użycia słowa „inżynieria”.
@CarlLeth Inżynieria komputerowa to „inżynieria” w XIX-wiecznym znaczeniu tego słowa, a nie XXI wieku.
@alephzero co konkretnie przez to rozumiesz?(Osobiście mam żal do nazywania tego, co większość ludzi robi inżynierią komputerową, ponieważ reperkusje niepowodzenia są o wiele mniejsze niż w innych dziedzinach inżynierii)
@alephzero: Większość stopni inżynierii komputerowej, jakie znam, zrodziła się z elektrotechniki (z większą ilością programowania niż czysta EE, często z niektórymi właściwymi elementami informatyki), która jest * mocno * oparta na fizyce.Możesz nie potrzebować teorii liczb, ale potrzebujesz * dużo * matematyki, aby poradzić sobie z fizycznymi aspektami dyplomu inżyniera elektryka lub informatyka.Inżynieria oprogramowania może wymagać mniej matematyki (i nie jest to inżynieria w normalnym znaczeniu tego słowa), ale inżynieria komputerowa nie.
Nitpicking, ale przynajmniej na mojej uczelni inżynieria komputerowa to nie inżynieria oprogramowania.Echo ShadowRanger, CE było znacznie bardziej oparte na sprzęcie
@llama Myślę, że reperkusje zależą od pola / branży, podobnie jak w przypadku innych rodzajów inżynierii!
@llama mnie też.Nigdy nie rozumiałem, dlaczego niektórzy programiści komputerowi lubią nazywać siebie inżynierami.Może po to, aby poczuć się lepiej w wybranym zawodzie?A może po to, aby inni pomyśleli, że programowanie komputerów jest trudne i skomplikowane?Nadal będę się uparcie nazywać programistą komputerowym i denerwować samozwańczych „inżynierów oprogramowania”, nazywając ich również programistami.
Inżynieria to zastosowanie zasad naukowych do praktycznych problemów.Musisz być w stanie rozumieć naukę i wykonywać obliczenia matematyczne, aby ją zastosować.Dotyczy to zarówno informatyki i inżynierii oprogramowania, jak i fizyki oraz inżynierii mechanicznej i lądowej.Jeśli nie zajmujesz się matematyką i naukami ścisłymi przy komputerze, prawdopodobnie jesteś raczej programistą niż inżynierem oprogramowania.
Powtarzaj innym, inżynieria komputerowa wymaga mnóstwa matematyki, więc pierwsze zdanie jest dziwne.Jestem EE i regularnie mam inżynierów komputerowych na moich różnych zajęciach.Wymagają mniej matematyki niż EE, ale z pewnością sporo, nawet porównywalnej z informatyką.Myślę, że jak wspominali inni, istnieje niezrozumienie tego terminu.Inżynierowie komputerowi to głównie EE, ale bardziej skupiają się na technologii cyfrowej.
@llama Czy może Pan rozważyć, co może się stać, gdy jeden z fizycznych elementów systemu sygnalizacji świetlnej ulegnie awarii, a nie co się stanie, gdy zawiedzie jego oprogramowanie?Pamiętaj, że w 2019 roku prawie wszystko, co zbudują „inni” inżynierowie, jest sterowane przez oprogramowanie, a konsekwencje niepowodzenia są astronomiczne.Możesz również [cieszyć się tą lekturą] (https://www.fastcompany.com/28121/they-write-right-stuff)
@Douwe stąd „najbardziej”.Na tytuł zasługują systemy wbudowane, medyczne i tym podobne.Pisanie innej aplikacji, aby stworzyć rynek, na którym nie powinien istnieć, i ignorować wszystkie obawy dotyczące bezpieczeństwa, aby wciągnąć kogoś w rzucanie w ciebie stosami pieniędzy, nie jest.
@llama To nie jest tak, że te aplikacje nie powinny być wysokiej jakości, niezawodne, bezpieczne i objęte gwarancjami.Po prostu _ nie są_, ponieważ trochę nie wiemy, jak to zrobić.Ale to całe środowisko programistyczne;jak wyglądałyby mosty, gdyby były wynikiem sprzedawcy sprzedającego coś niemożliwego, a nawet technicznie możliwego kompromisu, mając dziesiątą część budżetu, którego byś potrzebował, podczas gdy dziesięć różnych osób podejmuje własne globalne decyzje architektoniczne w połowie projektu, a większość ludzi nie wie, że budują most?
@AaronF „Inżynier oprogramowania” ma tendencję do płacenia lepiej niż „skromny programista”.Więc w zasadzie zgadzam się z tobą ... ale w moim CV najlepiej wierzę, że jestem „starszym inżynierem oprogramowania”
@EvilDogPie W inżynierii oprogramowania jest bardzo mało matematyki lub nauk ścisłych.Jestem prawie pewien, że ten termin powstał, ponieważ „inżynier” brzmi bardziej rygorystycznie niż „budowniczy”.
@AaronF: Najprawdziwsze poczucie „inżyniera” to ktoś, kto używa swojego umysłu do tworzenia lub projektowania.Wiele wstępnych kursów z mechaniki i inżynierii komputerowej poszło na mnie, ponieważ miałem to już wszystko w inżynierii oprogramowania.Inżynieria oprogramowania obejmuje ustalenie dokładnego problemu, oddzielenie opisów problemów od proponowanych rozwiązań, które mogą być do niczego, sprecyzowanie dokładnie, jaki produkt dostarczysz klientowi, zapobieganie pełzaniu wymagań itp. Obejmuje również pracę w zespole, komunikację z kierownictwem, naukę akceptacjigłupie (błąd, różne) praktyki w projekcie itp.
Biorąc pod uwagę zasadę, że „wszystko, co nazywa się nauką, prawdopodobnie nie jest”, tytuł tej dziedziny nie obiecuje niczego tutaj rozwiązać.Generalnie powiedziałbym, że działy informatyki wspierają się, ucząc programistów (głównie technologów, którzy obsługują maszyny zgodnie z instrukcją), aby mogli realizować zabawne pomysły, takie jak sztuczna inteligencja i gry wideo, przy użyciu wszelkich metod matematycznych odpowiednich do matematycznego formułowania ich problemówzainteresowanie.Czasami są w stanie całkowicie zaanektować tematy matematyczne, nadając im fajne nowe nazwy.
Michael Dai
2019-10-08 03:09:10 UTC
view on stackexchange narkive permalink

Popełniłem ten błąd, wybierając kierunek studiów. W informatyce tak naprawdę nie chodzi o komputery, tak samo jak na lekcjach matematyki nie chodzi o używanie kalkulatorów, ołówków i papieru.

Nowoczesne komputery są tylko narzędziem używanym do tworzenia obliczeń (prawdziwym celem komputerów nauka) łatwiej i szybciej. To staje się zagmatwane, ponieważ rzeczy, które obliczamy, byłyby niezwykle czasochłonne lub przynajmniej niezwykle żmudne, aby wykonać je ręcznie, więc prawie zawsze polegamy na programowaniu komputerów, aby zrobić to za nas. Oznacza to, że prawdopodobnie będziesz robić trochę programowania (może dużo), aby uzyskać stopień naukowy, ale to programowanie niekoniecznie przygotuje Cię do tworzenia i dostarczania oprogramowania wysokiej jakości.

Mój dyplom był bardziej skoncentrowany na studiowanie modeli obliczeniowych i algorytmów, a nie sposób wytwarzania oprogramowania. Jest to nadal przydatne w tworzeniu oprogramowania, ponieważ znajomość wydajnych algorytmów dla różnych problemów jest dobra, gdy ogranicza Cię czas lub pojemność pamięci. Jednak oznacza to, że stopień CS niekoniecznie będzie obejmował szkolenie w zakresie tworzenia oprogramowania, ponieważ nie jest to głównym celem.

W jednym z największych podręczników programowania wszechczasów znajduje się słynny cytat, że informatyka dotyczy komputerów mniej więcej tak samo, jak astronomia dotyczy teleskopów.(Wyobraź sobie, astronomię nazywano „nauką o teleskopach”.) Analogia jest nawet bardziej trafna, niż niektórzy sądzą, ponieważ (podobnie jak w przypadku komputerów) astronomowie nie są nawet tymi, którzy badają, projektują, konstruują, budują i studiująteleskopy.Tak więc, jeśli interesują Cię * teleskopy *, astronomia to niewłaściwa dziedzina, w której możesz się znaleźć, i to samo dotyczy komputerów.
@JörgWMittag: Najstarsze źródło, jakie mogę znaleźć, to „Informatyka nie dotyczy komputerów w tym samym sensie, w jakim fizyka tak naprawdę nie dotyczy akceleratorów cząstek, a biologia nie dotyczy mikroskopów i szalek Petriego” - Hal Abelson, 1986.
Naprawdę chciałbym, żebyśmy zamiast tego pchnęli się do zmiany nazwy pola na „Informatyka”.
@orlp Jest to zwykle określane jako „technologia informacyjna i obliczeniowa”, skąd pochodzę :) Nie żeby to naprawdę pomagało, ponieważ i tak jest używane zarówno w nauce, jak i inżynierii :)
Mój dyplom (uzyskany na Uniwersytecie w Stirling w 1992 r.) NAZWA: „Informatyka”!Co ma sens.Byłem / jestem tylko średni z matematyki, ale niektóre elementy były nieocenione w mojej karierze programistycznej - np.Zrozumienie zestawów pomogło mi niezmiernie w zdobyciu umiejętności w zakresie baz danych.
@orlp Nie sądzę, żeby to pomogło.Po pierwsze, nikt nie zauważy różnicy między informatyką a nauką-on;po drugie, za bardzo przypomina obliczenia naukowe;po trzecie, nadal zawiera część „obliczeniową”, więc ludzie nadal mogą ją źle rozumieć w ten sam sposób;po czwarte, część „naukowa” jest w większości błędna.
Marco13
2019-10-08 05:30:12 UTC
view on stackexchange narkive permalink

W Niemczech dziedzina „Informatyka” nazywa się „Informatik”, co zgodnie z etymologią terminu „informatyka” jest albo skróceniem słów „informacja” i „automatyczne” lub „informacje” i „matematyka” ...


Jak inni już zauważyli, istnieje wiele bezpośrednich powiązań między informatyką a matematyka na różnych poziomach:

  • Algebra liniowa jest ważna dla wielu form współczesnego uczenia maszynowego: sieci neuronowe to w zasadzie tylko duże macierze - lub odwrotnie, system uczenia maszynowego to po prostu duży stos algebry liniowej ;-). Innym (być może oczywistym) obszarem jest grafika komputerowa 3D: wszystkie efekty specjalne w filmach to po prostu kilka trójkątów i odpowiedź na pytanie, co się dzieje, gdy światło uderza w powierzchnię.
  • Rachunek różniczkowy jest niezbędny teoria złożoności (która analizuje czas działania algorytmów), analiza numeryczna (która jest wymagana do oszacowania błędu przybliżeń) i wiele innych tematów
  • Ogólna (lub „abstrakcyjna”) algebra dotyczy struktur i reguł (lub operacji) w ramach tych struktur. Istnieje silny (i moim zdaniem bardzo niedoceniany) związek tego z programowaniem obiektowym .
  • Logika to ważna podstawa dla tego, co można nazwać programowaniem „niskiego poziomu”, nawet jeśli istnieje związek między wiedzą, że można bezpiecznie obrócić if (! (a || b)) w if (! a &&! b) i formalna logika zdań może nie być oczywista. Oczywiście, istnieją nawet języki programowania oparte na logice, takie jak Prolog.
  • ...

Jest o wiele więcej bezpośrednie połączenia, co oznacza, że ​​wchodząc w kontakt z określoną gałęzią matematyki, stosujesz informatykę w praktyce.

Ale są też pośrednie powiązania: matematyka to język dobrych opisów. Matematyka uczy jasności, rygorystyczności i precyzji, która jest konieczna w celu zarządzania złożonymi systemami informatycznymi, z którymi mamy do czynienia w dzisiejszych czasach. To, co gdzie indziej może być postrzegane jako „czepianie się”, jest kluczowe dla upewnienia się, że systemy te działają w sposób, jakiego oczekujemy. Jeśli kiedykolwiek napisałeś coś w rodzaju specyfikacji oprogramowania i przegapiłeś przypadek narożny, to wiesz: ludzie znajdą ten przypadek narożny. I będą cię nienawidzić za to, że tego przegapiłeś ...


Jednak z praktycznego punktu widzenia całkowicie się zgadzam: rzeczy, które większość osób z dyplomem informatyki musi obecnie robić w swojej pracy są całkowicie niezwiązane z matematyką (a także całkowicie niezwiązane z programowaniem). A szkoda sobie wyobrazić, że wielu studentów z frustracją rezygnuje z kursów uniwersyteckich (na które mogliby wejść, mając błędne oczekiwania co do przedmiotu) z powodu złych ocen z matematyki. W przeciwnym razie ci ludzie mogliby być wspaniali w tym, co faktycznie musieli robić w swojej pracy.


Mój pogląd może być nieco zawężony, ponieważ znam tylko sytuację w Niemczech - mimo że obserwuję rozwój w tej dziedzinie od ponad 20 lat. Ale wspomniałeś o Wielkiej Brytanii, więc poniższe informacje mogą być nadal istotne. Czytałem to jakiś czas temu i jakoś utkwiło mi to w pamięci. To cytat z eseju „O fakcie, że Ocean Atlantycki ma dwie strony” autorstwa Edsgera W. Dijkstry (tak, ten Dijkstra ):

Pierwsza seria maszyn - ta z singletonów - została opracowana głównie w USA wkrótce po drugiej wojnie światowej, podczas gdy zrujnowana kontynentalna Europa nie miała ani technologii, ani pieniędzy, aby rozpocząć budowę komputerów: jedyną rzeczą, którą można było o nich myśleć. Dlatego nie jest zaskakujące, że wiele amerykańskich wydziałów informatyki wywodzi się z wydziałów elektrotechniki, podczas gdy w Europie powstały (później) wydziały matematyki (których często nadal są częścią). To odmienne dziedzictwo wciąż wpływa na wydziały i może dostarczyć akceptowalnego wyjaśnienia, że ​​w USA informatyka jest postrzegana bardziej operacyjnie niż w Europie.

To mogłoby to wyjaśnić dla niektórych przynajmniej ...

W języku hiszpańskim jest „informática”, podobnie jak „ciencias de la informatica”, i podobnie jak w języku niemieckim, jest też wyraźna różnica.
Buffy
2019-10-07 19:51:31 UTC
view on stackexchange narkive permalink

Istnieją dwa aspekty tego i jeden z nich jest zwykle zapomniany. Typowym powodem jest to, że niektóre części CS zależą od znajomości matematyki i tego, jak z niej korzystać. odpowiedź Boaty Mcboatface wspomina o niektórych z nich. Ale nie wszystkie CS są takie, a ci, którzy pracują, powiedzmy, nad czynnikami ludzkimi lub rozwojem interfejsu użytkownika, prawdopodobnie używają matematyki, której nauczyli się znacznie mniej niż ci, którzy studiują algorytmy lub szyfrowanie.

Ale drugi aspekt jest również ważny. Nauka o CS jest udoskonalona dzięki znajomości sposobu, w jaki matematycy myślą i pracują - matematycznego sposobu myślenia - a nie tylko posiadaniu faktów na wyciągnięcie ręki. Matematycy są zwykle analityczni i precyzyjni, polegając na jasnych stwierdzeniach i logicznej demonstracji. Ten sposób patrzenia na problemy i wskazywania rozwiązań jest przydatny informatykowi.

Ale jest wiele innych rzeczy, które są również ważne w CS, dlatego ceniona jest szeroka edukacja, a nie tylko matematyka. W końcu wielu z nas próbuje rozwiązywać problemy dla ludzi, a nie tylko dla innych w naszej własnej dziedzinie. Tak więc, chociaż matematyka często pomaga w opracowaniu jak jakiegoś rozwiązania, jest mniej użyteczna w wiedzy, dlaczego jakiś program powinien lub nie powinien być rozwijany.


Dobrzy matematycy są również bardzo kreatywni, chociaż ta cecha jest szeroko rozpowszechniona wśród ludzi z innych dziedzin. Ale bycie dobrym z matematyki wymaga trochę pracy. Potrzebna jest zarówno głębokość, jak i szerokość.

sp88
2019-10-08 08:01:21 UTC
view on stackexchange narkive permalink

Informatyka to nauka o komputerach i podstawowa teoria, a tworzenie oprogramowania to wykorzystanie komputerów do ... tworzenia oprogramowania.

Ta podstawowa teoria to w dużej mierze matematyka ... więc studiując ją, zasadniczo uczysz się (małej części) matematyki. W związku z tym występuje duża część matematyki.

Jednak jeśli chodzi o twoje podstawowe pytanie, środowisko akademickie jest często zagmatwanym i niezrozumianym miejscem.

Dopiero niedawno ludzie zaczęli zdawać sobie sprawę, że ukończenie studiów wyższych jest w wielu przypadkach niepotrzebne, a w rzeczywistości może być szkodliwe dla ścieżki kariery - w wielu dziedzinach oprócz informatyki. (tj. 4+ lata stycznie powiązanych studiów vs. 4+ lata doświadczenia zawodowego)

W szczególności w przypadku tworzenia oprogramowania informatyka jest tak naprawdę dziedziną powiązaną stycznie.

Jeśli CS 201 był rzeczywiście niepotrzebny dla CS 305, nie byłby to warunek wstępny. Gdyby nie zawierała przydatnej wiedzy, w rzeczywistości prawdopodobnie zostałaby szybko usunięta z programu nauczania lub zdegradowana do elektoratu. Z pewnością absurdem jest myślenie, że uniwersytety uczyłyby rzeczy bezużytecznych przez dłuższy czas.

Matematyka jest bardzo przydatna w informatyce - regularnie rzadziej w tworzeniu oprogramowania.

Właściwie powiedziałbym, że matematyka jest stale używana w tworzeniu oprogramowania;to po prostu matematyka jest na tyle dobrze rozwinięta, że większość programistów używa jej intuicyjnie, zamiast formalnie ją rozumieć.Większość programów zawiera przynajmniej jedną funkcję, ale „funkcja” jest w rzeczywistości, podobnie jak liczby zerowe lub ujemne, dość wyrafinowaną ideą matematyczną, a nie czymś, co ludzie zawsze znali i rozumieli.
„Funkcja” w sensie matematycznym i „funkcja” w sensie programowania są tylko odległe od siebie.Nauka o funkcjach matematycznych naprawdę nie pomaga w programowaniu funkcji.
@MartinBonner To nie jest takie odległe.Uczyń funkcję niezmienną (a jeśli czujesz się na siłach, weź jeden argument) i jesteś złoty.Aby uzyskać punkty bonusowe, dodaj odpowiedni rachunek lambda.Główną różnicą jest to, że większość programistów tak naprawdę nie robi nic z funkcjami poza ich wywoływaniem :)
@Luaan No tak, ale * większość * funkcji komputera nie jest niezmienna i ma skutki uboczne.
@MartinBonner Tak, ale wielu inżynierów oprogramowania powie Ci również, że to naprawdę zły pomysł: P To jedna z tych rzeczy, które sprawiają, że tworzenie oprogramowania jest o wiele mniej niezawodne i znacznie bardziej złożone, niż jest to konieczne, zasadniczo bez korzyści - jest to ogromnaźródło przypadkowej złożoności.
@Martin Tak, ale jaki jest związek między nimi?Jak możemy zmienić funkcje programu, aby były bliższe funkcjom matematycznym?To jest matematyka.Dlaczego mielibyśmy dokonać takiej zmiany?Ponieważ wtedy możemy użyć więcej naszych narzędzi matematycznych, aby pokazać (a czasem nawet udowodnić), że funkcja robi to, na co mamy nadzieję.A to dotyczy podstawowej części programowania: w jaki sposób możemy zapewnić, że nasze programy robią to, na co mamy nadzieję, tj. Są poprawne?To wszystko jest częścią sprawy, którą Dijkstra przedstawił (niezbyt pomyślnie) czterdzieści lat temu.
@CurtJ.Sampson Odpowiedzi na Twoje pytania to odpowiednio: „Programistów to nie obchodzi”, „Programistów nie obchodzi” i „Nie obchodzi nas to, ponieważ programistów nie obchodzi” i „testowanie”.
@David Masz rację, że są to _powszechne_ odpowiedzi.Mam nadzieję, że nie mówisz, że to są dobre odpowiedzi!Co do ostatniego, [Dijkstra jeszcze raz] (https://github.com/dot-home/unfortunate/blob/master/share/fortune/dijkstra): „Pierwszym morałem z tej historii jest to, że testowanie programów może być użytebardzo skutecznie, aby pokazać obecność błędów, ale nigdy ich nieobecność ”.(Jesteśmy tylko kilka lat od 50. rocznicy [EWD303] (https://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD303.html), ale wciąż odmawiamy stawienia czołate same problemy. Westchnienie.)
Sceptycyzm co do wartości dyplomu z informatyki nie jest niczym nowym.Stało się to szczególnie oczywiste za każdym razem, gdy technologia przechodzi gwałtowne zmiany, a treść stopnia CS staje się nieaktualna.Inne zawody, takie jak inżynieria, są dużo bardziej stabilne.A tam zajęcia, które uczą potrzebnych umiejętności, wymagają lat podstawowych wymagań wstępnych (takich jak lata matematyki od poziomu podstawowego do zaawansowanego), podczas gdy możesz wziąć udział w kursie programowania jako student pierwszego roku bez żadnych wymagań wstępnych.
jamesqf
2019-10-08 07:25:53 UTC
view on stackexchange narkive permalink

Ponieważ jest to informatyka i prawie cała nauka zależy od matematyki. Jasne, są rzeczy, które możesz zrobić na komputerach, które nie wymagają dużo matematyki (jeśli w ogóle), na przykład (AFAIK) implementowanie czegoś takiego jak StackExchange. I masz całkowitą rację, że dyplom z informatyki lub czegoś podobnego prawdopodobnie kwalifikowałby cię do wielu zawodów, bez potrzeby uczenia się czegokolwiek poza podstawową arytmetyką.

OTOH, jest wiele zawodów które wymagają zastosowania (co może być z twojego punktu widzenia) dość skomplikowanej matematyki. Na przykład to, co obecnie robię, polega na stosowaniu rozwiązań numerycznych do określonej klasy równań różniczkowych cząstkowych ( https://en.wikipedia.org/wiki/Eikonal_equation). Prawdopodobnie 90% mojej kariery wiązało się z podobnymi poziomami matematyki. Więc wszystko zależy od tego, co chcesz robić.

cjs
2019-10-08 11:39:38 UTC
view on stackexchange narkive permalink

Ponieważ informatyka (patrz poniżej), a nawet programowanie komputerowe, to matematyka stosowana.

Ed Dubinsky, nauczyciel matematyki, który kiedyś był sam profesjonalny programista powiedział:

Wiedza matematyczna danej osoby to jej skłonność do reagowania na określone rodzaje postrzeganych sytuacji problemowych poprzez konstruowanie, rekonstruowanie i organizowanie procesów umysłowych oraz przedmioty do wykorzystania w sytuacjach.

Na nieco mniej ogólnym poziomie zastanów się, czym jest matematyka. Wybierasz lub tworzysz język, w którym możesz wyrażać pewne idee, a następnie manipulacje symboliczne zgodnie z zestawem reguł, które również wybrałeś lub stworzyłeś, aby stworzyć bardziej poprawne stwierdzenia w tym języku, zgodnie z tymi zasadami. Jeśli nie będziesz uważać, aby zrobić to poprawnie, możesz otrzymać nieprawidłowe oświadczenia. Wyniki, które uzyskasz, mogą mieć jakieś zastosowanie w „prawdziwym świecie” (np. Mogę używać języka i reguł „liczb całkowitych”, aby śledzić to, co ludzie są mi winni, a ja im zawdzięczam) lub mogą być po prostu pomocą lepiej rozumiesz, w jaki sposób możesz używać języka i reguł oraz w jaki sposób mogą one być pomocne w dalszym ich stosowaniu.

W wielu dziedzinach matematyki używamy określonych symboli zwanych „liczbami” i mamy dużą bibliotekę często wspólne reguły i języki z tym związane, ale są inne obszary matematyki, które w ogóle nie używają liczb (np. teoria kategorii) lub, chociaż można je zastosować do liczb, tak naprawdę nie dotyczą liczb per se (grouptheory, struktury algebraiczne, wiele innych).

Jeszcze zanim zaczniesz studiować lub używać określonych algorytmów i tym podobnych, pisanie programu komputerowego jest w zasadzie tym, co opisałem powyżej. Wiele z „najprostszych” pojęć w programowaniu komputerowym, których używamy na co dzień, takich jak idea funkcji, to koncepcje czysto matematyczne.

Jak już widzieliście, jest całkowicie możliwe zaatakowanie świata rzeczywistego problemy z tymi narzędziami matematycznymi w sposób nieregularny i uzyskanie użytecznych wyników. Zazwyczaj wyniki nie będą w pełni poprawne (tj. Twoje programy będą zawierały błędy), ale będą one „wystarczająco poprawne”, aby wykonać zadanie. (W przypadku dobrze napisanego programu przemysłowego możesz nigdy nie natknąć się na sytuacje, które wykazałyby, że jest on nieprawidłowy). Na tym polega dyscyplina inżynierii: uzyskiwanie wyników, które działają wystarczająco dobrze w prawdziwym świecie przy akceptowalnych kosztach.

Ale nawet jeśli zajmujesz się inżynierią, wiele z tego, co robisz, działa dobrze tylko dlatego, że ktoś wykonał wystarczająco dużo matematycznego podnoszenia ciężarów, aby dać Ci koncepcje i narzędzia, których możesz użyć do tego. funkcja lub obszar jest, ale twój język programowania lub system bazy danych działa, ponieważ ktoś je wymyślił.

A ludzie, którzy wykonali tę pracę, to informatycy.

Wszystko to zostało znane i od dawna poważnie rozważane. Myślę, że jest to szczególnie dobrze pokazane w komentarzu w klasycznym artykule PeterLandina z 1966 roku ["The Next 700 ProgrammingLanguages"] [landin66]:

Najważniejszym wkładem LISP-a nie było przetwarzanie list ani alokacja pamięci, ani notacja, ale we właściwościach logicznych leżących za notacją. tutaj ISWIM niewiele ulepsza, ponieważ oprócz kilku drobnych szczegółów, LISP nie pozostawił nic do zrobienia. Istnieją dwa równoważne sposoby określenia tych właściwości.

(a) LISP uprościł relacje równoważności, które określają zakres, w jakim fragmenty programu mogą być wymieniane bez wpływu na wynik.

(b) LISP przyniósł klasę jednostek, które są oznaczone wyrażeniami, które programista może zapisać, bliżej tych, które powstają w modelach systemów fizycznych oraz w systemach matematyczno-logicznych.

Jeśli to rozumiesz (co prawdopodobnie wymaga przynajmniej intuicyjnego zrozumienia rachunku lambda lub podobnego), ty prawdopodobnie zdajemy sobie sprawę, że wiele problemów, z którymi mamy do czynienia dzisiaj, to wciąż te same, zasadniczo matematyczne problemy, które badano w latach 60., kiedy po raz pierwszy poważnie badaliśmy, czym naprawdę jest i czym jest „język programowania”.

O programach roboczych

Można również spojrzeć na to z węższego punktu widzenia: „Chcę tylko napisać program i upewnić się, że działa”. Nawet tutaj staje się to matematyką, jeśli potraktujesz jako ograniczenie „Naprawdę chcę, najlepiej jak potrafię, upewnić się, że działa”. EWD303 Dijkstry, „O niezawodności programów”, przedstawia ten argument szczegółowo. Jego podsumowanie:

Obawy o niezawodność zmuszają nas do ograniczenia się do programów, które można zarządzać intelektualnie. Stajemy przed pytaniami: „Ale jak radzimy sobie intelektualnie ze złożonymi strukturami? Jakie mamy pomoce umysłowe, jakie wzorce myślowe są skuteczne? Jakie są wewnętrzne ograniczenia ludzkiego umysłu, które lepiej szanowaliśmy?”. Bez wiedzy i doświadczenia odpowiedź na takie pytania byłaby bardzo trudna, ale na szczęście nasza kultura posiada wielowiekową tradycję dyscypliny intelektualnej, której głównym celem jest zastosowanie efektywnej strukturyzacji do złożoności niemożliwej do opanowania w inny sposób intelektualnie. Ta dyscyplina nosi nazwę „Matematyka”. Jeśli weźmiemy istnienie imponującego zbioru matematyki jako eksperymentalnego dowodu na opinię, że dla ludzkiego umysłu metoda matematyczna jest rzeczywiście najskuteczniejszym sposobem radzenia sobie ze złożonością, nie mamy już wyboru: powinniśmy przekształcić naszą dziedzinę programowania w taki sposób, aby ich metody rozumienia stały się równie przydatne, ponieważ nie ma innych środków.

O "Informatyce" i "Informatyce"

Niektórzy z nas, w tym University of Alberta, uważają, że bardziej popularna nazwa dyscypliny jest nieco myląca i zamiast tego wolą nazywać to Informatyka Science. Jak powiedział Keith Smillie w „Computing Science at the University of Alberta, 1957-1993”:

Wybór nazwy „informatyka” zamiast bardziej powszechnej „Informatyka” została celowo wskazana, aby wskazać, że informatyka, a nie komputery, miała być podstawą tej dyscypliny.

Myślenie o tym, z czym się zmagamy, jako o „komputerach”, a nie „komputerach” „sposób może pomóc ci zapamiętać, że całe oprogramowanie działające w dzisiejszym świecie jest znacznie bardziej zależne od narzędzi matematycznych, których używamy do skutecznego i dokładnego modelowania naszych problemów i świata, niż od sprzętu, na którym działa.

Co więcej, mamy do czynienia z profesjonalnym stowarzyszeniem naukowców i praktyków, które nazywa się ** [Stowarzyszenie Maszyn Komputerowych] (https://www.acm.org/) **.(Mimo swojego tytułu uważam, że większość jego członków to w rzeczywistości _ ludzkie istoty_).
@jeffB Główna różnica między maszynami komputerowymi a ludźmi polega na tym, że ludzie są bardziej złożeni i dlatego łatwiej się rozpraszają.
internetofmine
2019-10-08 14:38:20 UTC
view on stackexchange narkive permalink

W Polsce jest wielu matematyków, ale na uniwersytetach jest bardzo mało informatyków (chyba z powodu okropnej różnicy w wynagrodzeniach), więc kończy się na tym, że masz zbyt wielu matematyków, którzy potrzebują czegoś do zrobienia - i szkoda, po prostu przeciążasz studia informatyczne matematyką, surową, nieprzetworzoną matematyką, bez pokazywania powiązań i zastosowań w informatyce, a po 5 latach studiów dostajesz studentów, którzy mieli 5 lat analizy, 2 semestry geometrii, kolejne statystyki i ledwo potrafią programować w c ++, Adzie i niektórych Javach lub Pythonie, gdyby mieli szczęście.

Naprawdę nie widzę problemu.Umiejętności informatyków i programistów C ++ pokrywają się w pewnym stopniu, ale nie są identyczne.Wydaje się, że w Polsce brakuje szkoleń zawodowych w zakresie IT.Nie potrzebujesz doktoratu z CompSci, aby używać C ++.
@MSalters Co ważniejsze, doktorat z CompSci prawdopodobnie nie pomoże ci w korzystaniu z C ++ aż za bardzo (może poza rozsądnym pomysłem ucieczki od C ++, szybko: D).Zaawansowane kursy z algorytmizacji i wszelkiego rodzaju matematyki dają wiele korzyści, ale dotyczą one jednakowo wszystkich języków programowania - zdarzają się na innym poziomie abstrakcji.
Ian Sudbery
2019-10-14 21:49:48 UTC
view on stackexchange narkive permalink

Myślę, że kluczową rzeczą, której tu brakuje, jest szerszy punkt. W większości przypadków stopnie uniwersyteckie nie zapewniają szkolenia , ale zapewniają edukację . Tak więc dyplom uniwersytecki zasadniczo nie uczy, jak wykonywać określoną pracę, ale jak myśleć, analizować i oceniać wiedzę.

Ogromna większość wszystkich studentów, którzy studiują, nie przejdzie do praca, która bezpośrednio wykorzystuje wiedzę nauczaną na studiach. Studenci z jednym z naszych stopni naukowych mogą być bardziej zdolni do zatrudnienia jako korzyść dodatkowa, ale nie jest to głównym celem większości stopni. (istnieją wyjątki, takie jak medycyna lub prawo).

New Alexandria
2019-10-13 19:13:29 UTC
view on stackexchange narkive permalink

Żadne z tych odpowiedzi nie opisują czegoś istotnego:

Większość prac związanych z pisaniem kodu to odpowiednik produkcji , a nie inżynierii oraz na pewno nie nauka .

Jeśli nie ma to natychmiastowego sensu, może pomóc zrozumienie odpowiednika podczas pracy z klasycznymi materiałami. Naukowcy zbadaliby metalurgię i sposoby wytwarzania nowych stopów. W inżynierii można by ocenić, jak duży może być dźwigar z materiału lub granice zużycia w scenariuszach. Producenci otrzymywaliby materiał w postaci rur, które montują tak, aby pasowały do ​​takich rzeczy jak kuchnia, łazienka, a może cały dom.

Technik, jak ktoś, kto pracuje w branży HVAC lub motoryzacyjnej, bierze wstępnie skonstruowane podsystemy i dopasowuje je razem, dokonując niewielkiej regulacji za pomocą fabrykacji.

Większość karier związanych z kodowaniem to produkcja lub praca technika. Coraz częściej prace związane z oprogramowaniem są rolami techników. Zadania wymagają ciągłej znajomości nowych bibliotek i struktur oraz tego, jak zapewnić ich łatwość montażu i konfiguracji.

Ale to nie jest to, czego mają uczyć szkoły informatyczne. Nie chodzisz na oxford ani na żadną inną uczelnię Ivy League, aby nauczyć się, jak zostać producentem . Jeśli chodziłeś do takiej szkoły i dowiedziałeś się, że nie masz apetytu ani zdolności do nauki… to jest kostka do gry.

To samo dotyczy szkół artystycznych z podstawą programową studia koncepcyjnego.

Nie oznacza to, że programy uczące legalnej nauki powinny robić mniej tego.

Mochi
2019-10-08 07:58:14 UTC
view on stackexchange narkive permalink

Informatyka obejmuje efektywny proces rozwiązywania problemów, który można osiągnąć dzięki kursom matematyki stosowanej. Przynajmniej tego szukają pracodawcy i rekruterzy. W większości przypadków ramy algorytmów są oparte na logice matematycznej. Jeśli nie planujesz używać stopnia CS jako projektanta, inżyniera lub innego podejścia do aplikacji, nie musisz używać tyle matematyki.



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 4.0, w ramach której jest rozpowszechniana.
Loading...