11812

CMSC 117   Introduction to Computing:Interactive

Keith O'Hara

. T . Th .

1:00 -3:00 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: 20

 

11813

CMSC 143   Object-Oriented Prog w/Robots

Keith O'Hara

. T . Th .

. . . . F

10:10 - 11:30 am

10:10 - 12:10 pm

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

 

11814

CMSC 145   Discrete Math

Robert McGrail

M . W . .

3:10 -4:30 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: 20

 

11815

CMSC 201   Data Structures

Sven Anderson

                        LAB:

. T . Th .

. . . . F

10:10 - 11:30 am

10:10 - 12:10 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

 

11816

CMSC 271   Introduction to Big Data

Robert McGrail

. . . . F

3:10 -5:10 pm

RKC 100

MATC

2 credits  This course is an introduction to the MapReduce programming paradigm and its utility to the management of data sets that are too unwieldy for classical approaches to data management.  Concepts that will be surveyed include data sampling, organization, storage, reinterpretation, sharing, search, and visualization.  Moreover, big data analytics and the underlying theory of statistical inference will play a vital role in this course.  Prerequisite:  one course in the mathematical, physical, life, or behavioral sciences.    Class size: 18

 

11817

CMSC 301   Algorithms

Rebecca Thomas

. T . Th .

10:10 - 11:30 am

RKC 101

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

 

11818

CMSC 308   Mind, Brain & Behavior Seminar

Rebecca Thomas

. . W . .

6:30 -8:00 pm

RKC 101

MATC

Cross-listed:  Mind, Brain & Behavior  

2 credits Juniors and seniors concentrating in computer science or mathematics are strongly urged to take this two-credit course. Each senior presents personal research in progress or significant material from the literature. Each junior presents an interesting paper of personal choice from the literature. The purpose of the seminar is to enhance communication among seniors about their research and to encourage juniors to become familiar with both the academic literature and research undertaken in the program. Prerequisite: Moderated status or permission of the instructor.  Class size: 12

 

11819

CMSC 325   Multi Core Architecture

Rebecca Thomas

. T . Th .

3:10 -4:30 pm

RKC 100

MATC

Modern desktop computers typically contain multiple microprocessors. In order to take full advantage of these new machines, one must understand a number of interlocking hardware and software issues, including instruction-level and thread-level parallelism, architectures for shared memory, and dynamic scheduling. This course will combine principles of computer organization as applied to multiprocessor systems with case studies of several extant multicore architectures.  Prerequisite: CMSC 201.  Class size: 18

 

11820

CMSC 374   Mobile Application Development

Sven Anderson

. . W . F

1:30 -2:50 pm

RKC 100

MATC

This course provides a hands-on introduction to the design of applications on hand-held mobile devices such as mobile phones and tablets that are characterized by limited computational resources. Particular emphasis will be placed on developing application architectures and interface designs that incorporate the specialized input-output capabilities of these devices such as wireless communication, touch input, spoken interfaces, location sensors, and video capture. Students will be assigned to small teams that work together to develop a complete application for this platform.

Prerequisite: CMSC 201, Data Structures.  Class size: 15