COMPUTER SCIENCE (CSCI)

CSCI101. INTRODUCTION TO COMPUTER SCIENCE. 3.0 Semester Hrs.

(I, II) An introductory course to the building blocks of Computer Science. Topics include conventional computer hardware, data representation, the role of operating systems and networks in modern computing, algorithm design, privacy and information security, data science, artificial intelligence, and computer ethics. A popular procedural programming language will be learned by students and programming assignments will explore ideas in algorithm development, optimization, and data manipulation. 3 hours lecture; 3 semester hours.

CSCI102. INTRODUCTION TO COMPUTER SCIENCE - LAB. 1.0 Semester Hr.

(I, II) This course is a 1-credit hour optional lab course for CSCI 101 that offers an opportunity for new programmers to learn the Python programming language. Python is a powerful interpreted programming language with a simple syntax and a large set of libraries. While Python is an easy language for beginner programmers to learn, it is a language that is widely used in many scientific areas (e.g., data science). This lab course will introduce students to basic programming concepts: conditionals, loops, lists, strings, file input/output, functions, and objects. Take this course with CSCI 101 to either create a 4-credit hour distributed science elective or gain more experience with algorithmic design/programming in Python. 1 hour lecture; 1 semester hour.

CSCI198. SPECIAL TOPICS. 1-6 Semester Hr.

(I, II) Pilot course or special topics course. Topics chosen from special interests of instructor(s) and student(s). Usually the course is offered only once. Prerequisite: none. Variable credit; 1 to 6 credit hours. Repeatable for credit under different titles.

CSCI199. INDEPENDENT STUDY. 1-6 Semester Hr.

(I, II) Individual research or special problem projects supervised by a faculty member, when a student and instructor agree on a subject matter, content, and credit hours. Prerequisite: "Independent Study" form must be completed and submitted to the Registrar. Variable credit; 1 to 6 credit hours. Repeatable for credit.

CSCI250. PYTHON-BASED COMPUTING: BUILDING A SENSOR SYSTEM. 3.0 Semester Hrs.

(I, II, S) This course will teach students the skills needed for data collection, analysis, and visualization on a small embedded device (e.g., Raspberry Pi). Students will learn basic Linux, Python, and the programming skills needed to control the hardware and associated sensors. This hands-on course includes a baseline project, four introductory projects (e.g., acoustic, acceleration, magnetic field, optical), and a final Capstone project. The Capstone project will have students create their own application using the techniques learned during the first half of the semester; students will then present their Capstone project through a formal presentation, write-up, and demonstration. We suggest the student take "Introduction to Computer Science" before this course. Co-requisites: MATH213, PHGN200. 3 hours lecture; 3 semester hours.

CSCI260. FORTRAN PROGRAMMING. 2.0 Semester Hrs.

Equivalent with MACS260,
(I) Computer programming in Fortran90/95 with applications to science and engineering. Program design and structure, problem analysis, debugging, program testing. Language skills: arithmetic, input/output, branching and looping, functions, arrays, data types. Introduction to operating systems. Prerequisite: none. 2 hours lecture; 2 semester hours.

CSCI261. PROGRAMMING CONCEPTS. 3.0 Semester Hrs.

Equivalent with MACS261,
(I, II) This course introduces fundamental computer programming concepts using a high-level language and a modern development environment. Programming skills include sequential, selection, and repetition control structures, functions, input and output, primitive data types, basic data structures including arrays and pointers, objects, and classes. Software engineering skills include problem solving, program design, and debugging practices. Prerequisite: none. 3 hours lecture; 3 semester hours.

CSCI262. DATA STRUCTURES. 3.0 Semester Hrs.

Equivalent with MACS262,
(I, II, S) Defining and using data structures such as linked lists, stacks, queues, binary trees, binary heap, hash tables. Introduction to algorithm analysis, with emphasis on sorting and search routines. Language skills: abstract data types, templates and inheritance. Prerequisite: CSCI261 with a grade of C- or higher. 3 hours lecture; 3 semester hours.

CSCI274. INTRODUCTION TO THE LINUX OPERATING SYSTEM. 1.0 Semester Hr.

(I,II) Introduction to the Linux Operating System will teach students how to become proficient with using a Linux operating system from the command line. Topics will include: remote login (ssh), file system navigation, file commands, editors, compilation, execution, redirection, output, searching, processes, usage, permissions, compression, parsing, networking, and bash scripting. Prerequisites: CSCI 261. 1 hour lecture; 1 semester hour.

CSCI298. SPECIAL TOPICS. 1-6 Semester Hr.

(I, II) Pilot course or special topics course. Topics chosen from special interests of instructor(s) and student(s). Usually the course is offered only once. Prerequisite: none. Variable credit; 1 to 6 credit hours. Repeatable for credit under different titles.

CSCI299. INDEPENDENT STUDY. 1-6 Semester Hr.

(I, II) Individual research or special problem projects supervised by a faculty member, when a student and instructor agree on a subject matter, content, and credit hours. Prerequisite: "Independent Study" form must be completed and submitted to the Registrar. Variable credit; 1 to 6 credit hours. Repeatable for credit.

