Computer Science Department Mount Holyoke College

 

Complete Course List

Note: A number of our courses are designed to offer students significant software design and programming experience. The descriptions for these courses contain the phrase "This course is programming intensive". Courses marked with an asterisk (*) are offered limitedly.

Classes are listed by course number.

Compsc 100fs. An Introduction to Computer Science
An introduction to some basic concepts of computer science. Topics will be chosen from: origins of computers, data representation and storage, computer architecture, assemblers and compilers, operating systems, networks and the Internet, distributed systems, information retrieval, data organization, graphics, artificial intelligence, robotics, the theory of computation and trends in internet commerce and use. Laboratory assignments will offer some experience with programming and the use of application software.
Prerequisite: none (students should not take this course after 101).
Enrollment: limited to 40
Professor: The Department
Meeting Times: 2 lectures (75 minute meetings), 1 lab (2 hrs)
Credits: 4

Compsc 101f. Problem Solving and Structured Programming
Introduces the C++ language and the use of structured programming techniques. Emphasizes the solution of complex computational problems by their analysis into smaller subproblems that can be solved independently and then combined to form a complete solution. Introduces other topics relevant to computer science. Assumes no previous study or use of computers. This course is programming intensive.
Prerequisites: none
Enrollment: limited to 50
Professor: Lisa Ballesteros, Xiaoyan Li
Meeting Times: 2 lectures (75 minutes), 1 lab (2 hours)
Credits: 4

Compsc 102s. Object-Oriented Programming
This second course in the programming sequence focuses on object-oriented program design and intermediate programming concepts. This course also introduces fundamental data structures and complexity analysis. Topics include inheritance, polymorphism, recursion, linked lists, stacks and queues. In addition, students will focus on the design and implementation of large programs in C++. This course is programming intensive.
Prerequisites: CS 101
Professor: Lisa Ballesteros, Barbara Lerner
Meeting Times: 2 lectures (75 minutes)
Credits: 4

Compsc 125f. Introduction to Robotics
(Physics 125) This course will provide the student with a hands-on introduction to robotics. Via an intensive lab component, the course will introduce and apply concepts in programming, electronics, and mechanical design. Much of the course will focus on a final design project wherein students will be challenged to design, prototype, and build a functional robot whose application is directed at assisting a disabled person. Lectures will introduce lab material, as well as topics in applied robotics, biomechanics, and issues of machine-human interaction.
Professors: Paul Dobosh and O. Hoffman
Meeting Times: 2 Lectures (50 minutes) 1 lab (4 hours)
Credits: 4

Compsc 211f. Data Structures
Using C++. Solving problems with computers is accomplished by writing programs that operate on data to produce a desired result. The way data is organized and presented to the program can significantly affect its efficiency and simplicity and can sometimes determine whether or not a program can be written to solve the problem at all. This course presents ways of organizing data into "data structures" and analyzes how structuring the data can improve program performance. This course is programming intensive.
Prerequisites: CS 101
Enrollment: limited to 20
Professor: Lisa Ballesteros, Barbara Lerner
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 221fs. Computer Systems and Assembly Language
This course looks at the inner workings of a computer and computer systems. It is an introduction to computer architecture, software engineering, and the fundamentals of operating systems. Specific topics include assembly language programming, memory and I/O issues, and the techniques of software design, implementation, and testing as a group. This course is programming intensive.
Prerequisites: CS 101; CS 211 recommended
Enrollment: limited to 20
Professors: James Teresco, Lisa Ballesteros
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 311f. Theory of Computation
Are there any limits to what computers can do? Does the answer to this question depend on whether you use a PC or a MacIntosh? Is C more powerful than PASCAL? This seminar explores issues such as these by investigating several models of computation, exploring the power and limitations of each of these models, and relating these models to typical computational problems. Topics include finite state automata, pushdown automata, grammars, Turing machines, the Universal Turing Machine, and computability.
Prerequisites: CS 101 and MATH 232
Enrollment: limited to 20
Professor: Paul Dobosh
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 312s. Algorithms
The goal of this course is to examine the design and analysis of algorithms. Topics covered may include complexity theory, searching and sorting, graph algorithms, greedy algorithms, dynamic programming, divide and conquer, and NP-completeness. If time allows, we will also discuss applications of algorithms such as network routing. This class should prepare a student to write efficient algorithms to solve complex problems.
Prerequisites: CS 211 and MATH 232
Enrollment: limited to 20
Professor: Barbara Lerner
Meeting Times: 2 lectures (75 minutes)
Credits: 4

