Skip to main content

Programming 2

2024/2025
Programme:
Applied mathematics
Year:
2 year
Semester:
second
Kind:
mandatory
ECTS:
5
Language:
slovenian
Lecturer (contact person):

Assoc. Prof. Lovro Šubelj

Hours per week – 2. semester:
Lectures
2
Seminar
0
Tutorial
0
Lab
2
Prerequisites

Completed course Programming 1.

Content (Syllabus outline)

Object-oriented programming, inheritance.
Using programming libraries like MatPlotLib, Numpy, beautifulSoup.
Modular programming, planning and organisation of programming units.
Testing(UnitTest) and debugging.
Collecting, exchanging and dealing with large amount of data (JSON, XML, web scraping)
Graphical user interfaces, event-driven programming.

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 na spletni strani 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

Students will learn advanced programming techniques such as object-oriented and event-driven programming. They will use libraries from the field of mathematics and data processing. With the help of a computer they will be able to solve complex mathematical problems and problems from real life.

Intended learning outcomes

Knowledge and understanding:
Class design, use of the objects, modularization of the software code. Connections between mathematics and programming.
Application: Advanced programming skills are used in solving problems from various fields in computing and numerical methods.
Reflection: Diversity in programming concepts and tools requires a wide range of knowledge and its constant refreshment. Graduates need knowledge on connecting mathematics and programming.
Transferable skills: Ability to plan bigger programming units. Acquiring data from various sources. Study of the approach needed to deal with issues relevant to the study of data structures and algorithms. Connections between mathematics and programming.

Learning and teaching methods

Lectures, exercises, usage of distance learning techniques, home works, consultations

Assessment

Reports of computer exercises and/or homeworks (prerequisite for taking the 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 homeworks, the other from a seminar paper and the 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:
LOKAR, Matija. Prvenstvo študentskih ekip Univerze v Ljubljani v programiranju 2002. Ljubljana: [Fakulteta za matematiko in fiziko], 2002. 100 str., ilustr. [COBISS-SI-ID 12122457]
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]