University of Richmond

2010-2011 University of Richmond Undergraduate Catalog

Back to Current Catalog


Computer Science

Department of Mathematics and Computer Science

B. Lewis Barnett III, Chair
Professors Charlesworth, Davis, Fenster, Greenfield, J. Hubbard, Nall, Ross
Associate Professors Barnett, Caudill, K. Hoke, Kerckhove, Lawson, Owen, Szajda
Assistant Professors Shaw
Director of Developmental Mathematics H. Hoke

The Computer Science Major

Note: The grade point average of the coursework comprising the major must be no less than 2.00 with no computer science course grade below C- (1.70). Students are strongly advised to consult with faculty in planning their major curriculum.

For the Bachelor of Arts degree

11.5 units, including

CMSC 150 or 155 Introduction to Computing or Scientific Computing
CMSC 221 Data Structures with Lab
CMSC 222 Discrete Structures for Computing
CMSC 240 Software Systems Development
CMSC 301 Computer Organization
CMSC 315 Algorithms
CMSC 323 Design and Implementation of Programming Languages
Three additional 1-unit CMSC electives at the 300 level. Without departmental approval, no more than one of these courses can be an Independent Study course.
MATH 211 or 231 Calculus I or Scientific Calculus I
MATH 245 Linear Algebra

For the Bachelor of Science degree

14.5 units, including

CMSC 150 or 155 Introduction to Computing or Scientific Computing
CMSC 221 Data Structures with Lab
CMSC 222 Discrete Structures for Computing
CMSC 240 Software Systems Development
CMSC 301 Computer Organization
CMSC 315 Algorithms
CMSC 323 Design and Implementation of Programming Languages
Three additional 1-unit CMSC electives at the 300 level. Without departmental approval, no more than one of these courses can be an Independent Study course.
MATH 211 or 231 Calculus I or Scientific Calculus I
MATH 212 or 232 Calculus II or Scientific Calculus II
MATH 245 Linear Algebra
Two units at the 300 level or above in mathematics or two units (or more) beyond the introductory level in one of the following fields: physics (200 level or above), chemistry (200 level or above), or biology (beyond 205).

The Computer Science Minor

Note: The grade point average of the coursework comprising the minor must be no less than 2.00 with no computer science course grade below C- (1.70). Students are strongly advised to consult with faculty in planning their minor curriculum.

5.5 units, including

CMSC 150 or 155 Introduction to Computing or Scientific Computing
CMSC 221 Data Structures with Lab
CMSC 222 Discrete Structures for Computing
CMSC 240 Software Systems Development
CMSC 301 Computer Organization
One additional unit in CMSC for which CMSC 222 or CMSC 301 is a prerequisite

Honors Program

Students invited into the honors program may earn honors in computer science by completing the following requirements:
  1. Two 300-level courses for honors credit (one of which as a 300-level prereq: 321, 322, 323, 326, 330, 331, 332, 333, 334, 335);
  2. Two semesters of directed independent study (CMSC 340):
  3. Honors paper

Courses

CMSC 101 Minds and Machines

CMSC 105 Elementary Programming with Lab

CMSC 150 Introduction to Computing

CMSC 155 Introduction to Scientific Computing

Note: Knowledge of the topics of Computer Science 150 or 155 is prerequisite to all higher numbered Computer Science courses. Students who have obtained this knowledge through a high school or some other course are permitted to begin with Computer Science 221 with departmental approval.

CMSC 195 Special Topics

CMSC 221 Data Structures with Lab

CMSC 222 Discrete Structures for Computing with Lab

CMSC 240 Software Systems Development

CMSC 288 Computer Science Apprenticeship

Note: Most 300-level courses in computer science include a one hour per week laboratory component. This is an instructor-designed, organized and supervised component of the course that may occur as a fourth hour of lecture or as an extra course component scheduled outside of the lecture period. Scheduling and format may be discussed at the first class session. The format may vary by instructor and course. Students are urged to contact the instructor prior to registration if they have questions about the laboratory.

CMSC 301 Computer Organization

CMSC 315 Algorithms

CMSC 321 Operating Systems

CMSC 322 Software Engineering Practicum

CMSC 323 Design and Implementation of Programming Languages

CMSC 325 Database Systems

CMSC 326 Simulation

CMSC 328 Numerical Analysis

CMSC 330 Theory of Computation

CMSC 331 Introduction to Compiler Construction

CMSC 332 Computer Networks

CMSC 333 Parallel Programming

CMSC 334 Computer Security

CMSC 335 Computer Graphics

CMSC 340 Directed Independent Study

CMSC 395 Special Topics

CMSC 388 Individual Internship

Back to top