University of Warsaw - Central Authentication System
Strona główna

Programming languages and paradigms

General data

Course ID: 1000-216bJPP
Erasmus code / ISCED: 11.303 Kod klasyfikacyjny przedmiotu składa się z trzech do pięciu cyfr, przy czym trzy pierwsze oznaczają klasyfikację dziedziny wg. Listy kodów dziedzin obowiązującej w programie Socrates/Erasmus, czwarta (dotąd na ogół 0) – ewentualne uszczegółowienie informacji o dyscyplinie, piąta – stopień zaawansowania przedmiotu ustalony na podstawie roku studiów, dla którego przedmiot jest przeznaczony. / (0612) Database and network design and administration The ISCED (International Standard Classification of Education) code has been designed by UNESCO.
Course title: Programming languages and paradigms
Name in Polish: Języki i paradygmaty programowania
Organizational unit: Faculty of Mathematics, Informatics, and Mechanics
Course groups: Obligatory courses for 3rd grade Computer Science
Obligatory courses for 3rd grade JSIM (3I+4M)
Obligatory courses for 4th grade JSIM (3M+4I)
ECTS credit allocation (and other scores): 8.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
Type of course:

obligatory courses

Requirements:

Introductory programming 1000-211bWPI
Languages, automata and computations 1000-214bJAO
Object-oriented programming 1000-212bPO

Short description:

The course discusses four of the most important programming paradigms: functional, imperative, object-oriented and logic programming. The students should get a deeper insight into the nature of programming, as well as broaden they knowledge of programming languages and understand basic implementation issues.

Full description:

1.Models of computation and programming paradigms.

2. Functional programming.

- fundamentals of functional paradigm, lambda calculus

- Haskell programming language

- functions, types, type classes

- polimorphic and higher-order functions

- functors

3. Imperative programming.

- I/O and other effects

- applicative functors

- monads

- monad transformers

4. Types and typechecking

5. Semantics of programming languages, interpreters and compilers.

6. Logic Programming.

- predicate logic: theories and models

- Horn clauses and resolution

- Prolog programming language

7. Object-oriented programming.

8. Concurrency-oriented programming and Erlang

Bibliography:

1. R. Sebesta, Concepts of Programming Languages, Addison Wesley, 2005

2. Adele Goldberg, David Robson. Smalltalk-80 : the language and its implementation, Addison-Wesley, 1983.

3. R. Bird, Introduction to Functional Programming using Haskell, Prentice Hall, 1988

4. Benjamin C. Pierce, Types and Programming Languages,The MIT Press 2002

5. J. Reynolds, Theories of Programming Languages, Cambridge University Press, 1998

6. U. Nilsson, J. Małuszyński, Logic, Programming and Prolog, John Wiley & Sons, 1995

Learning outcomes:

Knowledge

1. Students have systematic general knowledge of programming languages and paradigms (K_W02)

2. Students know methods of defining programming language syntax (K_W02)

3. Students have basic knowledge of problems and meythods of syntax analysis (K_W02)

4. Students have general knowledge about programming languages and paradigms (imperative, object-oriented, logical, fundaments of translation, declarations and types, garbage collection, abstraction mechanisms) (K_W09)

Skills

1. Students can write, debug and test programs in a functional language (K_U05)

2. Students can write, debug and test programs in a logic programming language (K_U05)

3. Students can write, debug and test programs in a object-oriented language (K_U05)

4. Students can solve problems using a range of programming paradigms and assess the usefulness of each paradigm and related programming environments for a particular problem (K_U20)

5. Students can create an interpreter for a simple programming language (K_U32)

Competence

1. Students know the limits of their knowledge and understand the need of further education (K_K01).

2. Students are able to manage their time, undertake responsibilities and fulfill time constraints (K_K05).

Assessment methods and assessment criteria:

Final grade based upon credits earned from final exam and lab programs.

Passing labs requires submitting all programs on time and get at least 60% of credits.

Passing labs is required to sit the first exam term.

Passing labs is not required for the reexam, however, the lab credits are still counted towards the final grade.

Classes in period "Summer semester 2023/24" (in progress)

Time span: 2024-02-19 - 2024-06-16
Selected timetable range:
Navigate to timetable
Type of class:
Lab, 60 hours more information
Lecture, 30 hours more information
Coordinators: Marcin Benke
Group instructors: Marcin Benke, Jacek Chrząszcz, Tomasz Gogacz, Mirosława Miłkowska, Michał Skrzypczak, Daria Walukiewicz-Chrząszcz, Artur Zaroda
Students list: (inaccessible to you)
Examination: Examination
Course descriptions are protected by copyright.
Copyright by University of Warsaw.
Krakowskie Przedmieście 26/28
00-927 Warszawa
tel: +48 22 55 20 000 https://uw.edu.pl/
contact accessibility statement USOSweb 7.0.3.0 (2024-03-22)