Course:

CMSC 141  Object-Oriented Programming

Professor:

Kerri-Ann Norton  

CRN:

15344

Schedule/Location:

Mon  Wed     10:10 AM11:30 AM Reem Kayden Center 107

                  Fri   9:50 AM11:50 AM Reem Kayden Center 107

Distributional Area:

MC Mathematics and Computing  

Credits: 4

 

Class cap: 16

Crosslists: 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, simulation. Good programming and documentation habits are emphasized.

 

Course:

CMSC 145  Discrete Math

Professor:

Robert McGrail  

CRN:

15345

Schedule/Location:

 Tue   Fri   1:30 PM2:50 PM Reem Kayden Center 101

Distributional Area:

MC Mathematics and Computing  

Credits: 4

 

Class cap: 16

Crosslists: 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.

 

Course:

CMSC 201  Data Structures

Professor:

Keith O’Hara  + Kerri-Ann Norton

CRN:

15346

Schedule/Location:

Mon   Thurs    1:30 PM2:50 PM Reem Kayden Center 103

Distributional Area:

MC Mathematics and Computing  

Credits: 4

 

Class cap: 32

Crosslists: 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. Students must select a Lab section as well.

 

Course:

CMSC 201 LBA Data Structures Lab A

Professor:

Kerri-Ann Norton  

CRN:

15347

Schedule/Location:

    Fri   2:00 PM4:00 PM Reem Kayden Center 100

Distributional Area:

MC Mathematics and Computing  

Credits: 0

 

Class cap: 16

Crosslists: Mind, Brain, Behavior

 

Course:

CMSC 201 LBB Data Structures Lab B

Professor:

Keith O’Hara  

CRN:

15348

Schedule/Location:

    Fri   9:50 AM11:50 AM Reem Kayden Center 100

Distributional Area:

MC Mathematics and Computing  

Credits: 0

 

Class cap: 16

Crosslists: Mind, Brain, Behavior

 

Course:

CMSC 251  Introduction to Artificial Intelligence

Professor:

Sven Anderson  

CRN:

15350

Schedule/Location:

Mon    Fri   11:50 AM1:10 PM Reem Kayden Center 107

Distributional Area:

MC Mathematics and Computing  

Credits: 4

 

Class cap: 16

Crosslists: 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.

 

Course:

CMSC 301  Algorithms

Professor:

Sven Anderson  

CRN:

15351

Schedule/Location:

Mon  Wed  Fri   8:50 AM – 9:50 AM Reem Kayden Center 100

Distributional Area:

MC Mathematics and Computing  

Credits: 4

 

Class cap: 16

Crosslists: 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 and either CMSC 145 or Math 261.

 

Course:

CMSC 321  Databases: Theory & Practice

Professor:

Robert McGrail  

CRN:

15352

Schedule/Location:

 Tue  Thurs    10:10 AM11:30 AM Reem Kayden Center 100

          Wed     10:10 AM12:10 PM Reem Kayden Center 100

Distributional Area:

MC Mathematics and Computing  

Credits: 4

 

Class cap: 16

 

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 336  Games Systems: Platforms, Programs & Power

Professor:

Keith O’Hara  

CRN:

15993

Schedule/Location:

Mon  Wed     3:10 PM4:30 PM Reem Kayden Center 107

Distributional Area:

MC Mathematics and Computing  

Credits: 4

 

Class cap: 16

Crosslists: Experimental Humanities

This course studies games using the lens of computing systems; exploring the design and implementation of historic and modern computing systems for games, including the hardware, software, and their interface. For more than the sake of automation or communication, games have exploited a unique affordance of computers, the ability to simulate & ask questions of “what if?”  This course will go beyond only creating games, and will challenge students to critically reflect on how the architectural and programming choices in games can encode inequality and particular worldviews procedurally, as much as other game elements like visuals, audio and narrative. We will cover the low-level aspects of games platforms: graphics programming, networking, and peripherals; mid-level concerns: software engineering, design patterns, concurrency, and interfaces; and higher-level issues related to emulation, ethics, platform studies and media archaeology. Prerequisites: CMSC 201, Data Structures.

 

Cross-listed courses:


Course:

MUS 262  Topics in Music Software: Introduction to Max/Msp

Professor:

Matthew Sargent  

CRN:

15439

Schedule/Location:

Mon  Wed     11:50 AM1:10 PM Blum Music Center N119

Distributional Area:

AA Analysis of Art  

Credits: 4

 

Class cap 15

Crosslists: Computer Science; Experimental Humanities