Computer Science
Computer Science studies the representation and manipulation of information. The field spans a diverse range of topics including the Internet and its infrastructure, image and video processing, digital music, numerical simulations, the structure of language, and the nature of thought itself.
And, of course, the ideas behind computers themselves.
At Marlboro, Computer Science students begin with computer programming and protocols, then continue practicing and applying those skills in various intermediate courses and tutorials consistent with their area of interest. The curriculum throughout emphasizes software rather than hardware, looking at what can be done with a computer rather than the electrical engineering problem of how to actually build one. For the most part we use open source software tools, for both practical
and philosophical reasons.
Interdisciplinary Work
Although it is perfectly possible to do a Plan in pure computer science, most computer science Plans are interdisciplinary, applying ideas from computer subject to another field. Examples include:
- modeling a physical, economic, or social system,
- studying grammars and semantics in linguistics,
- exploring evolution with ideas from artificial life,
- analyzing cryptography and mathematical number theory,
- creating and analyzing electronic music, or
- composing dance choreography with computer animation.
To include a computer science element, an interdisciplinary Plan must include a programming component. The use of a computer application such as a word processor or video editor is not enough in and of itself enough. For example, a photography student who used PhotoShop to produce images would not be working in computer science, while one who explored the implementation of digital
watermarks in photographic images would be.
The Internet is a popular focus for interdisciplinary plans,connecting computer science with fields such as sociology, graphic design, cryptography, and international studies. Courses in web technology and web design may also be available for cross registration at Marlboro's Graduate Center in Brattleboro.
Jim MahoneyBackground: My Ph.D. is in Physics, which I taught at Marlboro from 1988 to 2002. My physics research used computer simulations to study quantum chaos and cosmology. Since 2002 I've been primarily working with various Internet technologies, including collaborative education tools.
Research interests: digital dance and music technology, the internet, scientific computing
Areas of interest for plan-level work: Most topics in undergraduate computer science are possible. Interdisciplinary plans are common, particularly those combining computer work with the sciences or arts.
Course websitesAll Computer Science courses since 2003 are available online at cs.marlboro.edu,
including in most cases a syllabus, assignments, and some notes.
Starting Points (Basic and Introductory Courses)
Introduction to Programming (NSC552)
A foundation course in programming concepts and skills, including object oriented methods and coding practices. The language taught varies from year to year; recent choices include python, perl, and java. This material or its equivalent is required for most intermediate work in CS.
Offered every Fall.
Introduction to the Internet (NSC477)
An exposure to Internet technology and culture, including web design (HTML and CSS), network protocols (TCP/IP and HTTP), and a bunch of other acronyms.
Digital Multimedia (NSC551)
The concepts and tools behind computer images, music, animation, and video using open source software such as the Gimp, Audacity,and Blender.
Pursuing Interests (Intermediate and Thematic Courses)
Algorithms (NSC587)
A close look at classic problems and recipes in computer science,such as sorting, searching, and time/space performance. Also introduces the C programming language, pointers, and data structures.
Strongly recommended for students considering advanced work in Computer Science.
Web Programming (NSC579)
An exploration of the various technologies used to generate dynamic Internet content. Topics vary but typically include databases (SQL) and scripting languages (PHP)as well as forms, cookies, and client/server protocols. Prerequisite: previous programming and Internet experience.
Artificial Intelligence (CDS34)
How much of what humans do can be done by a computer? This course examines the methods by which machines can act as intelligent agents, including topics such as knowledge representation and neural networks. The programming language used is usually LISP, which is presented as part of the course. This is an intermediate/advanced computer science course, not a philosophy course; substantive programming experience is a prerequisite.
Formal Languages and the Theory of Computation (NSC543)
A mathematical introduction to the theory of computation. Topics include automata such as Turing machines, formal languages such as context-free grammar, and computability questions as described by "NP-complete" problems and Godel's incompleteness theorem. This is an upper-level course that
presents the foundations of theoretical computer science. Prerequisite: Formal mathematics and programming experience
Sample Tutorial Topics
- Cryptography
- Bioinformatics
- Computer Graphics
- Numerical Methods
- Internet Security
- Operating Systems
- Information Theory
- Programming Project Lab
- 3D Modeling and Animation
- Algorithmic Music Composition
- GIS and GPS : Digital Mapping
Good Foundation For Plan
Students doing a plan in pure computer science should expect to develop their programming and analytic skills in the first two years through courses such as:
- Introduction to Programming
- Algorithms
- Discrete Mathematics
Interdisciplinary plans typically require a foundation of at least Introduction to Programming
or the equivalent, as well as foundation courses in the other field.