Benjamin W. Herila
Programming with Data Structures and Algorithms
Head TA, Fall 2008
Programming with Algorithms and Data Structures -- as the course's name implies -- covers the design and implementation of various data structures and algorithms, and is designed for students with a strong background in Computer Science. The course also introduces various concepts of computability, including turing machines and NP completeness.
Introduction to Software Engineering
TA, Spring 2009
Head TA, Spring 2010
Head TA, Spring 2011
CSCI0320 is a course primarily for Sophomore concentrators in Computer Science, taught by Professor Steven Reiss in Spring 2009 and Professor John Jannotti in Spring 2010 and 2011. The course covers principles of software design and engineering, design patterns, and also introduces C, C++, and systems programming principles through the use of low-level socket and thread APIs such as Berkeley Sockets and pthreads.
Introduction to Computer Graphics
TA, Fall 2009
Head TA, Fall 2010
CSCI1230 is a course primarily for advanced Computer Science concentrators and graduate students, taught by Professor Andries van Dam. This course is one of the longest continuously running courses at Brown University and the longest continuously running course in computer graphics. In Summer and Fall 2010 I had the opportunity to lead a staff of 7 teaching assistants in the course's third major reworking since 1970. We modernized several of the existing assignments, introduced a final project, and authored a series of ten new labs which students would participate in weekly. The new labs introduce basics of shader programming.