CSCI303. INTRODUCTION TO DATA SCIENCE. 3.0 Semester Hrs.

(II) This course will teach students the core skills needed for gathering, cleaning, organizing, analyzing, interpreting, and visualizing data. Students will learn basic SQL for working with databases, basic Python programming for data manipulation, and the use and application of statistical and machine learning toolkits for data analysis. The course will be primarily focused on applications, with an emphasis on working with real (non-synthetic) datasets. Prerequisites: CSCI101 or CSCI261. 3 hours lecture; 3 semester hours.

CSCI306. SOFTWARE ENGINEERING. 3.0 Semester Hrs.

Equivalent with MACS306,
(I, II) Introduction to software engineering processes and object-oriented design principles. Topics include the Agile development methodology, test-driven development, UML diagrams, use cases and several object-oriented design patterns. Course work emphasizes good programming practices via version control and code reviews. Prerequisite: CSCI262 with grade of C- or higher. 3 hours lecture; 3 semester hours.

CSCI340. COOPERATIVE EDUCATION. 3.0 Semester Hrs.

(I, II, S) (WI) Supervised, full-time engineering-related employment for a continuous six-month period (or its equivalent) in which specific educational objectives are achieved. Prerequisite: Second semester sophomore status and a cumulative grade point average of at least 2.00. 0 to 3 semester hours. Cooperative Education credit does not count toward graduation except under special conditions. Repeatable.

CSCI341. COMPUTER ORGANIZATION. 3.0 Semester Hrs.

Equivalent with MACS341,
(I, II) Covers the basic concepts of computer architecture and organization. Topics include machine level instructions and operating system calls used to write programs in assembly language, computer arithmetics, performance, processor design, and pipelining techniques. This course provides insight into the way computers operate at the machine level. Prerequisite: CSCI261. Co-requisites: CSCI262. 3 hours lecture; 3 semester hours.

CSCI358. DISCRETE MATHEMATICS. 3.0 Semester Hrs.

(I, II) This course is an introductory course in discrete mathematics and algebraic structures. Topics include: formal logic; proofs, recursion, analysis of algorithms; sets and combinatorics; relations, functions, and matrices; Boolean algebra and computer logic; trees, graphs, finite-state machines and regular languages. Prerequisite: MATH213, MATH223 or MATH224. 3 hours lecture; 3 semester hours.

CSCI370. ADVANCED SOFTWARE ENGINEERING. 6.0 Semester Hrs.

(S) (WI) This capstone course has three primary goals: (1) to enable students to apply their course work knowledge to a challenging applied problem for a real client, (2) to enhance students' verbal and written communication skills, and (3) to provide an introduction to ethical decision making in computer science. Ethics and communication skills are emphasized in a classroom setting. The client work is done in small teams, either on campus or at the client site. Faculty advisors provide guidance related to the software engineering process, which is similar to Scrum. By the end of the course students must have a finished product with appropriate documentation. Prerequisite: CSCI306. 6-week summer session; 6 semester hours.

CSCI398. SPECIAL TOPICS. 1-6 Semester Hr.

(I, II) Pilot course or special topics course. Topics chosen from special interests of instructor(s) and student(s). Usually the course is offered only once. Prerequisite: none. Variable credit; 1 to 6 credit hours. Repeatable for credit under different titles.

CSCI399. INDEPENDENT STUDY. 1-6 Semester Hr.

(I, II) Individual research or special problem projects supervised by a faculty member, when a student and instructor agree on a subject matter, content, and credit hours. Prerequisite: "Independent Study" form must be completed and submitted to the Registrar. Variable credit; 1 to 6 credit hours. Repeatable for credit.

CSCI400. PRINCIPLES OF PROGRAMMING LANGUAGES. 3.0 Semester Hrs.

Equivalent with MACS400,
(I, II) Study of the principles relating to design, evaluation and implementation of programming languages, including basic compiler techniques and context-free grammars. Students will be exposed to different categories of programming languages, such as functional, imperative, object-oriented and scripting. Best practices for programming will be explored, including effective use of exceptions and threads. The primary languages discussed are: Java, C++, Scheme, and Perl. Prerequisite: CSCI306. 3 hours lecture; 3 semester hours.

CSCI403. DATA BASE MANAGEMENT. 3.0 Semester Hrs.

Equivalent with MACS403,
(I) Design and evaluation of information storage and retrieval systems, including defining and building a database and producing the necessary queries for access to the stored information. Relational database management systems, structured query language, and data storage facilities. Applications of data structures such as lists, inverted lists and trees. System security, maintenance, recovery and definition. Interfacing host languages to database systems and object-relational mapping tools. NoSQL databases and distributed databases. Prerequisite: CSCI262 with a grade of C- or higher. 3 hours lecture; 3 semester hours.

CSCI404. ARTIFICIAL INTELLIGENCE. 3.0 Semester Hrs.

