Skip Navigation
A Culture of Care

Read Smith’s UPDATED plans as of November 23, 2020,
for the spring 2021 semester.

Computer Science

Computer Science at Smith College

Computer Science prepares students to lead in a world experiencing sweeping technological change. Students choosing to major in computer science can look forward to a career in one of the many fields to which computer technology has become vital, including the sciences, arts and entertainment, banking and commerce, and of course the communication and computer industries themselves.

Announcements

Computer Science Web Upgrade

Welcome to our new, upgraded website. If you’re looking for the old (legacy) site, it’s still accessible here.

Hiring Announcement

The department currently has openings for two tenure-track faculty positions.  See https://apply.interfolio.com/79751 for more information.

About Computer Science at Smith

Students working on computers wearing Microsoft attire

Computer science was founded as an independent department in 1988. 

Computer Science Studies for Non-Majors

For non-majors, we offer courses demystifying the inner workings of computers and the Internet. Students can take a course in interactive web design, providing them with bankable skills on the job market. For those interested in exploring further, we invite you to check out our courses on beginning programming, computer graphics and artificial intelligence.

Computing and the Arts

Artistic applications of computing are a growing initiative in the department. In recent years we have added new minors in digital arts and digital music. Visiting faculty and active interdisciplinary ties with related departments make this an exciting and vibrant area.

Student Involvement

Computer science students are very active in the department. Three liaisons attend department faculty meetings and run monthly social gatherings, such as movie night and game night. A student-led club organizes career-oriented training and offers community outreach via a local chapter of Girls Who Code. Many students work as teaching assistants, running help sessions, grading and aiding students during teaching labs. Students also do research as special studies, as research grant assistants or as honors theses. Faculty have summer research projects available for motivated and interested students. For more information, contact a faculty member as early as January of the spring semester.

Facilities

Computer science enjoys the use of several dedicated classrooms and research facilities in Ford Hall. Installed machines include multiple-boot workstations and dedicated computing clusters. The student lounge provides comfortable furniture, toys and refrigeration for students looking for a break from their work. Students and faculty pursue interdisciplinary research and class work using digital circuits and microprocessor kits, Lego robot arms and robot dogs, and mobile platforms, plus sensor modules, synthesizers and keyboards for digital sound and music. The Center for Design and Fabrication offers 3-D printers, laser scanners, laser and water-jet cutters, among other tools for rapid prototyping.

Tutors/Teaching Assistants

The location for all hours is Ford Hall 243 and 241. See the TA Hours page for up-to-date information.

 

Online Questionnaire

To pick a computer science major adviser, please fill out the CS Major/Minor Declaration & Adviser Form. The form will automatically notify Daryl Jett, the computer science administrative assistant. 

Next Steps

  • Daryl will process your request and assign you a faculty advisor, depending on the number of advisees currently assigned to CS faculty.
  • Both you and your new adviser will receive an email from Daryl indicating that you have a new adviser.
  • Get a Change of Adviser form (scroll to bottom of page) from the Registrar's office, fill it out, and have your new adviser sign it.
  • That’s it!

Requirements & Courses

Advisers: Judith Cardell, R. Jordan Crouser, Alicia Grubb, Nicholas Howe, Katherine Kinnaird, Jamie Macbeth, Joseph O'Rourke, Ileana Streinu

Requirements

At least 11 full-semester graded courses or the equivalent, including:

Introductory (1 or 2 semester courses; see notes below):

[Optional] 1 full-semester course or the equivalent chosen from CSC 102, 103, 105, 106, 107, 109, 151. SDS 192. (If taken, these credits count in lieu of the one additional course under Intermediate, below).
Restrictions:

  • CSC 102 may not count after taking CSC 249
  • CSC 103 may not count after taking CSC 231
  • CSC 106 may not count after taking CSC 260

 CSC 111 Introduction to Computer Science Through Programming

Core (3 courses):

  1. CSC 212 Programming with Data Structures
  2. CSC 231 Microprocessors and Assembly Language
  3. CSC 250 Theoretical Foundations of Computer Science

Mathematics (2 courses):

  1. MTH 111 (Calculus), or another math course that requires MTH 111; or LOG 100.
  2. MTH 153 (Discrete Math), ​or another math course that requires MTH 153.

