School of Engineering and Management

Computer programming

This course is part of the programme:
Bachelor's programme in Engineering and Management (First Level)

Objectives and competences

With the help of computers we can efficiently solve a variety of problems. Though in many cases we can use existing computer software for this purpose, there are also tasks for which a tailor made computer program is needed. The main objective of the course Computer programming is to present students with the basic programming concepts. The syllabus is designed in a way to guide the students through all basic programming concepts and teaches them how to write computer programs in Java by them selves. They will be able to use the acquired skills for solving problems that require tailor made computer software.

Prerequisites

Basic knowledge of mathematics and skills in using computers with one of the modern operating systems (Windows, Linux or OS X) are required.

Content (Syllabus outline)

1. Introduction

  • Aims and purpose of the course
  • Syllabus presentation
  • Presentation of teaching tools, resources and course execution
  • Students’ obligations
  • Study instructions and suggestions

2. Basic concepts

  • Brief history of programming and programming languages
  • How does the computer work?
  • Algorithm, computer program and flow chart

3. First steps in Java

  • Basic tools for running and writing programs (JRE and JDK)
  • First example of a program
  • Variables
  • Basic data types
  • Arrays and strings
  • Command line arguments
  • Operators

4. Programing statements and methods

  • Expressions and statements
  • Assignment statement
  • Control flow statements:

o conditional statements (if-then-else, switch)

o loops (while, do-while, for)

o branching statements (break, continue, return)

  • Methods

5. Working with input-output devices

  • Reading from keyboard
  • Reading from and writing to files
  • Exceptions

6. Object oriented programming

  • Basic OOP concepts (object, class, method, interface, inheritance, package)
  • Class declaration:

o fields

o constructors

o methods

  • Reserved words this and super
  • Variable types and their visibility
  • Object printout, copying and equality testing

7. Advanced programming

  • Eclipse development environment
  • jar files
  • Mathematical functions and class Number
  • Computing with floating point numbers, rounding and convergence
  • Recursion
  • Working with strings
  • Working with matrices
  • Simple user interface
  • Data type conversion
  • Dynamic tables
  • Sorting
  • Computational complexity of algorithms

8. Graphical user interface

  • Applets
  • Basic principles
  • Graphical libraries
  • Basic graphical elements
  • Events

Intended learning outcomes

Students will learn the basic concepts of (object-oriented) computer programming and Java programming language. They will be able to autonomously write the problem in the form of an algorithm and convert the algorithm into a computer program using modern software development tools. They will acquire a basic understanding of computer systems and architectures, and will be able to autonomously solve problems using computer programming.

Readings

Peter Krebelj, Python 3 za začetnike: vse kar potrebujete, da boste postali Python programerji. 1. izd. – Ljubljana: Atelje Doria, 2013

Peter Krebelj, Python za inženirje. e-gradivo

Mrhar, P. (2002). Java 2 – prvi korak. Šempeter pri Gorici: Flamingo.

Mesojedec, U., Fabjan B. (2004). Java2: temelji programiranja. Ljubljana: Pasadena.

Eck, D. J. (2011). Introduction to Programming Using Java. 6th Edition, http://math.hws.edu/javanotes/

Eckel, B. (2002). Thinking in Java, 3rd Edition, http://www.mindview.net/Books/TIJ/

Barnes, D.J., Kolling, M. (2004). Objects First with Java – A Practical Introduction using BlueJ, 2nd Edition, Prentice Hall/Pearson Education.

Sierra, K., Bates, B. (2005). Head First Java, 2nd Edition, O’Reilly, Sebastopol.

Wirth, N. (1985). Računalniško programiranje I. Ljubljana: DMFA.

Wirth, N. (1985). Računalniško programiranje II. Ljubljana: DMFA.

