Objectives and competences
The objective of this course is for students to be able to demonstrate the basic knowledge of programming concepts in programming languages C++ and Java and to know how to use them in practice.
Content (Syllabus outline)
• Introduction: algorithm, structured and object-oriented programming.
• Lexical elements in C++ and Java, program structure in C++ and Java.
• Types and expressions: primitive data types, expressions and operators.
• Control structures: selection, iteration, case, composition.
• Subroutines: definition, call, declaration, parameter passing by value, parameter passing by reference, function overloading, functions in C++ and Java
• Array: onedimensional array, multidimensional array, dynamic array in C++ in Java, array and function, static arrays in C++.
• Pointers in C++: pointers, references, left value, parameter passing, structure and pointers, data representation in memory, memory management.
• Classes and objects, constructors and destructors, private and public members of classes, object-oriented programming in C++ and Java.
• Input and output data flows in C++ and Java.
• Exceptions.
• Recursion: recursive functions, recursive data types, recursion implementation in C++ and Java.
• Problem solving and development of programs: problem definition, program design, program implementation, program testing and debugging.
Learning and teaching methods
• Lectures: in lectures, students get to know the theoretical contents of the course. Lectures are conducted as classical lectures in frontal form, interleaved with discussions on practical examples.
• Tutorials: in tutorial exercises, students are informed about lab work.
• Lab work: in laboratory exercises, students work on individual programming tasks. They improve their transferable skills by using an integrated development tool.
• Homework: in homework assignments, students consolidate theoretical knowledge and test their understanding of programming concepts.
Intended learning outcomes - knowledge and understanding
On completion of this course the student will be able to
• describe and use the C++ and Java programming language syntaxes,
• apply the basic knowledge of object-oriented programming,
• analyse the problem, create algorithm, code and test the program.
Intended learning outcomes - transferable/key skills and other attributes
• Communication skills: oral defense of computer skills.
• Use of information technology: use of programming environments.
• Problem solving: problem analysing, designing algorithms, coding ant testing of programs
Readings
• F. Glassborow: C++ od začetka, Založba Pasadena, 2007.
• S. B. Lippman, J,Lajoie, B. E. Moo: C++ Primer, Addison-Wesley, Fifth Edition, 2013.
• David J. Eck: Introduction to Programming Using Java, Sixth Edition, Version 6.0, June 2011.
• M. Loy, P. Niemeyer, D. Leuck: Learning Java, An Introduction to Real-World Programming with Java, Fifth Edition, O'Reilly, 2020.
Prerequisits
Recommended knowledge for joining the course: basic computer skills.Conditions for course completion: to attend the written exam, the student must have at least 80% attendance on the laboratory work and a positive grade from the laboratory work.
Additional information on implementation and assessment The written exam may be substituted with continuous knowledge testing and assessment.