This website is for an old version of the course, from 2016/17. Advances in Programming Languages has moved on to new years and new students. Please follow the link below to see the current course pages.
Link: Current APL web pages
This website is for an old version of the course, from 2016/17. Advances in Programming Languages has moved on to new years and new students. Please follow the link below to see the current course pages.
Link: Current APL web pages
The APL exam is this afternoon, 1430–1630 in St Leonard’s Land Games Hall. Please use the entrance in Viewcraig Gardens.
The exam format is as in previous years: you have two hours to answer two out of three questions. Read all the questions before making your choice.
Continue reading Exam
Please fill out the short online feedback page for APL. This is organised centrally by the University, with all results sent to the individual course organiser and to the Director of Teaching. I read every comment individually, and for Informatics courses we post results online to help other students choosing courses for the future.
Thank you.
Feedback for this course: | Advances in Programming Languages |
All surveys on MyEd: | Course Enhancement Questionnaires |
Reports from previous years: | Student Course Feedback |
3–4pm Tuesday 29 November
Drummond Library
G.10 Geosciences
I’m going to count this as course-relevant news. Barack Obama has announced this year’s recipients of the Presidential Medal of Freedom. Two of those recognised are for their work on advancing computer science: Grace Hopper and Margaret Hamilton.
Bill and Melinda Gates are in there, too, but that’s for the philanthropic work of the Gates Foundation rather than anything specifically related to computing or programming languages.
3–4pm Friday 18 November
Gaddum Lecture Theatre G.8
1 George Square
Facebook’s main website, ads platform, and much of its internal tooling is implemented in PHP, a language not known for elegance or best practice in programming language design. (See http://phpsadness.com, for example.) Over the last three years Facebook has embarked on an ambitious project to migrate its code base to Hack, which takes the syntax of PHP, removes the worst features, and adds static typing and modern constructs for asynchronous programming and typed UI components. In this talk I will focus on Hack’s type system, which combines ML-like type inference, object-oriented generics in the style of C# or Java, and flow-based typing of local variables.
Andrew Kennedy is a software engineer at Facebook London working on the Hack team. Before joining Facebook in January this year he spent 16 years at Microsoft Research, during which time he helped design and implement the generics feature for the .NET Common Language Runtime and polymorphic units-of-measure inference for the F# programming language, in addition to making many research contributions in type systems, semantics, formal verification and compilation.
These are the links I gave at the close of yesterday’s lecture: two APL-related things that came up last week and I think interesting to look at.
Project: CertiKOS
Press Release: Yale News
This is a project out of the FLINT group at Yale, building large verified systems. CertiKOS is a toolkit for building operating system kernels, hypervisors, and embedded systems. It’s part of the DeepSpec initiative and linked to DARPA HACMS and SAFE.
Talk: Video
This is a talk by Brian Goetz at the Devoxx 2016 conference in Antwerp last week. He’s “Java Language Architect” at Oracle, and has been involved in a lot of the advances in the Java language over the last ten years. In the presentation he talks about some ideas that are under development to be part of the language in a year or two.
Thanks to the very many students who sent in lists of online references for each of the five coursework topics. I have selected some of those I think most useful, and list them below. These links work today, Tuesday 11 October. If you find one broken while the assignment is still running, please email me and I’ll attempt to fix it.
Continue reading Coursework references
Tuesday 11 October is Ada Lovelace Day, and the University of Edinburgh is hosting a series of events in the Main Library. There’s no APL lecture in the afternoon: come along and help improve Wikipedia.
Link: Event description and booking
Ada Lovelace Day is an international celebration day of the achievements of women in science, technology, engineering and maths (STEM). It aims to increase the profile of women in STEM and, in doing so, create new role models who will encourage more girls into STEM careers and support women already working in STEM.
Links: Ada Lovelace Day; Map of events worldwide
To find out more about Ada Lovelace and her impact on computing — including programming — then I recommend watching these.
![]() |
Calculating Ada: The Countess of Computing BBC documentary on the life and work of Ada Lovelace. Link: Full video with EASE login |
![]() |
The Scientific Life of Ada Lovelace Public lecture by Prof. Ursula Martin for the Lovelace bicentenary. Links: Lecture; Youtube |
“It may be desirable to explain, that by the word operation, we mean any process which alters the mutual relation of two or more things, be this relation of what kind it may. This is the most general definition, and would include all subjects in the universe.”
Ada Lovelace, 1842, identifying the
scope of application for a programmable computer
When | 1pm Thursday 29 September |
---|---|
Where | IF 2.33, Informatics Forum |
PLInG is an informal meeting series for Informatics students and staff interested in programming languages. It’s organized by James Cheney and Michel Steuwer with meetings every fortnight or so.
All are welcome to attend, and the format is flexible: with presentations of work in progress, interesting recent papers, reports from conferences, or discussion with visitors. This first meeting is to make plans for the semester and hear trip reports from those just back from last week’s International Conference on Functional Programming (ICFP) in Japan.
Links: Meeting schedule; Mailing list