<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://felixvuo.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://felixvuo.github.io/" rel="alternate" type="text/html" /><updated>2026-05-12T01:52:38-07:00</updated><id>https://felixvuo.github.io/feed.xml</id><title type="html">Felix Ulrich-Oltean</title><subtitle>AI Research &amp; Education</subtitle><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><entry><title type="html">Going to Glasgow for CP 2025</title><link href="https://felixvuo.github.io/posts/2025/06/cp2025" rel="alternate" type="text/html" title="Going to Glasgow for CP 2025" /><published>2025-06-10T00:00:00-07:00</published><updated>2025-06-10T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2025/06/cp-glasgow</id><content type="html" xml:base="https://felixvuo.github.io/posts/2025/06/cp2025"><![CDATA[<p><img src="/images/thumb-cp2025.png" style="float:right; padding:1ex;" />Glasgow,
here we come!  It was very exciting to be a co-author on two papers accepted to
CP2025 in Glasgow.  One paper presents a constraint model used by the <a href="https://www.eso.org">European
Southern Observatory</a> to schedule observations on its <a href="https://www.eso.org/public/teles-instr/paranal-observatory/vlt/">very
large
telescope</a>
system.  The other paper uses the Klondike solitaire game to showcase some
modelling techniques and some CP-based algorithm scheduling approaches.</p>

<p>Here is the list of all <a href="https://cp2025.a4cp.org/accepted_papers.html">accepted
papers</a>.</p>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="constraint programming" /><category term="publications" /><category term="conferences" /><summary type="html"><![CDATA[Glasgow, here we come! It was very exciting to be a co-author on two papers accepted to CP2025 in Glasgow. One paper presents a constraint model used by the European Southern Observatory to schedule observations on its very large telescope system. The other paper uses the Klondike solitaire game to showcase some modelling techniques and some CP-based algorithm scheduling approaches.]]></summary></entry><entry><title type="html">Fun with LinkedIn Queens and Constraints</title><link href="https://felixvuo.github.io/posts/2024/11/cp-queens" rel="alternate" type="text/html" title="Fun with LinkedIn Queens and Constraints" /><published>2024-11-30T00:00:00-08:00</published><updated>2024-11-30T00:00:00-08:00</updated><id>https://felixvuo.github.io/posts/2024/11/cp-queens</id><content type="html" xml:base="https://felixvuo.github.io/posts/2024/11/cp-queens"><![CDATA[<p><img src="/images/thumb-li-queens.png" style="float:right; padding:1ex;" />I’ve enjoyed solving the
<a href="https://www.linkedin.com/games/queens/">LinkedIn Queens</a> puzzle most mornings since they introduced
it earlier this year.  The problem requires the player to place the queens on a board according to a
very brief set of constraints (or <em>rules</em>).  For a bit of fun, I wanted to solve the puzzle
automatically (or as close as possible) using constraint programming.</p>

<p>Here’s a very rough screencast of the resulting program, which takes a screenshot of the board,
figures out the colours in order to formulate a constraint satisfaction problem (CSP), then solves
it:</p>

<video controls="true" style="max-width:100%; margin: 0 auto;">
  <source src="/images/li-queens-demo.mp4" type="video/mp4" />
</video>

<h2 id="how-does-it-work">How Does it Work?</h2>
<p>Let’s look at this backwards.  Once we have a particular problem definition, it’s really simple to
solve it using a constraint solver.  The problem can be defined in a constraint modelling language.</p>

<h3 id="modelling-the-problem">Modelling the Problem</h3>
<p>There are many ways to describe (or model) this problem.  The problem states that <em>n</em> queens should
be placed on an <em>n</em> by <em>n</em> board so that no two queens are in the same row, column, or are
immediately adjacent diagonally.  Here’s a constraint model written in Essence Prime:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ how big is the board?
given n : int

$ define the domain of the decision variables
letting N be domain int(1..n)

$ what is the colour of each square?
given board : matrix indexed by [N,N] of int(0..n-1)

$ in the solution queens are represented by a column id per row
find q : matrix indexed by [N] of N

