Materiały do dyskusji nad kierunkiem zmian programu nauczania informatyki

Szanowni Państwo,

Na najbliższej, otwartej Radzie Instytutu, chcielibyśmy przedyskutować obecnie realizowany program nauczania informatyki, jak i jego zmiany na przyszłość. Żeby naszą dyskusję uczynić bardziej konkretną, załączamy opisy obowiązującego programu i propozycję jego ewentualnych zmian.

Obecnie realizowany program studiów został wprowadzony w 1996 roku. Minęło 9 lat. Jest to wystarczający okres czasu, żeby dostrzec wady i zalety przyjętych rozwiązań. W naszej ocenie do głównych wad obowiązującego programu należą:

  1. Wymuszony podział na lata licencjackie i magisterskie z ograniczoną możliwością oferowania etapu magisterskiego jako samodzielnych studiów, atrakcyjnych dla kandydatów spoza naszego Wydziału.

  2. Wszystkie kursowe przedmioty są realizowane na pierwszych trzech latach studiów. Niektóre z tych przedmiotów są na tyle zaawansowane, że ich zrozumienie na pierwszych latach studiów jest dość trudne. Należą do nich Logika, Programowanie współbieżne, Programowanie w logice, Semantyka i weryfikacja programów, Metody realizacji języków programowania.

  3. Brak w programie niektórych przedmiotów, które są ważne dla dobrze wykształconego informatyka, jak np. Rachunek prawdopodobieństwa i statystyka (z zastosowaniami w informatyce), Grafika komputerowa (w tym tworzenie scen trójwymiarowych z użyciem gotowych bibliotek), Bezpieczeństwo systemów komputerowych (w tym tworzenie bezpiecznych aplikacji), Sieci i protokoły komunikacyjne (zorientowane na zastosowania internetowe).

  4. Brak na etapie licencjackim miejsca na praktyczne poznawanie narzędzi informatycznych.

