2005 - 2006 Computer Science Courses

CMPT

098

Basic Computer Skills, LE

(1)

An introduction to using a computer and the application software used by the Westminster Community for those with little or no previous computer skills. This is a hands-on skills course that meets entirely in a computer lab.

 

CMPT

200/
300/400

Special Topics


(1-4)

A special topics course covering new or specialized courses in Computer Science. Prerequisites will vary with course content.

 

CMPT

201

Introduction to Computer Science

(4)

Introduction to programming fundamentals, including problem solving skills, program design, object-oriented programming, coding, testing, and debugging using the Java programming language. Three lectures and one two-hour lab. Prerequisite: MATH 105 and current computer literacy skills. Offered every Fall semester.

 

CMPT

202

Introduction to Data Structures

(4)

Introduction to a variety of computer science topics including recursion, data structures and software engineering principles using Java. Three lectures and one two-hour lab. Prerequisites: CMPT 201; MATH 141. Offered every Spring semester.

 

CMPT

251

Computer Systems and Programming

(4)

An examination of a computer system from the programmer's perspective. We will examine what the compiler, operating system, and hardware do. We will also examine ways of improving our code by studying programming topics that benefit from a better understanding of this layered computer system. This course introduces the C language, the UNIX OS, and assembly language, and explores their interaction. Offered every Fall semester. Prerequisites: CMPT 202.

 

CMPT

301

Artificial Intelligence

(4)

The study of rule-based systems, and/or trees, constraint propagation, search techniques, means-end analysis, and heuristics and problem solving. An introduction to the LISP language. Prerequisites: CMPT 202, MATH 201. Offered Fall semester 2006.

 

CMPT

306

Algorithms and Data Structures

(4)

Algorithms and data structures including graphs, trees, algorithmic methods, complexity analysis, NP-Complete and object-oriented design. Includes a two-hour lab. Prerequisites: CMPT 202; MATH 201, 210. Offered every Fall semester.

 

CMPT

307

Database Systems

(4)

A study of relational database theory and external data structures. Also includes coverage of UNIX/Linux operating systems. Prerequisite: CMPT 306. Offered every Spring semester.

 

CMPT

322

Software Engineering

(4)

Software planning, design and coding; requirements analysis; software costing and scheduling; software concepts, data-flow and data structure design, software testing and reliability; software maintenance. Prerequisites: CMPT 202; MATH 201. Offered every Spring semester.

 

CMPT

328

Computer Architecture

(4)

Processor organization, memory system organization, bus structures, I/O and storage devices, interfacing and communication. Prerequisites: CMPT 251. Offered every Spring semester.

 

CMPT

350

Methods of Teaching Computer Science in the Secondary Schools

(2)

Required for the Computer Science teaching minor. Prerequisites: junior or senior standing and consent of instructor. Offered Fall semester.

 

CMPT

351

Operating Systems

(4)

Process management, I/O software, memory management, file systems, operating-system structures, processes and threads, concurrency, and case studies including UNIX/Linux and Windows. Prerequisites: CMPT 306, 307, 328. Offered every Fall semester.

 

CMPT

352

Computer Networks

(4)

A study of hardware and software components and protocols in local and wide area networks. Emphasizes TCP/IP networks. Prerequisites: CMPT 251, 306. Offered every Spring semester.

 

CMPT

355

Compilers

(4)

Syntax analysis, semantics, code generation, optimization, and run time systems. A complete compiler for a small subset of the Java language will be implemented. Prerequisites: CMPT 251, 306. Offered Spring semester 2007.

 

CMPT

360

Computer Graphics

(4)

Fundamental computer graphics algorithms, including two- and three-dimensional transformations, viewing projections, lighting models, texture mapping, and ray-tracing. Prerequisites: CMPT 306; MATH 201. Recommended: MATH 211 or basic linear algebra skills. Offered Spring semester 2006.

 

CMPT

362

Numerical Analysis

(4)

Solution of nonlinear equations and linear systems, interpolation and approximation, and numerical differentiation and integration. Students expected to program some problems for computer solutions. Prerequisites: MATH 303 and some programming experience (C preferred). Same as MATH 362. Offered Spring semester 2006.

 

CMPT

387

Undergraduate Teaching

(1)

For teaching assistants in lower division computer science problem solving courses. A maximum of two credit hours of CMPT 387 may be applied toward the major or minor. Prerequisite: consent of program director.

 

CMPT

390

Research/Development Seminar in Computer Science

(2)

A required seminar for senior computer science majors. The purpose is to develop a significant independent software project or to pursue a research project in computer science or to merge the two. In addition, students are expected to take a field exam to assess knowledge of computer science, and to submit portfolios of their work completed in computer science coursework. Prerequisites: computer science major in the last semester of his/her course of study. Offered every semester.

 

CMPT

401

Directed Studies

(1-4)

A tutorial-based course used only for student-initiated proposals for intensive individual study of topics not otherwise offered in the Computer Science Program. Prerequisite: consent of the instructor and school dean.

 

CMPT

440

Internship

(1-8)

Offers students the opportunity to integrate classroom knowledge with practical experience. Prerequisites: junior or senior standing (for transfer students, at least 15 hours completed at Westminster), minimum 2.5 GPA, completion of the Career Resource Center Internship Workshop, and consent of program director and Career Center Internship Coordinator. A maximum of 4 hours of CMPT 440 may be applied toward the major or minor.