Compsc 322s. 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.
Prerequisites: CS 211 and CS 221
Enrollment: limited to 20
Professor: James Teresco
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 324f. Computer Architecture
The goal of this class is to provide the student with a working knowledge of how computers operate and the general principles that affect performance. New developments in hardware render current technologies obsolete within one to three years. Rather than focusing on specific technology, we cover the fundamentals that allow your understanding of technology to grow with future developments. You will also gain a better appreciation of the cost/performance tradeoffs encountered in designing a computer system.
Prerequisites: CS 211 and 221
Enrollment: limited to 20
Professor: James Teresco, Lisa Ballesteros
Meeting Times: 2 Meetings (75 minutes)
Credits: 4

*Compsc 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.
Prerequisites: CS 101, CS 211 (may be taken concurrently), and at least one of MATH 203, MATH 211, MATH 232, or permission of instructor
Enrollment: limited to 20
Professor: Robert Weaver
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 334f. Artificial Intelligence (AI)
An introduction to AI research issues and models of intelligence. Topics include AI history, philosophical and research questions, LISP, state space representation, search, heuristics, connectionism, learning, and an introduction to advanced AI fields such as Natural Language Processing and Computer Vision. Course emphasis: understanding AI model development and how it relates to the theoretical issues. This course is programming intensive.
Prerequisites: CS 211, CS 221, and MATH 232
Enrollment: limited to 20
Professor: Claude Fennema
Meeting Times: 2 meetings (75 minutes)
Credits: 4

*Compsc 335s. Introduction to Computer Vision and Robotics
An introduction to theories that suggest how to provide a computer with the ability to "see" and how to use that ability to control the actions of a robot. The potential role that robot actions can play in making computer vision possible is also discussed. Specific topics include: the physics of vision, image processing, pattern recognition, image understanding, representations, planning, robot control, architectures, and applications. This course is programming intensive.
Prerequisite: CS 334 and MATH 202
Enrollment: limited to 20
Professor: Claude Fennema
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 336s. Intelligent Information Retrieval
Introduces the basic concepts, methodologies, and research findings in information retrieval. Special topics include Web searching, cross-language retrieval (query in one language, retrieve documents written in many languages), data mining (automatically identifying hidden relationships from large amounts of information), and data extraction (identifying prespecified types of information).
Prerequisites: CS 211 and CS 221 or permission of instructor
Enrollment: limited to 20
Professor: Lisa Ballesteros
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 341s. Topics; To be determined
Topics are generally announced during the semester preceding the class. This course is usually programming intensive. Recent topics include the following:

  • Parallel Computing, Fall 2007
  • Data Mining, Spring 2007
  • Software Design, Fall 2006
  • Networked Systems and Applications, Spring 2004
  • Databases, Fall 2004
  • Natural Language, Fall 2004
  • Algorithms, Spring 2003
  • Research Methods, Spring 2003
  • Complexity of Computation Spring 2002
  • Intelligent Information Retrieval, Spring 2000
  • Distributed Systems, Spring 1998
  • Compilers, Fall 1998
  • Database Systems, Spring 1997

Prerequisites: topic dependent. Junior or Senior.
Professor: The Department
Meeting Times: 2 meetings (75 minutes)
Credits: 4

Compsc 295fs. Independent Study
Prerequisites: Sophomore and permission of instructor

Compsc 395fs. Independent Study
Prerequisites: Junior or Senior and permission of instructor