CS 3020-001 Fall 2026 Research Forum

An image of code on the screen
#include <stdlib.h> // card > aek.ppm  
#include <stdio.h>
#include <math.h>
typedef int i;typedef float f;struct v{f x,y,z;v operator+(v r){return v(x+r.x,y+r.y,z+r.z);}v operator*(f r){return v(x*r,y*r,z*r);}f operator%(v r){return x*r.x+y*r.y+z*r.z;}v(){}v operator^(v r){return v(y*r.z-z*r.y,z*r.x-x*r.z,x*r.y-y*r.x);}v(f a,f b,f c){x=a;y=b;z=c;}v operator!(){return*this*(1/sqrt(*this%*this));}};i G[]={247570,280596,280600,249748,18578,18577,231184,16,16};f R(){return(f)rand()/RAND_MAX;}i T(v o,v d,f &t,v&n){t=1e9;i m=0;f p=-o.z/d.z;if(.01<p)t=p,n=v(0,0,1),m=1;for(i k=19;k--;)for(i j=9;j--;)if(G[j]&1<<k){v p=o+v(-k,0,-j-4);f b=p%d,c=p%p-1,q=b*b-c;if(q>0){f s=-b-sqrt(q);if(s<t&&s>.01)t=s,n=!(p+d*t),m=2;}}return m;}v S(v o,v d){f t;v n;i m=T(o,d,t,n);if(!m)return v(.7,.6,1)*pow(1-d.z,4);v h=o+d*t,l=!(v(9+R(),9+R(),16)+h*-1),r=d+n*(n%d*-2);f b=l%n;if(b<0||T(h,l,t,n))b=0;f p=pow(l%r*(b>0),99);if(m&1){h=h*.2;return((i)(ceil(h.x)+ceil(h.y))&1?v(3,1,1):v(3,3,3))*(b*.2+.1);}return v(p,p,p)+S(h,r)*.5;}i main(){printf("P6 512 512 255 ");v g=!v(-6,-16,0),a=!(v(0,0,1)^g)*.002,b=!(g^a)*.002,c=(a+b)*-256+g;for(i y=512;y--;)for(i x=512;x--;){v p(13,13,13);for(i r=64;r--;){v t=a*(R()-.5)*99+b*(R()-.5)*99;p=S(v(17,16,8)+t,!(t*-1+(a*(R()+x)+b*(y+R())+c)*16))*3.5+p;}printf("%c%c%c",(i)p.x,(i)p.y,(i)p.z);}}

An image of code on the screen

Class time/location:

Mondays, 9:40-10:30 AM in WEB L126 (Note - this is a new location as of 8/17!) 

Instructor:

Prof. Erik Brunvand    Office: MEB 4154

Syllabus: 

Please read the course syllabus! It has all the details of grading, attendance policy, details of what you should be turning in for assignments, etc. 

Assignment templates:

Lecture summaries:

Final report - research paper summary:

Class Schedule:

Lec #

Date

Presenter
(Research Area)

Title

Assignment and Links to slides

1

8/24

Erik Brunvand

CS 3020 Introduction &
Is Grad School Right For You?

Lecture 1 summary

Lecture 1 slides 

2

8/31

Jenny Lin
(Computational Fabrication)

Computational Tools for Machine Knitting

Lecture 2 summary

Lecture 2 slides

9/7

Labor Day

--------

--------

3

9/14

Daniel Brown
(AI and Robotics)

Leveraging Human Input to Enable Aligned, Robust, and Interactive AI Systems

Lecture 3 summary

Lecture 3 slides

4

9/21

Mark Gillespie
(Geometry Processing)

TBD

Lecture 4 summary

Lecture 4 slides

5

9/28

Anna Fariha
(Database / Data Management)

Recommendation systems for Exploratory Data Tasks

Lecture 5 summary

Lecture 5 slides

6

10/5

Yue Jiang
(Human-Centered Computing)

TBD

Lecture 6 summary

Lecture 6 slides

 

10/12

Fall Break

--------

--------

7

10/19

Benjie Wang
(Trustworthy AI)

TBD

Lecture 7 summary

Lecture 7 slides

8

10/26

Blair Sullivan
(Algorithms / Theoretical Computer Science)

TBD

Lecture 8 summary

Lecture 8 slides

9

11/2

John Regehr
(Compilers)

Proving compilers do what they say they'll do

Lecture 9 summary

Lecture 9 slides

10

11/9

Jason Wiese
(Human-Centered Computing)

Making Smart Hospitals Useful

Lecture 10 summary

Lecture 10 slides

11

11/16

Luis Garcia
(Cyber-Physical / IoT Systems Security)

Trustworthy AI for Engineered Systems

Lecture 11 summary

Lecture 11 slides

12

11/23

Kenneth Marino
(AI Agents)

VLM Agents: Hype or Opportunity

Lecture 12 summary

Lecture 12 slides

13

11/30

Ganesh Gopalakrishnan
(Reduced-Precision Math in GPUs)

Build a DFA on a BBC Microbit, then Learn its N-Gram Language using an LLM

Lecture 13 summary

Lecture 13 slides

14

12/7

Erik Brunvand
(Arts and Technology)

Computational Thinking meets Design Thinking

Lecture 14 - summary
Lecture 14 slides


Papers Recommended by our Speakers

  1. Erik Brunvand (intro lecture)
  2. Jenny Lin
    1. A Compiler for 3D Machine Knitting
  3. Daniel Brown
    1. Toward Robust, Interactive, and Human-Aligned AI Systems
  4. Mark Gillespie
  5. Anna Fariha
    1. Data-Semantics-Aware Recommendation of Diverse Pivot tables
  6. Yue Jiang
  7. Benjie Wang
  8. Blair Sullivan
  9. John Regehr
  10. Jason Wiese
  11. Luis Garcia
  12. Keneth Marino
  13. Ganesh Gopalakrishnan
    1. Array Programming on GPUs: Challenges and Opportunities
  14. Erik Brunvand
    1. Algorithmic Arts: Attracting a New Type of Student to Computing - The Algorithm is the Medium
    2. Making Noise: Using Sound-Art to Explore Technological Fluency
    3. Kinetic art and embedded systems: a natural collaboration

Course Summary:

Course Summary
Date Details Due