Equivalent with MACS404,
(II) General investigation of the Artificial Intelligence field. Several methods used in artificial intelligence such as search strategies, knowledge representation, logic and probabilistic reasoning are developed and applied to practical problems. Fundamental artificial intelligence techniques are presented, including neural networks, genetic algorithms, and fuzzy sets. Selected application areas, such as robotics, natural language processing and games, are discussed. Prerequisite: CSCI262 with a grade of C- or higher, CSCI358 and MATH201. 3 hours lecture; 3 semester hours.

CSCI406. ALGORITHMS. 3.0 Semester Hrs.

Equivalent with MACS406,MATH406,
(I, II) Reasoning about algorithm correctness (proofs, counterexamples). Analysis of algorithms: asymptotic and practical complexity. Review of dictionary data structures (including balanced search trees). Priority queues. Advanced sorting algorithms (heapsort, radix sort). Advanced algorithmic concepts illustrated through sorting (randomized algorithms, lower bounds, divide and conquer). Dynamic programming. Backtracking. Algorithms on unweighted graphs (traversals) and weighted graphs (minimum spanning trees, shortest paths, network flows and bipartite matching); NP-completeness and its consequences. Prerequisite:CSCI262 with a grade of C- or higher, (MATH213 or MATH223 or MATH224), and (MATH300 or MATH358 or CSCI358). 3 hours lecture; 3 semester hours.

CSCI410. ELEMENTS OF COMPUTING SYSTEMS. 3.0 Semester Hrs.

(I, II) This comprehensive course will help students consolidate their understanding of all fundamental computer science concepts. Topics include symbolic communication, Boolean logic, binary systems, logic gates, computer architecture, assembly language, assembler construction, virtual machines, object-oriented programming languages, software engineering, compilers, language design, and operating systems. Using a hardware simulator and a programming language of their choice, students construct an entire modern computer from the ground up, resulting in an intimate understanding of how each component works. Prerequisites: CSCI341 or EENG383. 3 lecture hours, 3 credit hours.

CSCI422. USER INTERFACES. 3.0 Semester Hrs.

Equivalent with MACS422,
(I) User Interface Design is a course for programmers who want to learn how to create more effective software. This objective will be achieved by studying principles and patterns of interaction design, critiquing existing software using criteria presented in the textbooks, and applying criteria to the design and implementation of one larger product. Students will also learn a variety of techniques to guide the software design process, including Cognitive Walkthrough, Talk-aloud and others. Prerequisite: CSCI262. 3 hours lecture; 3 semester hours.

CSCI423. COMPUTER SIMULATION. 3.0 Semester Hrs.

(I) A first course in computer simulation. A project based course emphasizing the rigorous development of simulation applications. Topics will include random number generation, Monte Carlo simulation, discrete event simulation, and the mathematics behind their proper implementation and analysis. To a lesser extent we may discuss, time-step simulations and parallel simulations. The course uses journaling, programming projects and exams for assessment. Prerequisite: CSCI306, and MATH323 or MATH201, and CSCI274. 3 hours lecture; 3 semester hours.

CSCI437. INTRODUCTION TO COMPUTER VISION. 3.0 Semester Hrs.

Equivalent with CSCI512,EENG507,EENG512,EGGN512,
(I) Computer vision is the process of using computers to acquire images, transform images, and extract symbolic descriptions from images. This course provides an introduction to this field, covering topics in image formation, feature extraction, location estimation, and object recognition. Design ability and hands-on projects will be emphasized, using popular software tools. The course will be of interest both to those who want to learn more about the subject and to those who just want to use computer imaging techniques. Prerequisites: MATH201 or EENG311, MATH332, CSCI261, Senior level standing. 3 hours lecture; 3 semester hours.

CSCI440. PARALLEL COMPUTING FOR SCIENTISTS AND ENGINEERS. 3.0 Semester Hrs.

Equivalent with MATH440,
(II) This course is designed to introduce the field of parallel computing to all scientists and engineers. The students will be taught how to solve scientific problems using parallel computing technologies. They will be introduced to basic terminologies and concepts of parallel computing, learn how to use MPI to develop parallel programs, and study how to design and analyze parallel algorithms. Prerequisite: CSCI262 with a grade of C- or higher, CSCI341. 3 hours lecture; 3 semester hours.

CSCI441. COMPUTER GRAPHICS. 3.0 Semester Hrs.

Equivalent with MATH441,
(I) This class focuses on the basic 3D rendering and modeling techniques. In particular, it covers the graphics pipeline, elements of global illumination, modeling techniques based on polynomial curves and patches, and shader programming using the GPU. Prerequisites: CSCI262 with a grade of C- or higher, MATH332. 3 hours lecture; 3 semester hours.

CSCI442. OPERATING SYSTEMS. 3.0 Semester Hrs.

