91851

CMSC 101   The Craft of Computing

Keith O'Hara

. . W . .

3:10 -4:30pm

RKC 107

MATC

1 credit  This seminar introduces students to the burgeoning field of computing from Bard’s program to beyond.  Through the work of pioneers like Simon, Papert, Kay, and Knuth we will explore the past, present and future of computing; exploring the question of digital literacy and the roles of production, analysis, and consumption. This foundational discussion will be accompanied by a practical introduction to the craft of computing, developing necessary skills like editing, scripting, and version control. The seminar provides students with the opportunity to work with other computer science students in the lower college, meet all the computer science faculty, and learn about potential career directions. This course is intended for students in their first three semesters.  Class size: 16

 

91597

CMSC 118   Hapax Legomena and the

words we use: Computing for the Digital Humanities

Rebecca Thomas

. T . . .

3:10 -4:30 pm

RKC 100

MATC

Cross-listed: Experimental Humanities  2 credits What, if anything, can we learn by applying basic computing to works of literature? In this course, we'll apply techniques from Natural Language Processing (the subdiscipline of computer science that deals with information in text form) to all kinds of texts. We’ll identify hapax legomena (words that appear only once in a given text) and think about whether and when they are significant. We'll see how scholars try to use statistical techniques to approach disputes over authorship. Each student will work alone or with a small group to pose an interesting question about a specific text or corpus and to construct computational tools for beginning to address the question. No prerequisite. Class size: 18

 

91850

CMSC 119   (De-)Coding the Drone

Keith O'Hara

. T . Th .

10:10 - 12:10 pm

RKC 100

MATC

Cross-listed: Experimental Humanities; Human Rights; Science, Technology & Society  This course introduces students to computing through the coding and decoding of drones – or, more generally, robotic computing systems – and engages with the public debate on unmanned aerial vehicles, both military and domestic. This class will serve as a hands-on introduction to the practice of programming drones, small embedded computers connected with sensors and actuators. Through guest lectures by distinguished practitioners in fields such as human rights, international law, media studies, literature, robotics, and history, as well as vigorous class discussion, we will consider drones from aesthetic, social, moral, and policy perspectives. Students will learn how computers can observe and manipulate the physical world as well as calculate in the virtual world, while reflecting on the social and political implications of drone technology. No prior knowledge of computer programming is required. Prerequisite: passing score on part 1 of the Mathematics Diagnostics.  Class size: 18

 

91598

CMSC 143   Object-Oriented Programming with Robots

Sven Anderson

                           Lab:

M . W . .

. . . . F

10:10 - 11:30 am

10:30 - 12:30 pm

RKC 107

RKC 107

MATC

Cross-listed:  Mind, Brain & Behavior   This course introduces students with prior programming experience to object-oriented design and programming through the design and implementation of mobile robot programs. The programs will enable the robot to move around the world, reacting to sensors such as obstacle detectors and a color camera.  Students will learn how to move from an informal problem statement, through increasingly precise problem specifications, to design and implementation of a solution.  Good programming habits will be emphasized. Purchase of a small personal robot (to be specified by the instructor) is recommended. Prerequisite: any Introduction to Computing course, or permission of the instructor.  Class size: 23

 

91599

CMSC 201   Data Structures

Rebecca Thomas

                             Lab:

M . W . .

. . . . F

10:10 - 11:30 am

10:10 - 12:10 pm

RKC 100

RKC 100

MATC

Cross-listed:  Mind, Brain & Behavior   This course introduces students to essential principles of program design and analysis that underlie applications of computation to internet  communication, digital media, and artificial intelligence.  Building on basic programming skills, 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 modern programs.  Consequently, throughout the course students will learn to create and use 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.  Prerequisite: CMSC 141 or 143, or permission of the instructor.  Class size: 18

 

91600

CMSC 251   Artificial Intelligence

Sven Anderson

. T . Th .

3:10 -5:10 pm

RKC 107

MATC

Cross-listed:  Mind, Brain & Behavior   An introduction to artificial intelligence principles and techniques with an emphasis on elements of artificial intelligence that are compatible with current understanding of biologically-based intelligence (e.g., neural computation).  This course is intended to provide a first course in artificial intelligence, particularly for students interested in cognitive science and neuroscience.  The course will explore the application of artificial intelligence techniques to particular application areas.  Techniques include automated reasoning, machine learning, evolutionary learning, heuristic search, and behavior-based robot control. Application examples will be drawn from artificial life, robotics, game play, logic, visual perception, and natural language processing. Prerequisites: One of CMSC 111-117, 141-143, or programming experience.  Class size: 18

 

91601

CMSC 305   Design of Programming Languages

Robert McGrail

                           Lab:

. . W . F

M . . . .

3:10 -4:30 pm

3:10 -5:10 pm

RKC 101

RKC 100

MATC

Cross-listed: Mind, Brain & Behavior      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. Class size: 18

 

91602

CMSC 328   Embedded Operating Systems

Keith O'Hara

                          Lab:

. T . Th .

M . . . .

1:30 -2:50 pm

1:00 -3:00 pm

RKC 107

RKC 107

MATC

Cross-listed:  Mind, Brain, & Behavior  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 traditional computers, like personal computers. Embedded operating systems serve as the core of these types of computational systems providing common services, isolation and protection in resource limited environments. Traditional topics of operating systems, including device drivers, concurrency, inter-process communication, scheduling, memory management, and virtualization will be covered. In addition, discussion may include issues in mobile, distributed, and real-time systems. Prerequisite: Computer Science 201 or permission of the instructor.   Class size: 18