Skip to main content.
  • Faculty + Staff
  • Alumni/ae
  • Families
  • Students
Bard
  • Bard
  • Academics sub-menuAcademics
    • Academics
      • Programs and Divisions
      • Structure of the Curriculum
      • Courses
      • Requirements
      • Academic Calendar
      • Faculty
      • College Catalogue
      • Bard Abroad
      • Libraries
      • Dual-Degree Programs
      • Bard Conservatory of Music
      • Other Study Opportunities
      • Graduate Programs
      • Early Colleges
  • Admission sub-menuAdmission
    • Applying
      • Apply Now
      • Financial Aid
      • Tuition + Payment
      • Campus Tours
      • Meet Our Students + Alumni/ae
      • For Families / Para Familias
      • Join Our Mailing List
      • Contact Us
  • Campus Life sub-menuCampus Life
    • Living on Campus
      • Housing + Dining
      • Campus Resources
      • Get Involved on Campus
      • Visiting + Transportation
      • Athletics + Recreation
      • Montgomery Place Campus
      • Current Students
      • New Students
  • Civic Engagement sub-menuCivic Engagement
    • Bard CCE The Center for Civic Engagement (CCE) at Bard College embodies the fundamental belief that education and civil society are inextricably linked.

      Take action.
      Make an impact.

      • Campus + Community
      • In the Classroom
      • U.S. Network
      • International Network
      • About CCE
      • Support
      • Get Involved
  • Newsroom sub-menuNews + Events
    • News + Events
      • Newsroom
      • Events Calendar
      • Press Releases
      • Office of Communications
    • Special Events
      • Family and Alumni/ae Weekend
      • Commencement + Reunion
      • Fisher Center + SummerScape
      • Athletic Events
    • Join the Conversation
      •         

  • About Bard sub-menuAbout Bard
    • About Bard College
      • Bard History
      • Campus Tours
      • Employment
      • Visiting Bard
      • Diversity, Equity, and Inclusion
      • Sustainability
      • Title IX and Nondiscrimination
      • Board of Trustees
      • Bard Abroad
      • Open Society University Network
      • The Bard Network
  • Give
  • Search

Catalogue

The Bard College Catalogue contains detailed descriptions of the College's undergraduate programs and courses, curriculum, admission and financial aid procedures, student activities and services, history, campus facilities, affiliated institutions including graduate programs, and faculty and administration.