Intermediate (3 or 4 courses; see course area designations below):

  1. One CSC or SDS Theory
  2. One CSC or SDS Programming
  3. One CSC Systems
  4. One additional CSC or MTH course at the 200 level or above (waived if student has satisfied he Optional semester course under Introductory, above)

300-Level Course (1 course)
One CSC 300-level course beyond those satisfying the requirements above, or its equivalent (e.g., a UMass graduate course). Prerequisite: completion of core.

Note: Courses taken S/U will not count toward the major except that one course taken S/U will be allowed for major credit if it was completed before the student declared as a computer science major. Students may petition to satisfy the 300-level course requirement with an advanced undergraduate or graduate course taught at another of the Five Colleges.

Course Search

See the Smith College Course Search for a current listing of offerings.

Course Search

Students may also take courses at the Five Colleges. See the Five College Course Search to find classes at Amherst, Hampshire and Mount Holyoke colleges and the University of Massachusetts Amherst.

Course Area Designations

Course

Theory

Programming

Systems

CSC 205 (Modeling in the Sciences) X X  
CSC 220 (Advanced Programming)   X  
CSC 223 (Software Engineering)     X
CSC 230 (Database Systems)     X
CSC/SDS 235 (Visual Analytics) X X  
CSC 240 (Graphics) X X  
CSC 249 (Networks)     X
CSC 251 (Network Security)     X
CSC 252 (Algorithms) X    
CSC 253 (Applied Algorithms) X X  
CSC 256 (Intelligent User Interfaces)   X  
CSC 262 (Operating Systems)   X X
CSC 266 (Compiler Design) X X  
CSC 270 (Circuits)     X
CSC 274 (Discrete & Computational Geometry) X X  
CSC 290 (Artificial Intelligence) X X  
CSC 294 (Computational Machine Learning) X X  
EGR 320 (Signals & Systems)     X
CSC 325 (Responsible Computing)     X
CSC 330 (Database Systems)     X
CSC 334 (Computational Biology) X X  
CSC 352 (Parallel Prog)   X X
CSC 353 (Robotics)   X X
CSC 354 (Music Proc) X X  
CSC 356 (Computer-Human Interaction) X    
CSC 360 (Mobile & Locative Computing) X    
CSC 370(Vision) X X  
CSC 390 (Artificial Intelligence) X    

Requirements

Six CSC courses. Any of the 200-level courses below could be replaced by a CSC Special Studies. The 300-level course could be replaced by a UMass graduate course in Computer Science.

Required Courses

  • CSC 111 Introduction to Computer Science Through Programming
  • CSC 212 Programming With Data Structures
  • CSC 100-level or 200-level Intro or Intermediate
  • Two CSC 200-level Intermediate 
  • CSC 300-level course, or its equivalent

Students may also be interested in exploring the 5-College Biomathematical Sciences certificate or the Arts & Technology Interdepartmental minor.

Course Search

See the Smith College Course Search for a current listing of offerings.

Course Search

Students may also take courses at the Five Colleges. See the Five College Course Search to find classes at Amherst, Hampshire and Mount Holyoke colleges and the University of Massachusetts Amherst.

Advisers: R. Jordan Crouser, Nicholas Howe, Joseph O’Rourke

This minor accommodates students who desire both grounding in studio art and the technical expertise to express their art through digital media requiring mastery of the underlying principles of computer science.

Requirements

Six courses equally balanced between computer science and art.

Three computer science courses are required. The CSC 102+105 sequence on the Internet and Web design provide the essentials of employing the Internet and the Web for artistic purposes; CSC 111 Introduction to Computer Science through Programming includes a more systematic introduction to computer science, and the basics of programming; and CSC 240 Computer Graphics gives an introduction to the principles and potential of graphics, 3D modeling and animation. (Students with the equivalent of CSC 111 in high school would be required to substitute CSC 212 instead).

Three art courses are required. ARH 101 will provide the grounding necessary to judge art within the context of visual studies. ARS 162 Introduction to Digital Media introduces the student to design via the medium of computers, and either ARS 263 Intermediate Digital Media or ARS 361 Digital Multimedia provides more advanced experience with digital art.

Dept. Number Title Credits Prerequisites
CSC 102 How the Internet Works 2 None
CSC 105 Interactive Web Documents 2 CSC 102
CSC 111 Introduction to Computer Science Through Programming  5 None
CSC 212 Programming with Data Structures 5 CSC 111
CSC 240 Computer Graphics 4 CSC 111
ARH Any 4 None
ARS 162 Introduction to Digital Media 4 None
ARS 263 Intermediate Digital Media 4 ARS 162
ARS 361 Interactive Digital Multimedia 4 ARS 162

