<?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="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2026-04-13T20:08:08+00:00</updated><id>/feed.xml</id><title type="html">Anya E. Vostinar</title><subtitle>The homepage of Prof. Anya E. Vostinar. I teach computer science and research the evolution of  symbiosis using digital evolution and agent-based modeling. I wrote the Symbulation platform.</subtitle><entry><title type="html">SymbuLab Grad in the News! + Paper!</title><link href="/research/2023/08/23/grads-news.html" rel="alternate" type="text/html" title="SymbuLab Grad in the News! + Paper!" /><published>2023-08-23T13:00:00+00:00</published><updated>2023-08-23T13:00:00+00:00</updated><id>/research/2023/08/23/grads-news</id><content type="html" xml:base="/research/2023/08/23/grads-news.html"><![CDATA[<p>A couple of announcements to get onto the web!</p>

<ul>
  <li>
    <p>Piper Welch did <a href="https://anyaevostinar.github.io/research/symbulation/2022/04/28/accepted-pubs.html">fantastic work</a> in the SymbuLab, graduated from Carleton College in 2022, and is now at The University of Vermont working with Josh Bongard on Xenobots. Her graduate work has been featured by UVM: <a href="https://www.uvm.edu/news/ovpr/redesigning-evolution-one-robot-time">Redesigning Evolution, One Robot at a Time</a>.</p>
  </li>
  <li>
    <p>A short paper from the lab was published at ALIFE 2023: <a href="https://direct.mit.edu/isal/proceedings/isal/35/57/116926">Evolution of symbiotic task-based digital genomes: ectosymbiosis hastens the evolution of endosymbiosis</a></p>
  </li>