Download Catalogue PDF

  • Mission
    • Mission
  • Acknowledging Bard's Origins
    • Acknowledging Bard's Origins
  • History of Bard
    • History of Bard
    • Bard College: A Selective Chronology
    • Presidents of Bard College*
  • Learning at Bard
    • Overview
    • Curricular Goals
    • The Five Pillars of the Bard Education
    • The Curriculum
    • Academic Programs and Concentrations
    • Academic Requirements and Regulations
    • Specialized Degree Programs
  • Admission
    • Admission to Bard
  • Academic Calendar
    • Academic Calendar
  • Division of the Arts
    • Division of the Arts Overview
    • Architecture
    • Art History and Visual Culture
    • Dance
    • Film and Electronic Arts
    • Music
    • Photography
    • Studio Arts
    • Theater and Performance
    • Interdisciplinary Arts Courses
  • Division of Languages and Literature
    • Languages and Literature Overview
    • Foreign Languages, Cultures, and Literatures
    • Literature
    • Written Arts
  • Division of Science, Mathematics, and Computing
    • Science, Mathematics, and Computing Overview
    • Biology
    • Chemistry and Biochemistry
    • Computer Science
    • Mathematics
    • Physics
    • Psychology
    • Additional Courses in the Sciences
  • Division of Social Studies
    • Social Studies Overview
    • Anthropology
    • Economics
    • Economics and Finance
    • Historical Studies
    • Interdisciplinary Study of Religions
    • Philosophy
    • Politics
    • Sociology
  • Interdivisional Programs and Concentrations
    • Interdivisional Overview
    • Africana Studies
    • American and Indigenous Studies
    • Asian Studies
    • Classical Studies
    • Data Analytics
    • Environmental Studies
    • Experimental Humanities
    • French Studies
    • Gender and Sexuality Studies
    • German Studies
    • Global and International Studies
    • Global Public Health
    • Human Rights
    • Irish and Celtic Studies
    • Italian Studies
    • Jewish Studies
    • Latin American and Iberian Studies
    • Medieval Studies
    • Middle Eastern Studies
    • Mind, Brain, and Behavior
    • Russian and Eurasian Studies
    • Science, Technology, and Society
    • Spanish Studies
    • Theology
    • Victorian Studies
    • Multidisciplinary Studies
    • Interdisciplinary Curricular Initiatives
  • The Bard Conservatory of Music
    • Conservatory of Music Undergraduate Program
    • Conservatory of Music Graduate Programs
    • Advanced Performance Studies Program
    • Postgraduate Collaborative Piano Fellowships
    • US-China Music Institute
  • Bard Abroad
    • Bard Abroad
  • Additional Study Opportunities and Affiliated Institutes
    • Additional Study Opportunities Overview
    • Additional Study Opportunities
    • Professional Education
    • Affiliated Programs and Institutes
  • Civic Engagement
    • Civic Engagement Overview
    • Center for Civic Engagement
    • Student-Led Engagement
    • Classroom, Community, and Careers
    • Bard and the Local Community
    • Innovations in Science and Sustainability
    • Education Reform
    • International Partnerships
  • Open Society University Network
    • Overview
    • Bard-Based Initiatives
    • Open Society University Network Member Institutions
  • Campus Life and Facilities
    • Campus Overview
    • Student Life
    • Student Services and Resources
    • Residence Life
    • Campus Facilities
    • Safety and Security
    • Office of Title IX and Nondiscrimination (OTN)
  • Graduate Programs
    • Graduate Programs Overview
    • Bard College Conservatory of Music
    • Bard Graduate Center
    • Bard Graduate Programs in Sustainability
    • Center for Curatorial Studies
      (CCS Bard)
    • Levy Economics Institute Graduate Programs in Economic Theory and Policy
    • Longy School of Music of Bard College
    • MA in Global Studies 
    • MA in Human Rights and the Arts
    • Master of Arts in Teaching Program
    • Milton Avery Graduate School of the Arts
    • The Orchestra Now
  • Educational Outreach
    • Overview
    • Early College Programs
    • Bard Baccalaureate
    • Bard Microcolleges
    • Bard Prison Initiative
    • Bridge Program
    • Clemente Course in the Humanities
    • Institute for Writing and Thinking
    • Lifetime Learning Institute
    • Longy School of Music of Bard College
    • Return to College Program
    • Zora Neale Hurston Writing Fellowship
    • International Partnerships
  • Levy Economics Institute of Bard College
    • Levy Economics Institute of Bard College
  • The Bard Center
    • The Bard Center
    • Fellows of The Bard Center
    • Bard Fiction Prize
    • Distinguished Scientist Lecture Series
    • Institute for Writing and Thinking
    • Leon Levy Endowment Fund
    • Cultural Programs
  • Finances
    • Financial Aid
    • Application for Financial Aid
    • Financial Aid Sources
    • Fees, Payment, and Refunds
  • Scholarships, Awards, and Prizes
    • Scholarships
    • Awards
    • Prizes
  • Faculty
    • Bard College Faculty
    • Bard College Faculty Emeritus
    • Faculty of the Bard College Conservatory of Music
    • Faculty of the Graduate Programs
    • Faculty of the Affiliate Programs 
  • Honorary Degrees and Bard College Awards
    • Honorary Degrees
    • Bard College Awards
  • Boards and Administration of Bard College
    • Boards of Bard College
    • Administration
  • Bard College Contact Information
    • Bard College Contact Information
    • Key Websites
  • Bard Campus Map and Travel Directions
    • Map and Travel Directions

Bard College Catalogue 2023-24

Computer Science

cs.bard.edu


Faculty

Sven Anderson (director), Valerie Barr, Theresa Law, Robert W. McGrail, Kerri-Ann Norton, Keith O’Hara, Rose Sloan

Overview

Computing is an integral part of contemporary life. Computer science encompasses the study of computing technology, theory, and applications in all contexts, including mobile computing, modeling, robotics and autonomous vehicles, and the internet. The Computer Science Program at Bard offers courses tailored to the interests of students from across the College. The program focuses on the fundamental ideas of computer science and introduces students to multiple programming languages and paradigms. It covers theoretical, applied, and systems-oriented topics. Most courses include hands-on projects so that students can learn by building, and by participating in research projects in laboratories devoted to cognition, computational biology, robotics, and symbolic computation.

