18065

CMSC 141

Object Oriented Programming

Kerri-Ann Norton

M W 10:10 am-11:30 am

HEG 204

MC

MATC

Cross-listed: Experimental Humanities 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. Class size: 36

CMSC 141 LAB OPTIONS: (register separately)

 

18066

CMSC 141 LBA

Object Oriented Program Lab

Kerri-Ann Norton

Th 9:30 am 11:30 am

RKC 107

 

MATC

Class size: 18

 

18067

CMSC 141 LBB

Object Oriented Program Lab

Kerri-Ann Norton

F 10:30 am-12:30 pm

RKC 107

 

MATC

Class size: 18

*******************************************************************************************************************************************************************************

 

18068

CMSC 145 A

Discrete Math

Japheth Wood

T Th 10:10 am-11:30 pm

HEG 106

MC

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

 

18894

CMSC 145 B

Discrete Math

Japheth Wood

T Th 11:50 am-1:10 pm

HEG 102

MC

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

 

18069

CMSC 201

Data Structures

Sven Anderson

LAB:

M W 10:10 am-11:30 am

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

 

18070

CMSC 220

bioinformatics and beyond: Programming for Biology

Kerri-Ann Norton

T Th 3:10 pm-4:30 pm

RKC 100

MC

MATC

This course introduces students with prior object-oriented programming experience to the basics of bioinformatics and biological statistical analysis. The students will develop the necessary tools for analyzing and aligning biological sequences, building phylogenetic trees, and using statistical tests. By the end of this course they will learn how to develop a hypothesis, test their hypothesis, and statistically analyze their data.
Prerequisite: CMSC 11X, 141 or 143 (OOP), BIO 244 (BioStats), or permission of the instructor. Class size: 18

 

18071

CMSC 230

Introduction to Automated Deduction

Robert McGrail

T Th 7:30 am-8:50 am

HDR 106

MC

MATC

This course is an introduction to and survey of techniques of automated deduction. Topics will include propositional, first-order, and second-order logic; satisfiability, term unification; logical resolution; and Horn clause programming. Optional topics include term rewriting systems; lambda calculus and type theory; and general automated theorem proving. Prerequisite: CMSC 145 or its equivalent. Class size: 18

 

18072

CMSC 301

Algorithms

Robert McGrail

T Th 10:10 am-11:30 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

 

18073

CMSC 312

Theory of Computation

Robert McGrail

M W 10:10 am-11:30 am

RKC 101

MC

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: CMSC 145: Discrete Mathematics or MATH 261: Proofs and Fundamentals. Class size: 18

 

18074

CMSC 326

Operating Systems

Sven Anderson

LAB:

M W 3:10 pm-4:30 pm

F 2:30 pm-4:30 pm

RKC 107

RKC 107

MC

MATC

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