Students in good standing are permitted (and in some cases encouraged) to take one or two independent studies courses. Generally the independent studies course is one in an area for which no regular course is offered (e.g. Blockchain, Type Theory, Action Semantics, Artificial Life, Modal Logic, Constraint Programming) and in which you are genuinely interested.
This page has information for students wishing to do independent studies courses under my supervision. Other faculty members will no doubt have different requirements.
At the end of an independent studies course you will have attained mastery of the chosen subject matter to the degree expected from a student taking a traditional course for about the same number of units.
Independent studies courses do not necessarily require research that breaks new ground in a subject area. That’s nice, but not required. It is required for a thesis or dissertation, however.
The foremost requirement is that you do the proper amount of university quality work for the number of units you are taking. Do not expect a good grade for putting off everything until the last two weeks and hacking together a project.
You are expected to read at least:
You are required to generate:
During the semester:
On the last day of the semester, you are to submit a portfolio, either electronic (preferably a GitHub Wiki), or in a binder (with dividers), neatly organized, and containing, in order:
You must prepare yourself for a 15 minute informal “oral report” (I don’t want to call it an “oral exam”) in which we will discuss one-on-one what you have learned and what you have accomplished.
Your grade will be weighted on the following:
Your grade will be assigned on the quality according to the university grading system, which was, as of 2009, the following:
Grade | Undergraduate | Graduate |
---|---|---|
A (−) | Superior | Superior |
B (±) | Good | Satisfactorily demonstrated potential for professional achievement in field of study |
C (±) | Satisfactory | Passed the course but did not do work indicative of potential for professional achievement in field of study |
D | Poor | |
F | Failure | Failure |
Here are some of the courses I’ve supervised in the past (U=undergraduate, G=graduate). The list isn’t necessarily complete. Not only have I likely forgotten a few courses, but I’ve also purposely left off all of the independent studies courses that are just like regular courses, taken by students that have transferred into the Computer Science major from another major or university, studied abroad, or have otherwise found the need to take courses out of sequence.
Term | Title | U/G | Students |
---|---|---|---|
Spring 2024 | Concatenative Programming Languages | U | Natalie Lau |
Concatenative Programming Languages | G | Julian Gonzalez | |
Spring 2022 | Web Framework Implementation | G | Marco Berardini |
Fall 2021 | Web Framework Architecture | G | Marco Berardini |
Spring 2021 | React Web and Mobile Applications | U | Maya Pegler-Gordon |
Modern Compiler Engineering | G | Marco Berardini | |
Spring 2019 | Algorithms Laboratory | U | Sage Strieker, Merissa Tan, Evan Mitchell, Nico Raymundo, Sam Gibson, Donovan Moini, Ian Lizarda |
Fall 2018 | Type Systems in Programming Languages | U | Justin Torres |
Mutual Distrust Cloud Systems | U | J Goocher | |
Spring 2018 | |||
Blockchain Internals | U | Megan Karbowski | |
Embedded Systems and Controls | U | Anthony Keba | |
Game Development | U | Kevin Metelus | |
Python Scripting for Post-Production | U | Nicholas Sy | |
Modern Web Applications | U | Cherrell Finister | |
GPU Architecture and Computing | G | Gurinder Chauhan | |
Spring 2017 | Machine Learning | U | Natalia Dibbern, Juan Neri |
Spring 2016 | Survey of Modern Programming Languages | U | Eileen Choe |
Algorithms Laboratory II | U | Mattie Coccia | |
Mobile Application Development | U | Matt Flickner, Jeff Fennell | |
Fall 2015 | Advanced Topics in Programming Languages | U | Alex Schneider |
Internet Radio Security | U | Alex Schneider | |
Spring 2015 | Game Programming in Unity 3D | U | Gabriel Gonzalvez, Patrick Sullivan |
Distributed Computing | U | Alex Schneider | |
Fall 2014 | Mind, Brain, and Computation | U | Jackson Souza |
Spring 2014 | Web Application Architecture | U | Rachel Rivera, Alex Schneider, Mattie Coccia, Stephen Smith |
Algorithms Laboratory | U | Rachel Rivera, Alex Schneider, Mattie Coccia, Andrew Akers | |
Spring 2013 | Distributed Computing Practicum | U | Andy Won |
Algorithms Laboratory | U | Jasmine Dahilig | |
Fall 2012 | Computer Networks | U | Tyler Nichols, Eric Jaso |
Spring 2012 | Data Mining for Quantitative Financial Analysis | U | Monty Zimmerman |
Spring 2011 | Web Application Development | U | Rich Mautino |
Fall 2010 | Address Resolution Protocol | G | Daryoush Shokrgozar |
Fall 2009 | Enterprise Video Management | U | Kelly Sutton |
Logic, Language, and Computation | U | Kelly Sutton, Gary Hatter, George Chahrouri, Dan Moore | |
Spring 2009 | Game Programming | U | Chris Mueller |
Scripting Languages | G | Rich Rolston | |
Fall 2008 | Game Programming | U | Evan Fishman |
Computer Networks | U | Derek Smith | |
Fall 2007 | Enterprise Computing Architecture | U | Kaniel Yano, Steve Smith, Michael Lovrovich |
Scripting Languages | U | Loren Abrams | |
Spring 2007 | Scripting Languages | U | Tim Lambert, Andrés Buriticá, Patrick Falls |
Fall 2006 | Enterprise Computing Architecture | U | Andrés Buriticá |
Spring 2006 | Enterprise Computing Architecture | U | Matt Werner, Mike Megally |
Fall 2005 | The Semantic Web | G | Paul Bull |
Spring 2005 | Wireless Technologies | G | Joephy Hoang |
Internet Technologies | U | Matt Glaser, Dominick Guzzo, Jason Lake, Derek Springer | |
Fall 2004 | Firmware Technologies | U | Mark Kolich |
Network Security | G | Prabhu Anbanathan | |
Programming Language Semantics | G | Brian Birmingham | |
Fall 2003 | Advanced Design Patterns | U | Chris Kane, Zac Propersi |
Spring 2003 | Internet Security | G | Sinu Ranasinghe |
RISC Architecture | U | Will Ready, Masahji Stewart, George Melika | |
Spring 2002 | Advanced Three Dimensional Graphics | U | Joey Davis, Vlad Galyuz |
Fall 2001 | Distributed Systems | U | Bill Hamor |
Spring 2001 | Component Technologies | U | Zach Kuhn |
Enterprise Computing | U | John Sullivan | |
Microprocessors | G | Shoki Souri | |
Database Systems | G | Shoki Souri | |
Fall 2000 | Embedded Systems Software | G | Robert Hayes |
Spring 2000 | Windows NT Internals | U | Dirien Barcenas |
Spring 1999 | Realtime Design Patterns | G | James Sanchez |
Fall 1997 | Type Theory and Higher Order Logic | G | Robert Bauer |
Internet Technologies | U | Caskey Dickson | |
Spring 1997 | Modal and Temporal Logics | G | Robert Bauer |
Concurrent and Distributed Programming | U | Neil Rotstan, Tony Shaheen | |
Three Dimensional Graphics with OpenGL | U | McKay Stewart | |
Spring 1996 | Compiler Construction II | G | Lida Soopikian |
Spring 1995 | Introduction to Three Dimensional Rendering | U | Michael Fair |
Fall 1994 | Object Oriented Design and Eiffel | G | David Lacey |
Summer 1994 | Topics in Programming Languages: ML | G | Revital Elitzur |
Spring 1994 | Distributed Object-Oriented Databases | G | Eric Shulman |
Fall 1993 | Advanced Compiler Design | G | Scott Karlin |
Topics in Programming Languages: Ada 9X | G | Jodene Sasine | |
Summer 1993 | User Interface Design | G | Nils Sandoy |
Spring 1993 | Chaos and Fractal Geometry | G | David Coca |
Fall 1992 | Object Oriented Language Implementation | G | Dean Allingham |
Concurrent Programming in Ada | G | Dean Allingham | |
Software Engineering Environments | U | Masroor Malik | |
Object Oriented Programming | U | Masroor Malik | |
Object Oriented Databases | U | Elias Kent | |
Spring 1990 | Functional Programming Languages | U | Frances Thierot |
Spring 1987 | Software Engineering and Ada | U | Paula Bennett, Tim Prendergast |