Computer programming

This course is part of the programme
Digital Humanities, interdisciplinary programme

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

  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:
    conditional statements (if-then-else, switch)
    loops (while, do-while, for)
    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:
    fields
    constructors
    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

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.

Lecturer's references

Doc. dr. Bernard Ženko is a researcher at the Department of Knowledge Technologies, Jožef Stefan Institute, Ljubljana, Slovenia, and at the Centre of Excellence for Integrated Approaches in Chemistry and Biology of Proteins. He also lectures at the Faculty of Information Studies in Novo mesto. His research interests are related to machine learning and its application to practical problems from environmental and life sciences. His contributions include methods for combining multiple classifiers and learning rule-based models for predicting multi-target variables, as well as applications of machine learning methods in environmental epidemiology, ecology and medicine. He has experience with several EU-funded projects.

NOVAK, Monika, ZALAR, Polona, ŽENKO, Bernard, SCHROERS, Hans-Josef, DŽEROSKI, Sašo, GUNDE-CIMERMAN, Nina. Candida and Fusarium species known as opportunistic human pathogens from customer-accessible parts of residential washing machines. Fungal biology, ISSN 1878-6146, 2015, vol. 119, iss. 2/3, str. 95-113, doi: 10.1016/j.funbio.2014.10.007.

ŠKRABAN, Jure, DŽEROSKI, Sašo, ŽENKO, Bernard, MONGUS, Domen, GANGL, Simon, RUPNIK, Maja. Gut microbiota patterns associated with colonization of different clostridium difficile ribotypes. PloS one, ISSN 1932-6203, 2013, vol. 8, iss. 2, str. e58005-1-e58005-13, doi: 10.1371/journal.pone.0058005.

CAROTENUTO, Marianeve, DŽEROSKI, Sašo, ŽENKO, Bernard, SLAVKOV, Ivica, et al. Neuroblastoma tumorigenesis is regulated through the Nm23-H1/h-Prune C-terminal interaction. Scientific reports, ISSN 2045-2322, 2013, vol. 3, str. 1351-1-1351-11. http://www.nature.com/srep/2013/130301/srep01351/pdf/srep01351.pdf, doi: 10.1038/srep01351.

AHO, Timo, ŽENKO, Bernard, DŽEROSKI, Sašo, ELOMAA, Tapio. Multi-target regression with rule ensembles. J. mach. learn. res.. [Print ed.], 2012, vol. 13, str. 2367-2407.

DŽEROSKI, Sašo, ŽENKO, Bernard. Is combining classifiers with stacking better than selecting the best one?. Mach. learn.. [Print ed.], 2004, vol. 54, str. 255-273.

KOBAL GRUM, Darja, KOBAL, Alfred Bogomir, ARNERIĆ, Niko, HORVAT, Milena, ŽENKO, Bernard, DŽEROSKI, Sašo, OSREDKAR, Joško. Personality Traits in Miners with Past Occupational Elemental Mercury Exposure. Environ. health perspect., 2006, no. 1.