Skip to main content

Programming 1

2024/2025
Programme:
Applied mathematics
Year:
1 year
Semester:
first and second
Kind:
mandatory
ECTS:
13
Language:
slovenian
Lecturer (contact person):
Hours per week – 1. semester:
Lectures
2
Seminar
1
Tutorial
0
Lab
3
Hours per week – 2. semester:
Lectures
1
Seminar
1
Tutorial
0
Lab
3
Prerequisites

There are no prerequisites.

Content (Syllabus outline)

The basics of programming languages: From problem to the execution on the computer. The concept of the algorithm, console
output, reading data via keyboard, variables, basic and the numeric types, the arithmetic, conditional statements, loops
Basic data structures: tables, lists, sets, arrays, dictionaries, sets, files
The structure of the program: subroutines, functions, documentation, software libraries
Basic programming procedures and patterns: recursion, bisection, searching, selecting
Basics of object oriented programming: encapsualtion
Using distributed version control system (Git)

Readings

Priročniki in učbeniki za programske jezike, ki jih študenti spoznajo.
Spletne strani in tečaji (Coursera, Udacity, Edx ...) za učenje programskega jezika, izbor je vsakoletno osvežen v spletni učilnici predmeta.
Zapiski s predavanj, gradivo za vaje in ostalo gradivo v spletni učilnici predmeta.
Zaradi hitrega razvoja informacijskih tehnologij se literatura in viri redno prilagajajo razvoju programskih jezikov in didaktike poučevanja le teh. Konkretni naslovi, ki bi jih navedli, bi bili v času izvajanja že zastareli.
Manuals and textbooks for programming languages.
Web sites and courses (Coursera, Udacity, Edx...), selection is annually refreshed on the Web site of the subject.
Notes from lectures, tutorials and other resources in the online classroom.
References and resources are refreshed regularly to address the development of programming languages and the didactics of teaching. Specific resources listed would have been at the time of the implementation already obsolete.

Objectives and competences

The goal of the subject is to teach the basics of algorithmic thinking and coding in the chosen language.
Students will learn and acquire the basic programming techniques. They will be able to solve simple concrete tasks with the help of a computer program. The basic programming techniques will be upgraded with a modular approach and by using more complex techniques of program development. They will learne how to use a distributed version control system
The goal is directed towards transferable knowledge of coding and thus basis to code in variuous programming lanugages, regardless of in the course chosen language.

Intended learning outcomes

Knowledge and understanding:
Students acquire knowledge of basic programming constructs (variables, statements, loops, subroutines...) and their effective use in solving small programming problems. Analysis of the problem, the use of appropriate programming approaches, version control
Application:
The ability of the algorithmic approach to problem solving. Solving mathematical and other problems with a computer, especially where it is necessary to draw up a program to solve the problem. The ability to read and to write documentation and version control
Reflection:
The ability of programming allows the user to have a higher level of control over the computer and allows him to solve problems, which using conventional applications can not be solved. Knowledge of the basics of programming allows the algorithmic approach to solving any problems. The student realizes the importance of the use of the programming libraries and appropriate documentation of the code.
Transferable skills:
Programming skills student uses at other computing and numerical related subjects, also the approach to the problem is used in other subjects too. In various other subjects they will be able to use version control systems.

Learning and teaching methods

Lectures, exercises, usage of distance learning techniques, home works, consultations, using systems for automatic assesment

Assessment

Reports of computer exercises and homeworks (prerequisite for written exam), exam from the exercises (colloquiums or written exam)
Seminar paper, oral exam - defense of the seminar paper
Students get two grades: one from the written exam and reports of laboratory exercises and homeworks, the other from the seminar paper and oral exam.
grading: 5 (fail), 6-10 (pass) (according to the Statute of UL)

Lecturer's references

