NOTE: Due to the sequential nature of the study of mathematics, once students have received credit for, or established proficiency at, one level in a sequence of mathematics coursework they are not allowed to receive credit toward graduation for a prior course in a lower sequence. Students with such questions concerning the applicability of sequential coursework should consult the department of Mathematics and Computer Science.
100 Transitional Mathematics (2)
Develops algebraic concepts and skills needed to graph and solve linear equations and inequalities. Evaluating algebraic expressions and formulas according to the rules of operations is also developed. Not open to students with credit for a higher level math course. Prerequisite: ACT Math 17 or below or SAT Math 470 or below.
140 Practical Statistics (3)
An introduction to statistical ideas, reasoning, and methods with the goal of equipping students with the ability to carry out common statistical calculations and procedures in order to be able to understand how statistical concepts are applied in other fields of study and by future employers. Prerequisite: 100 or ACT Math 18 or higher or SAT Math 471 or higher.
150 Quantitative for the Liberal Arts (3)
studies various quantitative concepts in mathematics, such as sets, counting methods, probability, statistics, functions, matrices, graphs, and trees; and applies these concepts either to a variety of different disciplines or to a single subject centered on a theme. Not open to students with credit for 225. Prerequisite: 100 or ACT Math 18 or higher or SAT Math 471 or higher.
170 Applied College Algebra (3)
Develops algebraic concepts and skills concerning linear, quadratic, rational, and radical functions along with their equations and graphs. Algebraic concepts are applied to construct mathematical models. Not open to students with credit for a higher level math course. Prerequisite: Math 100 or ACT Math 18 or higher or SAT Math 471 or higher.
180 Precalculus (4)
Concentrates on preparing students with the concepts and skills that apply to the study of Calculus. Topics include polynomial, exponential, logarithmic, and trigonometric functions along with their equations and graphs. Concepts of analytic geometry are also developed. Not open to students with credit for a higher level math course. Prerequisite: 170 or ACT Math 21 or higher or SAT Math 546 or higher.
190 Calculus I (4)
Introduces the concepts of limit, continuity, derivative, integral and applications. It assumes some knowledge of trigonometric functions and equations for lines and conic sections. Prerequisite: 180 or ACT Math 24 or higher or SAT Math 576 or higher.
200 Calculus II (4)
Continues the study of calculus and includes such topics as applications of integrals, methods of integration, logarithms, exponential, indeterminate forms, polar and parametric equations, and infinite series.
225 Discrete Mathematics (4)
Introduces set theory and probability and deals with relations, digraphs, trees, lattices, and Boolean algebras and their computer application, as well as studying languages and grammar. Prerequisite 180 or Math Placement Level 4 or higher and CPSC 100.
230 Linear Algebra and Vectors (3)
Includes the study of vectors, matrix algebra, vector spaces, linear transformations and determinants. Prerequisite: MATH 190
310 Calculus III (3)
Includes the study of the basic concepts of calculus applied functions of more than one variable such as 3-dimensional coordinate systems and graphs, vector products, partial and directional derivatives, multiple and path integrals. Related applications such as velocity, acceleration, curvature, mass, and work are also studied. Prerequisite: 200.
320 Differential Equations (3)
Includes the study of first and higher order differential equations, methods for obtaining solutions, and applications. Prerequisites: 200, 230
330 Algebraic Structures (4)
Includes the study of groups, rings, fields, vector spaces, and other related topics. Prerequisite: 225, 230.
340 Mathematical Statistics (3)
350 Numerical Analysis (3)
Presents the concepts and methods of numerical solutions for mathematical problems and includes applications using the computer. Prerequisites: 200, 230, Computer Science 111
360 Geometry (3)
Presents the study of several geometries, including synthetic and metric Euclidean, non-Euclidean, projective, and finite geometries. Prerequisite: 225, 230
370 History of Mathematics (2)
Surveys the history and development of mathematics from ancient times through the present day era. It will also show the contributions made to the field by mathematics from a diversity of ethnic, racial and gender groups. Prerequisite: 190, 225, 230
410 Analysis (4)
Presents a rigorous devel-opment of the calculus and an introduction to real analysis. Prerequisites: 225, 310
420 Complex Analysis (3)
An introductory study of the theory of functions of complex variables. Prerequisites: 310, 320
430 Applied Mathematics (3)
Includes such topics as series solutions of differential equations, Fourier series and integrals, Bessel functions, Laplace transformations, partial differential equations, and vector and tensor analysis. Prerequisite: 310, 320
490 Topics in Mathematics (3)
An opportunity to study in greater depth topics in the other listed courses. Prerequisite: permission of the instructor.
495 Mathematics Seminar (1)
Provides a setting for the study and mastery of selected expository papers. Students lecture on the subject of the chosen paper and take an oral examina-tion. Prerequisite: permission of instructor.
100 Introduction to Computer Science (3)
Presents an overview of fundamental computer science topics and an introduction to computer programming. Overview topics include an introduction to computer science and its history, computer hardware, operating systems, digitization of data, computer networks, Internet and the Web, security, privacy, AI, and databases. This course also covers variables, operators, while loops, for loops, if statements, top down design (functional decomposition), use of an IDE, debugging, and arrays.
111 Computer Science I (3)
Provides more in-depth programming, including software engineering topics such as testing and the use of version control. Basic data structures covered include arrays, lists, sets, maps. Basic algorithm efficiency concepts are covered along with simple searching and sorting. Other techniques such as graphical user interface programming, exceptions, recursion, designing classes (no inheritance), file input/output. Design techniques such as encapsulation and UML diagramming will be covered. Prerequisite: 100.
120 Computer Applications (1)
Consists of a series of projects to introduce the use of computers in specific areas such as hypermedia and education. Prerequisite: 100
211 Computer Science II (3)
Provides yet more in depth programming, including software engineering topics such as Model-View-Controller design and more formalized unit testing. Additional data structures covered include stacks, queues, priority queues, trees, graphs, and hash tables. Object oriented programming is introduced, along with associated UML diagramming techniques. Java Generics are covered. Prerequisite: 111.
220 Applied Computer Programming (3)
Studies with each offering a particular computer programming language (e.g., C++, Python, PHP, COBOL, Java, and Perl) and the applications in which that language is traditionally used. Prerequisite: 111 or permission of instructor.
230 Systems Programming (3)
Provides an understanding of the interface between computer hardware and software. The course covers computer hardware, activation records and address spaces, a practical assembly language (like ARM), writing C programs, how C code is compiled into assembly level programs, and how these programs are compiled, linked, and loaded into memory. This course also provides an understanding of Linux/Unix administration fundamentals, including user creation, permissions, installations from source, and simple server configuration. Prerequisite: 111.
320 Algorithm Analysis (3)
Examines formal concepts of algorithm efficiency including Big Oh, Theta, and NP theory. Algorithmic techniques studied include: brute force, simulation, divide and conquer, dynamic programming, greedy algorithms, backtracking, branch and bound, and parallel algorithms. Time and space efficiency is analyzed from a practical and theoretical viewpoint throughout this course. Advanced searching and sorting techniques are covered. Classic algorithms and their relevance to real problems are examined. Typical data structures used as examples will include hash tables, trees, and graphs. Parallel programming will be explored. Prerequisites: 211, MATH 225
335 Computer Security (3)
Covers operating system and network level security topics. Typical application level attacks such as buffer overruns will be analyzed and solutions covered. this course includes basic coverage of TCP/IP and cryptography in the context of network security. Typical network attacks such as denial-of-service, spoofing, etc. are covered, as are systems administration level analysis of possible attacks and intrusions via Linux logs.
340 Programming Languages (3)
Develops the concepts of language structure and uses these as a basis for comparing several languages. Formal language definitions are introduced, and the concepts of syntax, semantics, and pragmatics are discussed. The emphasis is on languages with inherently different programming paradigms than students have been exposed to in other courses. Prerequisite: 211.
345 Mobile Application Development (3)
Practices the development of mobile applications. Design considerations specific to mobile applications are covered, including: limited resources, battery life, intermittent connectivity, etc. Also covered are the networking concepts needed to connect a mobile applications to a web based server, and to use 3rd party APIs such as Google Maps, location based programming, etc. Projects are done in the context of one or more popular mobile platforms, such as Android and iOS. Prerequisites: 230, 325.
355 Software Engineering (3)
Formalizes the software engineering topics covered in previous courses, in the context of what would be required in a realworld corporate environment. Typical software development methodologies are discussed (e.g. waterfall, agile, test-driven design, etc.). UML Diagramming are covered. Students work in teams, analyze requirements, participate in code reviews, etc. Human Computer Interaction fundamentals are covered, along with ethical and social issues related to the business of computing. The different roles involved with large scale development are discussed. Prerequisite: 211.
365 Web Applications and Database Management Systems (3)
Studies and practices the development of dynamic data-driven web applications, in the context of the languages and technologies used in typical shared hosting environments. Topics include database design, including entity-relationship modeling and normalization, designing and implementing data models for a web application, developing the server side code necessary to interact with that data model, developing the web pages for the application, and an introduction to the use of dynamic scripting on the client side. Web application security is covered throughout. Prerequisites: 111.
400 Programming Projects (1)
Enable students to design, implement and test a program of their own choosing. Proposed projects are approved by a faculty member who then meets with the student on a weekly basis. A final report is prepared and presented at the completion of the project. The course can be repeated once for credit. Prerequisite: permission of the instructor.
430 3D Game Programming (3)
Examines the basic issues in 3D rendering and collision detection and associated algorithms, suitable for programming a 3D game engine. Explore data structures used for 3D games. Basic artificial intelligence techniques used in games are also covered, in the context of a 3D game engine. Prerequisites: 320, MATH 230.
450 Operating Systems (3)
Examines the major components of several popular operating systems, including UNIX, VMS and MS-DOS. The relationships of operating systems to computer architectures are discussed, and program assignments are used to provide experience with operating system construction. Prerequisites 320, 350
480 Computer Networks (3)
Computer networks covers the fundamental computer science aspects of telecommunications. Topics include layered network architecture, data link protocols, routing and flow control mechanisms, and transport protocols. Also covered in the course are local area net-works, circuit-switched networks, Internet/Web development, and basic concepts in the modeling and analysis of protocols. Software packages are used to provide a basis for coursework and for configuring and simulating various network designs. Prerequisites: 320, 350.
490 Advanced Topics in Computer Science (3)
Is a study of a specialized topic in the computing field such as Graphics, Pattern Recognition, Networking, Microcomputers, Software Metrics, Data Analysis Techniques or advanced study of a particular language (such as Java, C ++ , Perl, or VRML). Prerequisite: permission of the instructor.
495 Computer Science Seminar (1)
Provides a weekly discussion of new advances in the field of computer science and their effect on society. Presentations are given by invited speakers, faculty and students. The course can be repeated once for credit. Prerequisite: permission of the instructor.