862 Programming 1

862 Programming 1

  • Study programme and level: University Study Programme in Administrative Information Science - 1st Cycle
  • 1st year
  • 6 ECTS
  • Course type: Core
  • Lectures: 45
  • Tutorial: 30
  • Other forms of study: 15
  • Individual work: 90
  • Lecturer: Janez Demšar, PhD

 

1. Objectives and competences

  • The goal of the subject is to teach the basics of algorithmic thinking and coding in the chosen language (currently Python). All concepts are introduced systematically and using many practical examples.

2. Content

The course consists of the following chapters:

  • Expressions, basic data types, variables
  • Conditional expressions, while loop
  • Lists, tuples, for loop
  • Subroutines
  • Files
  • Dictionaries and sets
  • Recursion
  • Namespaces
  • Basics of object oriented programming
  • Exceptions
  • Basics of user interfaces, working with events
  • List comprehension, generators, iterators
  • Additional topics

Sudents will solve a larger number of programming excercises related to lectures with help of teaching assistants.

3. Readings

For beginners:

  • M. L. Hetland: Beginning Python: from novice to professional, 2nd Ed., Apres, 2008.
  • For students with previous experience in programming:
  • J. Demšar: Python za programerje. 2. izd. Fakulteta za računalništvo in informatiko, 2012.
  • Web pages with tutorials and courses (Coursera, Udacity, Edx...) for learning Python; an updated selection is published annually on the course homepage.
  • Lecture notes, exercises and old exams published on the course home page.

4. Intended learning outcomes

Knowledge and understanding:

  • Understanding of basic structures (variables, sentences, loops, functions) and their efficient use for solving smaller problems. Analysis of a problem and construction of algorithmic solution; use of appropriate coding approaches; distinguishing between better and worse solutions.

Application:

  • The course teaches the basic programming skills which represents the foundation for most other courses in the study programme.

Reflection:

  • Understanding of basics of algorithmic thinking and coding.

Transferable skills:

  • Understanding and use of programming.

5. Learning and teaching methods

  • Standard lectures using a number of examples live on computer; individual exercises with solving a large number of problems typical for a corresponding lecture. Exercises are done on computers with a help of teaching assistants, solutions are submitted using Moodle.

6. Assessment

Type (examination, oral, coursework, project):

  • Continuing work (homeworks, midterm exams, project work) (50%)
  • Final: written and oral exam (50%)