Biorąc powyższe pod uwagę, proponujemy kierunek zmian programu studiów naszkicowany w załączonej siatce. Główne zmiany to:

  1. Wyraźny podział na 3-letnie studia licencjackie (zawodowe) i 2-letnie magisterskie (naukowe).

  2. Wczesne rozpoczęcie intensywnej nauki programowania. W pierwszym semestrze proponujemy 150 godzin Wstępu do programowania, ze szczególnym naciskiem na projektowanie i implementacje poprawnych i efektywnych programów oraz wykształcenie dobrego stylu programowania w małej i średniej skali. Program tego przedmiotu będzie też zawierał elementy propedeutyki informatyki takie jak pojęcie algorytmu, gramatyki i automaty, arytmetyka komputera, notacje do zapisywania składni języków programowania i elementy semantyki języków programowania. Pragniemy też zwrócić uwagę na efektywne korzystanie z narzędzi programistycznych wspomagających proces programowania.

    Na roku pierwszym proponujemy też naukę Programowania obiektowego, jako dominującego obecnie paradygmatu programowania. Bez obiektowości trudno sobie obecnie wyobrazić zajęcia z Baz danych i Inżynierii oprogramowania.

  3. Rezygnacja z Programowania niskopoziomowego. Wykład z Architektury komputerów i programowania niskopoziomowego został przesunięty na pierwszy rok pod nazwą Architektura komputerów i sieci. Jego głównym celem jest przekazanie studentom podstawowych informacji o architekturze współczesnych systemów komputerowych, niezbędnych na późniejszych zajęciach z Systemów operacyjnych, Baz danych, Sieci i protokołów komunikacyjnych.

  4. Na pierwszym roku zrezygnowano z następujących przedmiotów matematycznych: Algebry liniowej II, Elementów matematyki dyskretnej II i Logiki. Rozszerzono za to kurs z Analizy matematycznej o 30 godzin. Na wykładzie z Matematyki dyskretnej powinna znaleźć się kombinatoryka i teoria grafów oraz informacje o strukturach algebraicznych omawianych dotychczas na Logice. Elementy logiki znajdą się na przedmiocie Podstawy matematyki, który odpowiada dotychczasowemu Wstępowi do teorii mnogości, a w rozszerzonym zakresie będę uwzględnione na studiach magisterskich w ramach wykładów obowiązkowych dla wszystkich studentów. Dotychczas na EMD II były elementy rachunku prawdopodobieństwa. Doceniając ważność metod probabilistycznych we współczesnej informatyce proponujemy wprowadzenie na drugim roku nowego przedmiotu o nazwie Rachunek prawdopodobieństwa i statystyka.

  5. Systemy operacyjne przesunięto na początek drugiego roku. Wymaga to przywrócenia do programu tego przedmiotu elementów programowania współbieżnego. Zrezygnowano z kursowego przedmiotu Programowanie współbieżne. Zaawansowany kurs z programowania współbieżnego i rozproszonego przeniesiono na etap magisterski. Zamiast przedmiotu Sieci komputerowe proponuje się przedmiot Sieci i protokoły komunikacyjne, na którym planuje się położenie nacisku na programowanie na potrzeby Internetu, w tym tworzeniu dużych aplikacji internetowych.

  6. Do przedmiotu Algorytmy i struktury danych dodano laboratorium. Celem tego laboratorium jest doskonalenie sztuki programowania w miare wzbogacania wiedzy teoretycznej.

  7. Inżynierię programowania oraz Zespołowy projekt programistyczny należy traktować jako jedną grupę przedmiotów, realizowaną przez ten sam zespół nauczycieli. Celem tych zajęć jest wykonanie dużego projektu programistycznego zgodnie z założoną metodologią. Na tym przedmiocie studenci wykonują pracę licencjacką.

  8. Do programu wprowadzono 3 nowe przedmioty: Grafikę komputerową (reprezentacja i przekształcanie obiektów 3D, budowanie scen 2D, oświetlanie scen, nakładanie tekstury, biblioteki graficzne) , Języki i paradygmaty programowania (przegląd paradygmatów i języków programowania, wstęp do translacji i realizacji języków programowania) oraz Bezpieczeństwo systemów komputerowych (projektowanie i implementacja bezpiecznych aplikacji, bezpieczeństwo sieci komputerowych, kryptograficzne podstawy bezpieczeństwa sytemów komputerowych, testowanie bezpieczeństwa systemów).

  9. Uważamy też, że dla licencjatów (i nie tylko) ważna jest wiedza na temat przedsiębiorczości i podstaw prawa informatycznego, dlatego proponujemy przedmioty Podstawy przedsiębiorczości dla informatyków oraz Prawne aspekty informatyki.

  10. Proponujemy konwersatorium na temat zastosowań informatyki, na którym studenci mieliby okazję zapoznać się z wymogami i zapotrzebowaniem rynku informatycznego.

  11. Na roku trzecim studenci muszą zaliczyć 3 wykłady fakultatywne, do wyboru z grupy przedmiotów fakultatywnych corocznie oferowanych przez Instytut Informatyki.

  12. Propozycją do dyskusji są “kursy” narzędzi i języków programowania. Doświadczenie uczy, że takie zaawansowane kursy cieszyłyby się bardzo dużym powodzeniem i przybliżałyby studentom oprogramowanie, które funkcjonuje na rynku, jak np. :C, C++, Java, Python, STL, Boost, .NET, J2EE, XML, UML, itp.

  13. Wprowadzono Proseminaria, których celem jest przygotowanie studentów do prowadzenia publicznych prezentacji i debat.

Studia magisterskie nie powinny być zwykłą kontynuacją studiów licencjackich i powinny być dostępne zarówno dla naszych studentów, jak i tych z zewnątrz. Powinny być to studia naukowe dotykające podstaw informatyki. Dlatego proponujemy, żeby na tych studiach 4 przedmioty były obowiązkowe: Teoretyczne podstawy informatyki, Teoria obliczeń, Programowanie współbieżne i rozproszone oraz Metody realizacji języków programowania. Celem dwóch pierwszych jest zapoznanie studentów z istotą obliczalności i dostarczenie niezbędnej wiedzy z podstaw matematyki pozwalającej na formalne badanie i tworzenie wysokiej jakości oprogramowania. Przedmioty te sprawdzą też, czy studenci reprezentują ogólną kulturę matematyczną i umiejętności ścisłego operowania abstrakcyjnymi pojęciami oczekiwanymi od magistrów naszego Wydziału. Dwa z pozostałych przedmiotów mają na celu zweryfikowanie praktycznych umiejętności kandydatów na magistrów, jak i przekazanie informacji o procesach informatycznych związanych z wykonywaniem programów.

Celem wykładu z Wybranych zagadnień informatyki jest zapoznanie studentów z tematyką oferowanych seminariów dyplomowych. Prelegentami na wykładzie będą opiekunowie seminarium magisterskich. Podobnie jak w przypadku studiów licencjackich, studenci studiów magisterskich muszą zrealizować pewną pulę corocznie oferowanych zajęć fakultatywnych. Zakłada się, że z każdym seminarium magisterskim będą związane cztery wykłady fakultatywne, obowiązkowe dla każdego uczestnika seminarium.


