my forest
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

more weeknotes and comp1110 news

+157 -5
+5
trees/courses/COMP1110.tree
··· 1 + \taxon{Course} 2 + \title{Structured Programming} 3 + \meta{venue}{[[anu]]} 4 + \meta{external}{https://comp.anu.edu.au/courses/comp1110/index.html} 5 + \p{The follow on from [[COMP1100]] that introduces Java programming.}
+6 -4
trees/loc-0007.tree
··· 3 3 \parent{loc-0004} 4 4 \p{The following teaching engagements were/are all at the [[anu]]:} 5 5 \table{ 6 - \tr{\td{2025}\td{ [[COMP1100]]. Lecturer.}} 6 + \tr{\td{2026}\td{ [[COMP1110]]. Lecturer Convenor.}} 7 + \tr{\td{2025}\td{ [[COMP1100]]. Lecturer Convenor.}} 7 8 } 8 9 \p{The following teaching engagements were all at the [[uoe]]:} 9 10 \table{ ··· 25 26 \tr{\td{}\td{ [[COMP3141]] (308 students). Lecturer Convenor. }} 26 27 \tr{\td{}\td{ [[COMP3153]] (18 students). Lecturer Convenor. }} 27 28 \tr{\td{}\td{ [[COMP2111]]. Course Administrator.}} 28 - \tr{\td{2019}\td{ [[COMP3161]] (111 students). \br \small{#{100\%} teacher satisfaction. #{95.1\%} course satisfaction.} }} 29 - \tr{\td{}\td{ [[COMP3141]] (196 students). Lecturer Convenor. \br \small{ #{97.3\%} teacher satisfaction. #{93.9\%} course satisfaction.}}} 30 - \tr{\td{2018}\td{ [[COMP3161]] (96 students). Lecturer Convenor, Tutor. \br \small{#{98.1\%} teacher satisfaction. #{100\%} course satisfaction.}}} 29 + \tr{\td{2019}\td{ [[COMP3161]] (111 students).}}\tr{\td{}\td{ \small{#{100\%} teacher satisfaction. #{95.1\%} course satisfaction.} }} 30 + \tr{\td{}\td{ [[COMP3141]] (196 students). Lecturer Convenor.}}\tr{\td{}\td{ \small{ #{97.3\%} teacher satisfaction. #{93.9\%} course satisfaction.}}} 31 + \tr{\td{2018}\td{ [[COMP3161]] (96 students). Lecturer Convenor, Tutor.}} 32 + \tr{\td{}\td{ \small{#{98.1\%} teacher satisfaction. #{100\%} course satisfaction.}}} 31 33 \tr{\td{}\td{ [[COMP2111]]. Tutor (6 tutorials), Relief Lecturer.}} 32 34 \tr{\td{}\td{ \small{#{94.1\%} teacher satisfaction.}}} 33 35 \tr{\td{}\td{ [[COMP3141]]. Course Designer and Administrator.}}
+16
trees/loc-001W.tree
··· 1 + \date{2025-09-19} 2 + \author{liamoc} 3 + \title{ANU Logic Summer School 2025} 4 + \meta{external}{https://comp.anu.edu.au/lss/} 5 + \meta{venue}{[[anu]]} 6 + \p{ 7 + The [ANU](anu) Logic Summer School is back again this year, and this time I feature on [the program](https://comp.anu.edu.au/lss/lectures/2025/). I will be teaching an Introduction to Interactive Theorem Proving using [Isabelle/HOL](https://isabelle.in.tum.de). The timetable is tentative but it looks like I will be teaching it over the final two days of the first week, with one two-hour and one one-hour lecture per day. This means it will be quite a packed programme, but I will do my best. 8 + } 9 + \p{It's my hope that I can figure out a nice way to include Isabelle code in Forester trees, so that I can make my lecture notes with Forester. But this may be difficult for a variety of technical reasons, so in the worst case it will be a bunch of Isabelle theory files with comments. } 10 + \p{ 11 + My introduction will hopefully tie in to [[cledmonds]]' teaching Hoare logic and rely/guarantee reasoning in Isabelle over the second week. 12 + } 13 + \p{ 14 + If you or your students have an interest in logic or verification, please consider sending your students! We also have some limited scholarships available. 15 + } 16 +
+7
trees/loc-001X.tree
··· 1 + \date{2025-09-19} 2 + \author{liamoc} 3 + \title{Against "eureka steps"} 4 + \p{Both [[hoefner]] and I enjoyed [[tomschrijvers]]' talk at the [[loc-001U]] answering a challenge from [[brunooliveira]]: to stepwise \em{derive} his [QuickSub](zhou-oliveira-2025) efficient iso-recursive subtype checking algorithm from the exponential-time Amber rules of [[lucacardelli]]'s #{\mathcal{F}_{<}}. Impressively, [Tom](tomschrijvers) and his student were able to get there, and it's certainly nice to have such a neat justification of QuickSub's correctness, but I did experience some mild irritation: The calculation was done \em{with a very specific goal in mind} — namely the QuickSub algorithm — and so several steps in the proof were, in a sense, "goal-motivated". If we didn't know the QuickSub algorithm in advance, many steps would have had no intuition behind them at all. Another member of the group called such steps "eureka steps".} 5 + \p{It led me to wonder about the myriad of possible choices available at any given step in that refinement. Why do we choose \em{this} algorithm? If I recall some of the classic works on program calculation from [[richardbird]] or [[ccm]], the algorithms we end up with proceed from a series of calculations, each of which makes sense in isolation. You can read the derivation from beginning to end and each step feels like it's improving the algorithm in some way. The process feels entirely natural. Whereas here, these "eureka steps" mean that I need to look much further ahead to find the motivation for the transformation being performed. } 6 + \p{I encountered a similar feeling when my student [[xinloi]] raised [[raad-bdo-2022]] for discussion with me and [[hoefner]]. [[ohearn-2020]] is, in a nutshell, a logic for showing the presence of bugs rather than their absence. One of its nice qualities is that, like its almost-dual Hoare logic, it offers a relatively \em{calculational} way to approach program (in)correctness, where each proof step follows naturally from the structure of the program and the assertions within it. Unfortunately, [[raad-bdo-2022]] doesn't quite preserve this property when moving to a concurrent setting. To prove the existence of concurrency bugs like races, each thread's local assertions build a history of writes and lock actions, and then, in the assertion after the potential race, a "eureka step" comes in which points out the problematic interleaving of these histories that exhibits the race condition. Proving the presence of this bug required first knowing that the bug exists and how it can arise, and then doing the same "goal-motivated" reasoning that we saw in [Tom](tomschrijvers)'s talk. This seems to me quite dissatisfying. Is there a more genuinely calculational approach here? I suspect concurrency makes things fundamentally more difficult, but I think we should nonetheless strive for the elimination of these "eureka steps" even if it's not always possible to do so. } 7 +
+4
trees/news.tree
··· 4 4 \p{See also [Weeknotes](loc-001B)} 5 5 \table{ 6 6 \tr{ 7 + \th{ 25.09.19 } 8 + \td{I have agreed to teach COMP1110 [[COMP1110]] in 2026 Semester 1. } 9 + } 10 + \tr{ 7 11 \th{ 25.09.12 } 8 12 \td{I have been made a member of [[wg21]]. } 9 13 }
+6
trees/people/azalea.tree
··· 1 + \title{Azalea Raad} 2 + \taxon{Person} 3 + \meta{external}{https://www.soundandcomplete.org} 4 + \meta{institution}{[[imperial]]} 5 + \meta{orcid}{0000-0002-2319-3242} 6 + \meta{position}{Reader}
+6
trees/people/brunooliveira.tree
··· 1 + \title{Bruno C. d. S. Oliveira} 2 + \taxon{Person} 3 + \meta{external}{https://i.cs.hku.hk/~bruno/} 4 + \meta{institution}{[[hku]]} 5 + \meta{position}{Associate Professor} 6 + \meta{orcid}{0000-0002-1846-7210}
+6
trees/people/cledmonds.tree
··· 1 + \title{Chelsea Edmonds} 2 + \taxon{Person} 3 + \meta{external}{https://cledmonds.github.io} 4 + \meta{institution}{[[uwa]]} 5 + \meta{orcid}{0000-0002-8559-9133} 6 + \meta{position}{Lecturer}
+6
trees/people/dreyer.tree
··· 1 + \title{Derek Dreyer} 2 + \taxon{Person} 3 + \meta{external}{https://people.mpi-sws.org/~dreyer/} 4 + \meta{institution}{[[mpi-sws]]} 5 + \meta{orcid}{0000-0002-3884-6867} 6 + \meta{position}{Scientific Director}
+6
trees/people/joshberdine.tree
··· 1 + \title{Josh Berdine} 2 + \taxon{Person} 3 + \meta{external}{https://jberdine.github.io/} 4 + \meta{institution}{SkipLabs} 5 + \meta{orcid}{0000-0002-9691-1348} 6 + %\meta{position}{}
+6
trees/people/litaozhou.tree
··· 1 + \title{Litao Zhou} 2 + \taxon{Person} 3 + \meta{orcid}{0000-0003-3046-7085} 4 + \meta{external}{https://ltzhou.com} 5 + \meta{institution}{[[hku]]} 6 + \meta{position}{PhD Student}
+6
trees/people/lucacardelli.tree
··· 1 + \title{Luca Cardelli} 2 + \taxon{Person} 3 + \meta{external}{http://lucacardelli.name} 4 + \meta{institution}{[[ox]]} 5 + \meta{position}{Research Professor} 6 + \meta{doi}{0000-0002-8705-8488}
+6
trees/people/ohearn.tree
··· 1 + \title{Peter O'Hearn} 2 + \taxon{Person} 3 + \meta{external}{http://www0.cs.ucl.ac.uk/staff/p.ohearn/} 4 + \meta{institution}{[[ucl]], Meta} 5 + \meta{orcid}{0009-0007-0910-5350} 6 + \meta{position}{Professor}
+6
trees/people/richardbird.tree
··· 1 + \title{Richard Bird} 2 + \taxon{Person} 3 + \meta{external}{https://en.wikipedia.org/wiki/Richard_Bird_(computer_scientist)} 4 + \meta{institution}{[[ox]]} 5 + \meta{position}{Supernumerary Fellow of Computation (deceased)} 6 +
+6
trees/people/tomschrijvers.tree
··· 1 + \title{Tom Schrijvers} 2 + \taxon{Person} 3 + \meta{external}{https://people.cs.kuleuven.be/~tom.schrijvers} 4 + \meta{institution}{[[kuleuven]]} 5 + \meta{orcid}{0000-0001-8771-5559} 6 + \meta{position}{Professor}
+4
trees/places/hku.tree
··· 1 + \title{University of Hong Kong} 2 + \taxon{Institution} 3 + \meta{venue}{Hong Kong} 4 + \meta{external}{https://www.hku.hk}
+4
trees/places/kuleuven.tree
··· 1 + \title{KU Leuven} 2 + \taxon{Institution} 3 + \meta{venue}{Leuven, Belgium} 4 + \meta{external}{https://www.kuleuven.be/english/kuleuven}
+3
trees/places/mpi-sws.tree
··· 1 + \title{Max Planck Institute for Software Systems} 2 + \taxon{Institution} 3 + \meta{venue}{Saarbrücken, Germany}
+8
trees/places/popl20.tree
··· 1 + \import{conf-name-macros} 2 + \title{\conf-name{POPL '20}{47th ACM SIGPLAN Symposium on Principles of Programming Languages}} 3 + \taxon{Conference} 4 + \date{2020-01} 5 + \meta{venue}{New Orleans, Louisiana, USA} 6 + \meta{external}{https://popl20.sigplan.org/} 7 + 8 + \p{The annual Symposium on Principles of Programming Languages is a forum for the discussion of all aspects of programming languages and programming systems. Both theoretical and experimental papers are welcome on topics ranging from formal frameworks to experience reports. We seek submissions that make principled, enduring contributions to the theory, design, understanding, implementation or application of programming languages.}
+8
trees/places/popl25.tree
··· 1 + \import{conf-name-macros} 2 + \title{\conf-name{POPL ’25}{52nd ACM SIGPLAN Symposium on Principles of Programming Languages}} 3 + \taxon{Conference} 4 + \date{2025-01} 5 + \meta{venue}{Denver, Colorado, USA} 6 + \meta{external}{https://popl25.sigplan.org/} 7 + 8 + \p{The annual Symposium on Principles of Programming Languages is a forum for the discussion of all aspects of programming languages and programming systems. Both theoretical and experimental papers are welcome on topics ranging from formal frameworks to experience reports. We seek submissions that make principled, enduring contributions to the theory, design, understanding, implementation or application of programming languages.}
+4
trees/places/ucl.tree
··· 1 + \title{University College London} 2 + \taxon{Institution} 3 + \meta{venue}{London, United Kingdom} 4 + \meta{external}{https://ucl.ac.uk}
+4
trees/places/uwa.tree
··· 1 + \title{University of Western Australia} 2 + \taxon{Institution} 3 + \meta{venue}{Perth, Australia} 4 + \meta{external}{https://www.uwa.edu.au}
+6
trees/refs/ohearn-2020.tree
··· 1 + \title{Incorrectness Logic} 2 + \taxon{Reference} 3 + \meta{venue}{[[popl20]]} 4 + \author{ohearn} 5 + \date{2019-12-10} 6 + \meta{doi}{10.1145/3371078}
+9
trees/refs/raad-bdo-2022.tree
··· 1 + \title{Concurrent Incorrectness Separation Logic} 2 + \taxon{Reference} 3 + \meta{venue}{[[popl22]]} 4 + \author{azalea} 5 + \author{joshberdine} 6 + \author{dreyer} 7 + \author{ohearn} 8 + \date{2022-01-12} 9 + \meta{doi}{10.1145/3498695}
+6
trees/refs/zhou-oliveira-2025.tree
··· 1 + \title{QuickSub: Efficient Iso-Recursive Subtyping} 2 + \taxon{Reference} 3 + \meta{venue}{[[popl25]]} 4 + \author{litaozhou} 5 + \author{brunooliveira} 6 + \meta{doi}{10.1145/3704869}
+3 -1
trees/weeknotes/2025-W38.tree
··· 4 4 \date{2025-09-28} 5 5 \p{Because of my trip to Portugal (details below), I wasn't able to write weeknotes for the past two weeks, so I'm catching up here.} 6 6 \transclude{loc-001U} 7 - \transclude{loc-001V} 7 + \transclude{loc-001V} 8 + \transclude{loc-001W} 9 + \transclude{loc-001X}