Skip Navigation

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

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 Sarah Lanzoni, the computer science administrative assistant. 

Next Steps

  • Sarah 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 Sarah 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!

Mission

Computer science is the study of computer-enabled problem solving, the design of computing systems, and the abstractions that underlie computation. Our department’s goal is to provide students with a strong, comprehensive background in computer science, opportunities to develop computational thinking skills, and to integrate these elements within the liberal arts mission of Smith College.

Goals

Students majoring in computer science at Smith will gain a broad understanding of the core concepts of computing, as well as exposure to a variety of modern theoretical and programming paradigms. Moreover, they will develop the essential ability to successfully apply these concepts and tools in diverse contexts arising in the arts and sciences. Specifically, they will learn how to:

  • approach real-world situations from a computational perspective
  • solve problems abstractly
  • evaluate and implement proposed solutions
  • adapt their solution to relevant domains, and
  • reason critically about the broader implications and consequences of the design and use of computational methods.

Measurable Outcomes

The skills, knowledge and behaviors that students acquire through our curriculum are observable through their ability to:

  • learn new programming languages, use multiple programming paradigms, and describe the similarities and differences between these paradigms, articulate how computing systems function, in terms of software-hardware interfaces, resource management, and communication between their parts, and adapt to new platforms.
  • demonstrate understanding of the power and limitations of various algorithms and computational models through abstract formulation, concrete implementation, correctness and efficiency analysis.
  • map abstract computation to specific physical and software implementations, as well as draw appropriate conclusions about real systems, including efficient resource management, communication between parts, and practical constraints.
  • work both independently and as part of a team, engage in dialogue about computational problems and their solutions, and reason critically about the societal implications of the resulting system.

Requirements & Courses

Advisers

Johanna Brewer, Judith Cardell, Shinyoung Cho, R. Jordan Crouser, Alicia Grubb, Nicholas Howe, Katherine Kinnaird, Jamie Macbeth, Ileana Streinu

Requirements

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

Introductory (2 courses)

  1. CSC 110 Introduction to Computer Science (S/U only)
  2. CSC 120 Object Oriented Programming

Core (3 courses)

  1. CSC 210 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 (4 or 5 courses; see course area designations)

  1. One CSC Theory
  2. One CSC Programming
  3. One CSC Systems
  4. One additional CSC course at the 200 level or above. (Two courses are required in this category if a student places out of CSC110). Courses in other programs and departments may be used to satisfy this requirement by petition.

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: Beyond CSC110, students may count one course (or up to 4 credits) S/U towards a CSC major or minor with the approval of their advisor.

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/MTH 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 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/EGR 390 (Digital Circuits)     X
CSC 274 (Discrete & Computational Geometry) X X  
CSC 290 (Artificial Intelligence) X X  
CSC 294 (Computational Machine Learning) X X  
CSC 325 (Responsible Computing)     X
CSC 327 (Internet Censorship)     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 Information Retrieval) X X  
CSC 356 (Computer-Human Interaction) X X  
CSC 360 (Mobile & Locative Computing)   X  
CSC 370(Computer Vision Image Processing) X X  
CSC 390 (Artificial Intelligence) X    

Requirements

Six CSC courses. One of the 200-level electives below could be replaced by a CSC Special Studies.

Required Courses

  • CSC 120 Object-Oriented Programming
  • CSC 210 Data Structures
  • CSC 100-level or above
  • Three CSC 200-level or above

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.

With Study Abroad

Sequence 1

Example course sequence #1 for major in Computer Science with study abroad in a foreign language (entering with no prior experience in CSC, one semester away)

 

YEAR

FALL

SPRING

1

 

CSC 110

MTH 111 or LOG 100

Foreign language

Writing Intensive [ENG or FYS]

CSC 120

MTH 153

Foreign language

Elective

2

 

CSC 210

Elective

Elective

Elective

CSC 231

CSC intermediate

Elective

Elective

3

 

CSC 250

CSC intermediate

Elective

Elective

CSC intermediate (study away)

Elective (study away)

Elective (study away)

Elective (study away)

4

 

CSC intermediate

Elective

Elective

Elective

CSC 300-level

Elective

Elective

Elective

CSC Intermediate indicates one of the three 200-level courses satisfying the Theory / Systems / Programming distribution requirements for the major.

Elective indicates a course that is entirely free from constraints – could be within computer science, could be outside.

Courses frequently taken abroad by Computer Science majors include CSC intermediate courses, more advanced mathematics courses, additional programming courses, and courses in the humanities and social sciences

