Skip to main content

Programming 1

2023/2024
Programme:
Interdisciplinary University Study Programme Computer Science and Mathematics
Year:
1 year
Semester:
first
Kind:
mandatory
ECTS:
6
Language:
slovenian
Course director:

Luka Fürst

Hours per week – 1. semester:
Lectures
3
Seminar
0
Tutorial
0
Lab
2
Content (Syllabus outline)

lectures:
Overview of programming languages with emphasis on 3rd generation
Writing, compiling and executing a simple computer program
Basic data types
Integer and real numbers, characters and logical values
Constants and variables declaration
Programming statements
The assignment statement, expressions, operators, operator precedence
Conditional statements
Loops
Methods
The role and classification of methods
Formal and actual parameters
Recursion
Classes and objects
Instance variables and methods
Constructors, overloading constructors
Access modifiers
Using predefined classes
Arrays
One-dimensional and multidimensional arrays
Arrays of objects
Strings
Inheritance
Overriding superclass methods
Using superclass constructors in subclasses
Dynamic method binding
Abstract classes and abstract methods
The Object class
Creating and using interfaces
Graphics and GUI widget toolkits, components of GUI
Event driven programming
lab practice:
Students solve practical problems to reinforce the understanding of topics covered during lectures. Individual work under the guidance of teaching assistants is emphasized.
homework:
Students are given a list of programs that must be developed outside contact hours and submitted for evaluation within prescribed deadlines, thus preventing them from procrastinating and encouraging self-reliance. Completion of these assignments is a prerequisite for entering the exam.

Readings

V. Mahnič, L. Fürst, I. Rožanc: Java skozi primere, Bi-TIM, 2008.
J. Farrell: Java Programming, Seventh Edition, Course Technology, Cengage Learning, 2014.
Dodatna literatura:
I. Horton: Beginning Java, Java 7 Edition, John Wiley &, Sons, Inc., 2011
Uroš Mesojedec, Borut Fabjan: Java 2: Temelji programiranja, Pasadena, 2004.

Objectives and competences

The main objective is to teach students basic concepts of object-oriented programming in a general-purpose 3rd generation programming language, thus making them able to develop computer programs of low complexity.
The competences students gain are:
developing skills in critical, analytical and synthetic thinking,
the ability to understand and solve professional challenges in computer and information science.
the ability to apply acquired knowledge in independent work for solving technical and scientific problems in computer and information science, the ability to upgrade acquired knowledge.
basic skills in computer and information science, which includes basic theoretical skills, practical knowledge and skills essential for the field of computer and information science.
basic skills in computer and information science, allowing the continuation of studies in the second study cycle.

Intended learning outcomes

Knowledge and understanding of:
the process of writing, compiling, and running a computer program
basic programming constructs and data structures
object-oriented programming concepts
basic algorithms for typical program problems solving
event-driven programming and basic components of GUI
Application:
Application of concepts learned in development of simple computer programs.
Reflection:
Understanding of the role of a programmer in solving problems of different end-users.
Transferable skills:
The ability of using Slovenian and foreign literature and user manuals. Capability for self-reliant problem solving.

Learning and teaching methods

Lectures with active participation of students (explanation, discussion, questions, examples, problem solving),
Lab practice (reflection of experience, practical problem solving, presentation of solutions, discussion, communication of feedback information)
Homework (individual development of simple computer programs)
Individual consultation hours (discussion, additional explanation, specific problems solving)

Assessment

Type (examination, oral, coursework, project):
Continuing (homework, midterm exams, project work)
Final (written and oral exam)
Grading: 6-10 pass, 5 fail.

Lecturer's references

FÜRST, Luka, MERNIK, Marjan, MAHNIČ, Viljan. Improving the graph grammar parser of Rekers and Schürr. IET Software, 2011, vol. 5, no. 2, str.246-261.

FÜRST, Luka, MERNIK, Marjan, MAHNIČ, Viljan. Converting metamodels to graph grammars: doing without advanced graph grammar features. Software and systems modeling, 2015, vol. 14, no. 3, str. 1297-1317.

FÜRST, Luka, ČIBEJ, Uroš, MIHELIČ, Jurij. Maximum exploratory equivalence in trees. FedCSIS 2015, Łódź, Poljska, september 2015, str. 507-518.

FÜRST, Luka, MAHNIČ, Viljan. Introductory programming course: motivating students with prior knowledge. World transactions on engineering and technology education, ISSN 1446-2257, 2013, vol. 11, no. 4, str. 400-405. http://wiete.com.au/journals/WTE&TE/Pages/Vol.11, %20No.4%20(2013)/08-Fuerst-L.pdf.

MAHNIČ, Viljan, FÜRST, Luka, ROŽANC, Igor. Java skozi primere. Šenčur: Bi-tim, 2008. XIV, 478 str., ponovni ponatis 2012.