Planeamento

Aulas

Introduction to multiparadigm programming

- Presentation of the Curricular Unit

- Introduction to multiparadigm programming

- Introduction to the functional programming paradigm

- Basic programming concepts in Scala

.

- Presentation of the Curricular Unit

- Introduction to multiparadigm programming

- Introduction to the functional programming paradigm

- Basic programming concepts in Scala

Lists, Recursion and Pattern Matching

Lists, Recursion and Pattern Matching

.

Lists, Recursion and Pattern Matching

Efficiency in Functional Programming, Higher Order Functions, Recurring Patterns on Lists

- Tail recursion

- Lazy evaluation

- Data sharing

- Higher Order Functions

- Recurring Patterns on Lists (map and filter)

.

- Tail recursion

- Lazy evaluation

- Data sharing

- Higher Order Functions

- Recurring Patterns on Lists (map and filter)

Recurring Patterns on Lists, Implicit Parameters, Partially Applied Functions and Currying

Recurring Patterns on Lists (foldLeft and foldRight)

Implicit Parameters

Partially Applied Functions

Currying

.

Recurring Patterns on Lists (foldLeft and foldRight)

Implicit Parameters

Partially Applied Functions

Currying

Functional Object-Oriented Programming and Algebraic Data Types

Classes, Abstract Classes, Case Classes, Case Objects, Parametric Fields, Companion Class/Object, Overriding, Traits, Functional Objects, Singleton Objects

Functional Object-Oriented Programming

Algebraic Data Types

Option and Try

.

Classes, Abstract Classes, Case Classes, Case Objects, Parametric Fields, Companion Class/Object, Overriding, Traits, Functional Objects, Singleton Objects

Functional Object-Oriented Programming

Algebraic Data Types

Option and Try

Purely functional State and IO in Functional Programming. Technology to Support Team Programming

- Purely functional State

- Pure functions

- Input and Output in Scala

- Technology to Support Team Programming (centralized/distributed version control system)

- commit, push, pull request and merge

.

- Purely functional State

- Pure functions

- Input and Output in Scala

- Technology to Support Team Programming (centralized/distributed version control system)

- commit, push, pull request and merge

Event-oriented programming and JavaFX

Introduction to event-oriented programming

Introduction to JavaFX

JavaFX Architecture, Controls and Containers

JavaFX Scene Builder

Skinning with CSS

.

Introduction to event-oriented programming

Introduction to JavaFX

JavaFX Architecture, Controls and Containers

JavaFX Scene Builder

Skinning with CSS

Project discussion - part I

Project discussion.

.

Project discussion.

JavaFX and User Interface Patterns

Additional widgets with JavaFX (TableView)

3D applications with JavaFX

Introduction to patterns for effective interaction design.

.

Additional widgets with JavaFX (TableView)

3D applications with JavaFX

Introduction to patterns for effective interaction design.

Introduction to the Development of Interactive Systems

Introduction to the interactive systems development process.

Modelling with Concur Task Trees

Information Architecture

- Card Sorting

- Tree Testing

.

Introduction to the interactive systems development process.

Modelling with Concur Task Trees

Information Architecture

- Card Sorting

- Tree Testing

Project support

Project support.

.

Project support.

Project discussion - part II

Project discussion.

.

Project discussion.

Aulas

Introduction and basic concepts

Exercises with values, expressions, types, functions and recursion.

.

Exercises with values, expressions, types, functions and recursion.

.

Exercises with values, expressions, types, functions and recursion.

.

Exercises with values, expressions, types, functions and recursion.

.

Exercises with values, expressions, types, functions and recursion.

.

Exercises with values, expressions, types, functions and recursion.

Lists, Recursion and Pattern Matching

Exercices with Lists, Recursion and Pattern Matching

.

Exercices with Lists, Recursion and Pattern Matching

.

Exercices with Lists, Recursion and Pattern Matching

.

Exercices with Lists, Recursion and Pattern Matching

.

Exercices with Lists, Recursion and Pattern Matching

.

Exercices with Lists, Recursion and Pattern Matching

Efficiency in Functional Programming, Higher Order Functions, Recurring Patterns on Lists

Exercises with tail recursion, lazy evaluation, higher order functions and recurring patterns on lists (map, filter)

.

Exercises with tail recursion, lazy evaluation, higher order functions and recurring patterns on lists (map, filter)

.

Exercises with tail recursion, lazy evaluation, higher order functions and recurring patterns on lists (map, filter)

.

