Computer Science Major
Computer Science Major
Contact Persons
Wendy Queiros, senior administrative
assistant
Lisa Ballesteros, chair
Computer science is an exciting field with applications across many other disciplines, including biology, chemistry, physics,
environmental science, mathematics, economics, sociology, psychology, and art. The
main role of a computer scientist is that of a
problem solver. A degree in the field signifies
formal training in computational and analytical approaches to problem solving as well as
the skills necessary to develop software to
tackle new challenges. These computational
approaches can be applied to a wide spectrum of problems, including protein folding
and flexibility, modeling and forecasting bird
migration, improving on the capabilities of
search engines to retrieve the most relevant
documents, understanding how the connectedness provided by social networks impact
the lives we lead, supporting scientists in the
management and analysis of the data they
collect, developing video games and computer animations, and more. In truth, it is
difficult to think of a scenario in which the
tools acquired in computer science do not
provide a powerful advantage.
The skills and abstract reasoning of mathematics are especially important in computer
science. It is strongly recommended that students take additional mathematics courses
(at least through Mathematics 101 and 202).
Mathematics 211, Linear Algebra, is very useful for computer graphics. Computer science
majors who elect a mathematics or statistics
minor may not count Mathematics 232 for
credit in both mathematics or statistics and
computer science.
Students may also count Philosophy 225,
Symbolic Logic as an elective because of its
strong connection to the foundations of
computer science.
Students planning to pursue an advanced degree in computer science should take additional computer science courses and include
independent research leading to a thesis in
their plans.
Credits
Credits
A minimum of 40 credits
Courses
A minimum of 20 credits
Courses
Computer science:
101, Problem Solving and ObjectOriented Programming
183
Getting Started
The recommended way to begin a study of
computer science is with CS 101. This course
is an introduction to the use of computers as
a problem-solving tool. Students with programming experience may consider beginning with 201. Any member of the computer
science faculty can advise students who have
questions about their course of study. CS101,
201 are offered both semesters.
Honors
To graduate with honors in computer science, a student must complete a project and
write an accompanying thesis. This is often a
full year commitment, during which the student works closely with a faculty member to
explore a topic in depth by reading research
papers, writing programs, and experimenting
with ideas. Preliminary research usually begins in the summer following her junior year,
with the student submitting and defending a
thesis proposal early in the fall of her senior
year. Upon department approval of this proposal, she will complete the research during
her senior year, writing and defending her
thesis in the spring. Some honors students attend conferences and/or coauthor papers
with their mentors.
Programming-Intensive Courses
Courses designed to offer students significant
software design and programming experience are labeled as Programming intensive.
184
Course Offerings
100s An Introduction to Computer Science
An introduction to basic computer science
concepts with a focus on Python programming to manipulate images and sounds. Laboratory assignments will provide the main
programming opportunities with Python,
images, and sounds, while lectures will cover
topics such as the origins of computing,
computer architecture, artificial intelligence,
and robotics.
Meets Science and Math II-A requirement
E. Fourquet
students should not take this course after
Computer Science 101; 4 credits
101fs Problem Solving and Object-Oriented
Programming
Computers are used every day for an enormous variety of tasks, from playing games
and chatting with friends to transferring billions of dollars, delivering radiation treatments, and controlling the electrical grid.
Computer programs are an essential ingredient in allowing for this great diversity of applications. In this course, you will learn to
create your own programs, based on core
programming concepts and analytical problem solving approaches. You will develop dynamic programs by first using Adobe Flash
CS4 and AS3 (ActionScript 3), the technology behind many Web applications. The last
portion of the course will teach you Java, a
very popular modern programming language. We assume no prior study of computer science. Programming intensive.
Meets Science and Math II-A requirement
L. Ballesteros
4 credits
105f iDesign Studio
(First-year seminar) Designers are continually innovating ways of incorporating technology into todays world, from projections
of butterflies on Grammy performance
dresses to smart purses that sense when
your wallet is missing. The recent emergence
of low-cost, user-friendly components is
making this new world of design accessible to
a broad community. In this course, students
will think critically about products already in
the marketplace and will be given the tools to
create their own designs. A sequence of
185
experience the software lifecycle from requirements elicitation through delivery. You
will synthesize many topics learned in
courses as well as new technologies required
to complete the project. Programming intensive.
Meets Science and Math II-A requirement
B. Lerner
Prereq. Computer Science 215; 4 credits
322f Operating Systems
An introduction to the issues involved in orchestrating the use of computer resources.
Topics include operating system evolution,
file-handling systems, memory management,
virtual memory, resource scheduling, multiprogramming, deadlocks, concurrent
processes, protection, and design principles.
Course emphasis: understanding the effects
of operating system design on computer system performance. This course is programming intensive.
Meets Science and Math II-A requirement
E. Fourquet
Prereq. Computer Science 211 and 221; 4
credits
*331s Computer Graphics
The creation of pictorial images using a computer. Topics include drawing of two- and
three-dimensional scenes using OpenGL and
other graphical environments; transformations of objects (translations, scalings, rotations, shearings) using homogeneous
coordinates; creating perspective in three-dimensional drawing; algorithms for enhancing realism and visual effect; and the
mathematical underpinnings of graphic design. Students will complete a number of
graphics projects based on readings and class
discussion. This course is programming intensive.
Meets Science and Math II-A requirement
The department
Prereq. Computer Science 201, 211 (may be
taken concurrently), and at least one of
Mathematics 203, Mathematics 211,
Mathematics 232, or permission of instructor;
4 credits
334f Artificial Intelligence
An introduction to AI research issues in fields
such as Natural Language Processing and
187