Course

CMSC 113 Introduction to Computing: Robotics

Professor

Rebecca Thomas

CRN

97143

 

Schedule

Tu Th 10:30 - 12:30 pm RKC 107

Distribution

Mathematics & Computing

Cross-listed: Cognitive Science

This course introduces students to ideas that are fundamental to robotics and to computing in general. Teams of students will design and build shoebox-sized robots, with guidance from

the instructor. These rather minimalist robots will be mobile and will have multiple sensors. The student teams will use a simple programming language to program their robots to carry out simple tasks, and will move to a more robust programming language and more complex tasks by the end of the semester.

Prerequisite: successful completion of Q exam.

 

Course

CMSC 115 Introduction to Computing: Simulating Reality

Professor

Sven Anderson

CRN

97217

 

Schedule

Mon Wed 10:30 - 12:20 am RKC 100

Distribution

Mathematics & Computing

Cross-listed: Cognitive Science

How do rumors and fashions spread in society?  Does a small change in environmental temperature disrupt an ecosystem?  Questions like these are explored using computers to create virtual worlds.  This introduction to modeling and simulation is intended for students who are interested in creating computer models of objects, processes, and complex systems using computer software.  Students will create and run several different simulation model types drawn from a variety of disciplines, including: artificial life, cognitive science, economics, environmental science, evolution, neuroscience, physics, and political science.  Students will gain a practical understanding of how to combine mathematical modeling, computer simulation, and data analysis as they use and create software that enables them to build simulation models that answer a practical need and/or scientific question.  No prior knowledge of computer programming is required.  Prerequisite: strong background in pre-calculus mathematics or its equivalent and successful completion of Q exam.

 

Course

CMSC 201 Data Structures

Professor

Rebecca Thomas

CRN

97218

 

Schedule

Tu Th 2:30 - 3:50 pm RKC 100

LAB: Fr 10:30 - 12:30 pm RKC 100

Distribution

Mathematics & Computing

Cross-listed: Cognitive Science

This course introduces students to principles of program design and analysis that underlie applications in digital animation, artificial intelligence, and internet communication.  Building on skills acquired in Object-Oriented Programming, we will focus on the construction of more sophisticated and reliable computer programs that employ the most important data structures.  Data structures, common ways in which data is organized and manipulated, are an important aspect of more advanced programming.  Consequently, throughout the course students will be introduced to the most useful data structures, including files, lists, stacks, trees, and graphs.  Students will write several programs, ranging from short lab assignments to larger systems of their own design. This course covers the implementation and use of advanced data structures such as stacks, queues, hash tables, binary search trees, sets, and graphs via an object-oriented programming language.

Prerequisite: CMSC 141.

 

Course

CMSC 231 Intelligent Robots

Professor

Rebecca Thomas / Sven Anderson

CRN

97894

 

Schedule

Tu 4:00 5:20 pm RKC 107

Distribution

Mathematics & Computing

This studio workshop, the first in a planned series, is intended for highly motivated students who want hands-on experience with mobile robot hardware and software.  During this semester we will learn to program in Python and control robots using the ARIA robot interface. Beginning with a Pioneer mobile robot base, we will build an intelligent system that includes visual object identification, obstacle avoidance, and sonar-based navigation capabilities.  Our eventual goal is to have robots participate in a scavenger hunt. Students will be assigned to small teams; several teams will then work cooperatively toward a shared objective. Each student must demonstrate a high degree of individual responsibility. Prerequisites: Students should have facility with computer programming, electronics, or the manipulation of digital images. Interview is required and must take place prior to registration. Contact Dr. Thomas at thomas@bard.edu to arrange an interview.

 

Course

CMSC 305 Design of Programming Languages

Professor

Robert McGrail

CRN

97219

 

Schedule

Mon Wed 3:00 -4:20 pm RKC 100

LAB: Fr 3:00 -5:00 pm RKC 100

Distribution

Mathematics & Computing

Cross-listed: Cognitive Science

This course will cover a selection of issues important to the design of programming languages including, but not limited to, type systems, procedure activation, parameter passing, data encapsulation, dynamic memory allocation, and concurrency. In addition, the functional, logic, and object-oriented programming paradigms will be presented as well as a brief history of high-level programming languages. Students will be expected to complete a major programming project in Standard ML of New Jersey as well as other programming assignments in Java or Prolog. Prerequisite: CMSC 201

 

Course

CMSC 321 Databases: Theory & Practice

Professor

Robert McGrail

CRN

97220

 

Schedule

Mon Fr 9:00 - 10:20 am RKC 100

Distribution

Mathematics & Computing

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.

 

Course

CMSC 326 Operating Systems

Professor

Sven Anderson

CRN

97221

 

Schedule

Mon Wed 1:30 -2:50 pm RKC 100

LAB: Fr 1:00 -3:00 pm RKC 107

Distribution

Mathematics & Computing

Cross-listed: Cognitive Science

Covers traditional topics of operating systems, including interprocess communication, semaphores, monitors, scheduling algorithms, deadlocks, virtual memory, and file system design. In addition, discussion may include issues in distributed systems such as the client-server model, remote procedure call, distributed synchronization, transactions, threads, and file servers. Prerequisite: CMSC 201