<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>This course on OOFP 2025-26</title>
    <link>https://unibz-oofp-25-26.github.io/docs/intro/</link>
    <description>Recent content in This course on OOFP 2025-26</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <atom:link href="https://unibz-oofp-25-26.github.io/docs/intro/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Organization</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/organization/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/organization/</guid>
      <description>&lt;h1 id=&#34;organization&#34;&gt;&#xA;  Organization&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#organization&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;The course consists of:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;20 lectures (40 hours), and&lt;/li&gt;&#xA;&lt;li&gt;10 labs (20 hours).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.unibz.it/it/faculties/engineering/academic-staff/person/37010-julien-corman&#34;&gt;Julien Corman&lt;/a&gt; will teach the lectures and labs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;schedule&#34;&gt;&#xA;  Schedule&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#schedule&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;lectures&#34;&gt;&#xA;  Lectures&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#lectures&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;By default, lectures are scheduled on:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Tuesday 15:30 - 17:30&lt;/li&gt;&#xA;&lt;li&gt;Thursday 10:30 - 12:30&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Hint.&lt;/em&gt;&lt;/strong&gt;&#xA;Lectures can be followed via Teams (e.g. for students sitting at the back of the class),&#xA;by joining the corresponding meeting (in the &amp;ldquo;Lectures&amp;rdquo; channel of this course&amp;rsquo;s &lt;a href=&#34;https://teams.cloud.microsoft/l/team/19%3AuDGTNjgOwXDg-Cnzs-jT4SAVlQhalezzcrxXDFkC9-01%40thread.tacv2/conversations?groupId=b969dd60-9264-4e25-bd40-90fb8ea0c292&amp;amp;tenantId=92513267-03e3-401a-80d4-c58ed6674e3b&#34;&gt;Team&lt;/a&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Material</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/material/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/material/</guid>
      <description>&lt;h1 id=&#34;course-material&#34;&gt;&#xA;  Course material&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#course-material&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;lectures&#34;&gt;&#xA;  Lectures&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#lectures&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;This website contains the lecture material.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;Additional readings are listed in the &lt;a href=&#34;https://unibz-oofp-25-26.github.io/docs/intro/sections/resources/&#34;&gt;dedicated section&lt;/a&gt;.&#xA;We emphasize that these are &lt;em&gt;optional&lt;/em&gt; (the course is self-contained).&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;assignments&#34;&gt;&#xA;  Assignments&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#assignments&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Assignments will be released via &lt;a href=&#34;https://codeboard.io/&#34;&gt;Codeboard&lt;/a&gt;.&lt;br&gt;&#xA;Details are provided in the &lt;a href=&#34;https://unibz-oofp-25-26.github.io/docs/intro/sections/evaluation/#assignments&#34;&gt;dedicated section&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reading path</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/reading_path/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/reading_path/</guid>
      <description>&lt;h1 id=&#34;reading-path&#34;&gt;&#xA;  Reading path&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#reading-path&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;This page lists the topics covered during each lecture.&#xA;It will be updated after a lecture.&lt;/p&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Advice.&lt;/em&gt;&lt;/strong&gt;&#xA;If you miss a lecture, make sure to read the sections that we covered (and do the related exercises) &lt;em&gt;before&lt;/em&gt; the next lecture.&#xA;Otherwise you may fall behind.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote class=&#34;book-hint danger&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Warning.&lt;/em&gt;&lt;/strong&gt;&#xA;On this website, the material is grouped in thematic chapters, to ease your revisions for the exam.&#xA;These chapters do &lt;em&gt;not&lt;/em&gt; always reflect the order of the lectures.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Evaluation</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/evaluation/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/evaluation/</guid>
      <description>&lt;h1 id=&#34;evaluation&#34;&gt;&#xA;  Evaluation&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#evaluation&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Evaluation for this course is based on:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a &lt;a href=&#34;#exam&#34;&gt;written exam&lt;/a&gt;, and&lt;/li&gt;&#xA;&lt;li&gt;5 to 6 &lt;a href=&#34;#assignments&#34;&gt;assignments&lt;/a&gt; with oral presentations.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The assignments are &lt;em&gt;optional&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;scheme&#34;&gt;&#xA;  Marking scheme&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#scheme&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;An assignment counts &lt;em&gt;only if&lt;/em&gt; your mark for this assignment is superior to your mark at the written exam.&lt;br&gt;&#xA;If this is the case, then the assignment counts for 5% of your final mark.&lt;/p&gt;&#xA;&lt;div class=&#34;book-columns flex flex-wrap&#34;&gt;&#xA;&lt;div class=&#34;flex-even markdown-inner&#34; style=&#34;flex-grow: 3;&#34;&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;Example.&lt;/em&gt;&lt;/strong&gt;&#xA;For the marks reported on the right:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Prerequisites</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/prerequisites/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/prerequisites/</guid>
      <description>&lt;h1 id=&#34;prerequisites&#34;&gt;&#xA;  Prerequisites&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#prerequisites&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;Students are expected to have completed the &lt;em&gt;Computer Programming&lt;/em&gt; course (INF/01 76203).&lt;/p&gt;&#xA;&lt;blockquote class=&#34;book-hint warning&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Consequence.&lt;/em&gt;&lt;/strong&gt;&#xA;The following topics are &lt;em&gt;not&lt;/em&gt; covered in this course:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;variables, assignments, variable scope,&lt;/li&gt;&#xA;&lt;li&gt;basic data types (&lt;code&gt;int&lt;/code&gt;, &lt;code&gt;char&lt;/code&gt;, &lt;code&gt;boolean&lt;/code&gt;, etc.).&lt;/li&gt;&#xA;&lt;li&gt;expression evaluation,&lt;/li&gt;&#xA;&lt;li&gt;conditional statements (&amp;ldquo;if/then/else&amp;rdquo;) and loops,&lt;/li&gt;&#xA;&lt;li&gt;methods/functions,&lt;/li&gt;&#xA;&lt;li&gt;arrays,&lt;/li&gt;&#xA;&lt;li&gt;basic syntax of Java,&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Hint.&lt;/em&gt;&lt;/strong&gt;&#xA;If you have not completed this course, you can ask for &lt;a href=&#34;https://unibz-oofp-25-26.github.io/docs/intro/sections/office_hours/&#34;&gt;office hours&lt;/a&gt; to get help on these topics.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Office hours</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/office_hours/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/office_hours/</guid>
      <description>&lt;h1 id=&#34;office-hours&#34;&gt;&#xA;  Office hours&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#office-hours&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;p&gt;You can ask for office hours to get help with:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://unibz-oofp-25-26.github.io/docs/intro/sections/prerequisites/&#34;&gt;prerequisites&lt;/a&gt; for this course,&lt;/li&gt;&#xA;&lt;li&gt;an &lt;a href=&#34;https://unibz-oofp-25-26.github.io/docs/intro/sections/evaluation/#assignments&#34;&gt;assignment&lt;/a&gt;,&lt;/li&gt;&#xA;&lt;li&gt;a notion seen during a lecture,&lt;/li&gt;&#xA;&lt;li&gt;etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;These appointments must be scheduled via email or Teams.&lt;/p&gt;&#xA;&lt;h2 id=&#34;additional-content&#34;&gt;&#xA;  Additional content&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#additional-content&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Office hours can also be organized on demand for a group of students, on any of the following topics:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;hierarchical file system,&lt;/li&gt;&#xA;&lt;li&gt;git,&lt;/li&gt;&#xA;&lt;li&gt;using a terminal,&lt;/li&gt;&#xA;&lt;li&gt;text editors and IDEs (landscape and usage).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote class=&#34;book-hint warning&#34;&gt;&#xA;&lt;p&gt;This content is &lt;em&gt;optional&lt;/em&gt;.&#xA;It is meant to help you interact with a computer,&#xA;so that your learning experience does not get impaired by technological obstacles.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Content</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/content/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/content/</guid>
      <description>&lt;h1 id=&#34;content-of-the-course&#34;&gt;&#xA;  Content of the course&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#content-of-the-course&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;blockquote class=&#34;book-hint warning&#34;&gt;&#xA;&lt;p&gt;This is a programming course for &lt;em&gt;beginners&lt;/em&gt;, with an emphasis on:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;(class-based) &lt;strong&gt;object-oriented&lt;/strong&gt; programming and&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;functional&lt;/strong&gt; programming.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;programming-languages&#34;&gt;&#xA;  Programming languages&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#programming-languages&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;We will use:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Haskell at the beginning of this course, for a &lt;em&gt;short introduction&lt;/em&gt; to functional programming, and&lt;/li&gt;&#xA;&lt;li&gt;Java during the rest of the course, for object-oriented and more general techniques.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote class=&#34;book-hint info&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;em&gt;Note.&lt;/em&gt;&lt;/strong&gt; Many notions seen in this course are &lt;em&gt;not&lt;/em&gt; specific to Haskell or Java.&#xA;Accordingly, some sections may use &lt;a href=&#34;https://en.wikipedia.org/wiki/Pseudocode&#34;&gt;pseudocode&lt;/a&gt; for conciseness.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Additional resources</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/resources/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/resources/</guid>
      <description>&lt;h1 id=&#34;additional-resources&#34;&gt;&#xA;  Additional resources&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#additional-resources&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;blockquote class=&#34;book-hint warning&#34;&gt;&#xA;&lt;p&gt;This course is self-contained, meaning that &lt;em&gt;no&lt;/em&gt; extra reading is required.&lt;br&gt;&#xA;We list here &lt;em&gt;optional&lt;/em&gt; resources that may help you complement it, or provide a different perspective.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;A &lt;a href=&#34;https://eu.alma.exlibrisgroup.com/leganto/public/39UBZ_INST/lists/37611243460001241?auth=SAML&#34;&gt;reading list&lt;/a&gt; for this course is available in the catalogue of the Unibz&amp;rsquo;s library.&#xA;All books can be accessed via the library (either physically or digitally).&lt;/p&gt;&#xA;&lt;p&gt;Among these books, we highlight the following five.&lt;/p&gt;&#xA;&lt;h2 id=&#34;introductory-textbooks&#34;&gt;&#xA;  Introductory textbooks&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#introductory-textbooks&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;java&#34;&gt;&#xA;  Java&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#java&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h3&gt;&#xA;&lt;div class=&#34;book-columns flex flex-wrap&#34;&gt;&#xA;&lt;div class=&#34;flex-even markdown-inner&#34; style=&#34;flex-grow: 1;&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;Java : the complete reference (11th edition)&lt;/strong&gt;&#xA;by Herbert Schildt&#xA;McGraw-Hill Education, 2019&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software</title>
      <link>https://unibz-oofp-25-26.github.io/docs/intro/sections/software/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://unibz-oofp-25-26.github.io/docs/intro/sections/software/</guid>
      <description>&lt;h1 id=&#34;recommended-software&#34;&gt;&#xA;  Recommended software&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#recommended-software&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;lectures&#34;&gt;&#xA;  Lectures&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#lectures&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;No particular software is required for the lectures.&lt;/p&gt;&#xA;&lt;p&gt;The exercises can be solved using web applications, for instance:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;the &lt;a href=&#34;https://play.haskell.org/&#34;&gt;Haskell playground&lt;/a&gt; and&lt;/li&gt;&#xA;&lt;li&gt;the &lt;a href=&#34;https://dev.java/playground/&#34;&gt;Java playground&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;However, a proper code editor may be more comfortable.&lt;/p&gt;&#xA;&lt;h2 id=&#34;assignments&#34;&gt;&#xA;  Assignments&#xA;  &lt;a class=&#34;anchor&#34; href=&#34;#assignments&#34;&gt;#&lt;/a&gt;&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;For the assignments, you will need an IDE for Haskell and Java (possibly the same one).&#xA;We provide detailed instructions &lt;a href=&#34;#install&#34;&gt;below&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Before these, we briefly explain what a package manager is, why it can be useful, and how to install and use one.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
