Doctor of Philosophy (Ph.D.) in Computer Science
University of California, Santa Barbara
June, 2013
Master of Science (M.S.) in Computer Science
University of California, Santa Barbara
June, 2008
Bachelor of Science (B.S.) in Computer Science with
Honors University of California, Santa Barbara
Publications
Conferences
Computational Thinking for Physics:
Programming Models of Physics Phenomenon in Elementary School
(pdf)
Hilary Dwyer, Bryce Boe, Charlotte
Hill, Diana Franklin,
and Danielle
Harlow Proceedings of the 2013 Physics Education Research
Conference (PERC 2013). Portland, OR, July 2013.
Hairball: Lint-inspired Static Analysis of
Scratch Projects (paper
pdf | slides
pptx)
Bryce Boe, Charlotte Hill, Michelle Len, Greg
Dreschler, Phillip Conrad,
Diana Franklin Proceedings of the 44th SIGCSE
Technical Symposium on Computer Science Education (SIGCSE 2013). Denver,
CO, March 2013.
Assessment of Computer Science Learning
in a Scratch-Based Outreach Program
(pdf)
Diana Franklin, Phillip
Conrad, Bryce Boe, Katy Nilsen, Charlotte Hill,
Michelle Len, Greg Dreschler, Gerardo Aldana, Paulo Almeida-Tanaka, Brynn
Kiefer, Chelsea Laird, Felicia Lopez, Christine Pham, Jessica Suarez,
Robert Waite Proceedings of the 44th SIGCSE Technical Symposium on
Computer Science Education (SIGCSE 2013). Denver, CO, March 2013.
Organizing Large Scale Hacking
Competitions
(pdf) Nick
Childers, Bryce Boe, Lorenzo Cavallaro, Ludovico Cavedon, Marco Cova,
Manuel Egele and Giovanni Vigna Proceedings of the Seventh Conference
on Detection of Intrusions and Malware & Vulnerability Assessment
(DIMVA 2010). Bonn, Germany, July 2010.
User Interactions in Social Networks and
their Implications
(pdf)
Christo Wilson, Bryce Boe, Alessandra Sala, Krishna P. N. Puttaswamy and
Ben Y. Zhao Proceedings of ACM EuroSys 2009. Nuremberg, Germany, April
2009.
Workshops
Do Social Networks Improve e-Commerce?: A
Study on Social Marketplaces
(pdf) Gayatri
Swamynathan, Christo Wilson, Bryce Boe, Kevin C. Almeroth and Ben
Y. Zhao Proceedings of First Workshop on Online Social Networks (WOSN
2008). Seattle, WA, August 2008.
Fall 2013 -- Problem Solving with Computers II
(CS24)
Summer 2013 Session C -- Problem Solving with Computers II
(CS24)
Summer 2012 Session B -- Object Oriented Design and Implementation
(CS32)
Prepared and taught a class of 25 students. Covered a majority of ten
weeks of material in six weeks. Created a challenging and fun card-game
final project that effectively demonstrated the concept of polymorphism in
C++.
Teaching Assistant Experience
Winter 2014 -- Problem Solving with Computers II (CS24)
Winter 2012 -- Problem Solving with Computers II (CS24)
Adapted my automated feedback and assessment system to provide
supplemental feedback crucial to first year students' success. Student Evaluations -- 24 responses (1-5, 1 is best)
Overall evaluation of the TA: 1.3 (cs department average: 1.6)
2011-2012 Academic Year -- Computer Science Lead TA
Participated in the
2011 Lead TA
Institute. Responsible for training first year teaching assistants in
the fall through the CS501 seminar covering topics such as confidence in
the classroom, grading, ethics, and teaching pedagogy. Additionally
responsible for providing TA consulting, and ensuring all new TAs are video
taped and attend a video consultation in the winter quarter. Finally each
quarter I conducted midterm TA evaluations for all the courses.
Notable additions to the TA training program include the addition of a TA
pairing program in which students of CS501 had to attend a current TAs
laboratory, or discussion section as well as requiring CS501 students to
create a Teaching Philosophy statement.
Spring 2011 -- Operating Systems (CS170)
An upper division course required for both Computer Science and Computer
Engineering majors with 52 students. The projects were similar to when I
taught the class in Spring 2009. I was responsible for teaching one
project oriented section a week and handling half the project grading. Student Evaluations -- 10 responses (1-5, 1 is best)
Overall evaluation of the TA: 1.4 (cs department average: 1.6)
2009-2010 Academic Year -- Computer Science Lead TA
Participated in the 2011
2009 Lead TA
Institute. Responsible for training first year teaching assistants in
the fall through the CS501 seminar covering topics such as confidence in
the classroom, grading, ethics, and teaching pedagogy. Additionally
responsible for providing TA consulting, and ensuring all new TAs are video
taped and attend a video consultation in the winter quarter. Finally each
quarter I conducted midterm TA evaluations for all the courses. In attempt
to make the midterm TA evaluation process more efficient I implemented an
online system,
taevals, which I launched in the
spring quarter.
Spring 2009 -- Operating Systems (CS170)
An upper division course required for both Computer Science and Computer
Engineering majors with 42 students. The projects involved writing a user
level shell for Linux, adding real-time processes to the Minix scheduler,
adding a semaphore server (service) to Minix, implementing the core dump
functionality in Minix and finally adding immediate files to Minix's file
system. As the sole TA, I was responsible for teaching one project
oriented section a week, in addition to handling the grading of the
projects. Additionally I presented the lecture on memory management.
Student Evaluations -- 32 responses (1-5, 1 is best)
Overall evaluation of the TA: 1.3 (cs department average: 1.8)
Winter 2009 -- Compilers (CS160)
An upper division course required for Computer Science majors with 25
students. The projects had the students write a recursive decent parser for
a calculator, followed by a much larger project where the students wrote
a compiler for a language similar to C utilizing the tools flex and bison.
The assembly produced by their compiler was for x86 machines.
I instructed one section a week, and graded 5 projects. During the course I
wrote both a simple utility,
turnin_helper
and a more sophisticated automatic grading utility,
auto_grade to reduce the
time spent grading. The latter utility was tremendously beneficial to the
students as they received immediate feedback for their submitted projects.
Student Evaluations -- 10 responses (1-5, 1 is best)
Overall evaluation of TA: 1.1 (cs department average: 1.9)
Ensured the success of the 2010 GSWC by securing $4000 in funding and
delegating tasks where appropriate. Improved organization efficiency by
setting up both a HotCRP review service, and by creating a Google Sites
page with all organizational information for future GSWC program
committees.
November 2012, Programming Competition Teams' Coach
Identical responsibilities to those lised under the November 2011
description.
Summer 2012, Animal Tlatoque
Animal Tlatoque
was a two-week, NSF funded, summer camp targeted towards middle school
students that incorporates Latin American Culture, animals and computer
science. As the graduate student organizer I was responsible for refining
the scratch-based activities and ensuring the undergraduates' day-to-day
preparation.
November 2011, Programming Competition Teams' Coach
As the coach for the three UCSB teams competing in
the 2011 Southern
California Region ACM International Collegiate Programming Contest, I
was primarily responsible for ensuring the teams' preparation on the day of
the competition. This task involved ensuring they were familiar with the
official submission process as well as the process for asking for any
needed clarifications. Additionally I was responsible for transporting the
majority of the UCSB student participants between Santa Barbara and
Riverside for the competition.
February 2011, FUSE
(Family Ultimate Science Exploration) Volunteer
As a FUSE volunteer, I was tasked with leading the
Homemade Speakers
activity. In addition to experiment preparation and providing a general
overview of the activity, I assisted the three groups of fifteen to twenty
middle school students (plus their parents) in the construction of a
speaker. I took great delight in observing the students' awe when they
first heard music from their paper plate speakers.
Assisted in the redesign and re-implementation of the production level
network architecture to reduce the application level memory
overhead. Positive side affects of such changes resulted in a simpler
deployment configuration, and lower network latencies between the client
and application server.
As a Platforms Engineering Intern I worked on writing multi-machine
network tests for the autotest
framework. This heavily involved core autotest modifications as it was not
designed for multi-machine tests.
VCEL (sold to fotochatter.com) -- Aug. 2005 - Nov. 2006
Involved in the design and start-up of a first generation mobile social
network service. Wrote a custom query based protocol for communication
between J2ME enabled phones and the web server.
Hired consultant for a variety of tasks. I began by working with web
development in PHP, and eventually tasked with redesigning their internal
network both at the physical level and virtual level. This task involved
migrating and updating their Active Directory and Exchange servers from
which I learned I never want to work with those products again. Most
recently, I have continued to maintain their AWS-based web server after
suggesting and relocating the web server to AWS around 2009.
CRAWL-E is a web crawling framework that seamlessly supports distributed
crawling across multiple threads as well as multiple machines. One of the
primary advantages of CRAWL-E over other distributed crawlers is its
continued use of a single socket to perform many HTTP requests thus
drastically reducing the number of TCP handshakes required. I wrote CRAWL-E
in order to collect data from both Overstock.com and Facebook when I was
working in Professor Ben Zhao's lab. Since that time, I have continued to
improve CRAWL-E as issues appear and features are requested.
The Python Reddit API Wrapper (PRAW) is python library that interfaces
with the API provided the the social news
site reddit. PRAW has been installed
well over a million
times and is starred on github by
over 2800
developers. As the package maintainer and primary developer I regularly
monitor reddit's source code for changes in order to add support for new
API functionality when available. I also often communicate with users of
PRAW to get a sense of what may be lacking or could use improvement. As a
result of such communications I have
personally
contributed a number of improvements to reddit's source. These
improvements in turn lead to improvements in PRAW's source.