Skip to content

Commit 119a21a

Browse files
authored
Merge pull request #1231 from scalacenter/effective-programming-scala-course
Announce Effective Programming in Scala and other MOOCs updates
2 parents 3068289 + 7ad361f commit 119a21a

File tree

3 files changed

+102
-0
lines changed

3 files changed

+102
-0
lines changed
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
---
2+
layout: blog-detail
3+
post-type: blog
4+
by: Julien Richard-Foy
5+
title: "New Online Course: Effective Programming in Scala"
6+
---
7+
8+
We are excited to announce that our new MOOC “Effective Programming in Scala” is now
9+
live on Coursera! We are also happy to share that most of our existing courses have already
10+
been updated to Scala 3.
11+
12+
## Effective Programming in Scala
13+
14+
The [Effective Programming in Scala] course aims to teach non-Scala programmers everything
15+
they need to become professional Scala 3 programmers in six weeks. This course shows you how
16+
to embrace both functional programming and object-oriented programming in a simple and
17+
practical way to write software at scale. It explains how to achieve typical programming
18+
tasks in Scala, such as modeling business domains, breaking down complex problems into
19+
simpler problems, manipulating data, or running parallel tasks. Throughout the course, you
20+
will also learn the best practices for writing high-quality Scala code that scales to large
21+
applications, how to handle errors, how to write tests, and how to leverage a productive
22+
development environment.
23+
24+
The course features six auto-graded programming assignments, which have been designed to
25+
be both fun and close to real-world programs. Topics covered by the assignments include
26+
graphical animations, web applications, property-based testing, generic programming,
27+
and parallel data processing.
28+
29+
Each week contains several video lectures of ~10 minutes each. Lectures are focused on
30+
a specific skill or concept, and they are generally followed by a quiz so that you
31+
can immediately assess your understanding of the lesson.
32+
33+
The syllabus is organized as follows:
34+
35+
- week 1: basics of the language, and how to model business
36+
domains with sealed traits and case classes,
37+
- week 2: manipulate collections of data with the standard library,
38+
and write business logic,
39+
- week 3: tooling around the Scala language (IDE, build tools,
40+
debuggers), organize large programs into modules,
41+
- week 4: reason about code, write unit tests, property-based tests, and
42+
integration tests in Scala,
43+
- week 5: contextual abstractions (aka “implicits” in Scala 2),
44+
- week 6: error handling, data validation, and concurrent programming.
45+
46+
The course has been co-designed by myself (Julien Richard-Foy) and [Noel Welsh].
47+
Noel Welsh has a long experience in teaching Scala, both in the industry and
48+
within the [Scala Bridge] project.
49+
50+
Check out this video for more details about the course Effective Programming in Scala:
51+
52+
<div style="text-align: center;">
53+
<iframe width="560" height="315" src="https://www.youtube.com/embed/MSDJ7ehjrqo" title="Effective Programming in Scala teaser" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
54+
</div>
55+
56+
## Other Scala Courses
57+
58+
The Scala Center and Martin Odersky have also been working hard to update all our
59+
existing courses to Scala 3 (except the courses that use Spark, which still use
60+
Scala 2.12).
61+
62+
This is a huge effort, and some parts are still in progress. Here is the current
63+
status, at the time this blog is written:
64+
65+
- The [Scala Specialization] is a suite of five courses that teach Scala and
66+
data processing (possibly in parallel or distributed),
67+
- [Functional Programming Principles in Scala]: all the lectures and
68+
assignments have been updated to Scala 3,
69+
- [Functional Program Design]: all the lectures and assignments have been
70+
updated to Scala 3,
71+
- [Parallel Programming]: only the assignments have been updated to Scala 3,
72+
- [Big Data Analysis with Scala and Spark]: still on Scala 2.12,
73+
- [Functional Programming in Scala Capstone]: still on Scala 2.12,
74+
- [Programming Reactive Systems]: only the assignments have been updated to Scala 3.
75+
76+
We will update our Spark courses to Scala 3 as soon as there is a stable release of
77+
Spark that supports Scala 3.
78+
79+
The [Scala Specialization] always points to the latest version of the courses (we
80+
will roll out the Scala 3 versions in the coming weeks).
81+
Nevertheless, in case you want to access the Scala 2 version of the courses, they
82+
are still available here:
83+
84+
- [Functional Programming Principles in Scala (Scala 2 version)]
85+
- [Functional Program Design in Scala (Scala 2 version)]
86+
- [Parallel Programming (Scala 2 version)]
87+
- [Programming Reactive Systems (Scala 2 version)]
88+
89+
[Effective Programming in Scala]: https://www.coursera.org/learn/effective-scala
90+
[Noel Welsh]: https://noelwelsh.com/
91+
[Scala Bridge]: https://scalabridge.org/
92+
[Scala Specialization]: https://www.coursera.org/specializations/scala
93+
[Functional Programming Principles in Scala]: https://www.coursera.org/learn/progfun1
94+
[Functional Program Design]: https://www.coursera.org/learn/progfun2
95+
[Parallel Programming]: https://www.coursera.org/learn/parprog1
96+
[Big Data Analysis with Scala and Spark]: https://www.coursera.org/learn/scala-spark-big-data
97+
[Functional Programming in Scala Capstone]: https://www.coursera.org/learn/scala-capstone
98+
[Programming Reactive Systems]: https://www.coursera.org/learn/scala-akka-reactive
99+
[Functional Programming Principles in Scala (Scala 2 version)]: https://www.coursera.org/learn/scala2-functional-programming
100+
[Functional Program Design in Scala (Scala 2 version)]: https://www.coursera.org/learn/scala2-functional-program-design
101+
[Parallel Programming (Scala 2 version)]: https://www.coursera.org/learn/scala2-parrallel-programming
102+
[Programming Reactive Systems (Scala 2 version)]: https://www.coursera.org/learn/scala2-akka-reactive
262 KB
Loading
334 KB
Loading

0 commit comments

Comments
 (0)