|
| 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 |
0 commit comments