15581 |
ML
101 Data Visualization |
Keith
O'Hara |
. T . Th . |
10:10am- 11:30am |
RKC 100 |
N/A |
2 credits Datasets, and their graphical
manifestations, are a common mode of argument and persuasion in modern daily life.
This class will challenge students to critically engage with the rhetorical
function of information visualization. This criticism (i.e. reading) will be
complemented and reinforced by creating new visualizations (i.e. writing), a
process that is part science, part design and part art. In this short course,
students will use a variety of computational platforms including pencil and
paper, spreadsheets, software visualization toolkits, and their own small
programs to bring datasets to graphical life. The pitfalls and advantages of
various methods of presenting numeric, geographic and textual datasets will be
constructed and deconstructed. No prerequisites. The
course meets twice a week during the last seven weeks of the semester. This
Modern Literacy course does not satisfy the MATC distribution requirement.. Class size: 20
15119 |
CMSC 115 Introduction to Computing: Simulating Reality |
Sven
Anderson |
. T . Th . |
3:10pm-4:30pm |
RKC 100 |
MATC |
Cross-listed: Mind,
Brain & Behavior How do rumors, fashions
and viruses spread? What properties make a person or web page
important? This introduction to modeling and simulation is intended for
students who are interested in answering such questions using computer
modeling. The models we build will emphasize situations such as animal
herds and social networks in which a large number of individuals interact,
thereby creating interesting aggregate phenomena such as flocking and
small-world networks. Students will create and explore several different
simulation model types drawn from a variety of disciplines, including
artificial intelligence, economics, ecology, and political science. They
will gain a practical understanding of how to combine mathematical modeling,
computer simulation, and data analysis as they build simulation models designed
to 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 a passing score on Part Two of the Mathematics Diagnostic. Class size: 20
15120 |
CMSC 143 Object-Oriented Programming with Robots |
Keith
O'Hara LAB: |
. T . Th . . . . . F |
1:30pm-2:50pm 1:30pm-3:30pm |
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: 20
15121 |
CMSC 145 Discrete Math |
Joseph
Kirtland |
. T . Th . |
4:40pm-6:00pm |
RKC 101 |
MATC |
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: 16
15122 |
CMSC 201 Data Structures |
Rebecca
Thomas LAB: |
. T . Th . . . . . F |
1:30pm-2:50pm 1:30pm-3:30pm |
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: 20
15123 |
CMSC 312 Theory of Computation |
Rebecca
Thomas |
. T . Th . |
8:30am-9:50am |
RKC 101 |
MATC |
The
course will introduce several computational models that have been developed to
formalize the notion of an algorithm. It will also discuss in detail several of
the primary topics in the theory of computation including the theory of
recursive functions, Turing machines, and several undecidable problems such as
the Halting problem. Prerequisites: Computer Science 301 and Mathematics
231/ 235. Class size: 24
15126 |
CMSC 321 Databases: Theory & Practice |
Robert
McGrail LAB: |
. T . Th . . . W . . |
1:30pm-2:50pm 1:00pm-3:00pm |
RKC 101 RKC 100 |
MATC |
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. Class size: 20
15127 |
CMSC 326 Operating Systems |
Sven
Anderson LAB: |
. T . Th . . . . . F |
10:10am-11:30am 10:10am-12:10pm |
RKC 107 RKC 107 |
MATC |
Cross-listed:
Mind, Brain & Behavior 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 is makes it possible for a computer to be shared by many users and
processes in a secure manner. This course will examine the major
components of modern operating systems with an emphasis on how processes and
memory are managed for efficiency and security. Class participants will
gain in-depth familiarity with principles of operating system design by
modifying components of a fully functional operating system. Prerequisite: CMSC 201 Data Structures Class
size: 16