$ now we define our constraints
such that

$ each queen has to be in a separate column
alldifferent(q),

$ can't be diagonally adjacent
forall r : int(1..n-1) . |q[r] - q[r+1]| &gt; 1,

$ one queen per colour
forall r1 : int(1..n-1) .
  forall r2 : int(r1+1..n) .
    board[r1,q[r1]] != board[r2,q[r2]]
</code></pre></div></div>

<p>The model above describes the entire class of LI Queens puzzles.  In order to solve one particular
instance, we need to supply the parameters.  Here’s an Essence Prime parameter file for the board
shown at the top of the post - each colour is represented by a different number (0-10 for 11
colours).</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>letting n = 11
letting board=[
[6,  6,  6,  6,  6,  6,  5,  5,  5,  5,  5], 
[6, 10, 10, 10, 10, 10, 10, 10,  5, 10, 10], 
[6,  6,  6, 10,  0,  0,  0, 10,  5, 10,  3], 
[6, 10, 10, 10,  0, 10,  4, 10, 10, 10,  3], 
[2, 10,  0,  0,  0, 10,  4,  4,  3,  3,  3], 
[2, 10, 10, 10, 10, 10, 10, 10,  3, 10,  3], 
[2,  2,  2,  8,  8, 10,  9,  9,  9, 10,  3], 
[2, 10,  2, 10,  8, 10, 10, 10,  9, 10,  3],  
[2, 10,  2, 10,  8, 10,  7, 10,  9, 10,  1], 
[2, 10, 10, 10, 10, 10,  7, 10, 10, 10,  1], 
[2, 10,  7,  7,  7,  7,  7,  1,  1,  1,  1]
]
</code></pre></div></div>

<p>Solving the problem is as simple as running a constraint solver, such as Savile Row, with the model
and parameter files:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>savilerow -run-solver li-queens.eprime board.param
</code></pre></div></div>
<p>We get a solution file which contains the assignment of a queen’s column for each row:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>letting q be [8, 1, 5, 7, 10, 2, 4, 9, 3, 11, 6]
</code></pre></div></div>

<h3 id="extracting-the-problem-from-a-screenshot">Extracting the Problem from a Screenshot</h3>

<p>In order to define a game board, we essentially need to work out the dimensions of the board and the
colour of each cell.  There are many ways to try to do this (some interesting ML approaches will
exist), but I came up with the following method, given in python-ish pseudocode below, which tries
to figure out the actual colours used in the puzzle, and hence the size of the board (each queen
occupies a different colour zone, so the number of colours equals the width of the board).</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">learnPalette</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">n_starts</span><span class="p">,</span> <span class="n">n_neighb</span><span class="p">,</span> <span class="n">dist_neighb</span><span class="p">,</span> <span class="n">same_col_threshold</span><span class="p">):</span>
    <span class="s">"""Find the unique game colours from an image of a board"""</span>
    <span class="n">keep</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
    <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_starts</span><span class="p">):</span>
        <span class="n">homepix</span> <span class="o">=</span> <span class="n">select_random_starting_pixel</span><span class="p">(</span><span class="n">image</span><span class="p">)</span>
        <span class="n">homecol</span> <span class="o">=</span> <span class="n">colour_at</span><span class="p">(</span><span class="n">homepix</span><span class="p">)</span>
        <span class="k">if</span> <span class="n">close_to_black_or_white</span><span class="p">(</span><span class="n">homecol</span><span class="p">):</span> <span class="c1"># this is either a gridline or the white border
</span>            <span class="k">continue</span> <span class="c1"># to next iteration, choosing a different starting pixel
</span>        <span class="n">good</span> <span class="o">=</span> <span class="bp">True</span>
        <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n_neighb</span><span class="p">):</span>
            <span class="n">newpix</span> <span class="o">=</span> <span class="n">select_random_neighbour</span><span class="p">(</span><span class="n">image</span><span class="p">,</span> <span class="n">homepix</span><span class="p">,</span> <span class="n">dist_neighb</span><span class="p">)</span>
            <span class="n">newcol</span> <span class="o">=</span> <span class="n">colour_at</span><span class="p">(</span><span class="n">newpix</span><span class="p">)</span>
            <span class="k">if</span> <span class="n">newcol</span> <span class="o">!=</span> <span class="n">homecol</span><span class="p">:</span>
                <span class="n">good</span> <span class="o">=</span> <span class="bp">False</span>
                <span class="k">break</span>
        <span class="k">if</span> <span class="n">good</span><span class="p">:</span> <span class="c1"># all neighbours had the same colour