Equivalent with MACS442,
(I, II) Introduces the essential concepts in the design and implementation of operating systems: what they can do, what they contain, and how they are implemented. Despite rapid OS growth and development, the fundamental concepts learned in this course will endure. We will cover the following high-level OS topics, roughly in this order: computer systems, processes, processor scheduling, memory management, virtual memory, threads, and process/thread synchronization. This course provides insight into the internal structure of operating systems; emphasis is on concepts and techniques that are valid for all computers. Prerequisite: CSCI262 with a grade of C- or higher, CSCI274, CSCI341. 3 hours lecture; 3 semester hours.

CSCI443. ADVANCED PROGRAMMING CONCEPTS USING JAVA. 3.0 Semester Hrs.

Equivalent with MACS443,
(I, II) This course will quickly review programming constructs using the syntax and semantics of the Java programming language. It will compare the constructs of Java with other languages and discuss program design and implementation. Object oriented programming concepts will be reviewed and applications, applets, servlets, graphical user interfaces, threading, exception handling, JDBC, and networking as implemented in Java will be discussed. The basics of the Java Virtual Machine will be presented. Prerequisite: CSCI306. 3 hours lecture; 3 semester hours.

CSCI444. ADVANCED COMPUTER GRAPHICS. 3.0 Semester Hrs.

Equivalent with MATH444,
(II) This is an advanced computer graphics course, focusing on modern rendering and geometric modeling techniques. Students will learn a variety of mathematical and algorithmic techniques that can be used to develop high-quality computer graphic software. Runtime performance will be evaluated to create optimized real-time graphics applications. In particular, the course will cover global illumination, GPU programming, and virtual and augmented reality. Prerequisites: CSCI441. 3 hours lecture; 3 semester hours.

CSCI445. WEB PROGRAMMING. 3.0 Semester Hrs.

Equivalent with MACS445,
(I) Web Programming is a course for programmers who want to develop web-based applications. It covers basic website design extended by client-side and server-side programming. Students should acquire an understanding of the role and application of web standards to website development. Topics include Cascading Style Sheets (CSS), JavaScript, PHP and database connectivity. At the conclusion of the course students should feel confident that they can design and develop dynamic Web applications on their own. Prerequisites: CSCI262. Co-requisite: CSCI403. 3 hours lecture; 3 semester hours.

CSCI446. WEB APPLICATIONS. 3.0 Semester Hrs.

(II) In Web Applications students will learn how to build effective web-based applications. At the completion of this course, students should know HTTP, Hypertext Markup Language (HTML), Cascading Style Sheets (CSS), JavaScript, Ajax, and RESTful architectures. Additionally students should have considered a variety of issues related to web application architecture, including but not limited to security, performance, web frameworks and cloud-based deployment environments. Prerequisites: CSCI262. Co-requisites: CSCI403. 3 hours lecture; 3 semester hours.

CSCI447. SCIENTIFIC VISUALIZATION. 3.0 Semester Hrs.

Equivalent with MATH447,
(I) Scientific visualization uses computer graphics to create visual images which aid in understanding of complex, often massive numerical representation of scientific concepts or results. The main focus of this course is on modern visualization techniques applicable to spatial data such as scalar, vector and tensor fields. In particular, the course will cover volume rendering, texture based methods for vector and tensor field visualization, and scalar and vector field topology. Basic understanding of computer graphics and analysis of algorithms required. Prerequisites: CSCI262 and MATH441. 3 lecture hours, 3 semester hours.

CSCI448. MOBILE APPLICATION DEVELOPMENT. 3.0 Semester Hrs.

(I) This course covers basic and advanced topics in mobile application development. Topics include the mobile application lifecycle, user interface components and layouts, storing persistent data, accessing network resources, using location and sensor APIs including GPS and accelerometer, starting and stopping system services, and threading. This is a project-based course where students will design and develop complete applications. Prerequisite: CSCI306 with a grade of C- or higher. Repeatable: Yes, if taught on a different platform (e.g., Android vs. iPhone) up to 6 hours. 3 hours lecture; 3.0 semester hours.

CSCI455. GAME THEORY AND NETWORKS. 3.0 Semester Hrs.

Equivalent with CSCI555,
(I) An introduction to fundamental concepts of game theory with a focus on the applications in networks. Game theory is the study that analyzes the strategic interactions among autonomous decision-makers. Originated from economics. Influenced many areas in Computer Science, including artificial intelligence, e-commerce, theory, and security and privacy. Provides tools and knowledge for modeling and analyzing real-world problems. Prerequisites: CSCI358, CSCI406. 3 hours lecture; 3 semester hours.

CSCI470. INTRODUCTION TO MACHINE LEARNING. 3.0 Semester Hrs.

(I) The goal of machine learning is to build computer systems that improve automatically with experience, which has been successfully applied to a variety of application areas, including, for example, gene discovery, financial forecasting, and credit card fraud detection. This introductory course will study both the theoretical properties of machine learning algorithms and their practical applications. Students will have an opportunity to experiment with machine learning techniques and apply them to a selected problem in the context of term projects. Prerequisites: MATH201, MATH332. 3 hours lecture; 3 semester hours.

CSCI471. COMPUTER NETWORKS I. 3.0 Semester Hrs.