Załączniki

  1. Opis obecnie obowiązującego programu (zobacz też http://www.mimuw.edu.pl/studia/dzienne/informator/).

  2. Propozycja siatki nowego programu.

Siatka studiów licencjackich
Studia licencjackie
L.P. Przedmiot Semestr I Semestr II


W Ć L E Z W Ć L E Z
Pierwszy rok
1. AM I 2 2
x





Analiza matematyczna I
2. AL 2 2
x





Algebra liniowa
3. PM 2 2
x





Podstawy matematyki
4. WP 4 3
x





Wstęp do programowania
5. WP-lab

3
x




Wstęp do programowania – laboratorium
6. AM II




3 3
x
Analiza matematyczna II
7. MD




3 3
x
Matematyka dyskretna
8. PO




2 2
x
Programowanie obiektowe
9. PO-lab






4
x Programowanie obiektowe – laboratorium
10. AKiS




2

x
Architektura komputerów i sieci

Razem 10 9 3 4 1 10 8 4 4 1
Drugi rok
1. ASD 2 2
x





Algorytmy i struktury danych
2. ASD-lab

2
x




Algorytmy i struktury danych – laboratorium
3. BD 2
2 x





Bazy danych
4. SO 2 2
x





Systemy operacyjne
5. SO-lab

2
x




Systemy operacyjne – laboratorium
6. RPiS 2 1 1 x





Rachunek prawdopodobieństwa i statystyka
7. NiJP1 1
1
x




Narzędzia i języki programowania – kurs 1
8. MN




2 2
x
Metody numeryczne
9. JAO




2 2
x
Języki, automaty i obliczenia
10. IO




2
2 x
Inżynieria oprogramowania
11. SiPK




2
2 x
Sieci i protokoły komunikacyjne
12. PRZ




2


x Podstawy przedsiębiorczości dla informatyków
13. NiJP2




1
1
x Narzędzia i języki programowania – kurs 2

Razem 9 5 8 4 3 11 4 5 4 2
Trzeci rok
1. ZPP I

2
x




Zespołowy projekt programistyczny I
2. GK 2
2 x





Grafika komputerowa
3. BSK 2
2 x





Bezpieczeństwo systemów komputerowych
4. PAI 2


x




Prawne aspekty informatyki
5. Fakultet 1 2 2
x





Wykład fakultatywny 1 (w + ć/l)
6. Proseminarium
2

x





7. NiJP3 1
1
x




Narzędzia i języki programowania – kurs 3
8. ZPP II






2
x Zespołowy projekt programistyczny II
9. ZI





2

x Konwersatorium z zastosowań informatyki
10. JPP




2
2 x
Języki i paradygmaty programowania
11. Fakultet 2




2 2
x
Wykład fakultatywny 2 (w + ć/l)
12. Fakultet 3




2 2
x
Wykład fakultatywny 3 (w + ć/l)
13. Proseminarium





2

x

Razem 9 4 7 3 4 6 8 4 3 3
Siatka studiów magisterskich
Studia magisterskie
L.P. Przedmiot Semestr I Semestr II


W Ć L E Z W Ć L E Z
Pierwszy rok
1. TO 2 2
x





Teoria obliczeń
2. PwiR 2 2 2 x





Programowanie współbieżne i rozproszone
3. WZI 4


x




Wybrane zagadnienia informatyki
4. Fakultet 1 2 2
x





Wykład fakultatywny 1 (w + ć/l)
5. Fakultet 2 2 2
x





Wykład fakultatywny 2 (w + ć/l)
6. TPI




2 2
x
Teoretyczne podstawy informatyki
7. MRJP




2 2 2 x
Metody realizacji języków programowania
8. Seminarium





2

x Seminarium dyplomowe
9. Fakultet 3




2 2
x
Wykład fakultatywny 3 (w + ć/l)
10. Fakultet 4




2 2
x
Wykład fakultatywny 4 (w + ć/l)

Razem 12 8 2 4 1 8 10 2 4 1
Drugi rok
1. Seminarium
2

x




Seminarium dyplomowe
2. Fakultet 5 2 2
x





Wykład fakultatywny 5 (w + ć/l)
3. Monograf 1 2 2
x





Wykład monograficzny 1 (w + ć/l)
4. Monograf 2 2 2
x





Wykład monograficzny 2 (w + ć/l)
5. Seminarium





2

x Seminarium dyplomowe
6. Fakultet 6




2 2
x
Wykład fakultatywny 6 (w + ć/l)
7. Monograf 3




2 2
x
Wykład monograficzny 3 (w + ć/l)
8. Monograf 4




2 2
x
Wykład monograficzny 4 (w + ć/l)

Razem 6 8
3 1 6 8
3 1

Wykłady fakultatywne: