16064

CMSC 117

 Intro to Computing:Interactive

Keith O'Hara

 T Th    1:30 pm-2:50 pm

RKC 100

MATC

Cross-listed: Experimental Humanities This course introduces students to computing through the construction of interactive computing systems, exploring the interface between the physical and virtual worlds. Students will explore creative computation through programming projects involving 2D and 3D graphics, animation, interactivity, and the visualization of data. No prior knowledge of computer programming is required. Prerequisite: passing score on part 1 of the Mathematics Diagnostics. Class size: 18

 

16065

CMSC 143

 Object-Oriented Programming  with Robots

Khondaker Salehin

M W     10:10 am-11:30 am

LAB:  F   10:30 am-12:30 pm

RKC 107

MATC

Cross-listed: Experimental Humanities; 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: 18

 

16066

CMSC 145

 Discrete Math

Robert McGrail

 T Th    1:30 pm-2:50 pm

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

 

16067

CMSC 201

 Data Structures

Sven Anderson

M W     10:10 am-11:30 am

Lab:  F    10:30 am-12:30 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

 

16068

CMSC 301

 Algorithms

Sven Anderson

M W     1:30 pm-2:50 pm

RKC 103

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, MATH 141, and Discrete Mathematics (CMSC 145/235/242).  Students may substitute MATH 231 for Discrete Mathematics.  Class size: 24

 

16069

CMSC 312

 Theory of Computation

Robert McGrail

 T Th    10:10 am-11:30 am

RKC 100

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: 20

 

16070

CMSC 335

 Computer Networks

Khondaker Salehin

M W     3:10 pm-4:30 pm

 Lab: Th 1:30 pm-3:30 pm

RKC 107

RKC 107

MATC

This course takes a bottom-up approach to computer networking, covering in detail the physical, data link, MAC, network, transport, and application layers. TCP/IP and OSI reference models are introduced with examples taken from the Internet, ATM networks, and wireless networks. Prerequisite: Computer Science 142.  Class size: 16

 

16071

CMSC 360

 Intelligent Robotics and Perception

Keith O'Hara

 T Th    08:30 am-09:50 am

RKC 107

MATC

This course provides an overview of topics in computational perception, machine learning, and robotics.  Students will learn the underlying principles and methods of intelligent robotic systems, including techniques from sensor processing, robot software architecture, and supervised, unsupervised, and reinforcement learning.  Throughout the semester, students will collaborate as a team to build an intelligent robotic system of their choice. Prerequisite: Computer Science 201 or permission of the instructor. Class size: 18