- MA 106 Calculus & Analytic Geometry 1
The beginning calculus course for properly prepared students. Topics include differentiation, integration, elementary differential equations, exponential and logarithmic functions, trigonometric functions. Applications are emphasized. Prerequisite: MA 102 or equivalent. (U)(5)
- MA 107 Calculus & Analytic Geometry 2
Continuation of MA 106. Topics include methods of integration, improper integrals, infinite series, conic sections and polar coordinates. Prerequisite: MA 106. (U)(4)
- MA 162 Statistical Methods
An introduction to applied statistics for students in the natural, social, and managerial sciences. Topics include sampling, data analysis, experimental design, and the use of computer-based statistical software. Prerequisite: MA 101 or equivalent. (U)(4)
- CS 151 Foundation of Computer Science
Introduction to mathematical problem solving, with emphasis on techniques for designing computer-based solutions. Concepts include problem-solving principles, logic, proof techniques, sets, sequences, functions, relations, and inductive and recursive thinking. Prerequisites: MA 101 or 102 or equivalent. (U)(3)
- CS 252 Foundations of Computing 2
As a continuation of CS151, concepts include mathematical logic, formal grammars, algebraic structures, finite state machines and automata, graph theory, and combinatorics. Prerequisite: CS151 (U) (3)
- CS 248 Object-Oriented Programming an
This course is an introduction to object-oriented programming using Java. Topics include algorithm analysis, recursion, the stack, queue, tree, and heap data structures, sorting algorithms, and GUI programming. A brief survey of computer science is also included: history, software engineering, computer organization, operating systems, networks, programming languages, databases, artificial intelligence, and theory. Prerequisites: CS 142 or equivalent and CS 151. (U)(5)
CS 282
or
CS 283
- CS 321 Computer Organization
Principles of computer architecture are introduced from a layered point of view, beginning at the level of gates and digital logic, and progressing through micro-programming, the machine language execution cycle, addressing modes, symbolic assembly language, and the fundamentals of operating systems. Advanced topics including pipelined and parallel architectures are also covered. Corequisite: CS 248. (U) (3)
- CS 351 Algorithms
A systematic study of data structures and algorithms with an introduction to theoretical computer science. Topics include lists, stacks, queues, trees, and graph structure, searching and sorting algorithms, mathematical algorithms, time and space complexity, an introduction to the theory of NP-completeness, and an introduction to computability theory. Prerequisite: 248. (U)(3)
- CS 433 Database Systems
An introduction to the theory, design and use of modern database management systems. Topics include the relational, entity-relationship, and object-oriented data models, query languages such as SQL, file systems, concurrency and deadlock, reliability, security, and query optimization. Prerequisites: CS 248, CS 252, and CS 321. (U-G) (3)
CS 452
- CS 485 Computer Ethics
Ethical and social issues in computing with emphasis on professional responsibilities, risks and liabilities, and intellectual property. Prerequisite: CS 142 and sophomore standing. (U-G)(1)
- SE 361 Object-Oriented Design
This course uses the Unified Modeling Language (UML) as a vehicle to introduce the basic principles of object-oriented methodology and design, covering classes, objects, data abstraction, polymorphism, information hiding and relationships among classes such as inheritance, association, aggregation and composition. Specific design techniques are covered for object-oriented programming languages such as Java and C++. The course also provides a first exposure to the software development lifecycle of object-oriented software applications. A small team design project is required. Prerequisite: CS 248. (U)(3)
SE 461
- SE 462 Modernizing Legacy Software
Fundamental concepts, principles, techniques and tools for the maintenance and evolution of legacy software systems. Software maintenance and evolution process models, reengineering, reverse engineering, and program comprehension tools. A modernization project is required. Prerequisite: SE361. (U-G)(3)
- SE 463 Testing & Quality Assurance
Basic concepts, systematic techniques and tools involved in testing and QA of software systems. Some topics to be covered include black and white box testing techniques, object-oriented testing, regression testing, system integration testing, planning and reporting of testing activities. Prereq: SE361
SE 473
- SE 411 Internship
Supervised work experience in software engineering. Prerequisites: SE361, SE461, CS485, and one of SE462 orCS382 or CS383. (U)