Catalog home



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 problems 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 LIBS 101. MATH 095 is recommended. F08, S09, F09, S10


110 Introduction to Computer Programming I (2) Self-paced independent study in the fundamentals of computer programming. Each student may choose from several languages of current interest that are not offered in other courses. Students complete several programming exercises and projects. Prerequisite: Independent study contract. Topics: Beginning Programming with LOGO, Beginning Programming with JavaScript, Basic Web Page Development, Visual Basic.Net, Information Security. Offered as needed.


111 Introduction to Computer Programming II (2) Self-paced independent study of intermediate-level computer programming. Each student may choose from several languages of current interest that are offered in other courses. Students complete several programming exercises and projects. Prerequisites: Independent study contract. Offered as needed.


148 Computer Applications for Productivity (3) Designed for students interested in learning how to use a computer to increase their personal and professional productivity. Learn basic features of an operating system such as file management, system configuration, and computer security. Enhance computer skills by using a variety of productivity applications found in common software suites, such as word processing, presentation graphics, desktop publishing, spreadsheets, personal organizers, and others. Classes are tailored to the college student with emphasis on providing a hands-on experience. F08, F09


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. F09


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. F08, S09, F09, S10


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. S09, S10


211 Visual Programming Fundamentals (3) Introduces students to basic programming methods and techniques using the latest development tools. Designed for students who view themselves as non-programmers, but who have an interest in computer programming to create macros or to write simple applications. Students learn programming skills by writing and debugging simple routines that emphasize programming constructs such as variables, control structures, and data input and output. Object-oriented concepts are presented and practiced to enhance the experience. S09, S10


230 Introduction to Information Technology (3) Provides a stimulating experience for students with new perspectives on cutting-edge technology and core computer concepts. Intended to make learning and using computers and computer technology interesting and easy. Covers emerging trends and the latest technological advances, such as podcasting, RSS feeds, blogging, smart phones, game consoles, and interactive television. Arms participants with current knowledge about information technology used in a wide array of real-world applications. S09, S10


250 Internet Programming (3) Internet technologies for the World Wide Web such as XHTML, DHTML, CSS, CGI, JavaScript, Java, and JSP. Topics include: basic XHTML tags, XML documents and DTD, page layout control with cascading style sheets, form processing and validation, handling JavaScript events, document object model, fundamentals of CGI programming under Unix/Linux environment, basics of server-side scripting languages like Perl, PHP, Ruby, and Python, server configuration issues, the AJAX technology, Java applets, and MySQL database access. Prerequisite: Acceptable score on the Mathematics Placement Test or completion of an appropriate course. MATH 102, CSCI 201 recommended. Lecture and lab. F09


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, game strategy, and related algorithms. Prerequisite: CSCI 202 with grade of C- or better. Lecture. F08, F09


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. Prerequisite: MATH 310. F08, F09


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 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. S09, S10


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 require an understanding of fundamental concepts in calculus and matrix algebra. Prerequisite: CSCI 201. Lecture and lab. Offered as needed.


335 Web Page Authoring (3) Build functional and appealing Internet websites using readily available commercial software to design and construct web pages. Considers various website strategies and layouts that enable web users. Create web pages that integrate multimedia applications to present content in an attractive and user friendly manner. Learn about measures of performance and how to test your website for functionality. Designed for students with a wide variety of backgrounds and interests, employing a hands-on approach. F08


340 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. F08, F09


346 Database Management (3) Learn the science of database management to include the organization, storage, and retrieval of data used in a wide range of applications. Basic theory is combined with practical examples to reinforce concepts presented in class. Students are encouraged to apply learned skills to projects in their particular areas of interest. Intended for the student with no or minimal exposure to database systems and uses state-of-the-art database management system software. S09


350 Networking and Communications (3) Discover the ways data moves between computers, network-enabled devices, and other communication technology using wired and wireless media. A broad range of applications are considered ranging from the networked enterprise to mobile technology to the ubiquitous broadcast signals used to transmit television and radio programs. Emphasis is placed on networking and communication technology and how it used to connect people with each other and with the information they need. F08


356/556 Data-Centric Computing (3) Discusses the representation, organization, transformation, and presentation of information. Topics include: algorithms for efficient and effective access and updating of stored information, data modeling and abstraction, relational algebra, Structured Query Language (SQL), normalization, and database administration basics. Prerequisite: CSCI 201 recommended. S10


360 Computer Law, Ethics, and Intellectual Property (3) Examines the impact computers and computer-based technology have had on people and society through the lens of computer law, ethics, and intellectual property. Designed to be a forum where students discuss and debate critical issues related to these areas. Students participate in exercises that stimulate critical thinking and prepare them to address complicated issues that provoke a wide range of opinions. F09


364 Multimedia and Digital Entertainment (3) Examines technology that has revolutionized multimedia and digital entertainment. Students are exposed to a wide array of subjects that range from devices, such as personal media players, gaming consoles, and high-definition television; to online communities, such as social networking sites, blogs, and chat rooms; to computer-based simulated environments, such as virtual worlds, avatars, and role playing games. Attention is given to the development and production of the technology’s hardware and software as well as emerging industries and the opportunities it creates. S10


370 Information Assurance and Security (3) Provides the knowledge of Information Assurance and Security necessary for modern programmers, analysts, and other IT professionals and also important for business managers, auditors and many other careers. Covers a diverse range of topics recommended by the Association for Computing Machinery, including operational issues, policies and procedures, attacks and defense mechanisms, risk analysis, recovery and business continuity, data security, cryptography, and digital forensics. S10


380 Enterprise and E-Business Systems (3) A close look at technology that enables businesses to leverage information to their strategic advantage. Examines the systems businesses use to improve productivity, manage information, market and sell product, streamline supply chains, and compete on a global scale that has led to a revolution in the business enterprise. Students are guided through systems that include enterprise resource planning, customer relationship management, supply chain management, middleware, enterprise application integration, and e-commerce. F09


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. Pass-Fail only. Prerequisites: Preliminary project plan and an independent study contract. Offered as needed.


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. Pass-Fail only. Prerequisite: Department approval. Topics: Information Technology Project, Property Removal Form, IT Help Desk. Offered as needed.


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. Seminar. Cross-listed as MATH 399. F08, S09, F09, S10


401/601 Formal Models for Computer Security (4) 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, no interference models, hybrid models, integrity models, and miscellaneous formal verification techniques. Prerequisite: MATH 310, CSCI 270. Offered as needed.


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. Offered as needed.


421/621 Theory of Computation (4) Thorough introduction to automata, formal languages and computability. 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. F09


425/625 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), geometric 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. F08


437/637 Cryptography (4) Study of the theory of cryptography together with applied programming projects. Topics include: discrete probability spaces; Shannon's theory of information and perfect secrecy; classical cryptosystems and cryptanalysis; authentication and key exchange; public key cryptosystems; elementary number theory, primality checking, and the RSA cryptosystem; and Advanced Encryption Standard (AES). Prerequisite: CSCI 201, MATH 310. Cross-listed as MATH 437. S09


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. F08


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, and computer security. Prerequisite: CSCI 324. S09


470 Net-Centric Computing and Network Security (4) Introduces the structure, implementation, and theoretical underpinnings of computer networking and the applications that have been enabled by that technology. Introduction to network security. Prerequisite: CSCI 201. F09


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. Cross-listed as MATH 475/675. Prerequisite: MATH 242. Offered as needed.


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 as needed.


499 Capstone Project (1-4) Group projects are carried out by students under supervision of a faculty member. Prerequisite: CSCI 340 and independent learning contract. S09, S10