Učno razvojno okolje za Javo – BlueJ (URL: http://www.bluej.org/index.html)

Assessment

Seminar work with discussion in order to evaluate the ability of writing a computer program for a selected practical problem. Written exam, which assesses knowledge of the fundamental concepts of object-oriented computer programming in Java and the ability of solving short programming problems. 25/75

Lecturer's references

Prof. dr. Barbara Koroušić Seljak is a senior researcher at the Computer Systems Department, Jožef Stefan Institute, Ljubljana, Slovenia. She earned her Ph.D. at the University of Ljubljana in Computer Science and Informatics. She is further an Assist. Prof. in Computer Science at the Jožef Stefan International Postgraduate School. She is a member of the Executive Boards of the association EuroFIR AISBL and the Slovenian Society for Clinical Nutrition and Metabolism. Her research work, publications and projects focus on software design of real-time and embedded systems. However, she is also very interested in meta-heuristic methods, which may be applied to practical optimization problems, such as computer-supported diet planning. BKS is an author of the Open Platform for Clinical Nutrition, i.e. a complex system of web and applications and devices aimed to support both dieticians and patients in dietary assessment and treatment.

Selected bibliography

EFTIMOV, Tome, POPOVSKI, Gorjan, PETKOVIĆ, Matej, KOROUŠIĆ-SELJAK, Barbara, KOCEV, Dragi. COVID-19 pandemic changes the foodconsumption patterns. Trends in food science & technology. [Print ed.]. 2020, vol. 104, str. 268-272. ISSN 0924-2244. DOI: 10.1016/j.tifs.2020.08.017.

KOROUŠIĆ-SELJAK, Barbara, MLAKAR-MASTNAK, Denis, MREVLJE, Živa, VENINŠEK, Gregor, ROTOVNIK-KOZJEK, Nada. A multi-center surveyon hospital malnutrition and cachexia in Slovenia. European journal of clinical nutrition. 2020, vol. 74, no. 3, str. 419-426. ISSN 0954-3007. DOI: 10.1038/s41430-019-0485-y.

MEZGEC, Simon, KOROUŠIĆ-SELJAK, Barbara. Deep neural networks for image-based dietary assessment. Journal of visualized experiments. 2021, vol. 169, [1.17] str. ISSN 1940-087X. DOI: 10.3791/61906.

PAPA, Gregor, KOROUŠIĆ-SELJAK, Barbara, PAVLIN, Marko. Device and method for acquisition and transfer of signals : patentna prijava GB1407135. London: Intellecual Property Office, 23. apr. 2014.

BIZJAK, Mojca, JENKO PRAŽNIKAR, Zala, KOROUŠIĆ-SELJAK, Barbara. Development and validation of an electronic FFQ to assess food intake in the Slovene population. Public health nutrition, ISSN 1368-9800, 2014, vol. 17, iss. 8, str. 1729-1737.

BENEDIK, Evgen, KOROUŠIĆ-SELJAK, Barbara, SIMČIČ, Marjan, ROGELJ, Irena, BRATANIČ, Borut, DING, Eric L., OREL, Rok, FIDLER MIS, Nataša. Comparison of paper- and web-based dietary records : a pilot study. Annals of nutrition and metabolism, ISSN 0250-6807, 2014, vol. 64, no. 2, str. 156-166.

KOROUŠIĆ-SELJAK, Barbara, STIBILJ, Vekoslava, POGRAJC, Larisa, FIDLER MIS, Nataša, BENEDIK, Evgen. Food composition databases for effective quality nutritional care. Food chem.. [Print ed.], [in press] 2013, 38 str., doi: 10.1016/j.foodchem. 2013.02.061.

KOROUŠIĆ-SELJAK, Barbara, PAPA, Gregor. MatPort – online mathematics learning with a bioinspired decision-making system. International journal of innovative computing and applications. [Print ed.], 2011, vol. 3, no. 1, str. 50-57.

KOROUŠIĆ-SELJAK, Barbara. Web-based eHealth applications with reference to food composition data. V: European food composition data for better diet, nutrition and food quality. European journal of clinical nutrition, vol. 64, suppl., 2010, London; Paris: John Libbey, str. S121-S127.

KOROUŠIĆ-SELJAK, Barbara. Computer-based dietary menu planning : how to support it by complex knowledge?. Lect. notes comput. sci., 2010, vol. 6276, str. 587-596.

KOROUŠIĆ-SELJAK, Barbara. Computer-based dietary menu planning. J. food compos. anal., 2009, vol. 22, no. 5, str. 414-420, doi: 10.1016/j.jfca.2009.02.006.

University course code: 1GI037

Year of study: 2

Semester: 1

Course principal:

Lecturer:

ECTS: 6

Workload:

  • Lectures: 30 hours
  • Exercises: 30 hours
  • Individual work: 90 hours

Course type: elective

Languages: slovene, english

Learning and teaching methods:
teaching will consist of three parts. the first part will be the lectures, where the contents of the syllabus will be presented and explained. the second part will include hands-on exercises, where the students will use the concepts from the lectures in practical problems and programs. the third part will consist of individual work where the students will be solving homeworks throughout the course and at the end write a seminar work in the form of a longer program.