<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2-ppt DokuWiki" -->
<?xml-stylesheet href="https://ocw.cs.pub.ro/ppcarte/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://ocw.cs.pub.ro/ppcarte/feed.php">
        <title>books pp:2025:scala</title>
        <description></description>
        <link>https://ocw.cs.pub.ro/ppcarte/</link>
        <image rdf:resource="https://ocw.cs.pub.ro/ppcarte/lib/tpl/bootstrap3/images/favicon.ico" />
       <dc:date>2026-05-14T20:16:07+03:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l01&amp;rev=1740946896&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l02&amp;rev=1742081701&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l03&amp;rev=1743156289&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l04&amp;rev=1742410265&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l05&amp;rev=1743768564&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l06&amp;rev=1744226562&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l07&amp;rev=1744218979&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:secret_tema2&amp;rev=1744276164&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:t01&amp;rev=1755078689&amp;do=diff"/>
                <rdf:li rdf:resource="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:t02&amp;rev=1745822690&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://ocw.cs.pub.ro/ppcarte/lib/tpl/bootstrap3/images/favicon.ico">
        <title>books</title>
        <link>https://ocw.cs.pub.ro/ppcarte/</link>
        <url>https://ocw.cs.pub.ro/ppcarte/lib/tpl/bootstrap3/images/favicon.ico</url>
    </image>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l01&amp;rev=1740946896&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-02T22:21:36+03:00</dc:date>
        <title>pp:2025:scala:l01</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l01&amp;rev=1740946896&amp;do=diff</link>
        <description>Lab 1. Introduction to Scala

 Objectives: 

	*  get yourself familiar with Scala syntax basics
	*  practice writing tail-recursive functions as an alternative to imperative loops 
	*  keep your code clean and well-structured.

 Create a new Scala worksheet to write your solutions $ n$$ 1 + 2^2 + 3^2 + \ldots + (n-1)^2 + n^2$$ x$$ x_0, x_1, \ldots, x_n$$ (\ldots((x - x_0) - x_1) - \ldots x_n)$$ x$$ x_0, x_1, \ldots, x_n$$ x_0 - (x_1 - \ldots - (x_n - x)\ldots)$$ \sqrt{a}$$ x_0 = 1$$ x_{n+1} = \d…</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l02&amp;rev=1742081701&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-16T01:35:01+03:00</dc:date>
        <title>pp:2025:scala:l02</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l02&amp;rev=1742081701&amp;do=diff</link>
        <description>Lab 2. High order functions

Objectives:

	*  implement and use higher-order functions. A higher-order function takes other functions as parameter or returns them
	*  implement curry and uncurry functions, and how they should be properly used (review lecture).$ x_1, x_2, x_3$$ +$$ x_1 + (x_2 + (x_3 + acc))$$ a_1, a_2, \ldots, a_k$$ f(a_1)\;op\;f(a_2)\;op\;\ldots f(a_k)$$ f(x) = a*x + b$$ \Delta y$$ \Delta x$</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l03&amp;rev=1743156289&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-28T12:04:49+03:00</dc:date>
        <title>pp:2025:scala:l03</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l03&amp;rev=1743156289&amp;do=diff</link>
        <description>Lab 3. Algebraic Datatype Definition

3.1 Abstract Lists

Below, you will find the algebraic definition of the datatype IList:


Void : IList
Cons : Int x IList -&gt; IList


This definition has already been implemented in Scala, as shown below. Please copy-paste this definition in your worksheet.</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l04&amp;rev=1742410265&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-19T20:51:05+03:00</dc:date>
        <title>pp:2025:scala:l04</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l04&amp;rev=1742410265&amp;do=diff</link>
        <description>Lab 4. Lists in Scala

Objectives:

	*  get familiar with pattern matching lists, as well as common list operations from Scala and how they work
	*  get familiar with common higher-order functions over lists (partition, map, foldRight, foldLeft, filter)</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l05&amp;rev=1743768564&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-04T15:09:24+03:00</dc:date>
        <title>pp:2025:scala:l05</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l05&amp;rev=1743768564&amp;do=diff</link>
        <description>Lab 5. Data types in Scala