Andrej Bauer:
HAJDINJAK, Melita, BAUER, Andrej. Similarity-based relations in Datalog programs. International journal of uncertainty, fuzziness and knowledge-based systems, ISSN 0218-4885, Oct. 2012, vol. 20, no. 5, str. 673-700. [COBISS-SI-ID 9428308]
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]
LUKŠIČ, Primož, HORVAT, Boris, BAUER, Andrej, PISANSKI, Tomaž. Practical E-Learning for the Faculty of Mathematics and Physics at the University of Ljubljana. Interdisciplinary journal of knowledge & learning objects, ISSN 1552-2210, 2007, vol. 3, str. 73-83. [COBISS-SI-ID 14269529]
AWODEY, Steve, BAUER, Andrej. Propositions as [Types]. Journal of logic and computation, ISSN 0955-792X, 2004, vol. 14, no. 4, str. 447-471. [COBISS-SI-ID 13374809]
Matija Lokar:
MORI, Nataša, LOKAR, Matija. A new interactive computer science textbook in Slovenia. V: BRODNIK, Andrej (ur.), TORT, Françoise (ur.). Informatics in schools : improvement of informatics knowledge and perception : 9th International Conference on Informatics in Schools: Situation, Evolution, and Perspectives, ISSEP 2016, Münster, Germany, October 13-15, 2016 : proceedings. 9th International Conference on Informatics in Schools: Situation, Evolution, and Perspectives, ISSEP 2016, Münster, Germany, October 13-15, 2016. Cham: Springer, cop. 2016. Str. 167-178. Lecture notes in computer science, 9973. ISBN 978-3-319-46746-7. ISSN 0302-9743. [COBISS-SI-ID 17796185]
JERŠE, Gregor, LOKAR, Matija. Learning and teaching numerical methods with a system for automatic assessment. The international journal for technology in mathematics education. 2017, vol. 24, no. 3, str. 121-127, ilustr. ISSN 1744-2710. DOI: 10.1564/tme_v24.3.03. [COBISS-SI-ID 1537634243]
LOKAR, Matija. Pišek - Programming with Blocks Competition : a new Slovenian Programming Competition. V: KORI, Külli (ur.), LAANPERE, Mart (ur.). Proceedings of the International Conference on Informatics in School: Situation, Evaluation and Perspectives, Tallinn, Estonia, November 16-18, 2020. Aachen: R. Piskac c/o Redaktion Sun SITE, Informatik V, RWTH Aachen, cop. 2020. 1 spletni vir (1 datoteka pdf (12 str.)). CEUR workshop proceedings, Vol. 2755. ISSN 1613-0073. http://ceur-ws.org/Vol-2755/paper1.pdf. [COBISS-SI-ID 41153539]
LOKAR, Matija, MUJKIČ, Maja. Uporaba Sistema Pišek pri pouku neobveznega izbirnega predmeta računalništvo. V: RAJKOVIČ, Uroš (ur.), BATAGELJ, Borut (ur.). Vzgoja in izobraževanje v informacijski družbi = Education in Information Society : 9. oktober 2020, 9 October 2020, Ljubljana, Slovenia : Informacijska družba - IS 2020 = Information Society - IS 2020 : zbornik 23. mednarodne multikonference = proceedings of the 23rd international multiconference : zvezek G = volume G. Ljubljana: Institut "Jožef Stefan", 2020. Str. 138-143, ilustr. ISBN 978-961-264-198-6, ISBN 978-961-264-199-3. http://library.ijs.si/Stacks/Proceedings/InformationSociety/2020/IS2020_Volume_G%20-%20VIVID.pdf. [COBISS-SI-ID 35065347]
LOKAR, Matija. Project TOMO: immediate feedback enabling service in teaching programming. V: CSERC'2019 : the collection of the CSERC submissions 2019. 8th Computer Science Education Research Conference (CSERC '19),18 - 20 November 2019, Larnaca, Cyprus. [S. l.: s. n.], 2019. Str. [105-110], ilustr. https://www.ou.nl/documents/49898/761136/CSERC_19_collected_papers_smaller.pdf/d1eed513-4ecf-edcb-a328-104d9167be4b. [COBISS-SI-ID 18809689]
LOKAR, Matija, PRETNAR, Matija. A low overhead automated service for teaching programming. V: Proceedings. 15th Koli Calling Conference on Computing Education Research, November 19-22, 2015, Koli, Finland. New York: ACM. 2015, str. 132-136. ACM International Conference Proceeding Series. ISBN 978-1-4503-4020-5. http://dx.doi.org/10.1145/2828959.2828964. [COBISS-SI-ID 17536089]
LOKAR, Matija. Prvi koraki v programiranje - kdaj in kako. V: RAJKOVIČ, Vladislav (ur.), BERNIK, Mojca (ur.), RAJKOVIČ, Uroš (ur.). Vzgoja in izobraževanje v informacijski družbi - VIVID 2014 : zbornik referatov = Education in information society : conference proceedings. Kranj: Fakulteta za organizacijske vede, 2014. Str. 127-144, ilustr. ISBN 978-961-232-278-6. http://vivid.fov.uni-mb.si/sites/vivid.fov.uni-mb.si/files/IS2014-web.pdf. [COBISS-SI-ID 17139801]