MATH 282 Calculus 2 (4 credits)
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. Prerequisite: MATH 281
MATH 283 Calculus 3 (4 credits)
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: limits, continuity, derivatives, applications of derivatives, integrals, and the fundamental theorem of calculus. Prerequisite: MATH 286
MATH 272 Discrete Mathematics (4 credits)
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) Prerequisite: MATH 162
MATH 351 Probability (4 credits)
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. Prerequisite: MATH 282, MATH 283 recommended but not required.
CS 201 Procedural Programming (4 credits)
CS 203 Object-Oriented Programming (4 credits)
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. Prerequisite: CS 201
CS 221 Data Structures (4 credits)
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) Prerequisites: MATH 162 and CS 203
CS 321 Introduction to Algorithms (4 credits)
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) Prerequisite: CS 221 and WTG 192
CS 363 Computer Organization and Architecture (4 credits)
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) Prerequisites: CS 201 and CS 272 / MATH 272
CS 401 Modern Programming Practices (4 credits)
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. Prerequisite: CS 221 or equivalent
CS 425 Software Engineering (4 credits)
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) Prerequisite: CS 401 or consent of the Department faculty