MATH 281 Calculus 1
Calculus, one of the most useful areas of mathematics, is the study of continuous change. It provides the language and concepts used by modern science to quantify the laws of nature and the numerical techniques through which this knowledge is applied to enrich daily life. Students gain a clear understanding of the fundamental principles of calculus and how they are applied in real-world situations. Topics include: techniques of integration, further applications of derivatives, and applications of integration.
MATH 282 Calculus 2
Calculus, one of the most useful areas of mathematics, is the study of continuous change. It provides the language and concepts used by modern science to quantify the laws of nature and the numerical techniques through which this knowledge is applied to enrich daily life. Students gain a clear understanding of the fundamental principles of calculus and how they are applied in real-world situations. Topics include: techniques of integration, further applications of derivatives, and applications of integration.
MATH 283 Calculus 3
Calculus, one of the most useful areas of mathematics, is the study of continuous change. It provides the language and concepts used by modern science to quantify the laws of nature and the numerical techniques through which this knowledge is applied to enrich daily life. Using computers for visualization, students gain a clear understanding of the fundamental principles of calculus and how they are applied in real-world situations. Topics include infinite series, functions of several variables, partial derivatives, the chain rule, multiple integrals, change of variables.
MATH 286 Linear Algebra 1
Linear algebra is the study of linearity, the simplest form of quantitative relationship, and provides a basis for the study of many areas of pure and applied mathematics, as well as key applications in the physical, biological, and social sciences. Topics include systems of linear equations, vector equations, matrices, the vector space Rn together with its bases, linear transformations, and eigenvectors and eigenvalues.
MATH 272 Discrete Mathematics
Discrete mathematics, the mathematical study of finite processes and discrete phenomena, is essential for computer science. Topics include: logic and sets, relations and functions, vertex-edge graphs, recursion, and combinatorics. (Same as CS 272)
MATH 351 Probability
Probability provides precise descriptions of the laws underlying random events, with applications in quantum physics, statistics, computer science, and control theory. Topics include: permutations and combinations, axiomatic definition of probability, conditional probability, random variables, discrete and continuous distributions, expectation and variance, and the central limit theorem.
CS 201 Procedural Programming
This course introduces the fundamental concepts related to computer programming, preparing students with the skills to write basic computer programs, and the knowledge to understand basic programs written by others. Topics include built-in data types, flow control using conditionals and loops, arrays, console I/O, recursion, using libraries, and using classes to create their own data types.
CS 203 Object-Oriented Programming
This course covers programming in Java, specifically focusing on object-oriented concepts and creating GUI applications. Topics include: classes and objects, primitives and references, inheritance and polymorphism, interfaces and abstract classes, exception handling, GUI programming in Swing, and serialization and file I/O.
CS 221 Data Structures
Students use computer programming laboratory problems to apply the principles of data structure organization in a practical environment and develop advanced programming skills. The organizing power of knowledge is found to be the source of order in computer data structures. Topics include: abstract data types, internal representation of data, stacks, queues, linked lists, hash maps, binary trees, heaps, red-black trees, 3-4 trees and B trees. (4 credits)
CS 321 Introduction to Algorithms
Students are introduced to the study algorithms. Topics include: searching and sorting algorithms, computing time of programs and representations and algorithms for graphs. This course also includes a significant research paper around the efficiencies and running times of different algorithms (4 credits)
CS 363 Computer Organization and Architecture
This course presents the internal structure of a computer, an introduction to assembly language, and the design of digital logic circuits and their use in structuring the various functional components of a computer, such as the memory and central processing unit. Topics include: machine organization, logic gates, circuits, machine language, assembly language, memory, I/O systems, and how these all combine to create typical and atypical architectures. (4 credits)
CS 472 Web Application Programming
This course covers languages, tools, and technologies for developing interactive and dynamic web sites. Topics and technologies include HTTP, HTML, CSS, client and server-side programming, database interactions, web security, and Ajax technologies. (4 credits)
CS 390 Fundamental Programming Practices
This course provides a focused program for enhancing programming and analytical skills in five areas: problem-solving, data structures, object-oriented programming, the Java programming language, and the use of recursion in Java programs. These topics are of particular importance as a prerequisite for the courses in the graduate program in Computer Science. Topics include: elements of Java programming, object-oriented design and implementation, data structures (including lists, stacks, queues, binary search trees, hash tables, and sets), the exception hierarchy, file i/o and streams, and JDBC. (4 credits)
CS 401 Modern Programming Practices
This course presents the fundamental principles of object-oriented programming. Students will learn how to write reusable and better-maintained software, and integrate this knowledge with laboratory assignments and projects. Topics include: fundamental principles and models of object-oriented programming, UML class diagrams and design principles that promote reusability and maintainability of software.
CS 422 Database Systems
Database systems organize and retrieve information, allowing the user to access the desired information easily and efficiently. Topics include relational data model; SQL; ER modeling; relational algebra; data normalization; transactions; objects in the database; data security and integrity; data warehousing, OLAP, and data mining; distributed databases; and study of a specific commercial database system.
CS 425 Software Engineering
This course introduces the student to best practices in software development through a software development methodology. Students will learn how to bring together their skills in object-oriented analysis and design, in the use of UML diagrams for modeling software solutions, to produce robust, easily maintainable software. A software development methodology describes when and how object-oriented concepts and UML diagrams should be used to accomplish the aim of building quality software. The course centers on a small project in which the principles discussed in the lecture format can be illustrated and applied. By the end of the course, the student will have a running application, built in accord with the high standards of a contemporary development methodology. (4 credits)
CS 496 Software Development Senior Project
In this course students create an original software project from the ground up from the initial analysis and design phases through implementation and testing. Students are expected to submit several project proposals before the start of the course and submit a written project postmortem at the end of the course. With Faculty approval this course can be extended to two months to facilitate a larger project.