(I) This introduction to computer networks covers the fundamentals of computer communications, using TCP/IP standardized protocols as the main case study. The application layer and transport layer of communication protocols will be covered in depth. Detailed topics include application layer protocols (HTTP, FTP, SMTP, and DNS), transport layer protocols (reliable data transfer, connection management, and congestion control), network layer protocols, and link layer protocols. In addition, students will program client/server network applications. Prerequisites: CSCI262, CSCI274. 3 hours lecture; 3 semester hours.

CSCI473. HUMAN-CENTERED ROBOTICS. 3.0 Semester Hrs.

Equivalent with CSCI573,
(II) Human-centered robotics is an interdisciplinary area that bridges research and application of methodology from robotics, machine vision, machine learning, human-computer interaction, human factors, and cognitive science. Students will learn about fundamental research in human-centered robotics, as well as develop computational models for robotic perception, internal representation, robotic learning, human-robot interaction, and robot cognition for decision making. Prerequisites: CSCI262 and MATH201. 3 hours lecture; 3 semester hours.

CSCI474. INTRODUCTION TO CRYPTOGRAPHY. 3.0 Semester Hrs.

Equivalent with MATH474,
(II) This course is primarily oriented towards the mathematical aspects of cryptography, but is also closely related to practical and theoretical issues of computer security. The course provides mathematical background required for cryptography, including relevant aspects of number theory and mathematical statistics. The following aspects of cryptography will be covered: symmetric and asymmetric encryption, computational number theory, quantum encryption, RSA and discrete log systems, SHA, steganography, chaotic and pseudo-random sequences, message authentication, digital signatures, key distribution and key management, and block ciphers. Many practical approaches and most commonly used techniques will be considered and illustrated with real-life examples. Prerequisites: CSCI262, CSCI358, MATH334 or MATH335 or MATH201. 3 hours lecture; 3 semester hours.

CSCI475. INFORMATION SECURITY AND PRIVACY. 3.0 Semester Hrs.

(I) Information Security and Privacy provides a hands-on introduction to the principles and best practices in information and computer security. Lecture topics will include basic components of information security including threat assessment and mitigation, policy development, forensics investigation, and the legal and political dimensions of information security. Prerequisite: CSCI 262 and CSCI 341 (required); CSCI 274 (recommended). 3 hours lecture; 3 semester hours.

CSCI477. ELEMENTS OF GAMES AND GAME DEVELOPMENT. 3.0 Semester Hrs.

(II) This course provides an overview of computer and video game development along with practical game projects designed to introduce the student to the computer entertainment industry. Topics will include the nature of games, the game player, game play, game design, game mechanics, story and character, game worlds, interface and the game development process. Students will be required to develop code both in C++ and with the use of a game engine. Prerequisite: CSCI262. 3 hours lecture; 3 semester hours.

CSCI480. COMPUTER SCIENCE HONORS THESIS. 3.0 Semester Hrs.

(I, II) Prerequisite: CSCI306. 3 hours research; 3 semester hours. Repeatable for credit up to 6 semester hours.

CSCI498. SPECIAL TOPICS. 1-6 Semester Hr.

(I, II) Pilot course or special topics course. Topics chosen from special interests of instructor(s) and student(s). Usually the course is offered only once. Prerequisite: none. Variable credit; 1 to 6 credit hours. Repeatable for credit under different titles.

CSCI499. INDEPENDENT STUDY. 1-6 Semester Hr.

(I, II) Individual research or special problem projects supervised by a faculty member, when a student and instructor agree on a subject matter, content, and credit hours. Prerequisite: "Independent Study" form must be completed and submitted to the Registrar. Variable credit; 1 to 6 credit hours. Repeatable for credit.

CSCI507. INTRODUCTION TO COMPUTER VISION. 3.0 Semester Hrs.

Equivalent with CSCI437,CSCI512,EENG507,EENG512,EGGN512,
(I) Computer vision is the process of using computers to acquire images, transform images, and extract symbolic descriptions from images. This course provides an introduction to this field, covering topics in image formation, feature extraction, location estimation, and object recognition. Design ability and hands-on projects will be emphasized, using popular software tools. The course will be of interest both to those who want to learn more about the subject and to those who just want to use computer imaging techniques. Prerequisites: Undergraduate level knowledge of linear algebra, statistics, and a programming language. 3 hours lecture; 3 semester hours.

CSCI508. ADVANCED TOPICS IN PERCEPTION AND COMPUTER VISION. 3.0 Semester Hrs.

Equivalent with EENG508,
(II) This course covers advanced topics in perception and computer vision, emphasizing research advances in the field. The course focuses on structure and motion estimation, general object detection and recognition, and tracking. Projects will be emphasized, using popular software tools. Prerequisites: EENG507 or CSCI507. 3 hours lecture; 3 semester hours.

CSCI522. INTRODUCTION TO USABILITY RESEARCH. 3.0 Semester Hrs.

