Programming Languages

Object Meets Function

The Prak­tikum demon­strates how to merge im­per­a­tive, func­tional, and ob­ject-ori­ented pro­gram­ming par­a­digms using Scala as a pro­gram­ming lan­guage. It starts with im­per­a­tive par­a­digms like mu­ta­tion and con­trol struc­tures. The next step is learn­ing about func­tional par­a­digms, in­clud­ing first-class func­tion, higher-or­der func­tion, call by value, and call by name. As a last par­a­digm, there is ob­ject-ori­ented pro­gram­ming, which cov­ers en­cap­su­la­tion, in­her­i­tance, and poly­mor­phism. We will dis­cuss op­tions, col­lec­tions, pat­tern match­ing, reg­u­lar ex­pres­sions, and func­tion com­po­si­tion in the next topic. Pro­gram­ming can be im­proved by learn­ing the ideas be­hind it.

Lec­tur­ers

Struc­ture

  • The Prak­tikum is in Eng­lish
  • The max­i­mum num­ber of ab­sents is three.
  • The par­tic­i­pant must com­plete 75% of as­sign­ments (ex. six from eight).
  • All as­sign­ments must sub­mit be­fore the dead­line. Late sub­mis­sion will deduct 20% from the max­i­mum point per day.
  • The par­tic­i­pant must com­plete one pro­ject.
  • Par­tic­i­pants can make a group (max 2 par­tic­i­pants per group) for one pro­ject.

Topic

  • Pro­gram­ming par­a­digm
  • Let’s mu­tate the state! (Im­per­a­tive)
  • Do it with func­tions
  • Every­thing is the ob­ject
  • Op­tion, im­plicit, and col­lec­tion
  • Match­ing with pat­tern
  • Func­tion com­po­si­tion (Monad)
  • More about func­tion com­po­si­tion

Ref­er­ence

  • Pro­gram­ming in Scala. Mar­tin Oder­sky, Lex Spoon, and Bill Ven­ners.
  • Func­tional Pro­gram­ming in Scala. Paul Chiu­sano and Rúnar Bjar­na­son.
  • Scala for the Im­pa­tient. Cay Horstmann.

The par­tic­i­pant

  • Those who want to learn to pro­gram in Scala.
  • Pro­gram­mers who wish to ex­pand their hori­zons by learn­ing new con­cepts.
  • OO pro­gram­mer, this Prak­tikum will ex­pose you to many con­cepts from func­tional pro­gram­ming and ad­vanced ob­ject-ori­ented class.

Pre­req­ui­sites

Gen­eral pro­gram­ming knowl­edge is as­sumed. How­ever, we ex­pect par­tic­i­pants to be fa­mil­iar with Func­tional Pro­gram­ming and Ob­ject-Ori­ented.

En­rolling

The Prak­tikum is in high de­mand. There­fore, to par­tic­i­pate, please send an email con­tain­ing your name, Ma­trikel­num­mer, and Stu­di­en­gang to Steven Lo­long
Re­searcher
Steven Lo­long
.

First Meet­ing

The first meet­ing is on Wednes­day, 19th Oct. 2022.

Re­cur­ring Meet­ings

  • We meet every Wednes­day from 18:00 - 20:00 in Room A301 (In­for­matik/As­tronomie)