Computer Science Courses

Download PDF

CMPT - Computer Science Courses

CMPT-140: Computer Science Principles (Credits: 3)

This course is an introduction to the history, social implications, great principles, and future of computing. Relevance of computing to students and society will be emphasized. Students will learn the joy of programming a computer using a friendly, graphical language, and will discuss how computing empowers discovery and progress in other fields. (WCore: WCSAM)

CMPT-150: Math and Tech of Entertainment Arts (Credits: 3)

Explore the math and technology behind computer animation and video game design. Ever wonder while watching a movie: "How did they do that?" Students will learn the mathematical and computational theory behind image processing, 2D and 3D computer graphics and special effects. This seminar will discuss the progress of computer graphics research over the last fifty years. (WCore: WCSAM, QE)

CMPT-190: Learning to Code (Credits: 2)

A gentle introduction to programming fundamentals including coding, testing, and debugging using the Python programming language. This course is appropriate for students with no programming experience and will introduce basic variables, functions, conditionals, loops, and problem-solving skills through programming. This class meets four hours per week for half semester.

CMPT-201: Introduction to Computer Science (Credits: 4)

Introduction to programming fundamentals, including problem-solving skills, program design, object-oriented programming, coding, testing, and debugging using the Java programming language. This class meets for five hours and includes an integrated lab.

CMPT-202: Introduction to Data Structures (Credits: 4)

An exploration of data structures including stacks, queues, trees, and dictionaries, and a comparison of the algorithmic efficiencies based upon their implementations. This class meets for five hours and includes an integrated lab.

CMPT-210: Just Enough Java (Credits: 2)

An overview of introductory principles of programming in Java. This 7-week course is intended for those who have taken CMPT 190 Learning to Code or have had prior programming experience and prepares the student with enough Java skills for taking CMPT 202 Introduction to Data Structures, a course taught entirely in Java.

CMPT-215: Emerging Scholars (Credits: 0 to 1)

A peer-led, seminar-style course for students enrolled in CMPT 201. Students will work through challenging, non-textbook activities that reinforce the computer science concepts that are keys to success in CMPT 201. This course is highly recommended for all CMPT 201 students and may be taken for 0 credits if students are already registered for 16 credits.

CMPT-251: Computer Systems and Programming (Credits: 4)

An examination of a computer system from the programmer's perspective. Examines how your programs interact with the compiler, the assembler, the operating system, and hardware, enabling students to write software that is efficient, modular, and versatile. Introduces the C programming language, the Linux operating system, and assembly programming.

CMPT-300: Special Topics in Computer Science (Credits: 1 to 4)

A special topics course covering new or specialized courses in Computer Science.

CMPT-301: Artificial Intelligence (Credits: 4)

Introduces the principles and techniques of modern artificial intelligence, including problem solving paradigms and intelligent agents for solving real world problems. Topics include search techniques, games, machine learning, logic, and constraint satisfaction problems.

CMPT-306: Algorithms (Credits: 4)

A study of balanced search trees, algorithms, and complexity analysis. This class meets for five hours and includes an integrated lab.

CMPT-307: Databases (Credits: 4)

A study of relational databases from theory through practical design, implementation, and application programming using SQL. The course also examines other topics such as alternative database models, relational algebra, and web application frameworks.

CMPT-311: Machine Learning (Credits: 4)

An introduction to the discipline of machine learning intended for students with Python programing experience. Students will learn the skills necessary to implement model algorithms from scratch using Python, as well as to familiarize them with libraries for more advanced algorithms that are beyond the scope of this course.

CMPT-322: Software Engineering (Credits: 4)

An overview of constructing software using an Agile approach to software development and design. Topics include software planning and design, scheduling, testing and reliability, and software maintenance. A semester-long project developed in a group setting.

CMPT-328: Computer Architecture (Credits: 4)

An overview of computer hardware and the processing of instructions including processor and memory system organization, bus structures, I/O, and secondary storage devices. A RISC assembly language is used extensively.

CMPT-335: Computer Security (Credits: 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. Alternative pre-requisite instead of CMPT 251: CMPT 202 and UNIX/Linux command line experience

CMPT-341: Programming Languages (Credits: 4)

The study of language paradigms, data types, and structure. Coverage includes procedural, functional, and interpreted languages.

CMPT-351: Operating Systems (Credits: 4)

A study of the design of contemporary operating systems. Topics include process and thread management, CPU scheduling, concurrency, memory management and I/O device management. Ongoing case studies include UNIX/Linux, Windows, and OS X.

CMPT-352: Computer Networks (Credits: 4)

A study of hardware and software components and protocols in local and wide area networks. Emphasizes TCP/IP networks and the Internet. Alternative pre-requisite instead of CMPT 251: CMPT 202 and UNIX/Linux command line experience

CMPT-355: Compilers (Credits: 4)

Syntax analysis, semantics, code generation, optimization, and run time systems. A complete compiler for a programming language will be implemented.

CMPT-360: Computer Graphics (Credits: 4)

Fundamental computer graphics algorithms, including two- and three-dimensional transformations, viewing projections, lighting models, texture mapping, and ray-tracing. Recommended: basic linear algebra skills.

CMPT-375: Web Applications (Credits: 4)

An introduction to designing and developing web applications using a variety of programming languages and frameworks. Topics include front-end and back-end web app architecture, e-commerce websites, and object-relational mapping.

CMPT-385: Senior Project Proposal Writing (Credit: 1)

Students will write a detailed proposal describing their capstone project to be completed in CMPT 390. Prerequisites: computer science or computer information systems major in the last Fall semester of his or her course of study.

CMPT-387: Undergraduate Teaching (Credit: 1)

For teaching assistants in lower division computer science science problem solving courses. A maximum of two credit hours of CMPT 387 may be applied toward the major or minor. Program chair permission required. This course is repeatable for credit.

CMPT-390: Senior Capstone,Computer Science (Credits: 2)

A required capstone course 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 at Westminster. (WCore: SC)

CMPT-401: Directed Studies (Credits: 1 to 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. Instructor and school dean permissions required. This course is repeatable for credit.

CMPT-440: Internship (Credits: 1 to 8)

A maximum of 4 hours of CMPT 440 may be applied toward the major or minor. Offers students the opportunity to integrate classroom knowledge with practical experience. Students will be graded on assigned coursework and evaluation by their site supervisor. Prerequisites: 60 college credits completed (for transfer students at least 15 hours competed at Westminster or permission of instructor), minimum 2.5 GPA, and consent of faculty advisor and Career Center internship coordinator. Interns will work for 42 hours per each registered credit. This course is repeatable for credit. Some majors limit how many internship credits may count towards the major, consult your faculty advisor. REGISTRATION NOTE: Registration for internships is initiated through the Career Center website and is finalized upon completion of required paperwork and approvals. More info: 801-832-2590 https://westminstercollege.edu/student-life/career -center/internships.html

CMPT-440S: Internship (Credits: 1 to 8)