Programming 1

2022/2023
Programme:
Mathematics, First Cycle
Year:
2 year
Semester:
first
Kind:
mandatory
ECTS:
5
Language:
slovenian
Hours per week – 1. semester:
Lectures
2
Seminar
0
Tutorial
0
Lab
2
Prerequisites

Completed course Introduction to programming.

Content (Syllabus outline)

Use of complex data types and implementation of data structures: list, stack, queue, tree, …

Search and sorting algorithms. Computational complexity and correctness analysis of programs. Basic methods of algorithm design: divide and conquer, dynamic programming, backtracking, …

Obtaining and cleaning data. Queries, analysis and presentation of data.

Readings

Priročniki in učbeniki o programiranju v programskem jeziku, ki ga študenti spoznajo.
Manuals and textbooks on programming in appropriate programming language.

Objectives and competences

A student gets familiar with the basics of structured programming and certain basic data structures and algorithms.

Intended learning outcomes

Knowledge and understanding: Basic knowledge of at least one programming language and basic programming techniques.

Application: A student can use the skills of programming at other courses that require problem solving using a computer.

Reflection: Structured programming enables abstract and conceptually clean approach to programming that is based on discrete structures.

Transferable skills: Programming capabilities are useful in further computer science courses as well as the courses on numerical methods.

Learning and teaching methods

Lectures, exercises, homework, consultations

Assessment

homework, midterm exams, projects, written exam, oral exam

grading: 5 (fail), 6-10 (pass) (according to the Statute of UL)

Lecturer's references

Andrej Bauer:
BAUER, Andrej, STONE, Christopher A. RZ: a tool for bringing constructive and computable mathematics closer to programming practice. Journal of logic and computation, ISSN 0955-792X, 2009, vol. 19, no. 1, str. 17-43. [COBISS-SI-ID 15325785]
BAUER, Andrej, TAYLOR, Paul. The Dedekind reals in abstract Stone duality. Mathematical structures in computer science, ISSN 0960-1295, 2009, vol. 19, iss. 4, str. 757-838. [COBISS-SI-ID 15322201]
BAUER, Andrej, BIRKEDAL, Lars. Continuous functionals of dependent types and equilogical spaces. V: CLOTE, Peter G. (ur.). Computer science logic : 14th international workshop, CSL 2000, annual conference of the EACSL, Fischbachau, Germany, August 21-26, 2000 : proceedings, (Lecture notes in computer science, ISSN 0302-9743, 1862). Berlin [etc.]: Springer, 2000, vol. 1862, str. 202-216. [COBISS-SI-ID 10606681]
BAUER, Andrej. Uvod v programiranje v Javi. Ljubljana: [A. Bauer], 2008. 1 optični disk (CD-ROM). [COBISS-SI-ID 14629977]
BAUER, Andrej. Teorija programskih jezikov. Ljubljana: [A. Bauer], 2007. 100 str. [COBISS-SI-ID 14630489]
PLOTKIN, Gordon, PRETNAR, Matija. Handling algebraic effects. Logical methods in computer science, ISSN 1860-5974, 2013, vol. 9, iss. 4, paper 23 (str. 1-36) [COBISS-SI-ID 16816729]
PRETNAR, Matija. Inferring algebraic effects. Logical methods in computer science, ISSN 1860-5974, 2014, vol. 10, iss. 3, paper 21 (str. 1-43) [COBISS-SI-ID 17190745]
BAUER, Andrej, PRETNAR, Matija. An effect system for algebraic effects and handlers. Logical methods in computer science, ISSN 1860-5974, 2014, vol. 10, iss. 4, paper 9 (str. 1-29). http://arxiv.org/pdf/1306.6316 [COBISS-SI-ID 17191001]