lunduniversity / introprog

Teaching material for "Introduction to Programming using Scala" at Lund University, LTH. http://cs.lth.se/pgk/
142 stars 173 forks source link

Discussion on course dev for 2021 given Scala 3 #509

Closed bjornregnell closed 2 years ago

bjornregnell commented 3 years ago

I'd like in this issue thread discuss the general plans for adapting the progression to Scala 3. You can read more about Scala 3 here: http://dotty.epfl.ch/docs/index.html

Before: the (soon old) Scala 2 version of this course

As a reminder and baseline, here is the progression from 2020: W Datum Lp V Modul Förel Övn Lab
W01 31/8-4/9 Lp1V1 Introduktion F01 F02 expressions kojo
W02 7/9-11/9 Lp1V2 Program F03 F04 programs --
W03 14/9-18/9 Lp1V3 Funktioner F05 F06 functions irritext
W04 21/9-25/9 Lp1V4 Objekt F07 F08 objects blockmole
W05 28/9-2/10 Lp1V5 Klasser F09 F10 classes --
W06 5/10-9/10 Lp1V6 Mönster, undantag F11 F12 patterns blockbattle
W07 12/10-16/10 Lp1V7 Sekvenser F13 F14 sequences shuffle
KS 28/10 TP1 KONTROLLSKRIVN. -- -- --
W08 2/11-6/11 Lp2V1 Matriser, typparametrar F15 F16 matrices life
W09 9/11-13/11 Lp2V2 Mängder, tabeller F17 F18 lookup words
W10 16/11-20/11 Lp2V3 Arv F19 F20 inheritance snake
W11 23/11-27/11 Lp2V4 Språkskillnader F21 F22 scala-java javatext
W12 30/11-4/12 Lp2V5 Sortering F23 F24 sort --
W13 7/12-11/12 Lp2V6 Repetition, tentaträning, projekt F25 F26 examprep Projekt
W14 14/12-18/12 Lp2V7 Extra F27 F28 extra --
T 11/1 TP2 TENTAMEN -- -- --

After: the Scala 3 version of this course

Potential great benefits to beginners:

Some ideas to investigate:

A tenative new progression

A tentative Scala 3 progression is available here:

New stuff in Scala 3 that is probably not in scope, but some might perhaps be mentioned

Discussion below is welcome!

bengterik commented 3 years ago

I think the introduction of API's would be interesting. In EITF65 Digitalteknik we got to create our own processor which we then got to use ourself to build a program. That exact task is a bit outside of the scope of this course but I think that creating your own API and reusing it can be an illuminating task :)

One idea would be to let the students implement some of the functionality in introprog such as line(), fill() etc. which they can use later in their graphical components. Might be too early to do this in labs BM and BB but it could perhaps be done leading up to lab Snake. Another candidate for API's could perhaps be in the Bank project with some sort of database.

On the topic of testing I think that lab Life would be a good candidate for letting the students develop their own tests, as many students seem to get intricate bugs with rows/cols etc.

bjornregnell commented 2 years ago

closing this old issue as we are post migration and most of it was implemented