(I) An introduction to the field of Human-Computer Interaction (HCI). Students will review current literature from prominent researchers in HCI and will discuss how the researchers' results may be applied to the students' own software design efforts. Topics include usability testing, ubiquitous computing user experience design, cognitive walkthrough and talk-aloud testing methodologies. Students will work in small teams to develop and evaluate an innovative product or to conduct an extensive usability analysis of an existing product. Project results will be reported in a paper formatted for submission to an appropriate conference (UbiComp, SIGCSE, CHI, etc.). Prerequisite: CSCI 261 or equivalent. 3 hours lecture, 3 semester hours.

CSCI542. SIMULATION. 3.0 Semester Hrs.

Equivalent with MACS542,
(I) Advanced study of computational and mathematical techniques for modeling, simulating, and analyzing the performance of various systems. Simulation permits the evaluation of performance prior to the implementation of a system; it permits the comparison of various operational alternatives without perturbing the real system. Topics to be covered include simulation techniques, random number generation, Monte Carlo simulations, discrete and continuous stochastic models, and point/interval estimation. Offered every other year. Prerequisite: CSCI 262 (or equivalent) and MATH 323 (or MATH 530 or equivalent). 3 hours lecture; 3 semester hours.

CSCI544. ADVANCED COMPUTER GRAPHICS. 3.0 Semester Hrs.

Equivalent with MATH544,
This is an advanced computer graphics course in which students will learn a variety of mathematical and algorithmic techniques that can be used to solve fundamental problems in computer graphics. Topics include global illumination, GPU programming, geometry acquisition and processing, point based graphics and non-photorealistic rendering. Students will learn about modern rendering and geometric modeling techniques by reading and discussing research papers and implementing one or more of the algorithms described in the literature.

CSCI546. WEB PROGRAMMING II. 3.0 Semester Hrs.

(I) This course covers methods for creating effective and dynamic web pages, and using those sites as part of a research agenda related to Humanitarian Engineering. Students will review current literature from the International Symposium on Technology and Society (ISTAS), American Society for Engineering Education (ASEE), and other sources to develop a research agenda for the semester. Following a brief survey of web programming languages, including HTML, CSS, JavaScript and Flash, students will design and implement a website to meet their research agenda. The final product will be a research paper which documents the students' efforts and research results. Prerequisite: CSCI 262. 3 hours lecture, 3 semester hours.

CSCI547. SCIENTIFIC VISUALIZATION. 3.0 Semester Hrs.

Equivalent with MATH547,
Scientific visualization uses computer graphics to create visual images which aid in understanding of complex, often massive numerical representation of scientific concepts or results. The main focus of this course is on techniques applicable to spatial data such as scalar, vector and tensor fields. Topics include volume rendering, texture based methods for vector and tensor field visualization, and scalar and vector field topology. Students will learn about modern visualization techniques by reading and discussing research papers and implementing one of the algorithms described in the literature.

CSCI555. GAME THEORY AND NETWORKS. 3.0 Semester Hrs.

Equivalent with CSCI455,
(II) An introduction to fundamental concepts of game theory with a focus on the applications in networks. Game theory is the study that analyzes the strategic interactions among autonomous decision-makers. Originated from economics. Influenced many areas in Computer Science, including artificial intelligence, e-commerce, theory, and security and privacy. Provides tools and knowledge for modeling and analyzing real-world problems. Prerequisites: CSCI406 Algorithms. 3 hours lecture; 3 semester hours.

CSCI561. THEORY OF COMPUTATION. 3.0 Semester Hrs.

(I) An introduction to abstract models of computation and computability theory; including finite automata (finite state machines), pushdown automata, and Turing machines. Language models, including formal languages, regular expressions, and grammars. Decidability and undecidability of computational problems. Prerequisite: CSCI/MATH358. 3 hours lecture; 3 semester hours.

CSCI562. APPLIED ALGORITHMS AND DATA STRUCTURES. 3.0 Semester Hrs.

(II) Industry competitiveness in certain areas is often based on the use of better algorithms and data structures. The objective of this class is to survey some interesting application areas and to understand the core algorithms and data structures that support these applications. Application areas could change with each offering of the class, but would include some of the following: VLSI design automation, computational biology, mobile computing, computer security, data compression, web search engines, geographical information systems. Prerequisite: MATH/CSCI406. 3 hours lecture; 3 semester hours.

CSCI563. PARALLEL COMPUTING FOR SCIENTISTS AND ENGINEERS. 3.0 Semester Hrs.

(I) Students are taught how to use parallel computing to solve complex scientific problems. They learn how to develop parallel programs, how to analyze their performance, and how to optimize program performance. The course covers the classification of parallel computers, shared memory versus distributed memory machines, software issues, and hardware issues in parallel computing. Students write programs for state of the art high performance supercomputers, which are accessed over the network. Prerequisite: Programming experience in C. 3 hours lecture; 3 semester hours.

CSCI564. ADVANCED COMPUTER ARCHITECTURE. 3.0 Semester Hrs.

