Course archive: links to courses past and present

In the current catalog

CSC 105: The digital age

Weinman
Wolz
  • spring 2017
Davis
Coahran
  • spring 2010
  • spring 2008

CSC 151: Functional problem solving

Curtsinger
Klinge
Rebelsky
Weinman
Davis
Price Jones

CSC 161: Imperative problem solving and data structures

Klinge
Osera
Stone
  • spring 2016
Walker
Rebelsky
Coahran
  • spring 2009
  • fall 2008

CSC 205: Computational linguistics

Stone
  • fall 2016
  • fall 2010
  • fall 2008
  • fall 2006
  • fall 2004
  • fall 2002
Price Jones

CSC 207: Algorithms and object-oriented design

Osera
Rebelsky
Walker
Weinman

CSC 208: Discrete structures

Stone
  • spring 2016
  • spring 2014
  • spring 2013

CSC 211: Computer organization and architecture

Curtsinger
  • fall 2016
  • spring 2016
Davis
Coahran
  • fall 2009
  • fall 2007
Gum
  • fall 2005
Bishop
  • fall 2003
Walker

CSC 213: Operating systems and parallel algorithms

Curtsinger
  • spring 2017
Weinman
Davis
Walker
Bishop
  • fall 2002 (two sections)

CSC 214: Computer and Network Security

Stone
  • spring 2017

CSC 232: Human-computer interaction

Davis

CSC 261: Artificial intelligence

Weinman
Walker
Stone
  • fall 2003

CSC 282: Thinking in C and Linux

Rebelsky
  • spring 2017

CSC 301: Analysis of algorithms

Wolz
  • spring 2017
  • spring 2016
Walker
Stone
  • fall 2016
  • fall 2012
  • fall 2010

CSC 321: Software development principles and practices

Rebelsky

CSC 322: Team software development for community organizations

Rebelsky

CSC 341, Automata, formal languages, and computational complexity

Osera
Klinge
Walker
Price Jones
Stone
  • spring 2011
  • spring 2007
  • spring 2006
  • spring 2005
  • spring 2004
  • spring 2001
  • spring 1997
  • spring 1995
Gum
  • spring 2003
  • spring 2002
Jones
  • spring 1993
Moore
  • spring 1991

CSC 364: Computer networks

Davis
Stone
  • spring 2002
Rebelsky

CSC 195: Introductory special topics

Rebelsky
Walker

CSC 295: Special topics

Rebelsky
Davis
Weinman
Praitis
Coahran
  • Computer graphics, spring 2009
Cunningham
  • Computer graphics for science, spring 2006
Silkin
  • Introduction to bioinformatics algorithms, spring 2005
Borenstein
  • Human-computer interface design, spring 1999
Walker

CSC 297: Guided reading

Davis
  • Computing and health care, spring 2011
Rebelsky
  • Women in computing, fall 2007 (with Davis)
  • Programming Actionscript, spring 2007
  • The TAO of Java, fall 2003
  • Web technologies, spring 2004
  • Web technologies, fall 2003
Walker
  • Women and computing, fall 2005
  • Neural networks, fall 2000
  • System administration theory, spring 1998
  • Language analysis, spring 1994
  • Artificial intelligence and predicate calculus theorem-proving, spring 1993
  • Artificial intelligence and Scheme, fall 1992
  • Database principles, spring 1992
Stone
  • Copyright alternatives, spring 2005
  • Linux kernel programming, spring 2003
  • Artificial intelligence, fall 1997
  • Artificial intelligence, fall 1996
  • Scheme and computer science theory, spring 1995
  • C++, fall 1990

CSC 299: Directed research

Weinman
  • Word image normalization, fall 2013
  • Word image normalization, summer 2013
Rebelsky
  • Computing for social good: media computation, summer 2013
  • Techniques for mediascripting, spring 2013
  • Media scripting, summer 2012
  • InterArts: image, sound, and gesture, summer 2012
  • Media scripting, summer 2011
  • Higher-order media computation, summer 2007
  • Functional multimedia, summer 2006
  • Automated group scheduler, summer 2004
  • Mediating the Web, summer 2003
  • Visualizing Web usage,, summer 2003
  • Three-dimensional Web visualizations, summer 2002
  • Web mediation tools, summer 2002
  • Data mining use logs, summer 2002
