Publications
Peer-Reviewed Full-Length Publications
- Grading Documentation with Machine Learning,
M. Messer, M. Shi, N.C.C. Brown, M. Kölling,
AIED 2024,
[DOI]
- Writing Between the Lines: How Novices Construct Java Programs,
N.C.C. Brown, V. Mac, P. Weill-Tessier, M. Kölling,
SIGCSE 2024,
[DOI]
- Confidence vs Insight: Big and Rich Data in Computing Education Research,
N.C.C. Brown, M. Guzdial,
SIGCSE 2024,
[DOI]
- 10 Things Software Developers Should Learn about Learning,
N.C.C. Brown, F.F.J. Hermans, L.E. Margulieux,
Communications of the ACM (CACM), 2024,
[HTML]
[DOI/PDF]
[Full PDF with expanded references]
- Automated Grading and Feedback Tools for Programming Education: A Systematic Review,
M. Messer, N.C.C. Brown, M. Kölling, M. Shi,
ACM Transactions on Computing Education (TOCE), 2023,
[DOI]
- Quick Fixes for novice programmers: effective but under-utilised,
N.C.C. Brown, J. Ford, P. Weill-Tessier, M. Kölling,
UKICER 2023,
[DOI]
- An eye tracking study assessing the impact of background styling in code editors on novice programmers' code understanding,
K. Park, P. Weill-Tessier, N.C.C. Brown, B. Sharif, N. Jensen, M. Kölling,
ICER 2023,
[DOI]
- Machine Learning-Based Automated Grading and Feedback Tools for Programming: A Meta-Analysis,
M. Messer, N.C.C. Brown, M. Kölling, M. Shi,
ITiCSE 2023,
[DOI]
- Launching Registered Report Replications in Computer Science Education Research,
N.C.C. Brown, E. Marinus, A. Hubbard Cheuoua,
ICER 2022,
[DOI]
- Novice use of the Java programming language,
N.C.C. Brown, P. Weill-Tessier, M. Sekula, A.L. Costache, M. Kölling,
ACM Transactions on Computing Education (TOCE), 2022,
[DOI]
- Computer Science Education: Guest Editorial,
N.C.C. Brown, A. Hubbard Cheuoua, E. Marinus,
Computer Science Education, 2022,
[DOI]
- A Frame of Mind: Frame-based vs. Text-based Editing,
N.C.C. Brown, C. Kyfonidis, P. Weill-Tessier, B.A. Becker, J. Dillane, M.Kölling,
UKICER 2021,
[DOI]
- Usage of the Java Language by Novices over Time: Implications for Tool and Language Design,
P. Weill-Tessier, A.L. Costache, and N.C.C. Brown,
SIGCSE 2021,
[DOI]
- Engage Against the Machine: Rise of the Notional Machines as Effective Pedagogical Devices,
P.E. Dickson, N.C.C. Brown, and B.A. Becker,
ITiCSE 2020,
[DOI]
- Stride in BlueJ -- Computing for All in an Educational IDE,
M. Kölling, N.C.C. Brown, H. Hamza and D. McCall,
SIGCSE 2019,
[BiBTeX]
- Blackbox, Five Years On: An Evaluation of a Large-scale Programming Data Collection Project,
N.C.C. Brown, A. Altadmri, S. Sentance and M. Kölling,
ICER 2018,
[BiBTeX]
- Ten quick tips for teaching programming,
N.C.C. Brown and G. Wilson,
PLOS Computational Biology 14(4), 2018,
[BiBTeX]
- Frame-Based Editing,
M. Kölling, N.C.C. Brown and A. Altadmri,
Visual Languages and Sentient Systems, 2017,
[BiBTeX]
- Novice Java Programming Mistakes: Large-Scale Data vs. Educator Beliefs,
N.C.C. Brown and A. Altadmri,
ACM Transactions on Computing Education (TOCE), 2017,
[BiBTeX]
- Evaluation of a Frame-based Programming Editor,
T. Price, N.C.C. Brown, D. Lipovac, T. Barnes and M. Kölling,
International Computing Education Research (ICER) 2016,
[BiBTeX]
- The Cost of Syntax and How To Avoid It: Text versus Frame-Based Editing,
A. Altadmri, M. Kölling and N.C.C. Brown,
Computing Education & Learning Technologies (CELT) 2016,
[BiBTeX]
- Frame-Based Editing: Combining the Best of Blocks and Text Programming,
N.C.C. Brown, A. Altadmri and M. Kölling,
Learning and Teaching in Computing and Engineering (LaTiCE) 2016,
[BiBTeX]
- Panel: Future Directions of Block-based Programming,
N.C.C. Brown, J. Mönig, A. Bau and D. Weintrop,
Special Interest Group in Computer Science Education (SIGCSE) 2016.
[BiBTeX]
- Frame-Based Editing: Easing the Transition from Blocks to Text-Based Programming,
M. Kölling, N.C.C. Brown and A. Altadmri,
Workshop in Primary and Secondary Computing Education (WIPSCE) 2015,
[BiBTeX]
- Position Paper: Lack of Keyboard Support Cripples Block-Based Programming,
N.C.C. Brown, M. Kölling and A. Altadmri,
Blocks and Beyond workshop 2015.
[BiBTeX]
- 37 Million Compilations: Investigating Novice Programming Mistakes in Large-Scale Student Data,
A. Altadmri and N.C.C. Brown,
Special Interest Group in Computer Science Education (SIGCSE) 2015,
[BiBTeX]
- Investigating Novice Programming Mistakes: Educator Beliefs vs Student Data,
N.C.C. Brown and A. Altadmri,
International Computing Education Research (ICER) 2014,
[BiBTeX]
- Restart: The Resurgence of Computer Science in UK Schools,
N.C.C. Brown, S. Sentance, T. Crick and S. Humphreys,
ACM Transactions on Computing Education (TOCE), Vol 14 Issue 2, June 2014,
[BiBTeX]
- Blackbox: A Large Scale Repository of Novice Programmers' Activity,
N.C.C. Brown, M. Kölling, D. McCall and I.A. Utting,
Special Interest Group in Computer Science Education (SIGCSE) 2014,
[BiBTeX]
- A tale of three sites: resource and knowledge
sharing amongst computer science educators,
N.C.C. Brown and M. Kölling,
International Computing Education Research (ICER) 2013,
[BiBTeX]
- Bringing Computer Science Back Into Schools: Lessons
from the UK,
N.C.C. Brown, M. Kölling, T. Crick, S. Humphreys, S. Peyton Jones and
S. Sentance
Special Interest Group in Computer Science Education (SIGCSE)
2013,
[BiBTeX]
- Web-scale Data Gathering with BlueJ,
I.A. Utting, N.C.C. Brown, M. Kölling, D. McCall and P.L.C. Stevens,
International Computing Education Research (ICER)
2012,
[BiBTeX]
- Position Paper: Programming Can Deepen
Understanding Across Disciplines,
N.C.C. Brown and M. Kölling,
Addressing Educational Challenges: the role of ICT (AECRICT)
2012,
[BiBTeX]
- Communicating Haskell
Processes,
N.C.C. Brown,
PhD thesis, University of
Kent, UK, 2011.
- Combinators for Message-Passing in Haskell,
N.C.C. Brown,
Practical Aspects of Declarative Languages (PADL)
2011,
[BiBTeX]
- Repositories of Teaching Material and Communities of Use: Nifty
Assignments and the Greenroom,
S.A. Fincher, M. Kölling,
I.A. Utting, N.C.C. Brown and P.L.C. Stevens,
International Computing
Education Research (ICER) 2010,
[BiBTeX].
- Conjoined
Events,
N.C.C. Brown,
Advances in Message Passing (AMP)
2010.
- Alting barriers: synchronisation with choice in Java using
JCSP,
P.H. Welch, N.C.C. Brown, J. Moores, K. Chalmers and
B.H.C. Sputh,
Concurrency and Computation: Practice and Experience, 2010,
[BiBTeX].
- Relating and Visualising CSP, VCR and Structural
Traces,
N.C.C. Brown and M.L. Smith,
Communicating Process Architectures
2009
[BiBTeX].
- Auto-Mobiles: Optimised Message-Passing,
N.C.C. Brown,
Communicating Process Architectures 2009
[BiBTeX].
- Automatically Generating CSP Models for Communicating Haskell
Processes,
N.C.C. Brown,
Automated Verification of Critical
Systems 2009, proceedings published in: Electronic Communications of the EASST,
[BiBTeX].
- Alloy: Fast Generic Transformations for Haskell,
N.C.C. Brown
and A.T. Sampson,
Haskell Symposium 2009
[BiBTeX] [Video].
- Representation and Implementation of CSP and VCR
Traces,
N.C.C. Brown and M.L. Smith,
Communicating Process
Architectures 2008
[BiBTeX].
- Communicating Haskell Processes: Composable Explicit
Concurrency using Monads,
N.C.C. Brown,
Communicating Process
Architectures 2008
[BiBTeX].
- Matching and Modifying with
Generics,
N.C.C. Brown and A. T. Sampson,
Draft
Proceedings of Trends in Functional Programming
2008
[BiBTeX].
- C++CSP2: A Many-to-Many Threading Model for
Multicore Architectures,
N.C.C. Brown,
Communicating
Process Architectures 2007
[BiBTeX].
- Integrating and Extending JCSP,
P.H. Welch, N.C.C. Brown, J. Moores, K. Chalmers and
B.H.C. Sputh,
Communicating Process Architectures
2007
[BiBTeX].
- Rain VM: Portable Concurrency through
Managing Code,
N.C.C. Brown,
Communicating Process
Architectures 2006
[BiBTeX].
- Rain: A New Concurrent Process-Oriented
Programming Language,
N.C.C. Brown,
Communicating
Process Architectures 2006
[BiBTeX].
- C++CSP Networked,
N.C.C. Brown,
Communicating Process Architectures
2004
[BiBTeX].
- An Introduction to the Kent C++CSP
Library,
N.C.C. Brown and P.H. Welch,
Communicating
Process Architectures 2003
[BiBTeX].
Other Writings
- The InterleaveT Abstraction: Alternative with
Flexible Ordering
A long article explaining the InterleaveT
abstraction, with accompanying code release on Hackage as
the interleave
package. This article featured
in The Monad Reader
electronic magazine, issue 17, January 2011.
- Greenroom - A Teacher Community for
Collaborative Resource Development
An extended abstract for
a talk given by a co-author at ITiCSE 2010.
- How to Make a Process Invisible
An
extended abstract for a talk given at CPA 2008 on how to use conjunction and
extended communications to hide the presence of a process.
- A Trip Down Memory Lane in
Haskell
A brief, rejected (and fairly so) paper/experience report
on memory use in Haskell. I think a selection of quotes from the reviewers
covers it (I hope they do not mind me reproducing them here): "One of the
easiest papers on this subject to follow", "The paper provides little in way
of generally applicable insights or advice to programmers faced with the task
of optimising Haskell code", "I will say that I found it interesting reading,
but I'm not sure what lessons/principles/techniques it espouses", "The paper
would make an excellent blog post or Haskell wiki page, and would be a good
introduction for intermediate Haskell programmers to the difficulties of
profiling".