Skip to content

vsvandelik/NPRG014

 
 

Repository files navigation

NPRG014

Supplementary materials for the course of "Concepts of Modern Programming Languages" (NPRG014).

Lessons

Lesson 1 - 4th October 2021

Agenda

  • Language dynamism - typing, casting, object construction, method invocation
  • Functional programming in OO languages
  • Scripting

Preparation

  • Bring your laptop to the lecture with the listed software pre-installed
  • Grab Groovy 3.0.x from the groovy download page (http://groovy-lang.org/download.html). Make sure the "groovyConsole" command-line tool can be started.
  • Install Java JDK 11 or higher (if you don't have it installed) from the Java download site
  • Checkout this repository to get the source code of the examples and homework assignment that will be used during the lecture

Resources

  • Exercises to work with during the lesson are located in the “lecture1004/exercises” folder
  • The homework is to be found at “lecture10004/homework”
  • The “lecture10004/slides” holds the slides for the lecture

Lesson 2 - 18th October 2021

Agenda

  • Dynamic meta-programming
  • Intro into Domain Specific Languages
  • Domain specific languages
  • Builders

Preparation

  • Same as for Lesson 1
  • Do a fresh checkout of this repository to get updated source code for examples and homework assignments

Resources

  • Exercises to work with during the lesson are located in the “lecture1018/exercises” folder
  • The homework is to be found at “lecture1018/homework”
  • The “lecture1018/slides” holds the slides for the lecture

Lesson 3 - 25th October 2021

Agenda

  • Static meta-programming
  • AST transformations

Preparation

  • Same as for Lesson 1
  • Do a fresh checkout of this repository to get updated source code for examples and homework assignments

Resources

  • Exercises to work with during the lesson are located in the “lecture1025/exercises” folder
  • The homework is to be found at “lecture1025/homework”
  • The “lecture1025/slides” holds the slides for the lecture

Lesson 4 - 1st November 2021

Agenda

  • Concurrency abstractions in modern languages ** Dataflow ** Fork-join ** Actors ** Parallel collections ** Agents

Preparation

  • Same as for Lesson 1
  • Do a fresh checkout of this repository to get updated source code for examples and homework assignments

Resources

  • Exercises to work with during the lesson are located in the “lecture1101/exercises” folder
  • The homework is to be found at “lecture1101/homework”
  • The “lecture1101/slides” holds the slides for the lecture

Lesson 5 - 2nd November 2020

Agenda

  • Bytecode
  • Statically-typed languages (Scala) - Part I

Preparation

  • Grab and install SBT (http://www.scala-sbt.org/)
  • Install Java JDK (if you don't have it installed) from the Java download site
  • Checkout this repository to get all examples
  • Go to lecture1102-1123/exercises-homework and run "sbt compile" to download all necessary packages (Scala and related libraries)

Resources

  • Exercises to work with during the lesson and the homework are located in the lecture1102-1123/exercises-homework” folder
  • The “lecture1102-1123/slides” holds the slides for the lecture

Lesson 6 - 9th November 2020

Agenda

  • Statically-typed languages (Scala) - Part II

Preparation

  • Same as for Lesson 5

Lesson 7 - 16th November 2020

Agenda

  • Statically-typed languages (Scala) - Part III

Preparation

  • Same as for Lesson 5

Lesson 8 - 23rd November 2020

Agenda

  • Statically-typed languages (Scala) - Part IV

Preparation

  • Same as for Lesson 5

Lesson 9 - 30th November 2020

Agenda

  • Prototype-based languages (IO)

Preparation

Resources

  • Exercises to work with during the lesson and the homework are located in the “lecture1130-1207/exercises-homework” folder
  • The homework assignment is located in io/ioH.io
  • The “lecture1130-1207/slides” holds the slides for the lecture

Lesson 10 - 7th December 2020

Agenda

  • Prototype-based languages (JavaScript, TypeScript)

Preparation

  • Checkout this repository to get all examples
  • Download and install Node.JS from https://nodejs.org/en/download/
  • In directories "js/whiteboard" and "typescript" execute "npm install"

Resources

  • Exercises to work with during the lesson and the homework are located in the “lecture1130-1207/exercises-homework” folder
  • The homework assignment is located in js/whiteboard/index.js
  • The “lecture1130-1207/slides” holds the slides for the lecture

About

Supplementary materials for the course of "Concepts of Modern Programming Languages" (NPRG014) taught at Charles University, Prague, Czech Republic.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Groovy 62.6%
  • Scala 19.1%
  • TypeScript 8.1%
  • JavaScript 5.6%
  • Io 4.0%
  • HTML 0.5%
  • Java 0.1%