Skip to content

Free University of Bozen-Bolzano

Introduction to Programming

Semester 1 · 76271 · Bachelor in Computer Science · 9CP · EN


• Data types and expressions
• Basic data structures and generic
• Functions and parameter passing
• Conditionals and loops
• Arrays and collections
• Classes and objects
• Basic Input/Output
• Exception handling
• Recursion

Lecturers: Tiziano Dalmonte, Chiara Ghidini

Teaching Hours: 60
Lab Hours: 30
Mandatory Attendance: Not mandatory, but highly recommended

Course Topics
The objective of the course is to teach the fundamental principles of programming. We will focus especially on imperative programing as the basic way to learn: (1) the basics of programming and programming elements; (2) the basics of algorithmic thinking; and (3) The basics of writing code. As programming language, we will use a subset of the Java language, mainly restricted to its imperative part. The student will learn how programs can be constructed, and also structured in more files/objects in order to solve a problem. Students will learn how to solve computational problems with well-designed programs that implement effective solutions. The learning will be based on examples, from very simple ones to more complex. We will use the Java programming language and the integrated development environment (IDE), so the goal is to train the student capability to develop java applications in this environment. The final objective for the student is to acquire the ability to solve basic algorithmic problems in a Java-based application.

Teaching format
The course includes frontal lectures with exercises, lab sessions, and individual programming projects.

Educational objectives
Knowledge and Understanding - D1.2: Know in details the fundamental principles of programming - D1.3: Have a solid knowledge of the most important data structures and programming techniques Applying knowledge and understanding - D2.2: Be able to develop small and medium size programs using different programming languages and paradigms. - D2.3: Be able to solve problems using programming methodologies. Ability to make judgments - D3.1: Be able to collect and interpret useful data and to judge information systems and their applicability. Communication skills - D4.1: Be able to use one of the three languages English, Italian and German, and be able to use technical terms and communication appropriately. Learning skills - D5.1: Have developed learning capabilities to pursue further studies with a high degree of autonomy.

Assessment
The assessment consists of a a final written exam, performed using laptops provided by the Faculty of Engineering, consisting both of practical components (coding questions) and theoretical components (questions about the basic notions of computer science and programming languages). The practical questions are designed to evaluate learning outcomes related to the application of acquired knowledge, critical thinking, communication, and learning skills. Specifically, students are expected to write code capable of effectively solving a basic computing problem. The theoretical questions assesse knowledge and understanding, the ability to apply that knowledge, and the student’s learning skills. It includes verification questions and transfer-of-knowledge questions.

Evaluation criteria
The practical questions will be assessed based on the correctness and quality of the solution, including the relevance and effectiveness of the implemented functions. Written exam answers will be evaluated based on their correctness and clarity.

Required readings
  • John Lewis and William Loftus. Java Software Solutions. PEARSON INDIA, 2018. ISBN 978-93-5306-361-0. 
  • Kathy Sierra, Bert Bates, and Trisha Gee. Head First Java: A Brain-Friendly Guide. O'Reilly Media, Sebastopol, CA, 3rd edition, June 2022. ISBN 978-1-4919-1077-1. 
  • Cay S. Horstmann. Brief Java: Early Objects. John Wiley & Sons Inc, 9th edition, 2020. ISBN 978-1-119-74019-3. 


Supplementary readings

The Java Tutorials at https://docs.oracle.com/javase/tutorial/ 



Further information
IntelliJ IDEA (https://www.jetbrains.com/idea/)


Download as pdf

Sustainable Development Goals
This teaching activity contributes to the achievement of the following Sustainable Development Goals.

4

Request info