Nicolaus Copernicus University in Torun - Central Authentication Service
Strona główna

Programming in D

General data

Course ID: 1000-I1PJD
Erasmus code / ISCED: (unknown) / (0613) Software and applications development and analysis The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
Course title: Programming in D
Name in Polish: Język D
Organizational unit: Faculty of Mathematics and Computer Science
Course groups: (in Polish) Inf., I st., stacjonarne, 2 rok, przedmioty do wyboru
(in Polish) Inf., I st., stacjonarne, 3 rok, przedmioty do wyboru
(in Polish) Inf., II st, stacjonarne, przedmioty do wyboru
ECTS credit allocation (and other scores): 6.00 Basic information on ECTS credits allocation principles:
  • the annual hourly workload of the student’s work required to achieve the expected learning outcomes for a given stage is 1500-1800h, corresponding to 60 ECTS;
  • the student’s weekly hourly workload is 45 h;
  • 1 ECTS point corresponds to 25-30 hours of student work needed to achieve the assumed learning outcomes;
  • weekly student workload necessary to achieve the assumed learning outcomes allows to obtain 1.5 ECTS;
  • work required to pass the course, which has been assigned 3 ECTS, constitutes 10% of the semester student load.

view allocation of credits
Language: Polish
Prerequisites:

(in Polish) Zaliczenie przedmiotu Podstawy programowania.

Total student workload:

(in Polish) Godziny realizowane z udziałem nauczycieli - 60 godzin, w tym

* wykład - 30 godzin

* laboratorium - 30 godzin

2. Czas potrzebny na pracę indywidualną studenta - 50 godzin, w tym

* 30 godzin na przygotowanie i przetestowanie indywidualnych projektów.

* 10 godzin na przygotowanie się do laboratorium (wykonywanie zadań).

* 10 godzin na powtórzenie materiału z wykładu.

3. Czas potrzebny na przygotowanie się do zaliczenia oraz przygotowanie projektu - 35 godzin, w tym

* 25 godzin na powtórzenie materiału do egzaminu.

* 10 godzin na przygotowanie się do zaliczenia laboratorium.

Learning outcomes - knowledge:

(in Polish) 1. Zna specyfikację oraz techniki programistyczne języka D, wie jak definiować podstawowe struktury danych, wykonywać na nich operacje, implementować algorytmy (K_W05, K_W06 na studiach I stopnia, K_W10 na studiach II stopnia).

2. Wymienia charakterystyczne cechy języka D wyróżniające go spośród innych języków programowania takich jak C, C++ i Java (K_W10 na studiach I stopnia).

3. Wie jakie technologie sieciowe mają swoją implementację w bibliotekach Tango i Phobos (K_W12 na studiach I stopnia).

Learning outcomes - skills:

(in Polish) 1. Pisze programy w języku D wykorzystujące biblioteki Phobos i Tango (K_U05 na studiach I stopnia, K_U09 na studiach II stopnia).

2. Dobiera mechanizmy i klasy zalecane do konkretnych, podanych zastosowań i pisze programy z ich użyciem (K_U22 na studiach I stopnia, K_U13 na studiach II stopnia).

3. Tworzy w języku D projekty różnych typów, w szczególności aplikacje konsolowe, aplikacje graficzne, biblioteki, moduły (K_U24 na studiach I stopnia).

4. Tworzy oprogramowanie wykorzystujące biblioteki skompilowane w języku C (K_U07 na studiach II stopnia).

5. Analizuje działanie otrzymanych programów i fragmentów kodów oraz przewiduje ich zachowanie (K_U06 na studiach I stopnia).

Learning outcomes - social competencies:

(in Polish) 1. Jest nastawiony na nieustanne zdobywanie nowej wiedzy, umiejętności i doświadczeń, rozumie potrzebę ciągłego doskonalenia się i podnoszenia kompetencji zawodowych (K_K06 na obu stopniach).

2. Potrafi w zrozumiały sposób komunikować się z innymi osobami znającymi język D (K_K05 na obu stopniach).

