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