The objective of this class is to gain a detailed understanding about the options available to a computer architect when designing a computer system along with quantitative justifications for the options. All aspects of modern computer architectures including instruction sets, processor design, memory system design, storage system design, multiprocessors, and software approaches will be discussed. Prerequisite: CSCI341. 3 hours lecture; 3 semester hours.

CSCI565. DISTRIBUTED COMPUTING SYSTEMS. 3.0 Semester Hrs.

(II) This course discusses concepts, techniques, and issues in developing distributed systems in large scale networked environment. Topics include theory and systems level issues in the design and implementation of distributed systems. Prerequisites: CSCI 442 or equivalent. 3 hours of lecture; 3 semester hours.

CSCI568. DATA MINING. 3.0 Semester Hrs.

Equivalent with MACS568,
(II) This course is an introductory course in data mining. It covers fundamentals of data mining theories and techniques. We will discuss association rule mining and its applications, overview of classification and clustering, data preprocessing, and several applicationspecific data mining tasks. We will also discuss practical data mining using a data mining software. Project assignments include implementation of existing data mining algorithms, data mining with or without data mining software, and study of data mining related research issues. Prerequisite: CSCI262. 3 hours lecture; 3 semester hours.

CSCI571. ARTIFICIAL INTELLIGENCE. 3.0 Semester Hrs.

(I) Artificial Intelligence (AI) is the subfield of computer science that studies how to automate tasks for which people currently exhibit superior performance over computers. Historically, AI has studied problems such as machine learning, language understanding, game playing, planning, robotics, and machine vision. AI techniques include those for uncertainty management, automated theorem proving, heuristic search, neural networks, and simulation of expert performance in specialized domains like medical diagnosis. This course provides an overview of the field of Artificial Intelligence. Particular attention will be paid to learning the LISP language for AI programming. Prerequisite: CSCI262. 3 hours lecture; 3 semester hours.

CSCI572. COMPUTER NETWORKS II. 3.0 Semester Hrs.

Equivalent with MACS572,
(II) This course covers the network layer, data link layer, and physical layer of communication protocols in depth. Detailed topics include routing (unicast, multicast, and broadcast), one hop error detection and correction, and physical topologies. Other topics include state-of-the-art communications protocols for emerging networks (e.g., ad hoc networks and sensor networks). Prerequisite: CSCI 471 or equivalent. 3 hours lecture; 3 semester hours.

CSCI573. HUMAN-CENTERED ROBOTICS. 3.0 Semester Hrs.

Equivalent with CSCI473,
(II) Human-centered robotics is an interdisciplinary area that bridges research and application of methodology from robotics, machine vision, machine learning, human-computer interaction, human factors, and cognitive science. Students will learn about fundamental research in human-centered robotics, as well as develop computational models for robotic perception, internal representation, robotic learning, human-robot interaction, and robot cognition for decision making. Students in CSCI 473 will be able to model and analyze human behaviors geared toward human-robot interaction applications. They will also be able to implement a working system using algorithms learnt to solve a given problem in human-centered robotics application. Students in CSCI 573 will get a more in-depth study into the theory of the algorithms. They will be able to compare the different algorithms to select the most appropriate one that can solve a specific problem. Prerequisites: CSCI262 and MATH201. 3 hours lecture; 3 semester hours.

CSCI574. THEORY OF CRYPTOGRAPHY. 3.0 Semester Hrs.

Equivalent with MATH574,
Students will draw upon current research results to design, implement and analyze their own computer security or other related cryptography projects. The requisite mathematical background, including relevant aspects of number theory and mathematical statistics, will be covered in lecture. Students will be expected to review current literature from prominent researchers in cryptography and to present their findings to the class. Particular focus will be given to the application of various techniques to real-life situations. The course will also cover the following aspects of cryptography: symmetric and asymmetric encryption, computational number theory, quantum encryption, RSA and discrete log systems, SHA, steganography, chaotic and pseudo-random sequences, message authentication, digital signatures, key distribution and key management, and block ciphers. Prerequisites: CSCI 262 plus undergraduate-level knowledge of statistics and discrete mathematics. 3 hours lecture, 3 semester hours.

CSCI575. MACHINE LEARNING. 3.0 Semester Hrs.

Equivalent with MACS575,
(II) The goal of machine learning research is to build computer systems that learn from experience and that adapt to their environments. Machine learning systems do not have to be programmed by humans to solve a problem; instead, they essentially program themselves based on examples of how they should behave, or based on trial and error experience trying to solve the problem. This course will focus on the methods that have proven valuable and successful in practical applications. The course will also contrast the various methods, with the aim of explaining the situations in which each is most appropriate. Prerequisites: CSCI262 and MATH201. 3 hours lecture; 3 semester hours.

CSCI576. WIRELESS SENSOR SYSTEMS. 3.0 Semester Hrs.

With the advances in computational, communication, and sensing capabilities, large scale sensor-based distributed environments are becoming a reality. Sensor enriched communication and information infrastructures have the potential to revolutionize almost every aspect of human life benefitting application domains such as transportation, medicine, surveillance, security, defense, science and engineering. Such a distributed infrastructure must integrate networking, embedded systems, distributed computing and data management technologies to ensure seamless access to data dispersed across a hierarchy of storage, communication, and processing units, from sensor devices where data originates to large databases where the data generated is stored and/or analyzed. Prerequisite: CSCI406, CSCI446, CSCI471. 3 hours lecture; 3 semester hours.