Objectives:

	*  get familiar with algebraic data types
	*  get familiar with pattern matching and recursion with them

5.1 Natural Numbers

Given the following implementation of the natural numbers, solve the next few exercises.$  \displaystyle \left(\begin{array}{ccc} 1 &amp; 2 &amp; 3 \\ 4 &amp; 5 &amp; 6 \\ 7 &amp; 8 &amp; 9 \\ \end{array}\right)$$  \displaystyle 2 * \left(\begin{array}{ccc} 1 &amp; 2 &amp; 3 \\ 4 &amp; 5 &amp; 6 \\ 7 &amp; 8 &amp; 9 \\ \end{array}\right) = \left(\begin{array}{ccc} 2 &amp; 4 &amp; 6 \\…</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l06&amp;rev=1744226562&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-09T22:22:42+03:00</dc:date>
        <title>pp:2025:scala:l06</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l06&amp;rev=1744226562&amp;do=diff</link>
        <description>Lab 6. For expressions

6.1 A small string DSL
“”
In this section we will extend the scala String class with several operators that implement useful string functions, effectively obtaining a small string-specialized DSL.

6.1.1 Implement the &lt;&lt; and</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l07&amp;rev=1744218979&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-09T20:16:19+03:00</dc:date>
        <title>pp:2025:scala:l07</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:l07&amp;rev=1744218979&amp;do=diff</link>
        <description>Lab 7. Lambda Calculus

7.0. What? Why?

Lambda Calculus is a universal model of computation (can be used to simulate any Turing Machine) based on function abstraction and application. It has a very simple semantic that can be used to study properties of comput$ \lambda f.\lambda x.(f \ x) $$ x $$ x \in VARS $$ \lambda x.e $$ x \in VARS $$ e $$ \lambda $$ (e_1 \ e_2) $$ e_1, e_2 $$ \lambda $$\lambda$$ \lambda x.e $$(\lambda x.body \ param)$$ body[x \ / \ param] $$ E_1 = (\lambda x.e_1 \ e_2) $$ …</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:secret_tema2&amp;rev=1744276164&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-10T12:09:24+03:00</dc:date>
        <title>pp:2025:scala:secret_tema2</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:secret_tema2&amp;rev=1744276164&amp;do=diff</link>
        <description>Tema 2 PP 2024
DEADLINE TBD

	*  Temele trebuie submise pe curs.upb.ro, in assignment-ul numit Tema 2 Scala.
	*  Temele ce nu sunt acceptate de validatorul de arhive NU vor fi puncate.
	*  Vom folosi vesiunea Scala TBD si TBD.
Folosiți un stil de programare funcțional. NU se vor accepta:</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:t01&amp;rev=1755078689&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-13T12:51:29+03:00</dc:date>
        <title>pp:2025:scala:t01</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:t01&amp;rev=1755078689&amp;do=diff</link>
        <description>Tema 1 PP – Barcode decoder

Publicare: 24 martie 2025

Deadline: 9 aprilie 2025

Schelet de cod: 

După ce ați descărcat scheletul, creați un proiect nou din IntelliJ în Scala, în care copiați folderele și fișierul din arhivă în root-ul proiectului (folderul $ C = \left(10 - \left( \sum_{i=1}^{12} w_i \cdot c_i \right) \mod 10 \right) \mod 10$$ w_i$$ i$$ c_i$$ i$$ \text{frecvență relativă}=\dfrac{\text{număr apariții}}{\text{număr total de elemente}}$</description>
    </item>
    <item rdf:about="https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:t02&amp;rev=1745822690&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-28T09:44:50+03:00</dc:date>
        <title>pp:2025:scala:t02</title>
        <link>https://ocw.cs.pub.ro/ppcarte/doku.php?id=pp:2025:scala:t02&amp;rev=1745822690&amp;do=diff</link>
        <description>Tema 2 PP 2025

DEADLINE 4 Mai 2025

	*  Temele trebuie submise pe curs.upb.ro, in assignment-ul numit Tema 2 Scala.
	*  Temele ce nu sunt acceptate de validatorul de arhive NU vor fi puncate.
Folosiți un stil de programare funcțional. NU se vor accepta:</description>
    </item>
</rdf:RDF>
