12119

CMSC 141   A

 Object Oriented Programming

Kerri-Ann Norton

M  W   10:10 am-11:30 am

    F     9:30 am-11:30 am

RKC 107

RKC 107

MC

   

MATC

   

Cross-listed: Experimental Humanities; Mind, Brain, Behavior

This course introduces students to the methodologies of object-oriented design and programming, which are used throughout the Computer Science curriculum. Students will learn how to move from informal problem statement, through increasingly precise problem specifications, to design and implementation of a solution for problems drawn from areas such as graphics, animation, and simulation. Good programming and documentation habits are emphasized. 

Class size: 18

 

12865

CMSC 141   B

 Object Oriented Programming

Kerri-Ann Norton

M  W   1:30 pm-2:50 pm

    Th   1:15 pm-3:15 pm

RKC 107

RKC 107

MC

   

MATC

   

Cross-listed: Experimental Humanities; Mind, Brain, Behavior

This course introduces students to the methodologies of object-oriented design and programming, which are used throughout the Computer Science curriculum. Students will learn how to move from informal problem statement, through increasingly precise problem specifications, to design and implementation of a solution for problems drawn from areas such as graphics, animation, and simulation. Good programming and documentation habits are emphasized. 

Class size: 18

 

12121

CMSC 145    

 Discrete Math

Japheth Wood

 T  Th 10:10 am-11:30 am

HEG 102

MC

   

MATC

   

Cross-listed: Mathematics

Discrete mathematics includes those areas of mathematics that are essential to computer science, information theory, combinatorics, and genetics.  This course emphasizes creative problem solving, linking language to logic, and learning to read and write proofs.  The topics covered include propositional logic, predicate logic, inductive proof, sets, relations, functions, introductory combinatorics and discrete probability.  Applications drawn from computation will motivate most topics.  Prerequisite: Mathematics 141 or programming experience. 

Class size: 18

 

12120

CMSC 201    

 Data Structures

Keith O'Hara

M  W   10:10 am-11:30 am

    F     10:10 am-12:10 pm

RKC 100

RKC 100

MC

   

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

 

12122

CMSC 226    

 Principles:Computing Systems

Keith O'Hara

M  W    3:10 pm-4:30 pm

RKC 107

MC

   

MATC

   

Cross-listed: Experimental Humanities

This course takes a systems perspective to the study of computers.  As our programs scale up from a single author, user, and computer to programs designed, written, maintained, and used by multiple people that run on many computers (sometimes at the same time), considerations beyond algorithms alone are magnified. Design principles and engineering practices help us cope with this complexity: version control for multiple authors, input validation for multiple (adversarial) users, build automation tools for multiple platforms, process and thread models for parallelism.  From how numbers are represented in hardware to how instruction-level parallelism and speculation can lead to bugs: the design, implementation, evaluation, safety and security of computing systems will be stressed. Students will explore computers from the ground up, using a variety of programming languages (including assembly) and tools like the command line, debuggers, and version control.  Pre-requisites: Object-Oriented Programming or permission of instructor. 

Class size: 18

 

12123

CMSC 251    

 Intro:Artificial Intelligence

Sven Anderson

M  W  F   11:45 am-12:45 pm

RKC 107

MC

   

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 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: CMSC 143, 157, or equivalent programming experience.

Class size: 18

 

12124

CMSC 301    

 Algorithms

Sven Anderson

M  W  F   9:00 am-10:00 am

RKC 100

MC

   

MATC

   

Cross-listed: Mind, Brain, Behavior

The course discusses design and analysis of correct and efficient computer algorithms. Topics include sorting, greedy algorithms, divide-and-conquer algorithms, dynamic programming algorithms, and graph algorithms. Advanced topics in algorithms may be selected from specialized areas of the mathematical and empirical sciences. Prerequisites: CMSC 201: Data Structures; MATH 141: Calculus I; and CMSC 145: Discrete Mathematics  (or MATH 261: Proofs and Fundamentals). 

Class size: 18

 

12126

CMSC 321    

 Databases: Theory & Practice

Amber Billey

 T  Th  3:10 pm-4:30 pm

RKC 100

MC

   

MATC

   

 This course will introduce students to the theory, design, and implementation of databases and data modeling. Key topics include database methodologies, data modeling design, three-tier architectures, database querying, implementation of database applications, and related topics in information systems. Students will design a project that will sort through real data involving actual subjects and genuine problems by constructing a data model and building their own database. By the end of this course students will be able to: Identify the types of databases, determine their strengths and weaknesses, and assess real-world implementations; Understand the difference between entity-relationship and semantic data modeling; Know the basics of database applications and querying. Prerequisite: CMSC201 (Data Structures).

Class size: 18

 

 

Cross-listed courses:

 

12457

BIO 336    

 Computational Biology

Arseny Khakhalin

M  W    8:30 am-11:30 am

RKC 200

LS

   

Cross-listed: Computer Science Class size: 12

 

12127

MBB 317    

 Mind, Brain & Behavior Seminar

Sven Anderson

Justin Hulbert

  W       3:10 pm-4:30 pm

RKC 101

Cross-listed: Computer Science; Psychology Class size: 12

 

12168

MATH 313    

 Discrete and Computational Geometry

Ethan Bloch

M  W    3:10 pm-4:30 pm

ALBEE 100 / HEG 308

MC

   

MATC

   

Cross-listed: Computer Science Class size: 15

 

12220

MUS 262    

 Topics in Music Software

Matthew Sargent

M  W   11:50 am-1:10 pm

BLM N119

AA

   

AART

   

Cross-listed: Computer Science; Experimental Humanities Class size: 15