Walker
  • Refining a C with robots course, fall 2011
  • Introducing C with robots, summer 2011
  • Automating athletic recruiting, summer 2005
Davis
  • Usable functional media computation, summer 2007
Stone
  • Restoring Greek, spring 2007
  • Syndication software development, summer 2005

CSC 395: Advanced special topics

Curtsinger
  • Data Visualization spring 2017
Osera
  • Modern programming principles, fall 2016
Gum
  • Algorithms for practical problems, spring 2003
Bishop
  • Cryptology, fall 2001

CSC 397: Independent project

Davis
  • Design technology and wellness behaviors, fall 2013
  • Advanced Web application development: the Local Foods Web site, fall 2013
  • Web application design and usability, spring 2013
  • Advanced Web application development: the Local Foods Web site, spring 2013
  • Usable Web application development: Grinnell Textbook Lending Library, spring 2013
  • The design and implementation of FreeBSD, spring 2008
Stone
  • Programming for the common good, spring 2011
  • Computer learning and problem solving, spring 2006
  • Extended study in software design, spring 2000
  • Logic and languages, fall 1995
  • Computer graphics, spring 1995
  • The Grinnell Scheme interpreter, spring 1994
  • Software design and implementation, spring 1994
  • Functional languages, spring 1993
  • Computational linguistics, spring 1993
  • Artificial intelligence and pattern recognition, spring 1993
  • Computer science and artificial intelligence, spring 1992
Silkin
  • Introduction to biocomputing, spring 2007
  • Advanced Windows programming, spring 2006
Rebelsky
Walker
  • Topics in computer networking, spring 2005
  • Topics in computer networking, spring 2004
  • Palm program applications, fall 2000
  • Computer graphics algorithms, fall 2000
  • Database design, fall 2000
  • Study of the TCP/IP protocol, spring 2000
  • Software engineering, spring 1998
  • Paradigms and lab development, spring 1998
  • Software optimization, spring 1994
  • Expert systems, spring 1993
  • Interprocess communication, spring 1992
  • Advanced parsing techniques, spring 1991
  • Expert system design, spring 1991
Gum
  • Heuristics for tutorial placement, spring 2003
  • NP-hard problem heuristics, spring 2002
Moore
  • Programming in C, fall 1996
Sinnett
  • Computers in psychology, spring 1991

CSC 399: Directed research

Rebelsky
  • Interactive media scripting, summer 2009
  • Web mediation tools, summer 2002
  • Annotating the World Wide Web, summer 2001
  • Clio: exploring Web usage, summer 2001
  • Hypertext transformations, summer 2001
  • Hypermedia research, summer 2000
  • A Web history analyzer, summer 2000
  • Annotating the World Wide Web, summer 1999
  • Siteweaver research, summer 1999
  • Hypermedia, summer 1998
Walker
Coahran
  • Sketch-based Bargello, summer 2008
Moore
  • Visual graph theory, summer 1995

CSC 499: Mentored advanced project

Davis
  • Design technology and wellness behaviors, fall 2013
  • Design technology and wellness behaviors, summer 2013
  • Technology and incentives, fall 2012
  • Just-in-time vulnerability prevention in Linux, spring 2012
  • Improving the user interface of the Local Foods Co-op Web site, summer 2011
  • Persuasive Web community, summer 2010
  • PD of ambient personal technology, summer 2008
  • Usable functional media computation, summer 2007
Walker
Rebelsky
  • Computing for social good: media computation, summer 2013
  • Generative art, spring 2013
  • Media scripting, fall 2012
  • Media scripting, summer 2012
  • InterArts: code, sound, and image, summer 2012
  • Media scripting, summer 2011
  • Designing multifactor experiments, summer 2009
  • Interactive media scripting, summer 2009
  • Higher-order media computation, summer 2007
  • Functional approaches to multimedia, summer 2006
  • Experiments in programming languages, fall 2005
  • Compiling functional languages, spring 2005
  • Freedweb: a peer-to-peer Web server, summer 2004
  • A stand-alone spam filter, summer 2004
  • Robotic art, fall 2003
  • Web mediation, summer 2003
  • Visualizing Web data, summer 2003
  • Educational Web technology, summer 2003
  • Computerizing room draw, spring 2003
  • Automatic glossary linking, spring 2003
  • Data mining use logs, summer 2002
  • Three-dimensional Web visualization, summer 2002
