First published on MSDN on Feb 13, 2017
Can I Introduce you to Haskelly team from University College London, System Engineering course.
Marco Concetto Rudilosso
Marti Serra Vivancos
Janos, Marco and Marti are three students, currently studying Computer Science at University College London. As part of their system engineering course they are undertaking a team based project. They have been working on a
Visual Studio Code
project, to build a
Visual Studio Code extension
which supports the teaching and learning of Haskell.
Haskell is used widely in academia and also used in industry. But specifically many of the worlds Universities teach Haskell as the
language. The opportunity with this extension and Azure really shows off the power of VSCode as the primary IDE on Windows, MacOS and Linux.
The team are developing an Azure hosted toolset entitled SEAT, SEAT Scaffolding Exercise Automation Toolkit provides a valuable teaching assistant to the Academics and TA in the evaluation of the Haskell learning from students. Students simply submit assignments and resources to the code validation engine assessing the students learning and competencies.
The Haskelly extension has been in development for the past 4 weeks and the team had a superbly impressive demo which shown the VS code Extension working intellisense code completion and quickcheck. The team successfully developed the extension and have made it available for FREE in the Visual Studio Marketplace
they have had over 2,000 downloads.
Last week the team and their academic supervisor,
Dr Dean Mohamedally
had the opportunity of meeting
Simon Peyton Jones
at Microsoft Research Cambridge. Simon is a major contributor to the design of the
programming language, and a lead developer of the
Glasgow Haskell Compiler
Simon is also co-creator of the
programming language, designed for intermediate program representation between the language-specific front-end of a compiler and a general-purpose back-end code generator and optimiser. C-- is used in GHC. During the meeting Simon shared his experiences and insight with the team and they discussed potential new features for the extension.
Scripted Toolchain with Haskell's components (as programme or using GHCi)
SEAT for UCL
AZURE Cloud Based
Cloud based allows classroom analysis
Students load encrypted file into VS Code
Automatic Checking for Students
The intention is that the SEAT toolset will be used within UCL Functional programming courses and provide a Cloud Based classroom analysis Students load encrypted file into VS Code Automatic Checking for Students code.
Plugin with piping architecture overview
Running code: stack runhaskell in the integrated terminal
GHCi:running a JS file that pipes a process’s output to its own stdout and handles input
QuickQueck: using a spawn process and parsing the output to display feedback
Code completion: direct implementation using a dynamic spawn process
The intention is that SEAT Scaffolding Exercise Automation Tools will be used for all UCL students
Code hosted in a repository -> automatic deployment
Azure Web App manages Authentication
Azure Functions run on– demand
So in summary VS Code makes it easy to develop plugins for education
Azure Web Apps setup with auto. deployment
Institutions running O365 and AAD can utilise Azure Authentication for professors and Students providing single sign on to the necessary resources.
If your interested in learning more about developing Visual Studio Extensions see
If you interested in understanding what extension are currently available see