Computer programming

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:
    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-version
• 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. E-version
• Eckel, B. (2002). Thinking in Java, 3rd Edition. E-version
• Barnes, D.J., Kolling, M. (2004). Objects First with Java - A Practical Introduction using BlueJ, 2nd Edition, Prentice Hall/Pearson Education. E-version
• Sierra, K., Bates, B. (2005). Head First Java, 2nd Edition, O'Reilly, Sebastopol. E-version
• 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. E-version

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

Dr. Soumen Atta is currently working as an Assistant Professor at the School of Engineering and Management, University of Nova Gorica, Slovenia. He is also affiliated with the Centre for Information Technologies and Applied Mathematics at the University of Nova Gorica for research. Dr. Atta received his Ph.D. in Computer Science and Engineering from the University of Kalyani, India. Part of his Ph.D. research was conducted at the Faculty of Mathematics and Computer Science, University of LODZ, Poland. He gained postdoctoral research experience at Masaryk University, Czech Republic, and the University of Nantes, IMT Atlantique, France. With over a decade of research and teaching experience, his interests include facility location problems, combinatorial optimization, heuristic and metaheuristic algorithm design, evolutionary computation, graph labeling, and transportation problems. For more information about Dr. Atta, please visit his homepage at https://www.soumenatta.com/.

Selected bibliography

Soumen Atta (2023). An improved harmony search algorithm using opposition-based learning and local search for solving the maximal covering location problem. Engineering Optimization, Taylor & Francis. (Published online: 05 Sep 2023)

Soumen Atta, Priya Ranjan Sinha Mahapatra and Anirban Mukhopadhyay (2022). Solving a new variant of capacitated maximal covering location problem with fuzzy coverage area using metaheuristic approaches. Computers & Industrial Engineering, Elsevier, Vol. 170, Article 108315.

Soumen Atta, Priya Ranjan Sinha Mahapatra and Anirban Mukhopadhyay (2021). A multi-objective formulation of maximal covering location problem with customers’ preferences: Exploring Pareto optimality-based solutions. Expert Systems With Applications, Elsevier, Vol. 186, Article 115830.

Soumen Atta, Goutam Sen (2021). A new variant of the p-hub location problem with a ring backbone network for content placement in VoD services. Computers & Industrial Engineering, Elsevier, Vol. 159, Article 107432.

Soumen Atta, Goutam Sen (2020). Multiple allocation p-hub location problem for content placement in VoD services: a differential evolution based approach. Applied Intelligence, Springer, Vol. 50, No. 5, pp. 1573-1589