Exercises with tail recursion, lazy evaluation, higher order functions and recurring patterns on lists (map, filter)

.

Exercises with tail recursion, lazy evaluation, higher order functions and recurring patterns on lists (map, filter)

.

Exercises with tail recursion, lazy evaluation, higher order functions and recurring patterns on lists (map, filter)

Recurring Patterns on Lists, Implicit Parameters, Partially Applied Functions and Currying

Exercises with foldLeft, foldRight, implicit parameters, partially applied functions and currying.

.

Exercises with foldLeft, foldRight, implicit parameters, partially applied functions and currying.

.

Exercises with foldLeft, foldRight, implicit parameters, partially applied functions and currying.

.

Exercises with foldLeft, foldRight, implicit parameters, partially applied functions and currying.

.

Exercises with foldLeft, foldRight, implicit parameters, partially applied functions and currying.

.

Exercises with foldLeft, foldRight, implicit parameters, partially applied functions and currying.

Functional Object-Oriented Programming and Algebraic Data Types

Exercises with Functional Object-Oriented Programming, Algebraic Data Types (Tree) and Option.

.

Exercises with Functional Object-Oriented Programming, Algebraic Data Types (Tree) and Option.

.

Exercises with Functional Object-Oriented Programming, Algebraic Data Types (Tree) and Option.

.

Exercises with Functional Object-Oriented Programming, Algebraic Data Types (Tree) and Option.

.

Exercises with Functional Object-Oriented Programming, Algebraic Data Types (Tree) and Option.

.

Exercises with Functional Object-Oriented Programming, Algebraic Data Types (Tree) and Option.

Purely functional State and IO in Functional Programming

Exercises with purely functional state and IO and putting all Functional Programming concepts together.

.

Exercises with purely functional state and IO and putting all Functional Programming concepts together.

.

Exercises with purely functional state and IO and putting all Functional Programming concepts together.

.

Exercises with purely functional state and IO and putting all Functional Programming concepts together.

.

Exercises with purely functional state and IO and putting all Functional Programming concepts together.

.

Exercises with purely functional state and IO and putting all Functional Programming concepts together.

Event-oriented programming

Exercises with event-oriented programming using JavaFX and Scala.

.

Exercises with event-oriented programming using JavaFX and Scala.

.

Exercises with event-oriented programming using JavaFX and Scala.

.

Exercises with event-oriented programming using JavaFX and Scala.

.

Exercises with event-oriented programming using JavaFX and Scala.

Project discussion - part I

Project discussion.

.

Project discussion.

.

Project discussion.

.

Project discussion.

.

Project discussion.

.

Project discussion.

.

Project discussion.

JavaFX and User Interface patterns

Exercises with JavaFX (tableView, 3D widgets, several Stages and Scenes)

Exercises with user interface patterns using Scala and JavaFX.

.

Exercises with JavaFX (tableView, 3D widgets, several Stages and Scenes)

Exercises with user interface patterns using Scala and JavaFX.

.

Exercises with JavaFX (tableView, 3D widgets, several Stages and Scenes)

Exercises with user interface patterns using Scala and JavaFX.

.

Exercises with JavaFX (tableView, 3D widgets, several Stages and Scenes)

Exercises with user interface patterns using Scala and JavaFX.

.

Exercises with JavaFX (tableView, 3D widgets, several Stages and Scenes)

Exercises with user interface patterns using Scala and JavaFX.

Development of Interactive Systems

Development of Interactive Systems using task models.

Exercises creating Information Architectures using the Card Sorting and Tree Testing techniques.

.

Development of Interactive Systems using task models.

Exercises creating Information Architectures using the Card Sorting and Tree Testing techniques.

.

Development of Interactive Systems using task models.

Exercises creating Information Architectures using the Card Sorting and Tree Testing techniques.

.

Development of Interactive Systems using task models.

Exercises creating Information Architectures using the Card Sorting and Tree Testing techniques.

.

Development of Interactive Systems using task models.

Exercises creating Information Architectures using the Card Sorting and Tree Testing techniques.

.

Development of Interactive Systems using task models.

Exercises creating Information Architectures using the Card Sorting and Tree Testing techniques.

.

Development of Interactive Systems using task models.

Exercises creating Information Architectures using the Card Sorting and Tree Testing techniques.

Project support

Project support.

.

Project support.

.

Project support.

.

Project support.

.

Project support.

.

Project support.

Project discussion - part II

Project discussion.

.

Project discussion.

.

Project discussion.

.

Project discussion.

.

Project discussion.

.

Project discussion.