This course sequence assumes no prior experience in computer science and a single semester away. Students with prior exposure to computer science (courses in high school, summer camp, etc.) should skip CSC 110 and begin their course sequence with CSC 120. Alternate pathways through the major appear on subsequent pages. In these examples, we have attempted to maximize flexibility in course selection while abroad; however, students studying abroad at programs such as the AIT Budapest program in Computer Science may elect to satisfy additional major requirements while abroad (e.g. CSC intermediate courses).

Sequence 2

Example course sequence #2 for major in Computer Science with study abroad in a foreign language (entering with prior experience in CSC, one semester abroad with no major requirements while away)

 

YEAR

FALL

SPRING

1

 

CSC 120

MTH 111 or LOG 100

Foreign language

Writing Intensive [ENG or FYS]

CSC 210

Foreign language

Elective

Elective

2

 

CSC 231

MTH 153

Elective

Elective

CSC 250

CSC intermediate

Elective

Elective

3

 

Elective (study away)

Elective (study away)

Elective (study away)

Elective (study away)

CSC intermediate

CSC intermediate

Elective

Elective

4

 

CSC intermediate

CSC intermediate

Elective

Elective

CSC 300-level

Elective

Elective

Elective

Sequence 3

Example course sequence #3 for major in Computer Science with study abroad in a foreign language (entering with no prior experience in CSC, full abroad with light major requirements while away)

 

YEAR

FALL

SPRING

1

 

CSC 110

MTH 111 or LOG 100

Foreign language

Writing Intensive [ENG or FYS]

CSC 120

MTH 153

Foreign language

Elective

2

 

CSC 210

Elective

Elective

Elective

CSC 231

CSC 250

Elective

Elective

3

 

CSC intermediate (study away)

Elective (study away)

Elective (study away)

Elective (study away)

CSC intermediate (study away)

Elective (study away)

Elective (study away)

Elective (study away)

4

 

CSC intermediate

CSC intermediate

Elective

Elective

CSC 300-level

Elective

Elective

Elective

Without Study Abroad

Example course sequence for major in Computer Science entering with no prior experience in CSC and starting in the second semester sophomore year.  Students can incorporate junior year study abroad by taking courses equivalent to those listed while away from campus.

 

YEAR

FALL

SPRING

1

 

Writing Intensive [ENG or FYS]

Elective

Elective

Elective

Elective

Elective

Elective

Elective

2

 

Elective

Elective

Elective

Elective

CSC 110

MTH 111 or LOG 100

Elective

Elective

3

 

CSC 120

MTH 153

Elective

Elective

CSC 210

CSC 250

CSC intermediate

Elective

4

 

CSC 231

CSC intermediate

CSC intermediate

Elective

CSC 300-level

CSC intermediate

Elective

Elective

Example course sequence for major in Computer Science intending to continue studies in graduate school, entering with no prior experience in CSC, with thesis in the senior year.  Students can incorporate junior year study abroad by taking courses equivalent to those listed while away from campus.

 

YEAR

FALL

SPRING

1

 

CSC 110

MTH 111 or LOG 100

Writing Intensive [ENG or FYS]

Elective

CSC 120

MTH 153

Elective

Elective

2

 

CSC 210

SDS 220

Elective

Elective

CSC 231

CSC 250

Elective

Elective

3

 

CSC 220 or 223 (programming)

CSC 252 or 253 (theory)

Elective

Elective

CSC 230 or 262 (systems)

CSC 294 (ML)

Elective

Elective

4

 

CSC senior thesis

CSC 300-level

Elective

Elective

CSC senior thesis

CSC intermediate/advanced

Elective

Elective

Students should expect some variation from the timing shown above, depending on when courses are offered. The course sequence above includes all of the strongly recommended courses below:

  • CSC 252: Algorithms or CSC 253: Applied Algorithms (Theory)
  • CSC 220: Advanced Programming or CSC 223: Software Engineering (Programming)
  • CSC 230: Databases or CSC 262: Operating Systems (Systems)
  • CSC 294: Computational Machine Learning (additional elective)
  • SDS 220: Introduction to Probability and Statistics

Emeriti Faculty

Merrie Bergman
Associate Professor Emerita of Computer Science

Joe O'Rourke
Spencer T. and Ann W. Olin Emeritus Professor of Computer Science

Dominique Thiébaut
Professor Emeritus of Computer Science

Recent Visiting Faculty

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

Contact

Department of Computer Science

Ford Hall 255
Smith College
Northampton, MA

Phone: 413-585-3804
Fax: 413-585-4534
Email: slanzoni@smith.edu

Administrative Assistant: Sarah Lanzoni
Department Chair: Kevin Shea