Czy inżynieria oprogramowania i informatyka powinny być odrębnymi kierunkami? [Zamknięte]

19

Przez dziesięciolecia akceptowany stopień zostania programistą to „Compter Science”.
Mieliśmy już kilka pytań, czy ten stopień naprawdę przygotowuje studentów do opracowania oprogramowania.

Niektóre szkoły w ciągu ostatnich 8 lat zaczęły oferować wiele różnych specjalizacji programistycznych. Korzystając z programu nauczania z mojej szkoły:

  • Informatyka , która rozpoczyna się od kursów wstępnych w pierwszym roku, a następnie koncentruje się na informatyce teoretycznej, algorytmach i trochę rzeczy związanych z systemem operacyjnym. Większość zajęć obejmuje kilka mniejszych projektów i zadań domowych, wykonywanych solo lub w parach.
  • Inżynieria oprogramowania , która rozpoczyna się od tych samych kursów programowania wstępnego, wykonuje kilka klas teorii, a następnie przechodzi do praktyk tworzenia oprogramowania (testowanie, metodologie procesów, metryki oprogramowania, zbieranie wymagań) i projektowania oprogramowania (projektowanie systemu rozproszonego, projektowanie systemu informacyjnego , projektowanie w czasie rzeczywistym / projektowanie wbudowane, projektowanie podsystemów itp.)

Różne szkoły robią to inaczej, więc powyższe to tylko przykład z prawdziwego świata, który znam. Pytam: czy potrzebne są odrębne kierunki w programowaniu?

Fishtoaster
źródło
1
Nie całkiem. Aby nauczyć się tych umiejętności, nie należy uczyć ich na nich, ale zapewnić im rzeczywistą pracę nad projektem
Casebash
Co sprawia, że ​​myślisz, że nie są? RIT oferuje zarówno jako stopnie.
Andy
Andy: Wiem - poszedłem do RIT i uzyskałem stopień naukowy SE. Pytałem, czy powinny być oddzielne, a nie czy są obecnie. :)
Fishtoaster

Odpowiedzi:

28

Tak powinny być.

Związek między informatyką a inżynierią oprogramowania jest taki sam, jak związek między fizyką a inżynierią mechaniczną. Jedna zapewnia podstawy teoretyczne, a druga bierze te teorie, wraz z dobrymi zasadami inżynierii, i stosuje je do projektowania i wdrażania oprogramowania.

Potrzebujesz obu, aby stworzyć nowe i lepsze oprogramowanie. Dobra edukacja informatyczna szkoli ludzi do tworzenia nowych i lepszych algorytmów, struktur danych, języków programowania i paradygmatów, kompilatorów oraz wielu innych rzeczy, które można wykorzystać do ulepszenia systemów oprogramowania. Z drugiej strony, dobre wykształcenie inżynierskie, szkoli cię do korzystania z tych narzędzi i wiedzy uzyskanej dzięki naukowemu studium obliczeń, wraz ze znajomością cyklu życia oprogramowania i modeli procesów, aby faktycznie zbudować system, którego klient chce i potrzebuje .

Thomas Owens
źródło
2
Często korzystam z analogii fizyki / inżynierii. Nie zatrudniamy fizyków do projektowania i budowania mostów, dlaczego zatrudniamy informatyków do projektowania i budowania programów?
HerbN
1
Ponieważ programy informatyczne uczą trochę więcej o tym, jak budować programy, niż typowy program fizyki;)
Wayne Werner
2
@WayneWerner: Nie, naprawdę, naprawdę nie.
DeadMG
3

Powszechnie wiadomo, że typowy program CS nie przygotowuje takiego programu dla branży, nie tak bardzo, jak chce, żebyś był przygotowany. Więc tak, istnieje potrzeba specjalizacji z inżynierii oprogramowania i te dwie powinny być odrębne, choć zdecydowanie na tym samym wydziale.

EpsilonVector
źródło
1

