Programming Languages

Object Meets Function [INF3213]

This Prak­tikum is about how to mix three pro­gram­ming par­a­digms: Im­per­a­tive, Func­tional, and Ob­ject-Ori­ented using one pro­gram­ming lan­guage “Scala”. It starts from im­per­a­tive pro­gram­ming par­a­digms like mu­ta­tion and con­trol struc­ture. Con­tinue with func­tional par­a­digm like first class func­tion, higher order func­tion, call by value, call by name, and ter­mi­na­tion. Last par­a­digm is ob­ject ori­ented that cover en­cap­su­la­tion, in­her­i­tance, and poly­mor­phism. Next topic is about op­tion, col­lec­tion, pat­tern match­ing, reg­u­lar ex­pres­sion, and func­tion com­po­si­tion. By learn­ing the ideas be­hind it, can help par­tic­i­pant be­come a bet­ter pro­gram­mer in gen­eral.

Topic

  • Pro­gram­ming par­a­digm
  • Let mu­tate the state! (Im­per­a­tive)
  • Do it with func­tions
  • Every­thing is 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

Entry in the Cam­pus sys­tem (ALMA)

Entry in the Cam­pus sys­tem: Link

En­rolling

To par­tic­i­pate in this course, 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
.

Meet­ings

We meet every Mon­day at 14 c.t. - 16 via Zoom (click here) or copy and paste this ad­dress in your browser: https://​zoom.​us/​j/​97732316342?​pwd=aVV​Pbk9​Ccjg​xV2p​ESlR​hTjN​ieXR​zZz0​9

Dozen­ten

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­cept.
  • OO pro­gram­mer, this Prak­tikum will ex­pose you to many con­cepts from func­tional pro­gram­ming as well as 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­pant to be fa­mil­iar with Func­tional Pro­gram­ming (In­for­matik 1) and Ob­ject-Ori­ented (In­for­matik 2).

Learn­ing Goals

At the end of this Prak­tikum, par­tic­i­pant un­der­stand and should be able to:

  • Build an ap­pli­ca­tion using Scala.
  • Un­der­stand the par­a­digms of Im­per­a­tive, Func­tional, and Ob­ject-Ori­ented pro­gram­ming and able to use them to build an ap­pli­ca­tion.
  • Com­bine the three par­a­digms in build­ing ap­pli­ca­tion using Scala.

Prak­tikum’s rules

  • Prak­tikum is in Eng­lish
  • Max ab­sents of par­tic­i­pant are 3 (three) in­clud­ing pre­sen­ta­tion ses­sion by other par­tic­i­pant.
  • Must com­plete 6 from 8 as­sign­ments.
  • As­sign­ment must sub­mit base on date line. For late as­sign­ment will deduct 20% per day.
  • Must com­plete 1 pro­ject.
  • Par­tic­i­pant can make a group (max 2 par­tic­i­pant per group) for 1 pro­ject.

Grad­ing

  • As­sign­ment (pro­gram­ming task): 50%
  • Pro­ject: 50%

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.