Moduł oferowany także w ramach programów studiów:
Informacje ogólne:
Nazwa:
Programowanie w języku Scala
Tok studiów:
2014/2015
Kod:
IIN-1-318-s
Wydział:
Informatyki, Elektroniki i Telekomunikacji
Poziom studiów:
Studia I stopnia
Specjalność:
-
Kierunek:
Informatyka
Semestr:
3
Profil kształcenia:
Ogólnoakademicki (A)
Język wykładowy:
Polski
Forma i tryb studiów:
Stacjonarne
Strona www:
 
Osoba odpowiedzialna:
dr inż. Gajęcki Marek (mag@agh.edu.pl)
Osoby prowadzące:
Krótka charakterystyka modułu

Opis efektów kształcenia dla modułu zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Powiązania z EKK Sposób weryfikacji efektów kształcenia (forma zaliczeń)
Wiedza
M_W001 Student zna i rozumie składnię i semantykę wybranego języka programowania IN1A_W05 Zaliczenie laboratorium
M_W002 Student zna i rozumie założenia, koncepcje, wady i zalety wybranego języka programowania IN1A_W05 Zaliczenie laboratorium
M_W003 Student zna i rozumie zasady tworzenia aplikacji w wybranym języku programowania IN1A_W05 Zaliczenie laboratorium
Umiejętności
M_U001 Potrafi stworzyć algorytm i zaimplementować go w wybranym języku programowania IN1A_U08 Zaliczenie laboratorium
M_U002 Potrafi korzystać z dostępnych bibliotek do rozwiązywania zadań w wybranym języku programowania IN1A_U08 Zaliczenie laboratorium
Kompetencje społeczne
M_K001 Potrafi zaplanować i odpowiednio wykorzystać czas przeznaczony na realizację postawionego zadania w wybranym języku programowania IN1A_K04 Zaliczenie laboratorium
Matryca efektów kształcenia w odniesieniu do form zajęć
Kod EKM Student, który zaliczył moduł zajęć wie/umie/potrafi Forma zajęć
Wykład
Ćwicz. aud
Ćwicz. lab
Ćw. proj.
Konw.
Zaj. sem.
Zaj. prakt
Zaj. terenowe
Zaj. warsztatowe
Inne
E-learning
Wiedza
M_W001 Student zna i rozumie składnię i semantykę wybranego języka programowania + - - - - - - - - - -
M_W002 Student zna i rozumie założenia, koncepcje, wady i zalety wybranego języka programowania + - - - - - - - - - -
M_W003 Student zna i rozumie zasady tworzenia aplikacji w wybranym języku programowania + - - - - - - - - - -
Umiejętności
M_U001 Potrafi stworzyć algorytm i zaimplementować go w wybranym języku programowania - - + - - - - - - - -
M_U002 Potrafi korzystać z dostępnych bibliotek do rozwiązywania zadań w wybranym języku programowania - - + - - - - - - - -
Kompetencje społeczne
M_K001 Potrafi zaplanować i odpowiednio wykorzystać czas przeznaczony na realizację postawionego zadania w wybranym języku programowania - - + - - - - - - - -
Treść modułu zajęć (program wykładów i pozostałych zajęć)
Wykład:

1. Wprowadzenie
krótka charakterystyka języka; skrypty w Scali, REPL; podstawowe typy danych,
inferencja typów (type inference); instrukcje vs. wyrażenia, przeciążanie operatorów
(operator overloading); pętle, wyrażenie warunkowe, wyrażenie for; funkcje i ich parametry,
wyjątki; pakiety; łączenie Scali z Javą
2. Elementy programowania obiektowego w Scali
klasy, konstruktory, obiekty, obiekty towarzyszące (companion objects), klasy abstrakcyjne,
obiekt aplikacji; przesłanianie (overriding) metod; cechy (traits), domieszki (mix-ins),
klasy/obiekty przypadku (case classes/objects); atrybuty abstrakcyjne;
importy, hierarchia klas w Scali
3. Elementy programowania generycznego w Scali
parametryzacja typu, kolekcje generyczne; rodzaje polimorfizmu, polimorfizm parametryczny;
górne i dolne ograniczenia parametrów typu; kowariancja i kontrawariancja operatorów,
ograniczenia typów kowariantnych i kontrawariantnych
4. Elementy programowania funkcyjnego w Scali I
programowanie imperatywne vs. funkcyjne, rekursja, rekursja ogonowa, dopasowanie wzorców
5. Elementy programowania funkcyjnego w Scali II
funkcje anonimowe, domknięcie funkcji (closure); funkcje częściowe (partial functions);
funkcje wyższych rzędów, funkcje jako dane; składanie funkcji, rozwijanie funkcji (currying)
6. Elementy programowania funkcyjnego w Scali III
listy, leniwe wartościowanie (lazy evaluation), strumienie; kolekcje w Scali i ich API
7. Elementy programowania reaktywnego w Scali
aktorowy model współbieżności, wprowadzenie do Typesafe Reactive Platform i Typesafe Activator

Ćwiczenia laboratoryjne:

Tematyka kolejnych zajęć laboratoryjnych odpowiada materiałowi omawianemu podczas wykładu
(każdy wykład stanowi wprowadzenie do następujących po nim zajęć laboratoryjnych).

Nakład pracy studenta (bilans punktów ECTS)
Forma aktywności studenta Obciążenie studenta
Sumaryczne obciążenie pracą studenta 75 godz
Punkty ECTS za moduł 3 ECTS
Udział w wykładach 15 godz
Samodzielne studiowanie tematyki zajęć 15 godz
Udział w ćwiczeniach laboratoryjnych 15 godz
Przygotowanie do zajęć 15 godz
Przygotowanie sprawozdania, pracy pisemnej, prezentacji, itp. 15 godz
Pozostałe informacje
Sposób obliczania oceny końcowej:

Zostanie uzupełnione

Wymagania wstępne i dodatkowe:

Zostanie uzupełnione

Zalecana literatura i pomoce naukowe:

Zostanie uzupełnione

Publikacje naukowe osób prowadzących zajęcia związane z tematyką modułu:

Nie podano dodatkowych publikacji

Informacje dodatkowe:

Zostanie uzupełnione