2008-2009 Computer Science Courses



The Information Age: A Changing Society, Computers, and You, LE


An overview of how computing technology—and the Internet—works and how it is transforming our society. This course is about seeing technology, thinking about it, understanding how basic aspects of it work in simple terms, and considering the current and potential impacts of technology on us and on our world.




Special Topics


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




Introduction to Computer Science


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. Co-requisite: MATH 105 and current computer literacy skills. Offered every Fall semester.




Introduction to Data Structures


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.




Computer Systems and Programming


An examination of a computer system from the programmer’s perspective. We examine the compiler, the operating system, the hardware, and their interaction. Next we explore how software interacts with each of these layers. Such study helps explain how to write more efficient software. We will introduce and use the C programming language, the UNIX operating system, and Intel assembly. Offered every Fall semester. Prerequisites: CMPT 202.


CMPT 260 Computer System Fundamentals (4)

This course provides an overview of the fundamental components of a modern computer system including computer architecture and organization, operating systems, and computer networks. Additional topics include computer security, databases, the Internet and the World Wide Web.

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. Prerequisites: CMPT 202.
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; Co-requisite: MATH 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 202. 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. Primary focus is Agile software development. Prerequisites: CMPT 202. 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 335 Computer Security (4)
An introduction to the fundamentals of computer security as it relates to several areas of computer science including networking, operating systems, and databases. Topics range from cryptography to less technical areas such as user policies and legal issues.
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 202, 251. 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.
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: basic linear algebra skills.
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 203 and some programming experience (C preferred). Same as MATH 362. Offered Spring semester.
CMPT 375 E-Commerce (4)
Topics include Internet technologies, e-commerce web sites, databases and information management, on-line auctions, and digital versus bricks-and-mortar versus bricks with clicks business models. Prerequisites: CMPT 307.
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 Senior Capstone Project (2)
A required seminar for senior computer science and computer information systems majors. The purpose is to develop a significant independent software project.. In addition, students are expected to submit portfolios of their coursework. Prerequisites: computer science or computer information systems 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.





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.