</span>            <span class="n">keep</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">homecol</span><span class="p">)</span>
    <span class="c1"># mark as a duplicate any colour which is close enough to another colour
</span>    <span class="n">dupes</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span>
    <span class="k">for</span> <span class="p">(</span><span class="n">col_a</span><span class="p">,</span> <span class="n">col_b</span><span class="p">)</span> <span class="ow">in</span> <span class="n">keep</span><span class="p">.</span><span class="n">combinations</span><span class="p">(</span><span class="n">n</span><span class="o">=</span><span class="mi">2</span><span class="p">):</span>
        <span class="k">if</span> <span class="n">nearly_same</span><span class="p">(</span><span class="n">col_a</span><span class="p">,</span> <span class="n">col_b</span><span class="p">,</span> <span class="n">same_col_threshold</span><span class="p">):</span>
            <span class="n">dupes</span><span class="p">.</span><span class="n">add</span><span class="p">(</span><span class="n">col_b</span><span class="p">)</span>
    <span class="k">return</span> <span class="n">keep</span> <span class="o">-</span> <span class="n">dupes</span>
</code></pre></div></div>

<p>And that’s it.  If you want the full details I have the complete code <a href="https://github.com/felixvuo/li-queens">in
github</a> - the repository has both the essence prime files and
an implementation which uses <a href="https://developers.google.com/optimization">Google’s OR-tools</a> because
the latter is easier to install into a python notebook, although the modelling is less
reader-friendly.</p>

<h2 id="why-this-post">Why this post?</h2>
<p>I believe that constraint programming and related search and optimisation techniques are an untapped
tool that many organisations are unaware of.  The big players use them all over the place, e.g. in
working out your best route on a map app, or working out compatible dependencies in a software
package manager.</p>

<p>For more information, check out:</p>
<ul>
  <li><a href="https://www.csplib.org/">CSP Lib</a>, a library of constraint satisfaction and optimisation problems
from a variety of fields</li>
  <li><a href="https://www.coursera.org/learn/discrete-optimization/">Coursera Course on Discrete Optimisation</a>,
an excellent introduction to various optimisation approaches, including constraint programming,
local search and mixed integer linear programming</li>
  <li><a href="https://developers.google.com/optimization">OR-tools</a>, Google’s suite of optimisation solutions.</li>