CSCI580. ADVANCED HIGH PERFORMANCE COMPUTING. 3.0 Semester Hrs.

This course provides students with knowledge of the fundamental concepts of high performance computing as well as hands-on experience with the core technology in the field. The objective of this class is to understand how to achieve high performance on a wide range of computational platforms. Topics will include sequential computers including memory hierarchies, shared memory computers and multicore, distributed memory computers, graphical processing units (GPUs), cloud and grid computing, threads, OpenMP, message passing (MPI), CUDA (for GPUs), parallel file systems, and scientific applications. 3 hours lecture; 3 semester hours.

CSCI585. INFORMATION SECURITY PRIVACY. 3.0 Semester Hrs.

(I) This course provides an introduction to the principles and best practices in information security and privacy. Lectures will include basic concepts of information security and privacy, fundamental security design principles, major topics in security and privacy, essential knowledge and skills, risk assessment and mitigation, policy development, and so on. In the classroom, students will also present and discuss a list of recent or classic research papers corresponding to the major topics in security and privacy. Outside of the classroom, students will work on homework assignments, security lab exercises, quizzes, research paper summaries, and a course project. Prerequisites: CSCI262, CSCI341. 3 hours lecture; 3 semester hours.

CSCI598. SPECIAL TOPICS. 6.0 Semester Hrs.

(I, II, S) Pilot course or special topics course. Topics chosen from special interests of instructor(s) and student(s). Usually the course is offered only once, but no more than twice for the same course content. Prerequisite: none. Variable credit: 0 to 6 credit hours. Repeatable for credit under different titles.

CSCI599. INDEPENDENT STUDY. 0.5-6 Semester Hr.

(I, II, S) Individual research or special problem projects supervised by a faculty member, also, when a student and instructor agree on a subject matter, content, and credit hours. Prerequisite: ?Independent Study? form must be completed and submitted to the Registrar. Variable credit: 0.5 to 6 credit hours. Repeatable for credit under different topics/experience and maximums vary by department. Contact the Department for credit limits toward the degree.

CSCI691. GRADUATE SEMINAR. 1.0 Semester Hr.

Presentation of latest research results by guest lecturers, staff, and advanced students. Prerequisite: none. 1 hour seminar; 1 semester hour. Repeatable for credit to a maximum of 12 hours.

CSCI692. GRADUATE SEMINAR. 1.0 Semester Hr.

Equivalent with MACS692,MATH692,
Presentation of latest research results by guest lecturers, staff, and advanced students. Prerequisite: none. 1 hour seminar; 1 semester hour. Repeatable for credit to a maximum of 12 hours.

CSCI693. WAVE PHENOMENA SEMINAR. 1.0 Semester Hr.

Students will probe a range of current methodologies and issues in seismic data processing, with emphasis on underlying assumptions, implications of these assumptions, and implications that would follow from use of alternative assumptions. Such analysis should provide seed topics for ongoing and subsequent research. Topic areas include: Statistics estimation and compensation, deconvolution, multiple suppression, suppression of other noises, wavelet estimation, imaging and inversion, extraction of stratigraphic and lithologic information, and correlation of surface and borehole seismic data with well log data. Prerequisite: none. 1 hour seminar; 1 semester hour.

CSCI698. SPECIAL TOPICS. 6.0 Semester Hrs.

(I, II, S) Pilot course or special topics course. Topics chosen from special interests of instructor(s) and student(s). Usually the course is offered only once, but no more than twice for the same course content. Prerequisite: none. Variable credit: 0 to 6 credit hours. Repeatable for credit under different titles.

CSCI699. INDEPENDENT STUDY. 0.5-6 Semester Hr.

(I, II, S) Individual research or special problem projects supervised by a faculty member, also, when a student and instructor agree on a subject matter, content, and credit hours. Prerequisite: ?Independent Study? form must be completed and submitted to the Registrar. Variable credit: 0.5 to 6 credit hours. Repeatable for credit under different topics/experience and maximums vary by department. Contact the Department for credit limits toward the degree.

CSCI700. MASTERS PROJECT CREDITS. 1-6 Semester Hr.

(I, II, S) Project credit hours required for completion of the non-thesis Master of Science degree in Computer Science (Project Option). Project under the direct supervision of a faculty advisor. Credit is not transferable to any 400, 500, or 600 level courses. Repeatable for credit.

CSCI707. GRADUATE THESIS / DISSERTATION RESEARCH CREDIT. 1-15 Semester Hr.

(I, II, S) GRADUATE THESIS/DISSERTATION RESEARCH CREDIT Research credit hours required for completion of a Masters-level thesis or Doctoral dissertation. Research must be carried out under the direct supervision of the student's faculty advisor. Variable class and semester hours. Repeatable for credit.