Computer Science Courses
CMPT - Computer Science Courses
CMPT-140: App Creators: Designing for Impact & Fun (Credits: 3)
Bring your ideas to life by building mobile apps that make a difference! This course is designed for beginners and teaches students practical coding skills through fun, real-world projects that show how easy and rewarding tech can be. (WCore: WCSAM, CE)
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)
This course provides a comprehensive introduction to Artificial Intelligence (AI), covering essential concepts, techniques, and applications. Students will explore search techniques, reasoning under uncertainty, deep learning, reinforcement learning, large language models (LLMs), and the ethical implications of AI. Practical applications include language processing, computer vision, speech recognition, image generation, and gaming.
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)
This course provides an introduction to the foundational concepts and techniques of Machine Learning, focusing on both theoretical understanding and practical implementation. Students will explore core topics, including regression, classification, decision trees, ensemble methods, and unsupervised learning, as well as model selection, evaluation, and optimization techniques to improve model performance. Students will implement basic models in Python and learn to tune models using libraries.
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-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 and Security (Credits: 4)
A study of software and hareware protocols with an emphasis on TCP/IP and the Internet. Security topics include assessing network vulnerabilities, securing computer networks from cyber-attacks, encryption and cryptographic techniques.
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 4)
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://westminsteru.edu/student-life/career -center/internships.html
CMPT-440S: Internship (Credits: 1 to 4)
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://westminsteru.edu/student-life/career -center/internships.html