Weinman
  • Word image normalization, summer 2013
  • Word image normalization (two sections), summer 2011
  • Map character recognition, fall 2010
  • Multiple GPU machine learning, fall 2010
  • Map character recognition, summer 2010
  • GPU learning and character recognition, summer 2009
  • Visual category recognition, summer 2009
Stone
  • Compression algorithms and techniques, spring 2009
Kuiper
  • Simulation of ungulate grazing, spring 2005
Bishop
  • Ray tracing II, spring 2004
  • Ray tracing, fall 2003
  • Online FB computing in real time, spring 2003
  • A multiprotocol mail client, fall 2002
Gum
  • Heuristics for tutorial placement, spring 2003
  • Massive data computation, summer 2002

No longer offered

CSC 103: Problem solving and computing

Moore
  • spring 2001
  • spring 1997
  • spring 1995
  • spring 1993
  • spring 1992
Rebelsky

CSC 105: An algorithmic and social overview of computer science

Coahran spring 2007
Walker
Bishop
  • fall 2001
Rebelsky

CSC 151: Fundamentals of computer science I

Davis
Rebelsky
Matocha
  • spring 2006
Walker
Gum
  • fall 2005
  • fall 2003
  • spring 2003
  • fall 2002
  • spring 2002 (two sections)
  • fall 2011
Silkin
  • spring 2005
  • fall 2004
Stone
  • spring 2005
  • spring 2004
  • fall 2001
  • spring 2000
  • spring 1998
  • spring 1997
Flynt
  • spring 1999
Moore
  • fall 1996

CSC 151: Computer programming with Pascal

Jones
  • spring 1996
  • fall 1995
Moore
  • spring 1996
  • fall 1994
  • spring 1994
  • fall 1990
Walker
  • spring 1995 (two sections)
  • spring 1994
  • spring 1993
  • spring 1992 (two sections)
  • spring 1991 (two sections)
Stone
  • fall 1993
  • spring 1993
  • fall 1991

CSC 152: Fundamentals of computer science II

Stone
  • spring 2008
  • fall 2007
Coahran
  • spring 2007
  • fall 2006
Rebelsky
Bishop
  • spring 2004
  • fall 2003
  • spring 2003
  • fall 2002
  • spring 2002
  • fall 2001
Walker
Flynt
  • spring 1999

CSC 153: Computer science fundamentals

Walker
Rebelsky

CSC 201: Memory management, data representation, and formal methods

Coahran
  • spring 2008
  • spring 2007
Matocha
  • spring 2006
Walker
Bishop
  • spring 2004

CSC 206: Fundamentals of computer science II

Moore
  • spring 1997
Stone
  • fall 1996
  • spring 1996

CSC 206: Fundamentals of computer science

Stone
  • spring 1995
  • spring 1994 (two sections)
  • fall 1992
  • fall 1990
Moore
  • fall 1994
Walker
  • spring 1993
  • spring 1992
Jones
  • spring 1991

CSC 207: Computer architecture and operating systems

Walker
  • fall 1996
  • fall 1994
  • fall 1992
  • fall 1990

CSC 223: Software design

Davis
Walker
Rebelsky
Bishop
  • spring 2003
  • spring 2002
Stone
  • fall 1999

CSC 223: Algorithms and software design

Rebelsky
Stone
  • fall 1995
  • fall 1993
  • fall 1991

CSC 301: Algorithms

Coahran
  • fall 2007
  • fall 2006
Gum
  • fall 2005
  • fall 2003
  • fall 2002
  • fall 2001
Silkin
  • fall 2004
Stone
  • fall 2000
  • fall 1999
Walker

CSC 301: Algorithms and data structures

Stone
  • fall 1997
Moore
  • fall 1995
  • fall 1991
Walker
  • fall 1993

CSC 302: Programming language concepts

Price Jones
Rebelsky
Stone
  • spring 2009
  • spring 2008
  • spring 2003
  • spring 2002
  • spring 1996
  • spring 1992
Walker

CSC 323: Software design

Stone
  • spring 2014
  • spring 2012
Rebelsky

CSC 325: Databases and Web application design

Davis
Rebelsky
Walker

CSC 362: Compilers

Stone
Rebelsky