The curriculum is designed to offer many opportunities for students whose interest in computing arises from their own disciplinary context. Computer science has links with, among other programs and concentrations, Mind, Brain, and Behavior, Experimental Humanities, Mathematics, Film and Electronic Arts, and Music, and students from these fields often use their computing skills and knowledge in carrying out Senior Projects.

Requirements

By the time of Moderation, a student in the program should have completed: Mathematics 141, Calculus I; Computer Science 141, Introduction to Object-Oriented Programming, or Computer Science 143, Introduction to Object-Oriented Programming with Robots; Computer Science 145, Discrete Mathematics; and Computer Science 201, Data Structures. At the discretion of the program, students may be currently enrolled in of the required courses at the time of Moderation. Students are expected to follow standard divisional procedures for Moderation and to fulfill the college-wide distribution and First-Year Seminar requirements.

To graduate, a student in the program must receive a passing grade in a statistics course (e.g., Computer Science 275, Statistics for Computing; Biology 244, Biostatistics; Psychology 203, Statistics for Psychology; or Economics 229, Introduction to Econometrics); Computer Science 301, Algorithms; Computer Science 305, Design of Programming Languages; a systems course (e.g., Computer Science 225, Computer Architecture; Computer Science 226, Principles of Computing Systems; Computer Science 325, Multiprocessor Architecture; Computer Science 326, Operating Systems; Computer Science 328, Embedded Operating Systems; or Computer Science 335, Computer Networks);  two or more computer science electives, at least one numbered 300 or above; and the Senior Project. 

Recent Senior Projects

  • “An Analysis of Long-Term Financial Feasibility of Higher Education” 
  • “Eliciting and Visualizing Bias in Hiring Practices” 
  • “Heroes, Villains, and the In-Between: A Natural Language Processing Approach to Fairy Tales”
  • “Interval Driven Melodic Mutation Using a Genetic Algorithm”

Facilities

Program facilities at the Gabrielle H. Reem and Herbert J. Kayden Center for Science and Computation include computer and hardware teaching labs, a cognitive systems lab, robotics lab, dedicated computer server room, and study space with wireless networking.

Courses

The following core courses are offered every year: Computer Science 141/143, Object-Oriented Programming; Computer Science 145, Discrete Mathematics; Computer Science 201, Data Structures; Computer Science 275, Statistics for Computing; Computer Science 301, Algorithms; Computer Science 305, Design of Programming Languages; and Computer Science 326, Operating Systems. Elective courses are offered at least once every three years or by tutorial; recent examples include Databases, Mobile Applications and Interfaces, The Computational Image, Bioinformatics, and Machine Learning.

Introduction to Computing: Web Informatics
Computer Science 116
An introduction to content deployment for the World Wide Web. Participants construct social networking software, similar in scope to blogs or Facebook, using a dynamic web programming system. Strong emphasis is placed on the development of flexible applications that efficiently store and process data and metadata. In addition to basic computer programming, various XML technologies are employed. Prerequisite: passing score on Part I of the Mathematics Diagnostic.

Computational Conundrums and Mathematical Mysteries: Solving the Case through Simulation, Logic, and Probability
Computer Science 119
How do we know if our sense of inner logic is actually misleading us? In this course, designed for nonmajors, students read fictional fables, in the style of mystery cases, that explore common logical fallacies and deceptive statistics. They run simulations to computationally examine each misconception/fallacy and to get a general understanding of the necessary logic, probability, and decision theory needed to examine the underlying principles of each story. Prerequisite: passing score on Part I of the Mathematics Diagnostic.

Introduction to Data Analytics and R Programming
Computer Science 121
Data analytics—analyzing, revealing, interpreting, and visualizing information concealed inside big data—is revolutionizing daily life. It is used for medical diagnoses, investment strategies, and real estate pricing; by companies such as Amazon and Google; and in academia, for analysis of historical texts or processing large amounts of genomics data. This course introduces techniques to manipulate data into manageable forms, perform analyses from a descriptive and predictive standpoint, and learn the basics of storytelling through data.
 