Powinny być różnymi dyscyplinami, ale nie na poziomie licencjackim. Po prostu nie rozumiem, jak mogą zminimalizować wszystko, co jest potrzebne do inżynierii oprogramowania na poziomie licencjackim. Tak samo jak nie widzimy stopni licencjackich w inżynierii systemów (gdzie ludzie dostają MS po uzyskaniu dyplomu z EE, CE, Mechanical Eng lub CS), podobnie jest w przypadku inżynierii oprogramowania.

Jest to podejście multidyscyplinarne oparte w dużej mierze na informatyce i / lub MIS. Ludzie naprawdę stają się inżynierami oprogramowania w praktyce (i nie tylko w tytule) po odbyciu zaawansowanego kursu i / lub doświadczenia zawodowego w terenie, pod warunkiem, że później zostanie to zrobione w środowiskach sprzyjających inżynierii oprogramowania.

Większość ludzi ma tytuły inżynierii oprogramowania, ale tak naprawdę nie zrobiły nic poza kodowaniem. Nie jest to dla nich wada, ale spostrzeżenie - nie byli wystarczająco narażeni na rodzaj pracy, który pomógłby im w zdobyciu doświadczenia zawodowego poza kodowaniem. Co gorsza, większość miejsc pracy i organizacji działa okropnie i nie prowadzi właściwej inżynierii oprogramowania.

Co więcej, bez jakiejś pracy lub dojrzałości scholastycznej materiały inżynierii oprogramowania po prostu przelecą nad głowami większości studentów studiów licencjackich.

luis.espinal
źródło
Jeśli chcesz wiedzieć, w jaki sposób „zmiażdżą wszystko, co jest potrzebne do inżynierii oprogramowania na poziomie licencjackim”, spójrz na pierwszy program licencjacki SE w USA: se.rit.edu
Thomas Owens
Chyba że coś mi umknie, nie zmiażdżyli tego. Stworzyli po prostu rozszerzony program nauczania na 192 kredyty. To wykracza poza typowy program studiów licencjackich 60-80, który można znaleźć w CS i MIS - odbywa się tutaj o wiele więcej kursów, wystarczających do porównania z podwójnym kierunkiem (lub uzyskaniem stopnia licencjata i stopnia). Podoba mi się przepływ i integracja innych dyscyplin inżynierskich w ostatnim roku. Jest to idealny program nauczania, który można realizować. Ale to po prostu potwierdza mój punkt widzenia, że ​​nie można uzyskać SE przy typowym obciążeniu kursowym.
luis.espinal
I jednym zastrzeżeniem, które tu widzę, jest to, że poświęcasz tyle wysiłku i po prostu dostajesz jeden stopień rozpadu (w przeciwieństwie do ukończenia podobnej pracy na kursie, aby uzyskać podwójne kierunki lub stopień licencjata i stopnia). Owcza skóra niestety ma znaczenie. Być może obawa ta będzie miała mniejsze znaczenie, gdy takie stopnie naukowe SE staną się bardziej rozpowszechnione.
luis.espinal
Jest to system kwartalny, co oznacza, że ​​jest to dokładnie takie samo obciążenie pracą jak stopień CS (lub dowolny inny stopień licencjacki) z tej samej uczelni. Ostatecznie to 4 lata zajęć (10 tygodni zajęć, 1 tydzień egzaminów na kwartał, 3 kwartały na rok), 1 rok współpracy.
Thomas Owens
Nie całkiem. To nie jest równoważne, jeśli chodzi o obciążenie pracą. Obecnie dążę do drugiego magistra (CE + EE) w WPI, który ma podobny format (3 kwartały, 10 tygodni zajęć + 1 tydzień na egzaminy). Z doświadczenia wynika, że ​​takie programy są bardziej rygorystyczne i obejmują więcej niż typowe studia licencjackie 60-80 stopni. Pamiętaj, że to nie jest krytyka programu . Myślę, że konieczne jest naprawdę uwzględnienie inżynierii oprogramowania na poziomie licencjackim. Podobne podejście powinno być również konieczne w przypadku CS (ponieważ typowy CS nie obejmuje już wystarczającej praktycznej, wielodyscyplinarnej praktyki).
luis.espinal