3. Potrafi nawiązać współpracę z innymi programistami języka D oraz tworzyć wspólnie z nimi złożone projekty informatyczne (K_K01 na obu stopniach).

Teaching methods:

(in Polish) * Wykład.

* Laboratorium.

* Samodzielne zdobywanie informacji (studiowanie literatury).

* Opcjonalne dodatkowe zadania programistyczne.

* Indywidualny projekt programistyczny.

* Praktyczny sprawdzian umiejętności programowania.

* Ustny egzamin teoretyczny.

Short description: (in Polish)

Przedmiot Język D przeznaczony jest dla studentów, którzy we wcześniejszych latach poznali podstawy programowania obiektowego. Język D jest obiektowo zorientowanym językiem programowania stworzonym przez Waltera Brighta, ma on być obiektowym następcą języka ANSI C, jednak w przeciwieństwie do języka C++ nie jest w pełni zgodny składniowo z poprzednikiem. Możliwe jest jednak używanie skompilowanych modułów napisanych w języku C. W stosunku do C++, język D wprowadza kilka nowych cech takich jak programowanie kontraktowe, automatyczne zarządzanie pamięcią, zintegrowany z kompilatorem system dokumentacji, możliwe jest zagnieżdżanie funkcji, zmieniony jest system szablonów. Język D utrzymuje możliwość pisania niskopoziomowego dodając wstawki asemblerowe. Odchodzi natomiast od wielokrotnego dziedziczenia z C++ w zamian oferując możliwość implementacji wielu interfejsów.

Full description: (in Polish)

Ponieważ przewiduje się, że większość słuchaczy miała wcześniej styczność z językami C, C++ i Java, więc nauka składni języka D będzie opierać się na znajomości składni języków C, C++ i Java. Ponadto, podawane podczas wykładu przykłady będą porównywać składnię znanych języków programowania takich jak C, C++ i Java ze składnią języka D. Tym niemniej wykład jest skonstruowany w ten sposób, aby również osoby nie mające wcześniej do czynienia z językami C, C++ i Java były w stanie opanować składnię języka D.

Główne treści programowe

  • Podstawowe informacje na temat języka D, używanie kompilatora DMD.
  • Moduły.
  • Deklaracje w języku D.
  • Typy.
  • Własności.
  • Atrybuty.
  • Wyrażenia i instrukcje.
  • Tablice.
  • Struktury i unie, wyliczenia.
  • Klasy i interfejsy.
  • Funkcje i operatory.
  • Wzorce.
  • Kontrakty.
  • Warunkowa kompilacja.
  • Podstawy biblioteki Tango. 
Bibliography: (in Polish)

Literatura podstawowa:

  • Oficjalna witryna projektu http://www.digitalmars.com/d/index.html.
  • Kris Bell, Lars Ivar Igesund, Sean Kelly, Michael Parker, Learn to Tango with D, New York : Apress, cop. 2007.
  • Andrei Alexandrescu, The D Programming Language, Boston : Addison-Wesley 2010.
Assessment methods and assessment criteria: (in Polish)

  • Zaliczenie laboratorium na ocenę na podstawie rozwiązanych zadań lub indywidualnego projektu oraz kolokwium programistycznego (przy komputerze).
  • Zaliczenie wykładu w formie egzaminu ustnego.

Classes in period "Summer semester 2021/22" (past)

Time span: 2022-02-21 - 2022-09-30
Selected timetable range:
Navigate to timetable
Type of class:
Laboratory, 30 hours, 16 places more information
Lecture, 30 hours, 32 places more information
Coordinators: Rafał Bocian
Group instructors: Rafał Bocian
Students list: (inaccessible to you)
Examination: Course - Examination
Laboratory - Grading
Lecture - Examination
Course descriptions are protected by copyright.
Copyright by Nicolaus Copernicus University in Torun.
ul. Jurija Gagarina 11, 87-100 Toruń tel: +48 56 611-40-10 https://usosweb.umk.pl/ contact accessibility statement mapa serwisu USOSweb 7.0.3.0-2 (2024-04-26)