On an ad hoc approval basis, substitution for one or more of the required courses would be permitted by various relevant Five College courses, including those in the partial list below.

School Number Title
Smith DAN 377 Expressive Technology and Movement
Hampshire CS 0174 Computer Animation I
Hampshire CS 0334 Computer Animation II
Mount Holyoke CS 331 Graphics
UMass ART 397F Digital Imaging: Offset Litho
UMass ART 397F Digital Imaging: Photo Etchingg
UMass ART 397L Digital Imaging: Offset Litho
UMass ART 697F Digital Imaging: Photo Etchingg
UMass EDUC 591A 3D Animation and Digital Editing
UMass CMPSCI 397C Interactive Multimedia Production
UMass CMPSCI 397D Interactive Web Animation

Adviser: Katherine Kinnaird

This minor accommodates the increasing number of students who desire both grounding in music theory and composition and the technical expertise to express their music through digital media that requires mastery of the underlying principles of computer science. The minor consists of the equivalent of six courses equally balanced between computer science and music.

Requirements

Six courses equally balanced between Computer Science and Music.

Three computer science courses:

  1. CSC 111 Computer Science I includes a systematic introduction to computer science and programming
  2. CSC 212 Programming with Data Structures includes study of data structures, algorithms, recursion and object-oriented programming
  3. CSC 220 or CSC 250:
    1. CSC 220 Advanced Programming Techniques focuses on several advanced programming environments, and includes graphical user interfaces (GUIs).
    2. CSC 250 Foundations of Computer Science concerns the mathematical theory of computing including languages and corresponding automata.

Three music courses:

  1. MUS 110 Analysis and Repertory is an introduction to formal analysis and tonal harmony, and a study of familiar pieces in the standard musical repertory
    MUS 210 may be substituted for students entering with the equivalent of 110
  2. One of MUS 233 or MUS 312
    1. MUS 233 Composition covers basic techniques of composition, including melody, simple two-part writing and instrumentation
    2. MUS 312 20th Century Analysis is the study of major developments in 20th-century music. Writing and analytic work including non-tonal harmonic practice, serial composition and other musical techniques.
      (Prerequisite: MUS 210 or permission of the instructor).
  3. One of MUS 345 or CSC354 (cross-listed in the music department)
    1. MUS 345 Electro-Acoustic Music is an introduction to musique concrète, analog synthesis, digital synthesis and sampling through practical work, assigned reading and listening.
    2. CSC 354 Seminar on Digital Sound and Music Processing includes areas of sound/music manipulation such as digital manipulation of sound, formal models of machines and languages used to analyze and generate sound and music, and algorithms and techniques from artificial intelligence for music composition.

These requirements are summarized in the table below.

Dept. Number Title Credits Prerequisites
CSC 111 Computer Science I 4 None
CSC 212 Programming w Data Structures 4 CSC 111
CSC 220 Advanced Programming 4 CSC 212
CSC 250 Foundations of Computer Science 4 CSC 111, MATH 153
MUS 110 Analysis and Repertory 5 See course description
MUS 233 Composition 4 MUS 110
MUS 312 20th-Century Analysis 4 MUS 210
MUS 345 Electro-Acoustic Music 4 MUS 110, MUS 233, Permi.
CSC 354 Seminar on Digital Sound and Music Processing 4 CSC 212, CSC 250 or 231, Permission required

Substitutions

On an ad hoc approval basis, substitution for one or more of the required courses would be permitted by various relevant Five College courses, including those in the partial list below.

School Number Title
Amherst Mus 65 Electroacoustic Composition
Hampshire HACU-0290-1 Computer Music
Mount Holyoke Music 102f Music and Technology
UMass Music585 Fundamentals of Electronic Music
UMass Music586 MIDI Studio Techniques

What is an honors thesis?

An honors thesis is a yearlong investigation undertaken by a student in senior year under the supervision of a faculty member. The research counts as 8 credits—4 in the fall, 4 in the spring. The student writes a thesis by April 15 of her final semester and defends the thesis by giving a public presentation on her work to faculty and students. This presentation is usually scheduled for the last week of the semester. The thesis supervisor grades the 8 thesis credits. The department faculty vote on the level of honors to be awarded at graduation.

