Computing Courses
COURSE NUMBERCOURSE NAMEDEPARTMENTCREDIT HOURSYEARCOURSE DESCRIPTION
CMP 130Introduction to ComputingMathematics and Computing3FreshmanAn introduction to the field of computing and the use of software applications to enhance quantitative reasoning, problem-solving, and decision-making. Topics include data storage, data manipulation, operating systems, networking and the Internet, algorithms, programming languages, software engineering, data abstractions, database systems, artificial intelligence, and the theory of computation. Hands-on experience with applications, such as spreadsheet software and database management systems, is included. CMP 130 may be taken to satisfy LA 103, the liberal arts core curriculum mathematics requirement. Prerequisite: MAT 085 or competence in introductory algebra as demonstrated on the mathematics placement exam. Fall and spring.
CMP 141Python for Computing and Data Science IMathematics and Computing3FreshmanAn introduction to computers and structured programming using the Python programming language. Computer science topics include: problem-solving strategies, algorithm formulation, primitive data types, expressions, control structures, proper coding style, debugging, testing, and documentation. Data science topics include: basic descriptive statistics, data visualization, and data frames. Prerequisite: knowledge of high school algebra. Same as DAT 141. Fall.
CMP 142Python for Computing and Data Science IIMathematics and Computing3FreshmanAn introduction to object-oriented design and programming using the Python programming language. Computer science topics include: recursion, object-oriented design, encapsulation, inheritance, polymorphism, file input and output, exception handling, and regular expressions. Data science topics include: natural language processing, data mining, machine learning algorithms, and an introduction to deep learning. Prerequisite: CMP/DAT 141. Same as DAT 142. Spring.
CMP 150Computer Tools for Problem SolvingMathematics and Computing2FreshmanA course in which students learn to apply professional scientific computing software to mathematical problems. Topics will include matrices and matrix operations; random number generation; plotting graphs of functions; and curve fitting and interpolation. Students will also learn and apply basic elements of computer programming (relational and logical operators, conditional statements, and loop structures) within MATLAB and R. Prerequisite: MAT 135 or consent of instructor. Spring.
CMP 283Web Software Construction and Testing IMathematics and Computing3SophomoreAn introduction to the fundamental concepts of web software construction and testing. Topics include the client-server model and server-side programming languages (e.g., ASP.NET, C#.NET). Prerequisites: CMP 141 or consent of instructor. Fall.
CMP 285Web Software Construction and Testing IIMathematics and Computing3SophomoreAn advanced study of the concepts of web software construction and testing. Topics include database connectivity and client-side programming languages (e.g., JavaScript, Ajax). Prerequisites: CMP 283 or consent of instructor. Spring.
CMP 325Operating SystemsMathematics and Computing3JuniorIntroduces the fundamentals of operating systems design and implementation. Topics include an overview of the components of an operating system, mutual exclusion and synchronization, implementation of processes, scheduling algorithms, memory management, and file systems. Prerequisite: CMP 142. Spring, odd academic years.
CMP 337Programming LanguagesMathematics and Computing3JuniorAn introduction to programming languages and the major paradigms. The structure of the languages as well as their approach to problem-solving will be studied. Topics may include imperative, functional, object-oriented, and logic-based languages. Prerequisite: CMP 142. Spring, odd academic years.
CMP 348Computer Architecture and OrganizationMathematics and Computing3JuniorThis course is an introduction to computer architecture and organization. Topics include: digital logic, circuit design, machine-level representation of data, assembly-level machine organization, memory system organization and architecture, interfacing and communication, and functional organization. Additional topics on multiprocessing, alternative architectures, and performance measurements may be included. Prerequisite: CMP 142. Spring, even academic years.
CMP 352Data Structures and AlgorithmsMathematics and Computing3JuniorThis is an advanced course in the use, development, and analysis of data structures and the algorithms that operate on them. Students will gain a firm understanding of the fundamental data structures of arrays and linked lists and how they are used to implement other formal data structures such as stacks, queues, binary search trees, and graphs. This course will particularly emphasize data encapsulation of such structures, as well as include significant experience with tree and graph representations. Multithreaded and parallel programming will be introduced. Complete and detailed algorithm analyses will also be introduced. Prerequisite: CMP 142. Fall, odd academic years.
CMP 360Operations ResearchMathematics and Computing3JuniorIntroduction to the field of operations research. PERT, linear and integer programming, use of statistical reasoning, and computer methods are included. Prerequisites: MAT 135, MAT 181, MAT/PSY 224, or BUS 265, or consent of instructor. Fall, odd academic years.
CMP 370Database Design and ProcessingMathematics and Computing3JuniorAn introduction to database concepts. Topics include file systems and databases, the relational database model, structured query language, entity relationship modeling, database table normalization, transaction management and concurrency control, and data warehouses. Prerequisite: CMP 142 and junior standing, or consent of instructor. Fall, odd academic years.
CMP 372Computer Networks and SecurityMathematics and Computing3JuniorThis course is an introduction to computer networks and security. Topics include: methods of data transmission, data encoding and error correction, internet and transport protocols, routing algorithms and flow control, network design, internetworking, and security. Students will learn and develop network applications. Prerequisite: CMP 142 or consent of instructor. Fall, even academic years.
CMP 385Software Engineer I: Analysis and DesignMathematics and Computing3An introduction to the concepts associated with the analysis and design activities of the software engineering process. Topics include software activities and tasks, process models, methodology development and tailoring, project scheduling, monitoring and control, requirements analysis, project estimation, decision analysis, back-end design, front-end design, and component design. Prerequisite: CMP 142 and junior standing, or consent of instructor. Fall, even academic years.
CMP 387Software Engineer II: Implement and MaintMathematics and Computing3JuniorAn introduction to the concepts associated with the implementation and maintenance activities of the software engineering process. Topics include software quality assessment, quality control, measurement, metric construction, configuration management, change control, construction, testing, system conversion, and maintenance. Prerequisite: CMP 385 and junior standing, or consent of instructor. Spring, even academic years.
CMP 470Senior Software Maintenance ProjectMathematics and Computing0SeniorA supervised, pre-approved experience which requires the student to select an existing system maintenance project from a pool of requests and perform the necessary activities to solve the maintenance problem. Prerequisites: senior standing and departmental consent. Fall.
CMP 473Senior Software Development ProjectMathematics and Computing6SeniorRequires the selection and completion of the senior project, which involves the analysis, design, implementation, and delivery of a fully-functioning computer system as well as the development of all relevant technical documentation. Taken concurrently with CMP 499. Prerequisites: CMP 470, senior standing and departmental consent. Spring.
CMP 499Senior Competency PracticumMathematics and Computing0SeniorThe senior competency practicum consists of two components. The first component, the written part of the senior competency requirement, is written documentation from the senior project completed in CMP 473. The second component, the oral part of the senior competency requirement, is a formal presentation of the senior project. A team of at least four individuals will judge the student?s skill in presentation, knowledge of the system, and ability to communicate with the audience. Taken concurrently with CMP 473. Students must earn a C- or higher. Spring.

r.  12-20-21