Object-Oriented Programming
Computer Science 141
CROSS-LISTED: EXPERIMENTAL HUMANITIES, MBB
An introduction to the methodologies of object-oriented design and programming, which are used throughout the Computer Science curriculum. Students learn how to move from informal problem statement to increasingly precise problem specifications and the design and implementation of a solution. Problems drawn from areas such as graphics, animation, and simulation. 

Object-Oriented Programming with Robots
Computer Science 143
CROSS-LISTED: MBB
Students learn how to move from an informal problem statement to the design and implementation of a solution. Good programming habits are emphasized.

Discrete Mathematics
Computer Science 145
This course emphasizes creative problem solving, linking language to logic, and learning  to read and write proofs. Topics include propositional logic, predicate logic, inductive proof, sets, relations, functions, introductory combinatorics, and discrete probability. Prerequisite: Mathematics 141 or programming experience.

Data Structures
Computer Science 201
CROSS-LISTED: MBB
This course covers the essential principles of program design and analysis that underlie applications of computation to Internet communi­cation, digital media, and artificial intelligence. Building on basic programming skills, students focus on the construction of more sophisticated computer programs that employ the most important and useful data structures, including files, lists, stacks, trees, and graphs. Prerequisite: Computer Science 143 or permission of the instructor.

Programming Nature
Computer Science 210
Students in the course, who should have prior programming experience, develop the necessary tools for modeling biological and physical objects that can move, interact, divide, and evolve, with a specific application of simulating biological cells. They learn how to pose a question about a natural system, develop a set of rules, and implement simulations to formulate predictions about the dynamics of that system. Prerequisite: Computer Science 143 or permission of the instructor.

Computer Architecture
Computer Science 225
An introduction to the structure and operation of a modern computer architecture. Topics include instruction sets, pipelining, instruction-level parallelism, caches, memory hierarchies, storage systems, and multiprocessors. Assembly language programming is used to demonstrate concepts. Corequisite: Computer Science 201, with Physics 212 recommended.

Principles of Computing Systems
Computer Science 226
CROSS-LISTED: EXPERIMENTAL HUMANITIES
As programs scale up from a single author, user, and computer to those designed, written, maintained, and used by multiple people that run on many computers, considerations beyond algorithms alone are magnified. This course takes a systems perspective to the study of computers. Students explore computers from the ground up, using a variety of programming languages and tools, such as the command line, debuggers, and version control. Prerequisite: Computer Science 141 or permission of the instructor.

Introduction to Artificial Intelligence
Computer Science 251
CROSS-LISTED: MBB
The course emphasizes elements of artificial intelligence that are compatible with biologically based intelligence (e.g., neural computation). Techniques explored include automated reasoning, machine learning, evolutionary learning, heuristic search, and behavior-based robot control. Application examples are drawn from robotics, game play, logic, visual perception, and natural language processing.

Statistics for Computing
Computer Science 275
An introduction to the basics of probability and statistical analysis. Students learn theory and implementation of statistical inferences used in computer science research, starting with fundamentals in counting and probability distributions, and covering Monte Carlo simulation, Bayesian inference, confidence intervals, t-tests, analysis of variance, and clustering. By the end of the course, they understand how to set up computational experiments, classify data, and determine the appropriate statistical test for their experiments. Prerequisites: Computer Science 141 or 145, and Mathematics 110.

Algorithms
Computer Science 301
The focus of this course is on the design and analysis of correct and efficient computer algorithms. Topics include sorting, divide-and-conquer algorithms, greedy algorithms, dynamic programming algorithms, and graph algorithms. Advanced topics in algorithms may be selected from specialized areas of the mathematical and empirical sciences. Prerequisites: Computer Science 145 and 201, or Mathematics 261.

Design of Programming Languages
Computer Science 305
Students explore important issues in the design of programming languages, including type systems, ­procedure activation, parameter passing, data encapsulation, dynamic memory allocation, and concurrency. In addition, the functional, logical, and object-oriented programming paradigms are presented. Prerequisite: Computer Science 201.