The Computer Science Department maintains a copy of all theses written since the formation of the department. These are bound in red and can be found in a bookcase in the faculty offices. A copy of each thesis is also filed in the Science Library. A partial list of past theses may be found below.

STUDENT NAME YEAR THESIS TITLE
Zainab Syeda Rizvi 2018 Computing maximum volume polyhedral wrappings
Betsy Mackenzie 2013 Physical Properties of Polyhedra
Angela Tosca 2011 The Limits of Computation under the Turing Machine Model
Hannah Bier 2009 Automated analysis of DNA electrophoresis gel photos
Christine Gracia 2009 2D Visualization of Wikipedia
Alexandra Booth 2007 Modeling and Computing Protein Flexibility
 

Why do an honors thesis?

If you are eligible (see below), it is an option that should be considered seriously. It is an intense but rewarding experience. Few students regret it, and it is often the highlight of their undergraduate careers. It is not uncommon for thesis work to lead to a published paper, and in any case it gives the student a leg up on graduate school applications.

Honors Director

R. Jordan Crouser is the current honors director and should be contacted for questions regarding working on an honors thesis.

Am I eligible?

The computer science admission criteria are as follows:

  • At least a 3.3 (B+) grade point average (GPA) through the junior year in all courses in the major.
  • At least a 3.0 (B) GPA through the junior year in all courses outside the major.
  • Exceptions to the above GPA criteria granted by majority vote of the CS faculty in response to a written petition by the student.
  • Approval by the department [which comes after you apply]

How do I apply?

Detailed instructions are available from the guidelines found on the class deans website (filed alphabetically under "Apply to Enter the Departmental Honors Program" and so easy to overlook). But here is the summary.

The formal application is due by mid-September of your senior year; it can be started and/or submitted in the late spring of your junior year. The formal application is not complicated. The most crucial aspect is securing a supervising faculty member and settling on a topic. The latter need only be worked out sufficiently to write up a one-page Abstract of what you hope to accomplish in the thesis. But it is important to emphasis that you do not need to have a topic in mind before starting the process, as explained below.

Concerning securing a thesis supervisor, there are essentially two models:

  • Model 1 is that the student comes up with a topic, and convinces a faculty member to supervise it. This is more rare than:
  • Model 2, in which the student goes to the faculty member, and says (effectively), can you suggest a topic? And then the student gathers the topics suggested by all the willing faculty, and decides what to pursue.

Several faculty in computer science prefer Model 2, for two reasons: (1) they can most knowledgeably supervise a thesis in an area with which they are thoroughly immersed, and (2) because faculty enjoy advancing their own research. Typically faculty will meet weekly with their thesis student, and more intensively at crucial junctures of the research and writing.

We encourage students considering a thesis to contact all the faculty with whom they would be comfortable, and ask each if they have ideas for theses topics, perhaps under some constraints (e.g., avoiding programming, including programming, something related to artificial intelligence, etc.) In general faculty consider it a gift to be asked to supervise a thesis for a good student (and all thesis students are by definition good!), so do not feel that you are asking for a favor. It is best, although not essential, to initiate this topic investigation prior to the Fall of your senior year, so that this process does not have to be compressed into the first two weeks of the semester.

Please consult the director of honors or the departmental website for specific requirements and application procedures.

Five computer science courses have no prerequisites. These are 102 How The Internet Works, 103 How Computers Work, 106 Introduction to Computing and the Arts, 111 Introduction to Computer Science Through Programming and FYS 164 Issues in Artificial Intelligence. Students who contemplate a major in computer science should consult with a major adviser early in their college careers.

Course Search

See the Smith College Course Search for a current listing of offerings.

Course Search

Students may also take courses at the Five Colleges. See the Five College Course Search to find classes at Amherst, Hampshire and Mount Holyoke colleges and the University of Massachusetts Amherst.

Emeriti Faculty

Merrie Bergman
Associate Professor Emerita of Computer Science

Judy Franklin
Associate Professor Emerita of Computer Science

Dominique Thiébaut
Professor Emeritus of Computer Science

Recent Visiting Faculty

Sahar Al Seesi (Southern Connecticut State University)
John Foley (Middlebury College)

Many students complete independent research projects in computer science under the supervision of a faculty member. Often these are undertaken over the summer, or they may be completed during the academic year as a special studies or honors thesis. Funding for these projects comes from a variety of sources. If you are a student interested in working on a research project, it is best to speak as soon as possible to the faculty member with whom you wish to work. 

