Skip to main content

About Me

Matt Schwennesen
Author
Matt Schwennesen
Ph.D. Student and Tabletop Gaming Enthusiast
Table of Contents

Background
#

I am currently a second year Ph.D student at the University of Wisconsin, Madison studying computer science. Before moving to Madison, I got my undergraduate degree in Computer Science at Michigan Technological University, graduating in December 2022. Currently I am a head teaching assistant in CS 400, Programming III this semester after being a standard teaching assistant last fall. While at Michigan Tech, I served as a Learning Center Coach for four semesters, Teaching Assistant for two semesters, and a Lab Instructor for one semester. During the summer of 2021, I participated in the Google Summer of Code by working with NetworkX on implementing an Asymmetric Traveling Salesperson Problem approximation algorithm. Blog posts from that project are available on the Scientific Python blog. The next summer, I was part of a Research Experiences for Undergraduates (REU) program funded through the National Science Foundation. Working with Dr. Satish Puri, I developed a multi-threaded C++ system for finding the approximate nearest neighbor for polygons.

For more information, please see my curriculum vitae or résumé.

Research Interests
#

My interests have moved solidly into programming languages, and more specifically program verification. Through my experiences as a teaching assistant and coach for computer science students, I’ve developing an interest in how we can use methods from programming languages research to help students write better code and assess the behavior of a piece of code in a safe way. Recently I’ve been learning to use the coq proof assistant, which is a fabulous piece of software. My venture into the field of programming languages has been extremely rewarding, blending all of the aspects I love about theory with practical applications about how we can reason about the behavior of programs. Right now I’m working on a project to generate verified code for marshaling and unmarshaling messages for go code.

Through my work with NetworkX and several graph theory classes at Michigan Tech, graph theory is another passion of mine and I would like to explore how graphs and particularly trees can be used in these problems.

Moving Forward
#

Right now, I’m looking for connecting with the professors at UW-Madison to find potential advisors and join a research group. After getting a Ph.D, I’d like to stay in academia and become a professor myself. While working at Michigan Tech in a variety of student-facing roles, I developed a passion for teaching and sharing my knowledge with other students. Education has been an important life-long journey for me and I would like to share that with other students.

Other Interests
#

Outside of my academia interests, I am passionate about open source software, which I believe is important for a private and secure digital experience. In my free time, I enjoy playing tabletop role-playing games such as Dungeons & Dragons or Stars Without Number, watching movies, exploring the outdoors and cooking. You can even find a collection of recipes on this website.

Timeline
#

  1. NetworkX - New Graph Visualization API

    Jun 2024 - Aug 2024

    Indpendent Contract

    Rewrote the existing visualization API to be agnostic to the visualization tool (in this case matplotlib), provide more flexibility and the potential for visualization dispatching in the future.

  2. Tutorial - Software Tools for Supporting Network Science

    June 2024

    International School and Conference on Network Science

    I presented a tutorial titled Software Tools for Supporting Network Science along with Tamás Nepusz from igraph and Tiago Peixoto from graph-tool at NetSci 2024 in Québec City.

  3. OPLSS@BU

    June 2024

    Attended the 2024 Oregon Programming Languages Summer School at Boston University. The topic of the conference is Types, Semantics and Applications.

  4. Began Graduate Studies

    Sept 2023

    University of Wisconsin, Madison

    Pursuing a Ph.D. in Computer Science.

  5. Graduation

    May 2023

    Michigan Technological University

    Graduated with a B.S. in computer science, minor in mathematical studies.

  6. Lab Instructor

    Jan 2023 - May 2023

    CS 1121 Introduction to Programming I

    Worked with Sarah Larkin to teach CS 1121 Introduction to Programming I. This course is an introductory Java programming course covering objects, loops, methods, code design, documentation and debugging programs. My responsibilities included running a weekly lab assignment, grading, holding office hours and proctoring exams.

  7. Undergraduate TA

    Aug 2022 - May 2023

    CS 3411 Systems Programming

    Worked with Dr. Soner Onder (Fall 2022) and Dr. Jean Mayo (Spring 2023) to teach CS 3411 Systems Programming. This course includes file I/O using system calls, process creation and management, linking and libraries, interprocess communication and socket programming. My responsibilities included grading, holding office hours, proctoring exams and developing automatic graders.

  8. Research Experience for Undergraduates

    May 2022 - Aug 2022

    Marquette University

    Worked on finding the approximate nearest neighbors of polygons using locality sensitive hashing. The work resulted in a multi-threaded C++ system using the developed techniques.

  9. Google Summer of Code

    May 2021 - Aug 2021

    Worked with NetworkX implementing the Asadpour et al. algorithm to approximate the asymmetric traveling salesperson problem. For more information, see

  10. Learning Center Coach

    Jan 2021 - Dec 2023

    College of Computing - Michigan Technological University

    Help students completing assignments for beginning and intermediate classes at Michigan Technological University, on topics including

    • Data Structures
    • MIPS and C programs
    • Introductory Java programs

  11. Michigan Technological University

    Aug 2019

    Began courses at Michigan Technological University pursuing a degree in computer science.