Completed course Introduction to programming.

# Programming 1

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.

Priročniki in učbeniki o programiranju v programskem jeziku, ki ga študenti spoznajo.

Manuals and textbooks on programming in appropriate programming language.

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

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.

Lectures, exercises, homework, consultations

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

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

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]