</ul>]]></content><author><name></name></author><category term="Research" /><summary type="html"><![CDATA[A couple of announcements to get onto the web!]]></summary></entry><entry><title type="html">Artificial Life Reading List</title><link href="/teaching/2022/06/17/alife-reading.html" rel="alternate" type="text/html" title="Artificial Life Reading List" /><published>2022-06-17T13:00:00+00:00</published><updated>2022-06-17T13:00:00+00:00</updated><id>/teaching/2022/06/17/alife-reading</id><content type="html" xml:base="/teaching/2022/06/17/alife-reading.html"><![CDATA[<p>A few months ago, my friend and colleague <a href="https://www.carleton.edu/directory/bmccorkle/">Brooke McCorkle Okazaki</a> floated the idea that we co-teach a reading-intensive class that used sci-fi to investigate humanistic themes at the core of artificial life and artificial intelligence. 
I had been already starting to collect sci-fi books that touched on artificial life concepts and enthusiastically agreed to put together an example reading list for a potential class. 
It’s not actually decided whether we will be able to do the class, but in pulling together the reading list, I asked many friends about ideas and got back many requests for the full list, so here it is!</p>

<p>Since this is for a potential class, we have it broken out into weeks with each week having a theme that would be explored and discussed together. We also aimed to have the pages assigned be roughly even each week, keeping in mind that some of the text is denser than others.
Since Brooke is a huge Star Trek fan (and I’m a new one), there are also several Star Trek episodes included!</p>

<h2 id="week-1-what-is-artificial-life-and-intelligence-and-why-does-it-matter">Week 1: What is Artificial Life and Intelligence and Why Does It Matter?</h2>

<h3 id="readings">Readings:</h3>
<ul>
  <li>Taylor, Tim, and Alan Dorin. Rise of the Self-Replicators: Early Visions of Machines, AI and Robots That Can Reproduce and Evolve. Cham: Springer International Publishing AG, 2020.
    <ul>
      <li>Pages: 1-55; 113-122 (other sections recommended but not required)</li>
    </ul>
  </li>
  <li>Bisson, Terry. “They’re Made Out of Meat.” Free Inquiry. Vol. 20. Buffalo: Council for Democratic and Secular Humanism, Inc, 2000.</li>
</ul>

<h2 id="week-2-al-ai-and-challenging-exoticism">Week 2: AL, AI, and Challenging Exoticism</h2>
<h3 id="readings-1">Readings:</h3>
<ul>
  <li>
    <p>Gibson, William. Neuromancer. New York: Ace Books, 1994 [1984].
Tezuka, Osamu. Astro Boy. 1st edition. Translated by Frederik L.</p>
  </li>
  <li>
    <p>Schodt. Milwaukie, OR: Dark Horse Comics, 2002 [1952].</p>
  </li>
</ul>

<h3 id="viewing">Viewing:</h3>
<ul>
  <li>Blade Runner, directed by Ridley Scott, (Burbank, CA: Warner Home Video, 1982).</li>
</ul>

<h2 id="week-3-are-androids-human">Week 3: Are Androids Human?</h2>
<h3 id="readings-2">Readings:</h3>
<ul>
  <li>Chambers, Becky. A Closed and Common Orbit. New York: Harper Voyager, 2017.</li>
</ul>

<h3 id="viewing-1">Viewing:</h3>
<ul>
  <li>Star Trek: The Next Generation, season 2, episode 9, “Measure of a Man,” directed by Robert Scheerer, aired February 13, 1989.</li>
</ul>

<h2 id="week-4-is-it-alive">Week 4: Is it Alive?</h2>
<h3 id="readings-3">Readings:</h3>
<ul>
  <li>Weir, Andy. Project Hail Mary: A Novel. New York: Random House Publishing Group, 2021.</li>
</ul>

<h3 id="viewing-2">Viewing:</h3>
<ul>
  <li>
    <p>Star Trek: The Next Generation, season 1, episode 18, “Home Soil” directed by Corey Allen, aired February 22, 1988.</p>
  </li>
  <li>
    <p>Star Trek, season 1, episode 25, “Devil in the Dark” directed by Joseph Pevney, aired March 9, 1967.</p>
  </li>
</ul>

<h2 id="week-5-when-machines-become-dangerous-part-1">Week 5: When Machines Become Dangerous part 1</h2>
<h3 id="readings-4">Readings:</h3>
<ul>
  <li>
    <p>Shelley, Mary Wollstonecraft. Frankenstein. United States: [CreateSpace Independent Publishing Platform], 2016 [1818].</p>
  </li>
  <li>
    <p>Wells, Martha. All Systems Red The Murderbot Diaries, Book 1. New York: Tor.com, 2017.</p>
  </li>
</ul>

<h2 id="week-6-when-machines-become-dangerous-part-2">Week 6: When Machines Become Dangerous part 2</h2>
<h3 id="readings-5">Readings:</h3>
<ul>
  <li>
    <p>Asimov, Isaac. I, Robot. New York: Bantam Books, 2004 [1950].</p>
  </li>
  <li>
    <p>Clarke, Arthur C. 2001, a Space Odyssey: with an Epilogue: After 2001. New York: New American Library, 1982 [1968].</p>
  </li>
</ul>

<h3 id="viewing-3">Viewing:</h3>
<ul>
  <li>Star Trek: The Motion Picture, directed by Robert Wise (Hollywood, CA: Paramount Pictures, 1979).</li>
</ul>

<h2 id="week-7-what-makes-an-individual">Week 7: What Makes an Individual?</h2>
<h3 id="readings-6">Readings:</h3>
<ul>
  <li>
    <p>Butler, Octavia E. “Amnesty.” Callaloo 27, no. 3 (2004): 597–615.</p>
  </li>
  <li>
    <p>Leckie, Ann. Ancillary Justice. New York: Orbit, 2013.</p>
  </li>
</ul>

<h3 id="viewing-4">Viewing:</h3>
<ul>
  <li>Star Trek: Short Treks, “Calypso,” directed by Olatunde Osunsanmi, aired November 8, 2018.</li>
</ul>

<h2 id="week-8-what-makes-us-human">Week 8: What Makes Us Human?</h2>
<h3 id="readings-7">Readings:</h3>
<ul>
  <li>
    <p>Butler, Octavia E. Dawn : Xenogenesis. New York, N.Y: Warner Books, 1987.</p>
  </li>
  <li>
    <p>Tchaikovsky, Adrian. Children of Time. New York, NY: Orbit, 2018.</p>
    <ul>
      <li>Pages: 1-149</li>
    </ul>
  </li>
</ul>

<h2 id="week-9-artificial-vs-natural">Week 9: Artificial vs. Natural?</h2>
<h3 id="readings-8">Readings:</h3>
<ul>
  <li>Tchaikovsky, Adrian. Children of Time. New York, NY: Orbit, 2018.
    <ul>
      <li>Pages: 150-600</li>
    </ul>
  </li>
</ul>

<h2 id="week-10-robot-besties">Week 10: Robot Besties?</h2>
<h3 id="readings-9">Readings:</h3>
<ul>
  <li>
    <p>Chiang, Ted, and Christian Pearce. The Lifecycle of Software Objects. Burton, MI: Subterranean Press, 2010.</p>
  </li>
  <li>
    <p>Ishiguro, Kazuo. Klara and the Sun. New York: Alfred A. Knopf, 2021.</p>
  </li>
</ul>]]></content><author><name></name></author><category term="Teaching" /><summary type="html"><![CDATA[A few months ago, my friend and colleague Brooke McCorkle Okazaki floated the idea that we co-teach a reading-intensive class that used sci-fi to investigate humanistic themes at the core of artificial life and artificial intelligence. I had been already starting to collect sci-fi books that touched on artificial life concepts and enthusiastically agreed to put together an example reading list for a potential class. It’s not actually decided whether we will be able to do the class, but in pulling together the reading list, I asked many friends about ideas and got back many requests for the full list, so here it is!]]></summary></entry><entry><title type="html">Testing Out Pyscript</title><link href="/teaching/2022/05/01/pyscript.html" rel="alternate" type="text/html" title="Testing Out Pyscript" /><published>2022-05-01T16:00:00+00:00</published><updated>2022-05-01T16:00:00+00:00</updated><id>/teaching/2022/05/01/pyscript</id><content type="html" xml:base="/teaching/2022/05/01/pyscript.html"><![CDATA[<p>For a few months (ever since I started teaching Intro to CS in Python), I’ve been looking for the easiest way to get brand new students practicing with writing Python as quickly as possible. 
I soon was convinced that being able to run Python code in the browser was what I really wanted (since trying to support all of them getting set up with their own machines takes a while). 
While there are great websites out there that <a href="https://pythontutor.com/visualize.html#mode=edit">let you run Python in the browser</a>, they all require that I send students to that third-party site, which is an extra step that I chafed at. 
I felt like there had to be an easy way to give them a space to try things out right on this website (since I send them here for readings and labs anyway), but I couldn’t find quite what I was looking for.</p>

<p>The fabulous <a href="https://alackles.github.io/">Acacia Ackles</a> has just solved my problem and I’m ecstatic.
<a href="https://pyscript.net/">PyScript</a> makes it so blissfully easy to put a Python REPL anywhere that JavaScript is supported, and it’s going to open up a whole world of possibility for next year!</p>

<p>I just had to add one JavaScript include line and now I can do this:</p>

<script type="module" src="https://pyscript.net/releases/2025.11.2/core.js"></script>

<p>Try printing <code class="language-plaintext highlighter-rouge">test</code>:</p>
<py-repl id="my-repl"> 
test=2
print(test)
</py-repl>

<p>That just looks like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;py-repl id="my-repl"&gt; 
test=2
print(test)
&lt;/py-repl&gt;
</code></pre></div></div>

<p>Bliss!</p>]]></content><author><name></name></author><category term="Teaching" /><summary type="html"><![CDATA[For a few months (ever since I started teaching Intro to CS in Python), I’ve been looking for the easiest way to get brand new students practicing with writing Python as quickly as possible. I soon was convinced that being able to run Python code in the browser was what I really wanted (since trying to support all of them getting set up with their own machines takes a while). While there are great websites out there that let you run Python in the browser, they all require that I send students to that third-party site, which is an extra step that I chafed at. I felt like there had to be an easy way to give them a space to try things out right on this website (since I send them here for readings and labs anyway), but I couldn’t find quite what I was looking for.]]></summary></entry><entry><title type="html">2022 ALIFE Conference Accepted Publications</title><link href="/research/symbulation/2022/04/28/accepted-pubs.html" rel="alternate" type="text/html" title="2022 ALIFE Conference Accepted Publications" /><published>2022-04-28T20:00:00+00:00</published><updated>2022-04-28T20:00:00+00:00</updated><id>/research/symbulation/2022/04/28/accepted-pubs</id><content type="html" xml:base="/research/symbulation/2022/04/28/accepted-pubs.html"><![CDATA[<p>The SymbuLab has had a very successful ALIFE conference submission process! 
We have FOUR accepted publications directly from the lab and one from the awesome <a href="https://ecodelab.com/">ECODE Lab</a> using Symbulation; I’m honestly blown away by the awesome work of my students and collaborators!</p>

<p>Here is a list of the preprints for the papers that have them:</p>
<ul>
  <li><a href="https://ecoevorxiv.org/3qcwk/">Keep Your Frenemies Closer: Bacteriophage That Benefit Their Hosts Evolve to be More Temperate</a></li>
  <li><a href="https://ecoevorxiv.org/yzce3/">Endosymbiosis or Bust: Influence of Ectosymbiosis on Evolution of Obligate Endosymbiosis</a></li>
  <li><a href="https://ecoevorxiv.org/7yskd/">Dirty Transmission Hypothesis: Increased Mutations During Horizontal Transmission Can Select for Increased Levels of Mutualism in Endosymbionts</a></li>
  <li>Extended abstract of <a href="https://www.frontiersin.org/articles/10.3389/fevo.2021.739047/full">Symbiosis in Digital Evolution: Past, Present, and Future</a></li>
</ul>

<p>We’ll also be leading a <a href="https://symbulation.readthedocs.io/en/latest/ALIFE2022Tutorial/index.html">tutorial at the 2022 ALIFE Conference on using Symbulation</a>.
I’m very excited for what promises to be a fun (though exhausting conference); looking forward to summer!</p>]]></content><author><name></name></author><category term="Research" /><category term="Symbulation" /><summary type="html"><![CDATA[The SymbuLab has had a very successful ALIFE conference submission process! We have FOUR accepted publications directly from the lab and one from the awesome ECODE Lab using Symbulation; I’m honestly blown away by the awesome work of my students and collaborators!]]></summary></entry><entry><title type="html">2022 ISAL Awards Eligible List</title><link href="/isal/2022/04/12/new-isal-list.html" rel="alternate" type="text/html" title="2022 ISAL Awards Eligible List" /><published>2022-04-12T15:00:00+00:00</published><updated>2022-04-12T15:00:00+00:00</updated><id>/isal/2022/04/12/new-isal-list</id><content type="html" xml:base="/isal/2022/04/12/new-isal-list.html"><![CDATA[<p>In my continuing quest to make the <a href="https://alife.org/">International Society for Artificial Life</a> as awesome as possible, you may recall that I made a <a href="/isal/2021/09/26/awards-list">totally unofficial spreadsheet</a> for keeping track of eligible people and project. My thinking at the time was that, even if I was the only one to use it, it would be super helpful for me to actually submit some nominations for the ISAL annual awards since I would remember all the cool people and projects I had seen during the  year. That was definitely a success; I found it much easier to submit a number of nominations, so I’m continuing the experiment this year!</p>

<p>An additional goal/benefit of my spreadsheet system is that many of the awards are for things that continue to be relevant year after year, so the spreadsheet will continue to grow as new useful information is added each year.
Therefore, I’ve <a href="https://docs.google.com/spreadsheets/d/1FeqvcLP9y0iS2fhbr9iINKdsMYRYXq_teE84Iala2Cc/edit?usp=sharing">duplicated the spreadsheet</a> (and Google makes it quite easy since it also created a paired <a href="https://forms.gle/CjcAAFtoB697X6hx5">duplicated form</a> for me) and done the following to the various categories (these are some what just notes to myself):</p>
<ul>
  <li>Lifetime Achievement submissions are all kept, I’ll go and move whomever wins this year once that is decided</li>
  <li>Early Career submissions are all kept, I’ll need to move people from here to a ‘lifetime in waiting’ list once they get tenure; it doesn’t really make sense for them to be moved to the Lifetime Achievement list since they probably aren’t really competitive yet, though technically eligible, so I might make an additional tab for midcareer folks (and perhaps there should be another award category for them!)</li>
  <li>Service submissions are all kept since there isn’t an actual time limit on those, though there is a practical</li>
  <li>Pub of 2021 submissions are all removed and perhaps also should go onto an ‘in waiting list’ for once they become eligible for the decade award (five years from now), though since this is a duplicate sheet, it won’t be hard to just go back and grab things from the doc from five years ago (assuming I keep this up for that long)</li>
  <li>Pub of the decade (2007-2017) submissions have been copied over except for those that were published in 2007 since they are no longer eligible for the 2008-2018 decade</li>
  <li>Education and Outreach submissions have all been kept</li>
  <li>Student publication submissions have been kept since they have a fuzzy time limit, I will need to start tracking when the student graduated since the time limit is that they are within three years of graduation</li>
</ul>

<p>At some point, I want to increase the fanciness of the form so that it has variable fields based on the category and therefore gets more of the information that is useful for a particular category, but I haven’t gotten around to that yet.
I’m also teaching a course on building database backed websites and resisting the temptation to abandon Google and make my own website for this; we’ll see how long I last.</p>

<p>As we all wait eagerly for the results of the ALIFE conference paper reviews and ISAL awards, <a href="https://forms.gle/CjcAAFtoB697X6hx5">keep adding all your great stuff for next year</a>!
Also let me know if you have suggestions for changes to the unofficial form or the awards process that would make you more inclined to participate (email to vostinar at carleton dot edu is the easiest).</p>

<p>Cheers,
Anya</p>]]></content><author><name></name></author><category term="ISAL" /><summary type="html"><![CDATA[In my continuing quest to make the International Society for Artificial Life as awesome as possible, you may recall that I made a totally unofficial spreadsheet for keeping track of eligible people and project. My thinking at the time was that, even if I was the only one to use it, it would be super helpful for me to actually submit some nominations for the ISAL annual awards since I would remember all the cool people and projects I had seen during the year. That was definitely a success; I found it much easier to submit a number of nominations, so I’m continuing the experiment this year!]]></summary></entry><entry><title type="html">Gradescope Autograder Tips</title><link href="/teaching/2022/01/24/autograder-tips.html" rel="alternate" type="text/html" title="Gradescope Autograder Tips" /><published>2022-01-24T15:00:00+00:00</published><updated>2022-01-24T15:00:00+00:00</updated><id>/teaching/2022/01/24/autograder-tips</id><content type="html" xml:base="/teaching/2022/01/24/autograder-tips.html"><![CDATA[<p>This document is mostly for me to write down the things that I had to figure out for myself so that future me has an easier time remembering, though I hope they might also be helpful for others who are experienced programmers but figuring out <a href="https://www.gradescope.com/">Gradescope</a>’s <a href="https://gradescope-autograders.readthedocs.io/en/latest/">autograder</a> for the first time.</p>

<h2 id="examples">Examples</h2>
<p>Start from examples, it just makes life easier.
The <a href="https://github.com/gradescope/autograder_samples/tree/master/python/src">official Gradescope example</a> for Python is a good starting place.
There are some others that I looked at but can’t recall which now.</p>

<h2 id="show-output-to-students">Show output to students</h2>
<p>Assuming there isn’t secret information in your output (and if you are teaching intro like me, students probably wouldn’t be able to exploit the output anyway), printing the output is very helpful for telling the students when they have a weird library or the wrong file name.</p>

<p>The file <code class="language-plaintext highlighter-rouge">run_tests.py</code> originally looks like this:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import unittest
from gradescope_utils.autograder_utils.json_test_runner import JSONTestRunner

if __name__ == '__main__':
    suite = unittest.defaultTestLoader.discover('tests')
    with open('/autograder/results/results.json', 'w') as f:
        JSONTestRunner(visibility='visible', stream=f).run(suite)
</code></pre></div></div>

<p>To show the output to students on Gradescope, you need to add the JSON <code class="language-plaintext highlighter-rouge">stdout_visibility = "visible"</code>, which then makes <code class="language-plaintext highlighter-rouge">run_tests.py</code> look like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import unittest
from gradescope_utils.autograder_utils.json_test_runner import JSONTestRunner

if __name__ == '__main__':
    suite = unittest.defaultTestLoader.discover('tests')
    with open('/autograder/results/results.json', 'w') as f:
        JSONTestRunner(visibility='visible', stdout_visibility = "visible", stream=f).run(suite)
</code></pre></div></div>

<h2 id="dont-cut-off-the-diff">Don’t cut off the diff</h2>
<p>Gradescope by default has a maximum diff that it will show to students when they aren’t passing a test, which is fine when they are using functions, but since I’m teaching intro and they don’t learn functions until a third of the way in, I’m doing a whole lot with print statements and the diff was getting cut off.</p>

<p>You can test any print statements with an integration test, shown in <a href="https://github.com/gradescope/autograder_samples/blob/master/python/src/tests/test_integration.py"><code class="language-plaintext highlighter-rouge">test_integration.py</code></a>.
To get the full difference to be displayed, even if they have a lot of print statements, make the beginning of the <code class="language-plaintext highlighter-rouge">TestIntegration()</code> class look like this:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>class TestIntegration(unittest.TestCase):
    maxDiff = None
</code></pre></div></div>

<h2 id="command-line-arguments-that-are-strings">Command line arguments that are strings</h2>
<p>I spent too much time fighting to write a test for a cryptography assignment where the command line arguments included a string with spaces such as “hi this is a string”.</p>

<p>The problem is that a line like this for an integration test:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>calc = subprocess.Popen('python3 -u calculator.py'.split(),
                                stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                                encoding='utf8')
</code></pre></div></div>
<p>is trying to be too fancy by writing a string for the command, which then just gets split to be a list anyway, accidentally splitting my command line argument on the way there.</p>

<p>Sure, you could be fancy with escaping things, or you can just write the list directly in the first place:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>code = subprocess.Popen(['python3', '-u', 'caesar.py', "This is the way the world ends, dontcha know?", 'a'],
                                stdin=subprocess.PIPE, stdout=subprocess.PIPE,
                                encoding='utf8')
</code></pre></div></div>

<h2 id="testing-functions-not-class-methods">Testing functions (not class methods)</h2>
<p>I thought life would get easier once I taught students about functions, but it’s not obvious from the example how to test functions instead of class methods.</p>

<p>For getting access to the students’ function, it’s just a normal Python import fortunately. 
For example, my students have submitted files named <code class="language-plaintext highlighter-rouge">caesar.py</code> in which they have a function <code class="language-plaintext highlighter-rouge">caesar()</code>.
I just added an import line to the top of my test file:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>from caesar import caesar
</code></pre></div></div>

<p>And then to test, it is just calling the function like normal and checking what it returned:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@weight(0.25)
    def test_caesar1(self):
        """Check if caesar function works for first example"""
        result = caesar("This is the way the world ends, dontcha know?", 0)
        self.assertEqual(result, "This is the way the world ends, dontcha know?")
</code></pre></div></div>

<h2 id="testing-locally">Testing locally</h2>
<p>It’s a bit of a pain to have to upload your autograder to make sure things are working if you are debugging a test, since it takes a bit to build.
This won’t work for everything, but I found it helpful to be able to check that I did my formatting correctly for all of the output-checking tests that I’ve been needing. 
It’s very hacky, but it does the job:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>import subprocess
import unittest

code = subprocess.Popen(['python3', '-u', 'caesar.py', "This\ is the way the world ends, dontcha know?", 'a'],
            stdin=subprocess.PIPE, stdout=subprocess.PIPE,
            encoding='utf8')
output, err = code.communicate("", 1) # the "" is where you can put input if you need it
print(output)

string_it_should_be = "Invalid argument, shift must be a number, given a."

if (output.strip() == string_it_should_be ):
    print("yey!")
</code></pre></div></div>

<p>I’m happy to share my autograders with educators, they are in a private git repo along with my solutions so it’s easy to do, I just don’t really want to make them public on the off chance one of my students goes looking for them :).
Just email me (vostinar at carleton dot edu)!</p>]]></content><author><name></name></author><category term="Teaching" /><summary type="html"><![CDATA[This document is mostly for me to write down the things that I had to figure out for myself so that future me has an easier time remembering, though I hope they might also be helpful for others who are experienced programmers but figuring out Gradescope’s autograder for the first time.]]></summary></entry><entry><title type="html">New Paper - Symbiosis in Digital Evolution: Past, and Future</title><link href="/research/symbiosis/digital%20evolution/symbulation/2021/12/31/symbiosis-digital-evolution-review.html" rel="alternate" type="text/html" title="New Paper - Symbiosis in Digital Evolution: Past, and Future" /><published>2021-12-31T15:00:00+00:00</published><updated>2021-12-31T15:00:00+00:00</updated><id>/research/symbiosis/digital%20evolution/symbulation/2021/12/31/symbiosis-digital-evolution-review</id><content type="html" xml:base="/research/symbiosis/digital%20evolution/symbulation/2021/12/31/symbiosis-digital-evolution-review.html"><![CDATA[<p>Just a quick post to announce the publication of a review article from this past fall <a href="https://www.frontiersin.org/articles/10.3389/fevo.2021.739047/full">Symbiosis in Digital Evolution: Past, Present, and Future</a>.
The review is aimed primarily at ecologists and evolutionary biologists interested in how the technique/field of digital evolution can be used to investigate the evolutionary dynamics of symbiosis. 
However, a secondary audience that we kept in mind while writing are those already working in digital evolution and artificial life who are interested in the research space of symbiosis and a history of digital evolution through the lens of symbiosis.
I also generally aim to make all of my papers accessible to my undergraduate students, so I hope that it will be interesting and understandable to a wide range of readers.</p>

<p>Highlights from the paper:</p>
<ul>
  <li>A history of symbiosis in digital evolution from the very beginning of the field, including some little-known digital evolution systems</li>
  <li>A middle-ground and extensively considered definition of digital evolution</li>
  <li>A briefer discussion of the definition of symbiosis</li>
  <li>A lovely figure depicting the main components of symbiosis in a hypothetical digital evolution system.</li>
  <li>An overview and synthesis of the findings regarding symbiosis found using digital evolution</li>
  <li>A list of the current digital evolution software that supports symbiosis in some form and a comparison of their functionalities</li>
  <li>A whole bunch of open research questions and directions about symbiosis that digital evolution is well-suited to investigate</li>
  <li>A call for specific improvements and innovations in digital evolution software that will be necessary to push forward investigation into symbiotic dynamics</li>
</ul>

<p>I hope you enjoy!</p>]]></content><author><name></name></author><category term="Research" /><category term="Symbiosis" /><category term="Digital Evolution" /><category term="Symbulation" /><summary type="html"><![CDATA[Just a quick post to announce the publication of a review article from this past fall Symbiosis in Digital Evolution: Past, Present, and Future. The review is aimed primarily at ecologists and evolutionary biologists interested in how the technique/field of digital evolution can be used to investigate the evolutionary dynamics of symbiosis. However, a secondary audience that we kept in mind while writing are those already working in digital evolution and artificial life who are interested in the research space of symbiosis and a history of digital evolution through the lens of symbiosis. I also generally aim to make all of my papers accessible to my undergraduate students, so I hope that it will be interesting and understandable to a wide range of readers.]]></summary></entry><entry><title type="html">Poster Sessions Update</title><link href="/research/symbulation/2021/12/17/poster-sessions.html" rel="alternate" type="text/html" title="Poster Sessions Update" /><published>2021-12-17T15:00:00+00:00</published><updated>2021-12-17T15:00:00+00:00</updated><id>/research/symbulation/2021/12/17/poster-sessions</id><content type="html" xml:base="/research/symbulation/2021/12/17/poster-sessions.html"><![CDATA[<p>This past fall we had several posters of research from my lab and the ECODE lab that used Symbulation. 
It’s always awesome to see my undergraduate researchers explaining their projects to friends and family.
In addition, the ECODE lab poster was selected as one of 12 to be displayed during a trustee event!</p>

<h2 id="evolution-of-endosymbiosis">Evolution of Endosymbiosis</h2>

<p><img src="/assets/images/EndosymbiosisPoster.png" alt="A picture of a research poster with a student standing by it." /></p>

<p>The first project is focused on the <a href="https://github.com/anyaevostinar/Evolution-of-Endosymbiosis-Paper">evolution of endosymbiosis</a>. Piper Welch is in the photo above and did this work with Kiara Johnson.</p>

<h2 id="evolution-of-beneficial-lysogeny">Evolution of Beneficial Lysogeny</h2>

<p><img src="/assets/images/LysogenyPoster.png" alt="A picture of a research poster with two students standing by it." /></p>

<p>The next project is focused on the <a href="https://github.com/anyaevostinar/Evolution-of-Lysogeny-Paper">evolution of beneficial lysogeny</a>. Alison Cameron and Seth Dorchen worked on this project together.</p>

<h2 id="evolution-of-mutualism-with-multi-infection">Evolution of Mutualism with Multi-Infection</h2>

<p><img src="/assets/images/MultiInfectionPower.png" alt="A picture of a research poster." /></p>

<p>The final project is from the <a href="https://ecodelab.com/">ECODE</a> Lab and uses Symbulation. It is focused on how the evolution of mutualism changes when multiple endosymbionts can infect the same host.
This poster was selected to be one of 12 displayed during a recent dedication ceremony for the new science complex.</p>

<p>All of these projects have papers on the way, so stay tuned!</p>]]></content><author><name></name></author><category term="Research" /><category term="Symbulation" /><summary type="html"><![CDATA[This past fall we had several posters of research from my lab and the ECODE lab that used Symbulation. It’s always awesome to see my undergraduate researchers explaining their projects to friends and family. In addition, the ECODE lab poster was selected as one of 12 to be displayed during a trustee event!]]></summary></entry><entry><title type="html">Cheating Lessons Part 1</title><link href="/teaching/reading/2021/10/03/cheating-lessons1.html" rel="alternate" type="text/html" title="Cheating Lessons Part 1" /><published>2021-10-03T15:00:00+00:00</published><updated>2021-10-03T15:00:00+00:00</updated><id>/teaching/reading/2021/10/03/cheating-lessons1</id><content type="html" xml:base="/teaching/reading/2021/10/03/cheating-lessons1.html"><![CDATA[<p>I’ve previously read <strong>Small Teaching</strong> by <a href="https://www.jamesmlang.com/">James Lang</a> and recommend it to all college professors.
So when the opportunity came up on campus to read another of Lang’s books and discuss it with a group of faculty, I couldn’t resist, despite a rather packed term schedule.
Here are my thoughts on part 1 of <a href="https://www.hup.harvard.edu/catalog.php?isbn=9780674724631"><strong>Cheating Lessons</strong> by James Lang</a>, in response to the reading questions provided by the facilitators of the group, Dave Musicant and Deborah Gross.</p>

<blockquote>
  <p>Lang presents, by our count, six features of a learning environment that
may pressure individuals into cheating:</p>

  <ul>
    <li>an emphasis on performance</li>
    <li>high stakes riding on the outcome</li>
    <li>extrinsic motivation for success</li>
    <li>low expectation for success</li>
    <li>perception of peer cheating behavior</li>
    <li>perception of peer approval/disapproval of cheating</li>
  </ul>

  <p>Which of these features, if any, do you see as common at Carleton or in
your experience?</p>
</blockquote>

<p>The historical examples that Lang provides of situations where cheating was rampant definitely demonstrate the extremes of these features and these features nicely formalize hunches that I’ve had for a while.</p>

<p>I think it’s going to be hard to escape some emphasis on performance and extrinsic motivation at any prestigious college, since it would be wrong to pretend that there aren’t some consequences for the grades that students get in our classes.
However, it seems like there is a movement away from some of the traditional forms of assessment that increase these features, such as one large final exam.</p>

<blockquote>
  <p>Is this list complete?</p>
</blockquote>

<p>One thing that is missing from this list is the ease with which students can cheat, which does seem important to the discussion.
An in-person exam that would require active planning to cheat, such as smuggling in solutions, seems less likely to have cheating than a take-home exam where spontaneous cheating is possible.</p>

<blockquote>
  <p>Are the items on the list intrinsically bad?</p>
</blockquote>

<p>This is a very interesting question and I think very much depends, as is always the case, on what moral code you use to judge ‘bad’. 
If you are coming from a base of “learning is good, not learning is bad”, Lang presents strong evidence that these things are bad because they decrease learning.
If you are coming from a base of “student mental well-being is good”, it seems clear that most of those items are bad since they put students under extreme mental pressure.</p>

<p>But sometimes, there have to be high-stakes in life, and sometimes what matters really is the performance of the skill instead of the mastery, and sometimes you have to try for things that have a low chance of success (otherwise no one would every submit grant proposals!). 
So perhaps each individually is not intrinsically bad (except for the last two), but the combination of them can be a bad mixture, and when they can be reduced, that is for the best.</p>

<blockquote>
  <p>The approach that Lang takes in writing this particular book is that of
focusing on what we can do in our own classrooms, and he largely defers
the campus-policy discussions for another time.</p>

  <ul>
    <li>Is this a direction we individually are interested in taking, i.e.,
taking steps in our own classes to help?</li>
  </ul>
</blockquote>

<p>This is definitely a direction that I am interested in taking, partially to reduce cheating, but partially also because I’ve been convinced by Lang that efforts to reduce the likelihood of cheating can also lead to better learning.
I’ve already reduced the stakes on any individual assessment (I don’t have final exams and instead have short quizzes throughout the term and a final project). 
I’ve also been trying to tackle the extrinsic motivation issue, which I find one of the most challenging, but also the most interesting. 
I realized a few years ago that I hate grading assignments that all do the same thing, and so individualizing assignments works for me as well as increasing the intrinsic motivation for the students.
That is sometimes a challenge with programming assignments, but I’m exploring ways of doing it.</p>

<blockquote>
  <ul>
    <li>To what extent is the answer education vs. policing, and to what
extent do we believe actions should be taken in our classrooms vs
campuswide?</li>
  </ul>
</blockquote>

<p>I’m not really sure what campuswide action on these issues would look like. 
Policing definitely doesn’t seem like it will be as effective as education, as has been demonstrated in many other policing contexts (i.e. seeing others punishment doesn’t stop people from committing the crime). 
There could be some campuswide initiatives to decrease emphasis on GPA, such as abandoning <em>magna</em> and <em>summa cum laude</em> or the Dean’s List, which just serve as a way of adding stress to students to get that A.</p>

<p>Some level of campuswide policy and policing is necessary to make it clear that cheating isn’t acceptable. 
And campuswide policy could impact the features of the culture at a campus level.
However, it is clear that Lang’s audience is teachers in the classroom, and it is nice to feel empowered to make a difference at a small scale immediately.</p>

<p>Until next time,</p>

<p>Anya</p>]]></content><author><name></name></author><category term="Teaching" /><category term="Reading" /><summary type="html"><![CDATA[I’ve previously read Small Teaching by James Lang and recommend it to all college professors. So when the opportunity came up on campus to read another of Lang’s books and discuss it with a group of faculty, I couldn’t resist, despite a rather packed term schedule. Here are my thoughts on part 1 of Cheating Lessons by James Lang, in response to the reading questions provided by the facilitators of the group, Dave Musicant and Deborah Gross.]]></summary></entry><entry><title type="html">ISAL Awards Eligible List</title><link href="/isal/2021/09/26/awards-list.html" rel="alternate" type="text/html" title="ISAL Awards Eligible List" /><published>2021-09-26T15:00:00+00:00</published><updated>2021-09-26T15:00:00+00:00</updated><id>/isal/2021/09/26/awards-list</id><content type="html" xml:base="/isal/2021/09/26/awards-list.html"><![CDATA[<p>Every year when the <a href="https://alife.org/">ISAL</a> <a href="https://alife.org/about-isal/">awards</a> nomination form goes around, I stress because I both feel it is a duty to nominate but also <strong>can’t remember all the great papers and projects that I’ve seen during the year</strong> and don’t have time to go find them all.
Some of the categories are also really difficult to systematically find eligible papers for, such as the award for best student paper, since I can’t easily if a scientist is at the right career stage for the award.</p>

<p>I also am generally <strong>intimidated at the idea of self-nominating</strong> for the things that I’m eligible for, since what if I’m not actually good enough and the mysterious people who look at the nominations laugh at me?? (I’ve been told that I really shouldn’t worry about this, but my anxiety just won’t listen to me….)</p>

<p>To try to improve some of these barriers to nominating, I’ve decided to make a <a href="https://docs.google.com/spreadsheets/d/1QbvVeD3vvWRAY01gXxUnf8xja3bCJpw8g1_pNIGD31Y/edit?usp=sharing">spreadsheet</a> for myself where I can collect the information for eligible people and projects throughout the year. 
I also decided to figure out how to set it up through Google so that <strong>others can also add to the spreadsheet</strong> and it will automatically organize itself by award!
(Yes, I’m ridiculously proud of setting this up, please don’t judge me too much.)</p>

<p>I’m hoping that, since it is completely anonymous, it also will lower the anxiety bar about adding your own things to it.
<strong>Are you a student, or recently a student??</strong> 
Please please please <a href="https://docs.google.com/spreadsheets/d/1QbvVeD3vvWRAY01gXxUnf8xja3bCJpw8g1_pNIGD31Y/edit?usp=sharing">add your publications</a> for the student paper award!
<strong>Are you an early career researcher?</strong> (Usually considered pre-tenure.)
Then please <a href="https://docs.google.com/spreadsheets/d/1QbvVeD3vvWRAY01gXxUnf8xja3bCJpw8g1_pNIGD31Y/edit?usp=sharing">add yourself</a> for the Early Career award!</p>

<p>I’m also hoping this will serve as a useful resource for lots of other things, like finding cool people and projects in the artificial life community.</p>

<p>Just remember that this <strong>isn’t the official nomination form</strong> and you should make sure to actually submit nominations once that opens up as well!</p>

<p>But in the meantime, <a href="https://docs.google.com/spreadsheets/d/1QbvVeD3vvWRAY01gXxUnf8xja3bCJpw8g1_pNIGD31Y/edit?usp=sharing">add all the cool stuff</a>!</p>

<p>Until next time,
Anya</p>]]></content><author><name></name></author><category term="ISAL" /><summary type="html"><![CDATA[Every year when the ISAL awards nomination form goes around, I stress because I both feel it is a duty to nominate but also can’t remember all the great papers and projects that I’ve seen during the year and don’t have time to go find them all. Some of the categories are also really difficult to systematically find eligible papers for, such as the award for best student paper, since I can’t easily if a scientist is at the right career stage for the award.]]></summary></entry></feed>