Programming 1

2021/2022
Programme:
Practical Mathematics
Year:
1 year
Semester:
first and second
Kind:
mandatory
ECTS:
9
Language:
slovenian
Lecturer (contact person):
Hours per week – 1. semester:
Lectures
2
Seminar
0
Tutorial
0
Lab
2
Hours per week – 2. semester:
Lectures
1
Seminar
1
Tutorial
0
Lab
2
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: recursion, bisection, searching
Event driven programming and »logo style« programming languages

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

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.

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,
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.
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.

Learning and teaching methods

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

Assessment

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:
MARKOVIČ, Katja. Izdelava vodičev za uporabo programa GeoGebra : diplomska naloga. Ljubljana: [K. Markovič], 2011. 73 f., ilustr. [COBISS-SI-ID 16189529]
LOKAR, Matija. Designing tasks for CAS/DGS classrooms. V: TIME 2010, Technology and its Integration into Mathematics Education, July 6th-10th, 2010, Málaga, Spain. Proceedings of TIME 2010 : Technology and its Integration into Mathematics Education. Málaga: Universidad de Málaga, 2011, 17 str. [COBISS-SI-ID 15643993]
LOKAR, Matija. Some issues on designing tasks for CAS classrooms. V: 6th Came symposium: structured abstracts : 16-17 July 2009, Megatrend University, Belgrade, Serbia. Beograd: Megatrend University, 2009, str. 15-16. [COBISS-SI-ID 15241817]
KUDREVIČIUS, Evelina. Platforma SharePoint in oblikovanje glavne strani : diplomska naloga. Ljubljana: [E. Kudrevičius], 2008. 77 f., ilustr. [COBISS-SI-ID 15105625]
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]