• CS Extras: Compression vs. Enrichment of Spatio-Temporal Data

    Professor Goce Trajcevski, Iowa State University (Electrical and Computer Engineering)
    Thursday, November 17, 2022, Snacks in the CS Commons at 4pm; Talk from 4:15pm–5:15pm in Noyce 3821

    The efficient management and querying of location-in-time data has been a subject of intensive academic and industrial research for almost two decades. Its importance in numerous application domains of high societal relevance has been further amplified by the recent advances in IoT and the emergence of Web 2.0, which enabled a generation of unprecedented volumes of heterogeneous evolving and location+time aware data. Along with it, came the “natural” dichotomy: (i) on the one hand, there is the ever-present quest for compression: compact representation yields savings in both storage as well as communication bandwidth consumption; (ii) on the other hand, the space and time components are now frequently “enriched” with (values of) thematic or semantic attributes. These are useful in querying, tracking, classification and prediction of important aspects such as popularity of Points of Interest (PoIs), occurrence of chemical reaction, etc. Often times, these two seemingly opposing objectives are merged due to the application demands: e.g., predicting the geo-spatial spreading of diseases, information diffusion and alignment in social networks, real-time marketing, …

    In this spirit, the talk will consist of three parts. The first part will present an overview of the issues and solutions for compressing mobile data in MOD (Moving Objects Databases) and STD (Spatio-Temporal Databases) settings. In the second part of the talk, we will address the notion of various generalizations and augmentations. The last part of the talk will focus on case studies in which the fusion of the two aspects is necessary for efficient and effective retrieval, mining, etc.

  • CS Extras: Characterizing and understanding critical failures in modern high-performance computing systems

    Professor Guanpeng Li, University of Iowa
    Thursday, November 10, 2022, 4–5pm in Noyce 3821

    Hardware errors are projected to drastically increase in modern computer systems due to shrinking feature sizes and increasing manufacturing variations. The impact of hardware faults on programs can be catastrophic, and can lead to substantial financial and societal consequences. Error propagation is often the leading cause of catastrophic system failures, and hence must be mitigated. Traditional hardware-only techniques to avoid error propagation are energy hungry, and hence not suitable for commodity systems. Researchers have proposed selective software-based protection techniques to prevent error propagation at lower costs. However, these techniques use expensive fault injection simulations to determine which parts of a program must be protected. Fault injection artificially introduces a fault to program execution and observes failures (if any) upon the completion of the program execution. Thousands of such trials need to be performed in order to achieve statistical significance. It is time-consuming as even a single program execution of a common application may take long time. Consequently, practitioners are loathe to integrate resilience techniques into the development process. In this talk, I propose both empirical and analytical approaches in identifying and mitigating error propagation without expensive fault injections. The key observation underlying my research is that only a small fraction of program states are responsible for almost all error propagation in programs, and the propagation falls into identifiable patterns which can be abstracted into probabilistic events. As a result, my proposed techniques are nearly as close as fault injection approaches in measuring failure rates of programs, significantly accelerating the resilience estimation process from previously days to merely a few minutes for the same program. Hence, the technique can be integrated into the software development cycle easily, allowing developers to build low-cost fault-tolerant applications in an extremely efficient manner.

  • CS Table: Digital Redlining

    Charlie Curtsinger
    Tuesday, November 8, 2022, 12–1pm in JRC 224A

    Next week in CS Table we’ll discuss an investigation from The Markup that looks at inequities in the cost and capabilities of internet access across the United States, with a particular focus on the disparities between communities of color that were previously subject to redlining. Please read the article from The Markup below.

    Joel Eastwood and Gabe Hongsdusit. Dollars to Megabits, You May Be Paying 400 Times As Much As Your Neighbor for Internet Service. The Markup. October 19, 2022.

    Printed readings are available outside Noyce 3827. Some figures from the article were cut off in the printed version, so please review the digital version even if you read a printed copy.

  • CS Extras: Graduate School in CS

    Professors Fernanda M. Eliott and Eric Autry
    Thursday, November 3, 2022, 4–5pm in Noyce 3821

    Have you considered furthering your education in computer science outside of Grinnell? Have you considered pursuing a master’s or even a doctorate in the discipline? What can you do with these degrees? What is graduate school in computer science like? What does it take to get there?

    Come join faculty of the department for a discussion on the “What?”s, “Why?”s, and “How?”s of graduate school in computer science. Regardless of whether you are a first-year still exploring your options or a fourth-year deciding whether to take the plunge, we hope to guide your next steps in the discipline!

  • CS Table: Electronic Voting Machines

    Charlie Curtsinger
    Tuesday, November 1, 2022, 12–1pm in JRC 224A

    Next week at CS Table we will discuss electronic voting machines. We’ll cover some of the history of electronic voting, along with the advantages and criticisms of different approaches to electronic voting. Our assigned reading describes the development of a new voting machine developed by Professor Juan Gilbert at the University of Florida, and how its design is meant to address vulnerabilities in earlier voting machines.

    Spenser Mestel. A Scientist’s Quest for an Accessible, Unhackable Voting Machine. Undark Magazine / ArsTechnica. Oct 28, 2022.

    Printed copies of the reading are available outside Noyce 3827.

  • CS Extras: Molecular Programming and Computer Science

    Professor James Lathrop, Iowa State University
    Thursday, October 27, 2022, 4–5pm in Noyce 3821

    The theory and practice of nanoscale science permeate our lives with new and exciting discoveries, from nanomaterials made of carbon nanotubes to a transistor built from a single molecule. One promising interdisciplinary area of nanoscale science utilizes DNA molecules to program nanoscale structures and devices, i.e., “programming matter to do our bidding.” Technologies for programming these molecules are varied and include DNA origami, DNA self-assembly, and DNA strand displacement. These technologies have evolved to the point where they can be programmed to perform a specific function or task, including future applications for detecting and treating cancer. As with most physical systems, models are developed to understand these systems by providing useful abstractions. For this reason, research and tools often center around abstractions for the physical system. Some examples of these models include the abstract tile assembly model and the chemical reaction network model. Tools to design, create, test, and verify complex nanodevices and systems using these abstractions are numerous and often require expertise in many subfields of computer science to create and utilize effectively. In this talk, we explore the world of molecular programming through examples using several commonly used abstract models involved in molecular programming. We further discuss how fields within computer science and software engineering can drive this research area forward.

  • CS Table: The Tapia Celebration and Broadening Participation in Computing

    Sam Rebelsky
    Tuesday, October 25, 2022, 12–1pm in JRC 224A

    For our first CS Table after break, we’ll hear from the students who attended the Tapia Conference this fall, an event targeted at broadening participation in computing. To prepare for our discussion, please look over the schedule of events that attendees had access to, available on the conference website at

    Join us in JRC 224A at noon on Tuesdays to participate. This is the first room on the left when you go up the stairs or elevator in the dining hall. Students who do not have a meal plan may sign in at the entrance to the dining hall to charge their meals to the department; students who charge meals to the department are expected to participate in CS Table discussion.

  • CS Extras: Spatial AI and Its Applications

    Professor Yao-Yi Chiang
    Thursday, October 13, 2022, 4–5pm in Noyce 3821

    The location of things in space and how they change over time is the key to understanding complex environmental phenomena as well as human-environmental interactions in the past, present, and future. A significant amount of data now contains location and time information, either explicitly, e.g., traffic sensors, air quality sensors, satellite imagery, or implicitly, e.g., images and text documents. However, due to the heterogeneity and high complexity of these data, most studies encourage the use of a single data type or treat the spatial and temporal dimensions as yet another independent variable. Our research combines spatial science theories with computer algorithms to enable the discovery of useful insights from heterogeneous data for solving real-world problems. This talk will present recent highlights of our research results include machine learning algorithms and tools for 1) predicting spatially autocorrelated air quality in fine scale using sparse observations and 2) extracting linked geographic data from thousands of historical map scans and online sources.

  • CS Table: Surfing the Web with Netscape Navigator

    Charlie Curtsinger
    Tuesday, October 11, 2022, 12–1pm in JRC 224A

    Next week in CS Table we’ll take a look back at Netscape Navigator, a pioneering early web browser that helped launch the internet we know today. With all the discussion around current technology platforms and their influence on society, it is informative to look back at the platforms we used to rely on to see what lessons we can learn. To prepare for our discussion, please read these two short articles about Netscape’s history:

    Printed copies of the first reading will be available outside Noyce 3827.

  • CS Extras: Majoring in Computer Science

    Jerod Weinman
    Thursday, October 6, 2022, 4–5pm in Noyce 3821

    Are you considering a computer science major? Want to know more about what computer scientists do? The CS department’s welcome session should help you with your plans. We’ll spend some time talking about the discipline, the curriculum, consider some sample four-year plans as time allows, and answer your questions along the way. First and second year students are especially encouraged to attend.

  • CS Table: Software Supply Chain Attacks

    Charlie Curtsinger
    Tuesday, October 4, 2022, 12–1pm in JRC 224A

    This week at CS Table will discuss software supply chain attacks, which malicious actors can use to target software companies and end users with malware. We’ll read about a proof-of-concept attack carried out by security researcher Alex Birsan that raises serious questions about the trust we rely on as software developers, and what can happen when that trust is misplaced. The assigned reading is Alex’s post about the attack, but there is a second optional article that describes the high-level approach with less technical detail linked below.

    Printed copies of the first reading will be available outside Noyce 3827.

  • CS Table: GitHub Copilot

    Charlie Curtsinger
    Tuesday, September 27, 2022, 12–1pm in JRC 224A

    Copilot is an AI-based programming assistance tool that offers suggestions to programmers that go far beyond the autocomplete suggestions you may already see. Our discussion will focus on the merits of tools like Copilot for solving technical problems, as well as the complicated issues of intellectual property and citations that arise with tools like Copilot that are trained on code with licenses that restrict reuse and derived works.

    To prepare for our discussion, please read these three short articles:

    Printed copies readings are available outside Noyce 3827.

  • CS Extras: Data Integration: The Forgotten Stepchild of Data Science

    Professor Roger Chamberlain
    Thursday, September 22, 2022, 4–5pm in Noyce 3821

    As the generation of data becomes more prolific, the amount of time and computational resources necessary to perform analyses on these data increases. What is less well studied, however, is the data pre-processing steps that must be applied before any meaningful analysis can begin. This problem of taking data in some initial form and transforming it into a desired one is known as data integration, and it can be a substantial part of the overall computational load associated with data analytics. Our group is exploring the execution of data integration via a range of compute engines, including Field-Programmable Gate Arrays (FPGAs), Graphics Processing Units (GPUs), Near-Memory Processing (NMP) architectures, and mixed-mode analog/digital systems. Applications are drawn from computational biology, scientific experiments (astrophysics and nuclear science), enterprise systems, image processing, graph processing, and the Internet of Things (IoT).

  • CS Table: The Chaos Machine

    Charlie Curtsinger
    Tuesday, September 20, 2022, 12–1pm in JRC 224A

    For our first CS Table this semester, we will discuss the impact of social media on broader society, and how its design determines this impact. Our discussion will be guided by the themes in Max Fisher’s recent book The Chaos Machine, but my hope is that our discussion will also reflect other sources you are familiar with, including your personal experience with social media. The reading for this discussion is an NPR interview with Max Fisher available at (audio and transcript are both available). Printed readings are available outside Noyce 3827.

  • CS Extras: Bridging the Gap Between Internet and Nature
    BioComputing and Molecular Communications at the School of Computing, University of Nebraska-Lincoln

    Professors Sasitharan Balasubramaniam and Massimiliano Pierobon
    Thursday, September 15, 2022, 4–5pm in Noyce 3821

    Ever since the discovery of the DeoxyriboNucleic Acid (DNA) as the genetic material, it is widely understood that information exchange and computing are at the biochemical basis of life. Even the most simple and fundamental organisms, the biological cells, not only store, express, and propagate their genetic content to their offspring, but also incessantly receive and process information from the external environment and modify their behavior accordingly. The emerging field of molecular communication aims to understand the components and systems found in nature to store, process, and exchange information, and identify the knobs and buttons through which we can control and reengineer them. Nanotechnology and synthetic biology applied to engineered cells, ranging from bacteria to neurons, are some of the novel tools computer scientists and engineers at the UNL School of Computing can use to design and reprogram biological components. The focus of our talk will be on the breakthroughs that our graduate research is having in this direction, leading to applications ranging from healthcare and disease control/diagnosis to future ubiquitous biocomputing, biosensing, DNA data storage, bio-cyber security, and communication, i.e., the Internet of bio-nano things. Highlights on other School of Computing study and research areas will also be given, such as robotics, Internet of Things, and artificial intelligence.

  • CS Extras: Off-Campus Study for Computer Science Majors: Why, How, and Where?

    Professor Jerod Weinman
    Thursday, September 8, 2022, 4–5pm in Noyce 3821

    How does off-campus study fit into a CS major? What it can mean for your liberal education? Where can you study CS abroad? Come for discussion of these points and more! Second-year students should plan to attend if possible, and first-year students are encouraged to attend to aid their curricular planning.

  • CS Extras: Jobs & Internships in Tech

    Sarah Barks, PhD (CLS Office STEM Community Senior Directory)
    Thursday, September 1, 2022, 4–5pm in Noyce 3821

    Are you looking for a job or internship in the tech industry? Fall is peak recruiting season, so get ready for your job search with this workshop. We’ll talk about finding positions, building your résumé, networking, and technical interviewing.

  • CS Extras: ReactAMole: Functional Reactive Molecular Programming

    Ally Rogers
    Thursday, November 11, 2021, 4–5pm in Noyce 3821

    Molecular programming is a rapidly evolving field that is unlocking the potential for deploying computer programs in biological systems for a variety of applications, from medicine to nanofabrication to synthetic biology. However, the programming tools available for such applications are still limited. We created a novel molecular programming language, Reactamole, which harnesses functional reactive programming (FRP) to model and manipulate chemical reaction networks (CRNs). In order to do so, we also developed a translation from FRP to CRNs. Chemical reaction networks are abstractions of chemical reactions which can be used to perform molecular computations.

    During the talk, I will explore how chemical reactions can model computation, discuss why the FRP paradigm is well-suited for working with CRNs, explain the details and power of our approach and language, and give a demonstration of generating a complex CRN in Reactamole.

  • CS Extras: Majoring in Computer Science

    Jerod Weinman
    Thursday, November 4, 2021, 4–5pm in Noyce 3821

    Are you considering a computer science major? Want to know more about what computer scientists do? The CS department’s welcome session should help you with your plans. We’ll spend some time talking about the discipline, the curriculum, consider some sample four-year plans as time allows, and answer your questions along the way. First and second year students are especially encouraged to attend.

  • CS Extras: On Extensibility

    J. Garrett Morris, PhD (University of Iowa)
    Thursday, October 28, 2021, 4–5pm in Noyce 3821

    This talk will introduce my research on programming languages, exemplified by some recent results on modularity and extensible data types, as well as highlighting the opportunities for graduate study at the University of Iowa.

    My research is guided by two overriding goals. On the one hand, type systems should precisely specify program behavior, allowing programmers to rule out classes of erroneous behavior. On the other, type systems should enable expressive abstraction tools, allowing programmers to build modular, re-usable software and software components. My work inhabits the intersection of these ideas, refining generic programming mechanisms both to better enforce intended program behavior and to support more expressive abstractions.

    Extensibility is an evergreen problem in programming and programming language design. The goal is simple: specifications of data should support the addition of both new kinds of data and new operations on data. Despite this problem having been identified as early as 1975, modern languages lack effective solutions. Object-oriented languages require programmers to adopt unintuitive patterns like visitors, while functional languages rely on encodings of data types. Lower-level languages, where similar problems arise, rely on textual substitution. I will present recent work which proposes a unified approach to extensible data specifications. I will show how this work both encompasses existing approaches to extensible data specifications, and captures examples inexpressible in all existing systems. Our approach naturally generalizes, providing a single account of extensible objects, effects, and bit-level specifications.

    Bio: J. Garrett Morris is an assistant professor in the Department of Computer Science at the University of Iowa. He received his Ph.D. from Portland State University in Oregon, and post-doctoral training at the University of Edinburgh, Scotland. His research focuses on the development of type systems for higher-order functional programming languages, with the twin aims of improving expressiveness and modularity in high-level programming and supporting safe concurrent, low-level, and effectful programming.

  • CS Extras: How gaze differs between natural text and source code

    Monday, October 25, 2021, 4–5pm in Noyce 3821

    Speaker: Bonita Sharif, Ph.D.

    Abstract: Code reading is an important skill in programming. Inspired by the linearity that people exhibit while natural language text reading, we designed local and global gaze-based measures to characterize linearity (left-to-right and top-to-bottom) in reading source code. Unlike natural language text, source code is executable and requires a specific reading approach. To validate these measures, we compared the eye movements of novice and expert programmers who were asked to read and comprehend short snippets of natural language text and Java programs. Our results show that novices read source code less linearly than natural language text. Moreover, experts read code less linearly than novices. These findings indicate that there are specific differences between reading natural language and source code, and suggest that non-linear reading skills increase with expertise. I discuss the implications for practitioners and educators.

    Bio: Bonita Sharif, Ph.D. is an Associate Professor in the School of Computing at University of Nebraska - Lincoln, Lincoln, Nebraska USA. She received her Ph.D. in 2010 and MS in 2003 in Computer Science from Kent State University, U.S.A and B.S. in Computer Science from Cyprus College, Nicosia Cyprus. Her research interests are in eye tracking related to software engineering, empirical software engineering, program comprehension, emotional awareness, software traceability, and software visualization to support maintenance of large systems. She serves as the Steering Committee chair for the ETRA conference. She also serves on numerous program committees including ICSE, ASE, ICSME, ICPC, and SANER. She served as general chair of VISSOFT 2016 and ETRA 2016 and 2019. Sharif is a recipient of the NSF CAREER award and the NSF CRI award related to empowering software engineering with eye tracking. She also received the NCWIT Undergraduate Student Mentoring award in 2016. She directs the Software Engineering Research and Empirical Studies Lab in the School of Computing at UNL.

    Join us from 4–5pm in Noyce 3821 on Monday, October 25, 2021

  • CS Extras: Explainable Planning and Decision Making + Overview of CSE and DCDS Programs at WashU

    Thursday, October 14, 2021, 4–5pm in Noyce 3821

    Speaker: William Yeoh, PhD

    Abstract: With increasing proliferation and integration of planning and decision-making systems in our daily life, there is a surge of interest in the development of systems that can explain the reasons for their decisions. In the first part of this talk, I will describe and motivate such explainable systems before providing a brief overview of our recent work in this space. In the second part of the talk, I will provide an overview of the Computer Science and Engineering (CSE) and Division of Computational and Data Sciences (DCDS) programs at Washington University in St. Louis (WashU).

    Bio: William Yeoh is an associate professor in the Department of Computer Science and Engineering and a co-director of the Division of Computational and Data Sciences at Washington University in St. Louis. His research interests are in optimization, heuristic search, and planning under uncertainty, especially in the context of multi-agent systems. He is an NSF CAREER recipient and was named in IEEE’s AI’s 10-to-Watch list in 2015. He currently serves on the editorial board of the Artificial Intelligence Journal, on the International Foundation for Autonomous Agents and Multiagent Systems Board of Directors, and on the Symposium on Combinatorial Search Council. He has served on the program committees and senior program committees of numerous AI-related conferences including AAAI, AAMAS, ICAPS, and IJCAI as well as in the organization committees of those conferences. He was also a conference co-chair of the 2019 Symposium of Combinatorial Search (SoCS 2019) and is a program co-chair of the 2022 International Conference on Automated Planning and Scheduling (ICAPS 2022).

    Join us from 4–5pm in Noyce 3821 on Thursday, October 14, 2021

  • CS Extras: Tech Jobs and Internships

    Thursday, October 7, 2021, 4–5pm in Noyce 3821

    Where are the best places to look for tech jobs? What belongs on a tech resume? How do coding interviews work? What is networking, and why should you do it? Sarah Barks, director of the CLS’s STEM Career Community, will answer these questions and share strategies, advice, and resources for getting a job or a summer internship in tech. You can email [barks] in advance with specific questions.

    Join us from 4–5pm in Noyce 3821 on Thursday, October 7, 2021.

  • CS Extras: Off-Campus Study for Computer Science Majors: Why, How, and Where?

    Thursday, September 30, 2021, 4–5pm in Noyce 3821

    Professor Jerod Weinman will lead a discussion about study abroad, how it fits into a CS major, and what it can mean for your liberal education.

    Second-year students should plan to attend if possible, and first-year students are strongly encouraged to attend to aid their curricular planning.

    Join us from 4–5pm in Noyce 3821 on Thursday, September 30, 2021

  • New job advice videos by Lea Marolt Sonnenschein '15

    Tuesday, March 30, 2021

    Amazing alumna and AppDev co-founder Lea Marolt Sonnenschein ‘15 has started producing a series of videos entitled “Adulting” which give some pretty good career advice. These include a recent video on how she got her first job and an even-more-recent video on cold calling.

  • CS Table in Spring 1

    Monday, March 22, 2021

    This spring in CS table, we will be reading Addiction by Design and considering its implications for computing. Our approximate schedule is as follows.

    • February 22: Introduction
    • March 1: Chapter 1
    • March 8: Chapter 2
    • March 15: Chapter 3
    • March 22: Chapter 4

    After spring break, we may resume the book or we may move on in other directions, depending on the preference of participants.

    Addiction by Design is available free to members of the Grinnell Community through the Grinnell library.

    CS Table is a weekly lunchtime meeting of Grinnell students, staff, and faculty (and, on occasion, alumni) to discuss social and technical issues in computing. This year, we are meeting in the Events Channel on the CS Team.

  • CS Extra, 11 March 2021: Work from the Osera PL Team

    Thursday, March 11, 2021

    Click here to join the meeting

    ReactAMole: A Functional Reactive Programming Language for Chemical Reaction Networks Speaker: Allison Rogers ‘22

    Abstract: This talk will explore a new programming language, ReactAMole, and how it harnesses functional reactive programming (FRP) to model and manipulate chemical reaction networks (CRNs). Chemical reaction networks are abstractions of chemical reactions, which can be used to perform computations and run programs in biological systems. They are the language of choice for molecular programming.

    During the talk, I will discuss why the FRP paradigm is well-suited for working with CRNs, how our approach allows for the safe composability of CRNs in ReactAMole, and the variety of tools that ReactAMole currently provides for representing boolean and real values, conditionals, and data structures such as tuples with CRNs.

    Grapenut: A Program Synthesis Engine Using Unevaluation.

    Speakers: Nameera Muhammad Dawood, Samuel Eagan, Lilith Hafner ‘23

    Abstract: First, we’ll open by presenting a brief introduction to program synthesis in general, before diving into the details of how expressions are constructed in order to fit specifications provided by the user in the form of examples. Following this will be a description of the fundamental synthesis engine that we implemented over the summer. This system partners more traditional synthesis practices such as term-enumeration with new elements like unevaluation, which can take results and use them to create constraints that limit the search space. Finally, we’ll discuss a theoretical system developed by building off of knowledge accumulated during the research period. This reduces the problem of program synthesis to a model of a two-player game, which allows for existing frameworks to be used to aid synthesis.

    CS Extras is a weekly (more-or-less) talk series hosted by the Grinnell Computer Science Department. This spring, most CS extras are held Thursdays at 5pm.

  • WGMC Session on Ethics and Social Justice Education

    Monday, March 1, 2021

    Hello from Women and Gender Minorities in Computing!

    We are a student-run group within the computer science department, and this year, we have been advocating for more comprehensive ethics/social justice education within the CS major at Grinnell. We are hosting a meeting on Wednesday, March 3rd at 6 CST to present our work and the student input we’ve gathered through a survey sent out to CS students.

    We place an extremely high value on gathering student input, as we believe student voices must be centered in the synthesis of this course. As such, it would be greatly appreciated if as many students could attend and voice their opinions as possible. We want to hear from you! Please reach out to [gingeric], [adikemao], [richards10], [rogersal], or [guhaalin] if you have questions. We hope to see you there! Join through this link:



  • Apologies from your Web writer

    Monday, March 1, 2021

    I’ve been having trouble keeping up with keeping up the CS site. Fingers crossed that it gets better from here.

  • Three-Year Term Position, Starting Fall 2021

    Friday, February 26, 2021

    We are hiring for a three-year term position, starting in Fall 2021. Prospective candidates interested in learning more may find it useful to peruse the following materials.

  • Peter-Michael Osera receives NSF CAREER Grant

    Friday, February 26, 2021

    Assistant Professor Peter-Michael Osera has received an NSF CAREER award, one of the most prestigious awards for an early-career scientist. Osera is the third faculty member at Grinnell to receive a CAREER award. Osera’s award is for work in program synthesis.

    Program synthesis promises to democratize programming for the masses by automating the generation of tedious, error-prone code with more natural and understandable user-provided specification. Over the past two decades, advances in computational power have led to a proliferation of program synthesis techniques that draw upon various fields ranging from logic, programming language theory, and machine learning. While these techniques differ substantially in how they operate, no single technique is universally superior in all cases. Furthermore, we understand little about users’ actual needs and sentiment towards advanced development tools like synthesizers, which inevitably leads to the development of theoretically interesting but ultimately uncompelling or impractical tools. The novelties of this project are two-fold: (a) providing a unifying framework for these differing techniques so that their theoretical underpinnings can be better understood and next-generation program synthesis tools can be built on top of this framework and (b) identifying the set of human factors that should be considered when making program synthesis tools. This project’s impact is, ultimately, unifying perspectives on program synthesis not just in terms of techniques but also disciplines: programming languages, human-computing interaction, and computer science education.

    The project focuses on two primary efforts. The first is developing a unified set of semantic foundations for synthesis based on a generalized notion of constraint that captures the common forms of specifications found with current techniques, e.g., types, examples, logical constraints, syntactic constraints, and partial programs. This constraint-based approach to synthesis naturally leads to a deductive, hole-guided programming style, different from traditional programming models. Therefore, the project’s second effort is a systematic study of the needs and sentiment of developers towards this style of programming and the design of next-generation development tools based on these results.

  • CS Extras: Summer Research Opportunities in CS

    Thursday, February 11, 2021

    5pm, Thursday, 11 February 2021
    The CS Faculty and Guests present: Summer Research Opportunities in CS

    The talk will be held in the Events Channel on the CS Team. The talk will be recorded.

    At 5:00 p.m. on Thursday, 11 February 2021, in the Events Channel on the CS Team, the members of the CS Faculty and a few guests will present “Summer Research Opportunities in CS at Grinnell”. You’ll hear about the research projects of the CS faculty members and about the processes for applying to do research with them. You’ll also hear about opportunities from a few people from outside the department who might hire CS students. We’ll begin with an overview of the general policies for MAPs, 399’s, and MIPs.

    We look forward to seeing you there.

  • Declaring a CS Major

    Friday, February 5, 2021

    Dear CS Students,

    We hope you had a wonderful winter break and are ready for the excitement of spring term one. For those of you not in Grinnell, I’ll report that we have about eight inches of snow on the ground and it was a brisk 15 degrees Fahrenheit when I was out this morning.

    Those of you who are second-year students (and a few of those of you who are third-year students) are likely thinking about the major declaration process. To help balance workloads and to provide equitable access to advisors, we have a process (you might even call it an algorithm) for pairing students with advisors.

    1. The department will host a session about advising at 5pm on Thursday, 25 February 2021. At the session, each of the the CS advisors taking advisees will talk a bit about their advising style and their expectations for their advisees. We will record this session and make it available for those who cannot attend.

    2. We will ask you to fill out a form in which you provide some information about yourself and rank your potential advisors. I expect that will be due around 28 February, but we have not finalized the schedule.

    3. We will match students with advisors and inform you of the pairings. I expect to have pairings out by 3 March.

    4. You will meet with your CS advisor to work on a four-year plan and an essay about your liberal arts education. (Both are normal parts of the application form.)

    5. You will follow the steps detailed in the College’s “Declaring a Major” instructions, available at Basically:

      a. You fill out the form and send the form to your advisor.

      b. They read over the form. If they approve, they sign and send it to the chair (that’s me). If they don’t approve, they let you know about the problems and you go back to step a.

      c. I read over the form. If I approve, I sign it and send it back to you. If I don’t approve, I send it back to you and your advisor with an explanation of the issues I’ve observed and we’re back to step a.

      d. You recheck and then send it to the Registrar and both of us.

    6. Your advisor may also ask you to enter the remainder of your four-year plan on Self Service / Academic Planning.

    Please let me know if you have questions!


    – SamR

  • CS Extras: Robots in CSC-161

    Thursday, February 4, 2021

    5pm, Thursday, 4 February 2021
    Professor Henry Walker presents: Supporting software for Robots in CSC-161

    The talk will be held in the Events Channel on the CS Team.

    From Fall 2011 until interrupted by Covid-19 and virtual classes in March 2020, CSC-161, Imperative Problem Solving, has utilized the control of Scribbler 2 robots as an application theme. Students learn elements of programming in C, data representation, the run-time stack and dynamic memory allocation, and several data structures. Behind the scenes, various robot-communication and control elements are handled via a software infrastructure, called MyroC (a C version of My Robot, as motivated by the Institute for Personal Robots in Education, IPRE).

    Although originally developed for use with Linux and MathLAN computers, MyroC was ported to to Mac OS X in Fall 2015 and a draft version for Windows 10 became available in January 2021. Although an international standard is available for programming in C, the operating systems for Linux, Mac OS X, and Windows 10 are different. For some elements of MyroC, common code can be used with little or no adjustment in all of these environments. However, substantial rewriting is needed several components of robot control.

    This talk is the first of two independent presentations that will discuss components within MyroC. For each component, the talk will begin with the motivation for the application and an overview of the processing involved. The presentation of the component will then include selected implementation details, including different models of computation for Linux, Max OS X, and Windows 10.

  • Looking ahead CS Extras: Robots in CSC 161, Continued

    Thursday, February 4, 2021

    The second half of Professor Walker’s talk series on Robots in CSC 161 will be held some time during Spring Term 2, most likely in the first week or two.

    Talk 2: Motion and Images

    Commands involving Motion

    • Overview of MyroC processing, given a Bluetooth connection
    • Basics of robot motion
    • Timing: Blocking and non-blocking issues
    • Approaches for handling non-blocking commands in Linux, Mac OS X, and Windows 10

    Image Processing

    • An overview of the display of images with OpenGL
    • Code structure for MyroC and image processing
    • An overview of process creation and communication
    • Specific processing elements in Linux, Mac OS X, and Windows 10
  • Welcome back!

    Monday, February 1, 2021

    Welcome back to Grinnell!

    We hope that you have a wonderful start to the semester.

    The Webmasters (well, mostly SamR) apologize for their neglect of the site last term. We hope to be more on top of things this semester. Perhaps we’ll even find funds to hire a students. (Please don’t innundate me with email yet; we’ll post it.)

    Don’t forget that CS Table meets most Mondays at noon CST (starting February 15) and that CS Extras meets most Thursdays at 5pm CST (starting February 4).

    And if you’re not already on the csstudents mailing list or the CS Microsoft Team, please join. Contact SamR to be added. (Remind him if you don’t get a prompt reply.)

  • Learning from CS Alumni—Ajuna Kyaruzi '17 and Toby Baratta '17

    Monday, September 7, 2020

    As you may have seen, the CS department is sponsoring a one-credit course this fall called “Learning from CS Alumni”. The course involves talks from CS Alumni, with each alum giving a pair of talks, one on a topic they think you will find valuable, one on their career trajectory from before Grinnell to the present. The talks will be followed by a Q&A session. Learning from CS Alumni meets every Tuesday in Fall Term 1 from 7:00-8:50 p.m. CDT.

    This week in Learning from CS Alumni we will hear from Ajuna Kyaruzi ‘17 (Google) and Toby Baratta ‘17 (Microsoft).

    Ajuna will be talking about making lateral moves in tech with a brief introduction to Site Reliability Engineering.

    Toby will be talking about Covid’s impact on tech.

    Learning from CS Alumni talks are open to all interested parties on campus. Feel free to join in. Talks begin at 7pm.

    Join the meeting at

  • UNL CSE prospective grad student information

    Friday, September 4, 2020

    The University of Nebraska-Lincoln (UNL)is looking to recruit high-quality, top-tier students with an aptitude for research. Our focus is to attract students from the Midwest to our graduate programs and would like to invite students to participate in a couple UNL virtual graduate information events. The College of Engineering’s event is on Friday, October 2, 2020 and the Department of Computer Science & Engineering’s event is on Saturday, October 17, 2020.

    See Prof. Weinman’s email to csstudents for more details.

  • Our new site!

    Thursday, September 3, 2020

    Some of you may have noted that our Web site has not been updated since last fall. There are way too many reasons for that. But we now have a new site where we can actually update pages. Visiting should redirect you to the new site, which is currently hosted at (Don’t ask.)

    One of the new/restored features is a regular news feed. We hope to update the recent news at least twice per week, and likely more. Bookmark and visit the site to keep track of some of what’s happening in the department.

    Other issues

    If you follow links to any pages on the old site, you’ll likely end up on the old site. We’re still waiting on some other issues before we can get the DNS entry redirected, which will h andle the rest. (Don’t worry if that made no sense.)

    This site is also a work in progress. Expect some pages not to work and to see some assorted disruption.

    Don’t worry that the design is similar to the old site. We do plan a redesign. For now, we just wanted to make sure we could update and set up recent news.

    If you have ideas and suggestions (mostly for content, but perhaps also for design), send them to our Web team, Sam Rebelsky and Charlie Curtsinger.

  • CS Table: Welcome, introductions, and topic ideas

    Thursday, September 3, 2020

    Computer science table (CS Table) is a weekly meeting of Grinnell College community members (students, faculty, staff, etc.) interested in discussing topics related to computing and computer science. CS Table meets on Mondays from noon to 1pm (Grinnell time) on Teams. Topics will be posted on teams and sent to the CS students mailing list.

    We will start off this year’s CS Table series on Monday, September 7th with our usual welcome and introductions. We’ll spend some of our time discussing possible topics for the semester, so come prepared with ideas of what you would like to cover in future CS Table events. We are especially likely to take your suggestions if you have a specific article, book chapter, or other content in mind that would help us prepare for our discussion. General suggestions are also welcome.

    We will meet virtually on Teams, so just click “Join Meeting” on this event in the CS events channel once the meeting has started.

  • A note from the Student Educational Policy Committee (SEPC)

    Monday, August 31, 2020

    Hello CSers

    Welcome back to virtual Grinnell!! Even though this year will be virtual, we plan on centering your voices to make this virtual community a safe, inclusive, and helpful place. As a result, expect a weekly email with a list of events. Some of these events will be office hours, career tips, and other informational / community building events. Also, please feel free to reach out to your SEPC with your concerns and ideas!

    Some upcoming events (08/31–09/04)

    • Virtual office hour this Friday 09/04 @4-5 CDT
      • Come hang out and ask questions
    • Women and Gender Minorites in Computing (WGMC) is back!!
      • First meeting is Monday, 2020-09-07. Details coming soon.

    Look out for our weekly meetings with dates/links

    Have a great first day!

  • Welcome back (or just welcome) to our students!

    Sunday, August 30, 2020

    Classes begin on Monday, August 31. We look forward to seeing our students again (even though it’s only on the computer screen) and to meeting new students. CS classes will be online this fall.

    Students may wish to check out the technology and attendance expectations for our Fall 1 classes.

  • Welcome to our newest faculty member

    Friday, August 28, 2020

    We welcome Fernanda Monteiro Eliott to the department. Fernanda comes to us most recently from Vanderbilt university, where she was participating in a post-doctoral fellowship. This year, Fernanda will be teaching sections of software design as well as artificial intelligence. Fernanda is doing interesting work in artificial intelligence, exploring moral development, among other things.

  • Learning from CS Alumni kickoff—Eryn O'Neil '07

    Thursday, August 27, 2020

    As you may have seen, the CS department is sponsoring a one-credit course this fall called “Learning from CS Alumni”. The course involves talks from CS Alumni, with each alum giving a pair of talks, one on a topic they think you will find valuable, one on their career trajectory from before Grinnell to the present. The talks will be followed by a Q&A session. Learning from CS Alumni meets every Tuesday from 7:00-8:50 p.m. CDT.

    Our first speaker will be Eryn O’Neil ‘07. Eryn’s topical talk will be “Using our superpowers for good: Ethics and moral responsibility in making software”. I’ll allow Eryn to say more about herself when she arrives.

    Learning from CS Alumni talks are open to all interested parties on campus. Feel free to join in. Class will start at about 7:00 p.m. Eryn’s talk will start at about 7:30 p.m.

    Contact Professor Rebelsky for instructions on how to join in.

  • Congratulations to Nicole Eikmeier!

    Monday, August 17, 2020

    Assistant Professor Nicole Eikmeier recently received an NSF Rapid Response grant to support her work in studying network models of COVID-19 transmission. Further information is available in this article.

    Congratulations to Nicole on both the important work and the funding to help support that work!

  • An evolving Web site

    Saturday, August 1, 2020

    Due to a host of issues, we’ll be rebuilding and redesigning the CS department Web site this fall. Expect some pages not to work and to see some assorted disruption.

    If you have ideas and suggestions (mostly for content, but perhaps also for design), send them to our Web team, Sam Rebelsky and Charlie Curtsinger.

  • We don't slack off; we're a team

    Wednesday, July 1, 2020

    With the College’s decision to discourage the use of Slack, the department has moved to a Microsoft Teams Team for threaded discussion, some kinds of communication, and even the occasional talk. As in the case of our Slack, the CS Team will include faculty, staff, majors, other students interested in CS, other folks at the College interested in CS, and alumni.

    If you don’t have an account yet, let Sam Rebelsky know and he’ll get you added.

    And don’t forget that we maintain a csstudents mailing list for the same audience. Contact Kylie Rawlins, the departmental ASA, if you would like to be added to that list.

The current news feed started in July 2020. We apologize for the loss of any earlier articles.