Computer Science (CSCI)
101 Introduction to Computer Science (3) A first course in computer science providing a survey of current topics as well as core programming and related problem-solving skills. Satisfies the mathematics requirement for General Education. Students should have an acceptable score on the Mathematics Placement Test or have completed an appropriate remedial course. Cross-listed as CSCI/LIBS 101. MATH 095 is recommended. F06, S07, F07, S08
170 Programming and Technology for the Teaching of Mathematics (3) Graphing and analysis of functions using graphing calculators; structured programming; use of software packages such as Maple and Geometer's Sketchpad. Prerequisite: Acceptable score on the Mathematics Placement Test or completion of MATH 115 with a grade of at least C-. Lecture and lab. F06, S08
201 Introduction to Programming (3) A first programming course for students with a serious interest in computing. Topics include: formal languages; data types and variables; control structures; primitive and reference data types; methods and modular programming; introduction to abstract data types and classes; simple algorithms; and programming conventions and style. Satisfies the mathematics requirement for General Education. Prerequisite: Acceptable score on the Mathematics Placement Test or completion of an appropriate course. MATH 102 recommended. Lecture and lab. S06, S07, F07, S08
202 Object-Oriented Programming (3) Continuation of CSCI 201. Programming course emphasizing the methodology of programming from an object-oriented perspective and software engineering principles. Topics include: data structure fundamentals; abstraction and encapsulation; inheritance; pointer and reference variables; memory management, operator overloading, recursion; various important algorithms; and file processing techniques. Prerequisite: CSCI 201 with a grade of C- or better. Lecture and lab. S07, S08
270 Introduction to Computer and Network Security (3) Based on the System Administration and Network Security Institute (SANS) recommendations. Offers comprehensive coverage of the essentials that were determined by the collaborative work of security professionals and includes topics ranging from network security and perimeter defense to encryption and risk management. F07
280 Introduction to E-commerce (3) Broad coverage of topics pertaining to the current electronic commerce environment. While this course discusses the various business models via which ecommerce is delivered, it is weighted more heavily on giving more depth to the computer science aspects of ecommerce.
303/503 Algorithms and Data Structures (4) Continuation of CSCI 202. Concepts and techniques for various algorithms and related data structures of particular interest to computer scientists. Emphasis on proper implementation of abstract data types and analysis of the complexity of algorithms. Topics include: stacks and queues; hashing graphs and trees, data compression and encryptions; and related algorithms. Prerequisite: CSCI 202 with grade of C- or better. Lecture. F06, F07
320/520 Discrete Structures (4) Continuation of MATH 310. Investigation of concepts of noncalculus mathematics used in computer science, operations research and other areas of applied mathematics. Topics include: relations and functions; recurrence relations; combinatorics; graph theory; and related algorithms. Cross-listed with CSCI 320/520. Prerequisite: MATH 310. F06, F07
324/524 Assembly Language Programming (4) Fundamentals of Assembly language programming under DOS, Windows, and Linux operating systems. Topics include: data representation and fundamentals of computer architecture; memory access and organization; arithmetic and logical operations; functions and procedures, bit and string manipulation; pattern matching, computer graphics, interrupt handling, floating-point arithmetic and combining assembler with high-level languages. Prerequisite: acceptable score on the Mathematics Placement Test or completion of an appropriate course. MATH 102 recommended. Lecture and lab. S07, S08
331/531 Computer Graphics and 3-D Modeling (3) Data structures and algorithms used in computer graphics emphasizing programming rather than graphics design. Topics include: graphics algorithms; design and implementation of graphics applications; 2-D and 3-D modeling; and animation. Mathematical treatment of topics requires an understanding of fundamental concepts in calculus and matrix algebra. Prerequisite: CSCI 201. Lecture and lab. Offered on demand.
340/540 Software Development and Professional Practice (4) Best practices in the field of software development. Students complete a medium-scale software project as members of a development team. Topics include: professional ethics and responsibilities; multi-tier systems; software life cycle; requirements analysis; system modeling; implementation and testing; re-engineering and maintainability, secure coding, system security, and risk management techniques are integrated into all facets of the development process. Prerequisite CSCI 303. S07, S08
356/556 Data-centric Computing and Data Security (3) Discusses the representation, organization, transformation, and presentation of information, algorithms for efficient and effective access and updating of stored information, data modeling and abstraction; information security, privacy, integrity, and protection in a shared environment. Prerequisite: CSCI 201 recommended. S08
381 Special Projects (1-4) Various individual and small-group projects carried out under the supervision of one or more instructors. Requires weekly progress reports plus a final report and/or a final exam. May be repeated, but no more than a total of four credits may be earned from both MATH 381 and CSCI 381. Evaluation. Pass-Fail only. Instructor consent required. Prerequisites: Preliminary project plan and an independent study contract. Topics: Independent Study, Java Certification Part 2, C++, JAVA, On-Line Curriculum Development, DNA Microarrays. F06, S07, F07, S08
390 Mathematical Sciences Internship (1-4) Work in an approved position to gain experience in solving real problems using computer science, mathematics, and statistics. Interns may receive salaried appointments with cooperating companies. Credits do not apply to any major or minor in Mathematics and Computer Science. Evaluation: Pass-Fail only. Prerequisite: Department approval. Independent study. F06, S07, F07, S08
399 Mathematical Sciences Seminar (1) Students carry out individual investigations in current literature and present their findings to the entire department. Taken during senior year. Pass-Fail only. Prerequisite: Independent study contract and permission of instructor. F06, S07, F07, S08
401/601 Formal Models for Computer Security (4) A survey of formal mathematical models for computer security with in-depth examination of important features and characteristics. Includes an investigation of mathematical properties of these models as well as related cryptographic and system implementations. The models include classical lattice-based models as well as modern policy-based models such as the Bell-LaPadula model; noninterference models, hybrid models, integrity models, and miscellaneous formal verification techniques. Prerequisite: MATH 310, CSCI 270. S08
410/610 Programming Language Principles (4) Survey of programming languages of current interest with in-depth examination of important features and characteristics. Includes an investigation of fundamental programming language concepts and design issues related to the procedural, functional, and object-oriented paradigms. Students conduct programming exercises to discover and experiment with features of several languages and to implement interpreters and compilers for simple languages of their own design. Prerequisite: CSCI 303. Offered on demand.
421/621 Theory of Computation (4) Thorough introduction to automata, formal languages and compatibility. Topics include: models of computation; regular and context-free languages; finite and pushdown automata; Turing machines; unsolvable decision problems; and fundamentals of computational complexity. Cross-listed as MATH 421/621. Prerequisites: CSCI 320. F07
425 Algorithm Design and Analysis (4) Study of the design and analysis of algorithms that are based on elementary data structures such as queues, stacks and trees. Some graph and network algorithms (shortest paths, connectivity, coloring, flows, matchings), goemetric algorithms (convex hulls, range search, nearest neighbors), NP-complexity, approximation algorithms (vertex cover, traveling salesman, scheduling), and introduction to randomized algorithms. Introduction to algorithm design techniques, including greedy algorithms, divide-and-conquer, and dynamic programming. Lower and upper bounds of program complexity are analyzed. Introduction to algorithms used in the area of information security. Cross-listed as MATH 425/625. Prerequisites: CSCI 320. CSCI 202 recommended. F06
437 Cryptography (4) Study of the theory of cryptography and its use in computer security. Topics include: discrete probability spaces, Shannon's theory of information, unicity distance, perfect secrecy, redundancy of a language, classical cryptosystems, classical cryptanalysis (frequency analysis, index of coincidence), authentication and keyexchange, public key cryptosystems, elementary number theory, primality checking, the RSA cryptosystem. Prerequisite: CSCI 201, MATH 310. Cross-listed as MATH 437. S07
451/651 Operating Systems and System Security (4) In-depth study of the concepts, issues, and algorithms related to the design and implementation of operating systems. Topics include: process management, process synchronization and interprocess communication; memory management; virtual memory; interrupt handling; processor scheduling; device management; I/O; file systems; and introduction to networking and network security. Students conduct programming projects and case studies to investigate modern operating systems such as Solaris, Linux, and Windows. Prerequisite: CSCI 201. F06
461/661 Computer Architecture and Organization (4) In-depth study of fundamentals of computer hardware organization. Topics include: digital logic and circuits; finite state machines; computer arithmetic, machine instructions and assembly language; memory management and design; storage system design; I/O modules, operating system support; structure and function of computer processors, RISC vs. CISC architecture, microprogrammed control, input/output devices, and computer security. Prerequisite: CSCI 324. S07
470 Net-centric Computing and Network Security (4) Introduces the structure, implementation, and theoretical and underpinnings of computer networking and the applications that have been enabled by that technology. Introduction to network security. Prerequisite: CSCI 201. F07
475/675 Numerical Analysis (4) Study of theory and applications of computational techniques for mathematical solutions emphasizing rapid approximation and error analysis. Topics include: solution to equations in one variable; polynomial approximations to functions; error analysis; numerical solutions to ordinary differential equations; boundary value problems. Prerequisite: MATH 242. Offered when sufficient demand exists. Cross-listed as MATH 475/675. Prerequisite: MATH 242.
481/681 Special Topics (1-4) Investigation of one or more topics of current interest not covered in other courses. Not intended for independent study projects. May be repeated, but no more than a total of eight credits may be earned from both MATH 481 and CSCI 481. Prerequisite: Consent of instructor. Offered when sufficient demand exists.
499 Capstone Project (1-3) Group projects are carried out by students under supervision of a faculty member. Prerequisite: CSCI 340 and independent learning contract. F06, F07