Since 2008 students have documented their research projects on the departmental Wiki pages.

 

What is SURF?

Summer Undergraduate Research Fellowships (SURF) is the centerpiece of Smith’s Summer Research Fellowship Program.

The summer of 2020 was the 52nd year that Smith has had a formal student summer research program! Hands-on research collaboration between faculty and students is a cornerstone of  science education at Smith, so the summer program has always been very important to us. For more information, see Student Opportunities.

The application for SURF is available on the Clark Science Center website.

Who is hiring?

Alicia M. Grubb
I’m looking for students interested in software development and/or empirical research (i.e., Software Engineering).
  • In past summers, we developed BloomingLeaf, a web-based tool for building and analyzing goal models. This summer we will focus on improving the usability of our analysis results by creating better visualization and smart algorithms to help stakeholders understand trends over time. We will also implement new model management features helping multiple stakeholders compare their models and results. We seek the help of enthusiastic students with strong programming skills and an exposure to web development (javaScript), who have excellent communication skills (written/verbal English) and an ability to work independently and collaboratively. Our online codebase will help you create a portfolio for future applications to employers and graduate schools.
  • Other projects include: using stakeholder preferences to reduce the solution space of possible evolutions; comparing expressive power and usability of goal modeling languages; visualizing trends in evolutionary reasoning; and exploring the utility of goal modeling activities. Students with an interest in research and/or an interest in qualitative data analysis (e.g., open coding, ethnography) should state this on their application.
R. Jordan Crouser
  • The Automated Scribal Identification Project uses ancient manuscripts written in the Aramaic dialect of Syriac as a case study for exploring how recent advances in the digital analysis of handwriting can help scholars better ascertain a manuscript's provenance, identify manuscripts written by the same scribe, and trace out the chronological development of ancient scripts. Although the initial project goal is to substantially advance our understanding of Syriac Christianity, its greatest effect would be in providing a platform and a model for similar ventures in other languages such as Arabic, Greek, Hebrew, Latin, and Sanskrit.
  • Individual Differences Project: Researchers have conducted many studies that observe a data analyst performing a particular task, and have used those observations to define an analytic workflow. Individual analysts have distinctive workflows: they may combine canonical actions in unique patterns, focus on particular areas over others, and so forth. But, how do we predict which workflows an analyst is likely to favor in advance? In this project, we will design and conduct a series of experiments aimed at understanding the invariant features of the user that can be used to identify which features of an analytic tool we can modulate to better support individual analyst. By mapping features of the user on to features of the tool, we aim to provide a better, more streamlined experience for the user, thereby amplifying human analytic capabilities in areas where purely computational analysis fails.
  • Computing for Mental Health Project: A collaboration with clinicians at the Justice Resource Institute on exploring the role of computation and interactive systems in community-based mental health initiatives.
Katherine M. Kinnaird

I am looking for students interested in building a new Python package and/or interested in building an interactive visualization platform for a representation of musical scores. Additionally, I may have funding for a student interested at the intersection of data science education research and text mining.

  • Building a new python package that reimagines existing MATLAB code for building aligned hierarchies, a representation for musical scores. This builds on work published at ISMIR 2016, but requires no background knowledge in music information retrieval (MIR). Students interested in this project should have experience coding in python (ie. CS 111), and they should be excited by the prospect of building code that will be publicly available.
  • The Interactive Aligned Hierarchies also builds on the aligned hierarchies, but links the static output to the score. This will allow for interactive exploration of both the score and the representation simultaneously. Students interested in this project should have experience designing large-scale projects and are excited about connecting visualizations with sound files.
  • (Possible funding) As part of a TRIPODS+X grant, there is summer work to explore investigating students’ data science misconceptions before and after their first formal course in data science. This project will rely on aspects of text mining in addition to data management.
Ileana Streinu

Summer 2020 projects:

  • Geometry of viral capsides
  • Prototyping auxetic materials
  • Educational materials for a new robotics course
Nick Howe

Handwriting recognition & historical manuscripts. Find more information on the Clark Science Center website. 

Contact

Department of Computer Science

Ford Hall 255
Smith College
Northampton, MA

Phone: 413-585-3804
Fax: 413-585-3786
Email: djett@email.smith.edu

Administrative Assistant: Daryl Jett
Department Chair: Nick Howe