Bioinformatics and Beyond
Computer Science 320
The course, for students with prior object-oriented programming experience, introduces the basics of bioinformatics and biological statistical analysis. Students develop the necessary tools for analyzing and aligning biological sequences, building phylogenetic trees, and using statistical tests. By the end of the semester, they will have learned how to develop a hypothesis, test their hypothesis, and statistically analyze their data. Prerequisites: Computer Science 275 and Biology 244, or permission of the instructor.

Databases: Theory and Practice
Computer Science 321
An introduction to the design, implementation, and uses of databases. Topics include database design, database models, integrity, concurrency, security, and database query languages. Prerequisite: a 100-level Computer Science course.

Operating Systems
Computer Science 326
The operating system provides the interface that makes it possible for users and their programs to interact with computer hardware. Whether on a mainframe or mobile phone, the operating system makes it possible for a computer to be shared by many users and processes in a secure manner. This course examines the major components of modern operating systems, with an emphasis on how processes and memory are managed for efficiency and security. Prerequisite: Computer Science 201.

Distributed Systems
Computer Science 327
Computing systems are increasingly built in a networked, distributed manner. These systems, often spanning the globe, coordinate to solve problems involving massive amounts of data in a highly fault-tolerant fashion. Students examine the challenges of extending traditional computing systems concepts (e.g. shared state, hardware abstraction, scheduling, file systems, timing, authentication) to a networked setting as well as the architectures, algorithms, and technologies used to design, build, and evaluate distributed computer systems. Prerequisite: Computer Science 201 or permission of the instructor.

Embedded Operating Systems
Computer Science 328
From dishwashers to drones, digital computers act as the brains of most modern devices. Embedded computing systems lack the memory, processing, energy, and user-interface resources available in personal computers. Traditional topics of operating systems, including device drivers, concurrency, interprocess communication, scheduling, memory management, and virtualization are covered. In addition, discussion may include issues in mobile, distributed, and real-time systems. Prerequisite: Computer Science 201 or permission of the instructor.

Constraint Programming
Computer Science 329
An introduction to constraint programming (CP), a declarative programming paradigm in which a program is a set of constraints and a process is the search for a solution to a constraint set. Topics necessary to form a foundational understanding of CHR (constraint handling rules) include multisets, term rewriting, termination, confluence, operational and declarative semantics, computational complexity, and NP-completeness. The course involves significant programming and the writing of mathematical proofs. Prerequisite: Computer Science 201 or Mathematics 261.

Games Systems: Platforms, Programs, and Power
Computer Science 336
CROSS-LISTED: EXPERIMENTAL HUMANITIES
This course explores the design and implementation of historic and modern computing systems for games, including hardware, software, and their interface. Beyond creating games, students critically reflect on how the architectural and programming choices in games can encode inequality and particular worldviews procedurally, as much as visuals, audio, and narrative. Also covered: graphics programming, networking, and peripherals; mid-level concerns such as software engineering, design patterns, concurrency, and interfaces; and issues related to emulation, ethics, platform studies, and media archaeology. Prerequisite: Computer Science 201.

Machine Learning
Computer Science 352
CROSS-LISTED: MBB
Machine learning is a field in which algorithms learn to improve themselves based on their interactions with an environment. This course investigates a broad array of techniques from machine learning and statistical pattern recognition. Topics addressed include unsupervised learning, clustering, dimensionality reduction, supervised learning, neural networks, reinforcement learning, and learning theory. Applications are drawn from computer vision, speech recognition, autonomous navigation, natural language processing, and data mining. Prerequisites: Mathematics 142 and Computer Science 201.

Natural Language Processing
Computer Science 354
Natural language processing is a field of computer science that focuses on how computers interpret, represent, and produce human language. This course explores modern approaches to problems in natural language processing, incorporating techniques from machine learning and linguistics. Possible topics include language modeling, part-of-speech tagging, machine translation, and dialogue systems such as chatbots. Prerequisite: Computer Science 201.


 

 

Bard College
30 Campus Road
PO Box 5000
Annandale-on-Hudson, New York 12504-5000
Phone: 845-758-6822
Admission E-mail: [email protected]
©2023 Bard College
Follow Us on Twitter
Like us on Facebook
Follow Us on Instagram
You Tube
Information For:
Prospective Students
Current Employees
Alumni/ae 
Families
Quick Links
Employment
Travel to Bard
Site Search
Support Bard
COVID-19 Info