</ul>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="constraint programming" /><summary type="html"><![CDATA[I’ve enjoyed solving the LinkedIn Queens puzzle most mornings since they introduced it earlier this year. The problem requires the player to place the queens on a board according to a very brief set of constraints (or rules). For a bit of fun, I wanted to solve the puzzle automatically (or as close as possible) using constraint programming.]]></summary></entry><entry><title type="html">PhD Graduation Ceremony</title><link href="https://felixvuo.github.io/posts/2024/07/graduation/" rel="alternate" type="text/html" title="PhD Graduation Ceremony" /><published>2024-07-29T00:00:00-07:00</published><updated>2024-07-29T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2024/07/graduation</id><content type="html" xml:base="https://felixvuo.github.io/posts/2024/07/graduation/"><![CDATA[<p><img src="/images/thumb-grad-gown.png" style="float:right;padding:1ex;" />It
was a wonderful occasion to reflect on and celebrate the PhD experience with
colleagues at a very special graduation ceremony organised by the University of
York.  Having missed my original BSc graduation back in 2000, it was great to
finally wear the gown and receive the award on stage.  I will always be grateful
to all those people who made it possible for me to enage in these years of
study, training and research.</p>

<p>I’m thankful to the University of York alumni organisation, “York for Life”,
which organised for a clip of the moment to be freely available to graduands.</p>

<video controls="true" style="max-width:100%; margin: 0 auto;">
  <source src="/images/grad-clip.mp4" type="video/mp4" />
</video>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="career" /><summary type="html"><![CDATA[It was a wonderful occasion to reflect on and celebrate the PhD experience with colleagues at a very special graduation ceremony organised by the University of York. Having missed my original BSc graduation back in 2000, it was great to finally wear the gown and receive the award on stage. I will always be grateful to all those people who made it possible for me to enage in these years of study, training and research.]]></summary></entry><entry><title type="html">PhD Thesis Published</title><link href="https://felixvuo.github.io/posts/2024/03/thesis-published/" rel="alternate" type="text/html" title="PhD Thesis Published" /><published>2024-03-22T00:00:00-07:00</published><updated>2024-03-22T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2024/03/thesis-published</id><content type="html" xml:base="https://felixvuo.github.io/posts/2024/03/thesis-published/"><![CDATA[<p><img alt="front cover of PhD thesis" src="/images/thumb-thesis.png" style="float:right; padding:1ex;" />After minor corrections, my thesis
dissertation was approved and is now live at the <a href="https://etheses.whiterose.ac.uk/34581/">White Rose E-theses
Repository</a>.  This completes a very
eventful, challenging and rewarding 5 years since stepping out of my career as a
school teacher to pursue a long-held ambition to learn more and engage in
cutting edge research.  I am very grateful to my supervisors for all their help
and to my family for all their support.</p>

<p>Here’s the abstract:</p>
<blockquote>
  <p>Constraint programming addresses many interesting and challenging problems in
our world, including recent applications to contexts as diverse as allocating
refugee relief funds, short-term mine planning and hardware circuit
design. Users define their problems in high-level modelling languages which
include descriptive global constraints. One of the most effective ways to solve
constraint satisfaction problems (CSPs) is by translating them into instances of
the Boolean Satisfiability Problem (SAT). For some global constraints in CSPs
there exist many algorithms which encode the constraint into SAT; choosing an
appropriate SAT encoding can alter the ultimate solving time dramatically. We
investigate the problem of selecting the best SAT encoding for pseudo-Boolean
and linear integer constraints. Many machine learning techniques are explored,
applied and evaluated to aid this selection. The result is a significant
improvement in performance compared to the default choice and to the single best
choice from a training set. The approach is successful even for previously
unseen problem classes and it greatly outperforms a sophisticated general
algorithm selection and configuration tool. This work provides a thorough
empirical study and detailed analysis of each stage in the machine learning
process as applied to choosing SAT encodings. It does this in three phases:
firstly by using generic CSP instance features to select an encoding per
constraint type for each instance, then by introducing new features which focus
on the constraint types in question, and finally by learning to select encodings
for individual constraints. We find that even generic instance features can
produce good predictions, but that the specialised features introduced give more
robust performance especially when predicting for unseen problem
classes. Training to predict per constraint shows potential and leads to better
performance for some problem classes, but per-instance selection is still
competitive across the corpus of problems as a whole.</p>
</blockquote>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="career" /><category term="publications" /><summary type="html"><![CDATA[After minor corrections, my thesis dissertation was approved and is now live at the White Rose E-theses Repository. This completes a very eventful, challenging and rewarding 5 years since stepping out of my career as a school teacher to pursue a long-held ambition to learn more and engage in cutting edge research. I am very grateful to my supervisors for all their help and to my family for all their support.]]></summary></entry><entry><title type="html">Teaching on AI Course</title><link href="https://felixvuo.github.io/posts/2024/02/teaching-aips/" rel="alternate" type="text/html" title="Teaching on AI Course" /><published>2024-02-14T00:00:00-08:00</published><updated>2024-02-14T00:00:00-08:00</updated><id>https://felixvuo.github.io/posts/2024/02/teaching-aips</id><content type="html" xml:base="https://felixvuo.github.io/posts/2024/02/teaching-aips/"><![CDATA[<p><img src="/images/thumb-aips.png" style="float:right; padding: 1ex;" />I’m
getting the chance to be back at the front of a class!  I’ve been employed as a
part-time lecturer, in order to teach part of a Masters level course on <em>AI:
Problem Solving with Search</em> here at the University of York.  I will be
co-teaching with the module leader, and it involves everything from writing
lectures, labs and quizzes to setting, marking and moderating the exams.</p>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="career" /><category term="publications" /><summary type="html"><![CDATA[I’m getting the chance to be back at the front of a class! I’ve been employed as a part-time lecturer, in order to teach part of a Masters level course on AI: Problem Solving with Search here at the University of York. I will be co-teaching with the module leader, and it involves everything from writing lectures, labs and quizzes to setting, marking and moderating the exams.]]></summary></entry><entry><title type="html">First First-author Journal Article</title><link href="https://felixvuo.github.io/posts/2023/11/first-jrn-art/" rel="alternate" type="text/html" title="First First-author Journal Article" /><published>2023-11-02T00:00:00-07:00</published><updated>2023-11-02T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2023/11/first-jrn-art</id><content type="html" xml:base="https://felixvuo.github.io/posts/2023/11/first-jrn-art/"><![CDATA[<p><img src="/images/thumb-cons-jnl.png" style="float:right; padding: 1ex;" />Our
paper <a href="https://doi.org/10.1007/s10601-023-09364-1">Learning to select SAT Encodings for pseudo-Boolean and linear integer
constraints</a> has now been published
in the Constraints journal.  This paper was an extended version of the work
presented at CP2022, with more encodings, more analysis and the first detailed
description of Savile Row’s Tree SAT encoding.</p>

<p>The expanded results, models and code are now at
<a href="https://github.com/felixvuo/lease-data">https://github.com/felixvuo/lease-data</a></p>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="career" /><category term="publications" /><summary type="html"><![CDATA[Our paper Learning to select SAT Encodings for pseudo-Boolean and linear integer constraints has now been published in the Constraints journal. This paper was an extended version of the work presented at CP2022, with more encodings, more analysis and the first detailed description of Savile Row’s Tree SAT encoding.]]></summary></entry><entry><title type="html">PhD Thesis Submitted</title><link href="https://felixvuo.github.io/posts/2023/09/thesis-submitted/" rel="alternate" type="text/html" title="PhD Thesis Submitted" /><published>2023-09-29T00:00:00-07:00</published><updated>2023-09-29T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2023/09/thesis-submitted</id><content type="html" xml:base="https://felixvuo.github.io/posts/2023/09/thesis-submitted/"><![CDATA[<p>Four eventful years after stepping out of school as a teacher back into
university as a student I submitted by PhD Thesis on the topic of <em>Learning SAT
Encodings for Constraint Satisfaction Problems</em>.  What a relief!  I’m looking
forward to picking up some of the research projects which were on hold while the
write-up was completed.  And of course awaiting the viva!</p>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="career" /><category term="phd" /><summary type="html"><![CDATA[Four eventful years after stepping out of school as a teacher back into university as a student I submitted by PhD Thesis on the topic of Learning SAT Encodings for Constraint Satisfaction Problems. What a relief! I’m looking forward to picking up some of the research projects which were on hold while the write-up was completed. And of course awaiting the viva!]]></summary></entry><entry><title type="html">GTA of the Year Award</title><link href="https://felixvuo.github.io/posts/2021/06/gta-oty/" rel="alternate" type="text/html" title="GTA of the Year Award" /><published>2021-06-25T00:00:00-07:00</published><updated>2021-06-25T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2021/06/gtaoty</id><content type="html" xml:base="https://felixvuo.github.io/posts/2021/06/gta-oty/"><![CDATA[<p><img src="/images/thumb-gta-award.png" style="float:right;padding:1ex;" />I was
very honoured to receive the “Graduate Teaching Assistant of the Year” award
after “GTA-ing” in a number of contexts, both in-person and remotely during the
pandemic.</p>

<p>Using my experience as a high-school maths teacher, I worked one-to-one (over
Zoom) with a few year 1 undergraduate students who had missed maths teaching due
to the pandemic, and needed a bit of help with some of the mathematical aspects
of the year 1 theory courses.  I also led some lab sessions remotely for a Data
Science module.  In these sessions I helped students reflect on their attempts
to apply various data manipulation and analysis techniques to a variety of
scenarios.</p>

<p><a href="https://twitter.com/UoY_CS/status/1408441043838775301">Here was the Twitter post confirming the
announcement</a></p>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="career" /><category term="teaching" /><summary type="html"><![CDATA[I was very honoured to receive the “Graduate Teaching Assistant of the Year” award after “GTA-ing” in a number of contexts, both in-person and remotely during the pandemic.]]></summary></entry><entry><title type="html">The Bookshelves Problem</title><link href="https://felixvuo.github.io/posts/2021/06/gta-oty/" rel="alternate" type="text/html" title="The Bookshelves Problem" /><published>2021-06-25T00:00:00-07:00</published><updated>2021-06-25T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2021/06/bookshelves</id><content type="html" xml:base="https://felixvuo.github.io/posts/2021/06/gta-oty/"><![CDATA[<p><img src="/images/thumb-shelves.png" style="float:right;padding:1ex;" />It was
good fun to submit an optimisation problem to the <a href="https://csplib.org">CSPLib</a>
web site.  This was a real-life problem (or opportunity?) to use some discarded
planks of wood to build a set of bookshelves.  The idea was to create some
bookshelves which would accommodate books of a mininum height and would maximise
the shelf space given the collection of planks I was left with.</p>

<p>It started with <a href="https://twitter.com/FelixVuo/status/1343913107966603264">this
tweet</a>.  The full
problem specification, and model files are available in the <a href="https://www.csplib.org/Problems/prob085/">CSPLib
entry</a>.</p>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="constraint programming" /><category term="problem solving" /><summary type="html"><![CDATA[It was good fun to submit an optimisation problem to the CSPLib web site. This was a real-life problem (or opportunity?) to use some discarded planks of wood to build a set of bookshelves. The idea was to create some bookshelves which would accommodate books of a mininum height and would maximise the shelf space given the collection of planks I was left with.]]></summary></entry><entry><title type="html">YPAD leading to Associate Fellowship of the HEA</title><link href="https://felixvuo.github.io/posts/2021/10/ypad-hea/" rel="alternate" type="text/html" title="YPAD leading to Associate Fellowship of the HEA" /><published>2021-06-25T00:00:00-07:00</published><updated>2021-06-25T00:00:00-07:00</updated><id>https://felixvuo.github.io/posts/2021/10/hea</id><content type="html" xml:base="https://felixvuo.github.io/posts/2021/10/ypad-hea/"><![CDATA[<p><img src="/images/thumb-heacert.png" style="float:right;padding:1ex;" />After
completing the <a href="https://www.york.ac.uk/staff/teaching/develop/ypad/">York Professional and Academic Development scheme
(YPAD)</a> and submitting a
report of my teaching-related experience I was awarded Associate Fellowship of
the Higher Education Academy.  As part of my report I carried out a brief
investigation into using summative assessment results to inform teaching and
assessment in the next cohort.  Per-question breakdown of the marks allows some
rudimentary statistical analysis which can shed light on how questions could be
improved or which concepts and skills might be particularly difficult for
students.</p>]]></content><author><name>Felix Ulrich-Oltean</name><uri>https://www.cs.york.ac.uk/people/felix</uri></author><category term="career" /><category term="teaching" /><summary type="html"><![CDATA[After completing the York Professional and Academic Development scheme (YPAD) and submitting a report of my teaching-related experience I was awarded Associate Fellowship of the Higher Education Academy. As part of my report I carried out a brief investigation into using summative assessment results to inform teaching and assessment in the next cohort. Per-question breakdown of the marks allows some rudimentary statistical analysis which can shed light on how questions could be improved or which concepts and skills might be particularly difficult for students.]]></summary></entry></feed>