*Course Descriptions based on the 2012-2013 Undergraduate Catalog and/or Spring 2013 Graduate Catalog.

Undergraduate Courses

  • 105 Expl World with Computing (CT) 3 hrs.

Central principles and big ideas of computing: problem-solving, computational and critical thinking, abstraction, creativity, reasoning, data, algorithms, recursion, visualization, and limits of computation. Solve real-world problems with computing. (PR: ACT Math 19 or SAT Mathematics 460 or MTH099)

  • 110 Computer Science I. 3 hrs.

Object-oriented and algorithmic problem solving principles and techniques, programming with classes in an integrated programming environment, and program debugging. 2 lec-2 lab. (PR: Computer Science Major, or Pre Computer Science major, or math ACT 23; and concurrent PR: (MTH 127 and MTH 132) or (MTH 130 and MTH 132) or MTH 132 or MTH 229 or MTH 229H)

  • 110H Computer Science Honors. 3 hrs.

Object-oriented and algorithmic problem solving principles and techniques; programming with classes in an integrated programming environment; and program debugging.(PR: ACT Math 24 or SAT Mathematics 560 or MTH127 or MTH130 and MTH132 or MTH129 or MTH129H)

  • 120 Computer Science II. 3 hrs.

Object-oriented analysis and design, advanced programming with classes, arrays, strings, sorting, searching, I/O, GUI development, system life cycle and software development methodologies. 2 lec-2 lab. (PR: Computer Science Major, or Pre- Computer Science major, or math ACT 23; and CS110 and concurrent PR: (MTH 127 and MTH 132) or (MTH 130 and MTH 132) or MTH 132 or MTH 229 or MTH 229H)

  • 205 Scientific Computing. 3 hrs.

An introduction to computer programming, software design, and algorithm analysis and implementation. Abstract concepts illustrated with examples and exercises drawn from the mathematical and physical sciences. Primarily for non-CS majors.(PR: MTH 229)

  • 210 Algorithm Analysis and Design. 3 hrs.

Data structures including stacks, queues, lists, trees, graphs, priority queues, and dictionaries. (PR: CS 120 and MTH 220 or MTH 229 or MTH 230)

  • 215 Advanced Algorithm Analysis and Design. 3 hrs.

Introduction to the mathematical analysis of computer algorithms, correctness, complexity, asymptotic lower bounds, efficient data structures, and combinatorial algorithms. NP-complete problems. (PR: CS210 and MTH220)

  • 280-283 Special Topics. 1-4 hrs.
  • 300 Programming Languages. 3 hrs.

Comparative study of the concepts found in contemporary programming languages. Emphasis is on design and evaluation of a language in terms of its features and their implementation. (PR: CS 210.)

  • 305 Software Engineering I 3 hrs.

This course provides a broad introduction to software engineering theories, methods, and tools. Topics include requirements engineering, analysis and design, implementation, versioning, and testing. (PR: MTH 220 and CS 210)

  • 310 Software Engineering II. 3 hrs.

Continuation of CS 305. Software construction, versioning and configuration, testing, change control, software reliability and quality assurance. (PR: CS305)

  • 315 Software Quality Assurance. 3 hrs.

Testing techniques and validation of system requirements. Design reviews and code inspections; unit, integration, system, regression, load, stress, user acceptance, and regression testing; statistical testing; test strategies and project metrics. (PR: CS 310 and MTH 345)

  • 320 Internetworking. 3 hrs.

Principles and issues in interconnecting multiple physical networks into a coordinated system, operation of Internet protocols in the interconnected environment, and design of applications to operate in this environment. (Concurrent PR: MTH 229; PR: CS 210)

  • 330 Operating Systems. 3 hrs.

Modern operating systems design and implementation: multi-tasking and time sharing, concurrency and synchronization, interprocess communication, resource scheduling, memory management, deadlocks, I/O, file systems, and security. (PR: CS 210)

  • 340 Cyber Security. 3 hrs.

Concepts and issues in physical and cyber security; technological vulnerabilities found in operating systems, database servers, Web servers, Internet, and local area networks; developing defensive and offensive security measures. (PR: CS 320)

  • 360 Automata and Formal Languages. 3 hrs.

Basic theoretical concepts are introduced, including finite state automata, regular expressions, context-free grammars, pushdown automata, Turing machines, recursively enumerable languages, the halting problem, and Church-Turing thesis. (PR: CS 300)

  • 370 Computer Graphics. 3 hrs.

Mathematical theory and practical tools and techniques for generating realistic pictures using computers. This is a project-centered course and involves extensive programming using the OpenGL standard. (PR: CS 210 and MTH 329)

  • 402 Computer Architecture. 3 hrs.

Design and analyze structure of major hardware components of computers including: ALU, instruction sets, memory hierarchy, parallelism through multicore and many core, storage systems and interfaces. (PR: CS330)

  • 404 High Performance Computing. 3 hrs.

Software design and development targeting high performance computing architectures. Multi-core and many-core systems: I/O, file systems, performance metrics. Programming models include MPI, OpenMP, MapReduce, CUDA, OpenCL. (PR: CS402)

  • 405 Computing for Bioinformatics. 3 hrs.

Study of computational algorithms and programming techniques for various bioinformatics tasks including parsing DNA files, sequence alignments, tree construction, clustering, species identification, principal component analysis, correlations, and gene expression arrays. (PR: CS215)

  • 410 Database Engineering. 3 hrs.

Study of data models, data description languages, query languages including relational algebra and SQL, logical and physical database design, transactions, backup and recovery. Design and implementation of a database application. (PR: CS210)

  • 420 Distributed Systems. 3 hrs.

Study of distributed system concepts and issues, architectures and frameworks for developing distributed applications, and future trends. (PR: CS320 and CS 330; limited enrollment, permission of instructor required)

  • 425 Computational Intelligence. 3 hrs.

Genetic algorithms, evolutionary strategies, and genetic programming. Methods of knowledge representation using rough sets, type-1 fuzzy sets, and type-2 fuzzy sets. Neural network architectures and their learning algorithms.

  • 440 Digital Image Processing. 3 hrs.

Mathematical techniques, algorithms, and software tools for image sampling, quantization, coding and compression, enhancement, reconstruction, and analysis. (PR: CS 210 and MTH 329)

  • 450 Information Retrieval. 3 hrs.

Theory, design, and algorithms for modeling and retrieving text. Text representation, IR models, query operations, retrieval evaluation, information extraction, text classification and clustering, enterprise and Web research, recommender systems. (PR: CS215)

  • 452 Natural Language Processing. 3 hrs.

Fundamental algorithms and computational models for core tasks in natural language processing: word and sentence tokenization, parsing, information and meaning extraction, spelling correction, text summarization, question answering, and sentiment analysis. (PR: CS215 and MTH220 )

  • 455 Systems Engineering. 3 hrs.

Tools and techniques for optimizing the design and construction of software-intensive systems by considering system issues and making engineering tradeoffs in conflicting criteria and interacting decision parameters. (PR: CS 340 and CS 350)

  • 490 Senior Project. 3 hrs.

Application of technical and professional skills in solving a real-world problem in a team environment. Discuss professional code of conduct, societal issues, and transition from student to industry professional. (PR: CS340 and CS350)

  • 502 Computer Architecture. 3 hrs.

Design and analyze structure of major hardware components of computers including: ALU, instruction sets, memory hierarchy and caching, parallelism through multicore and many core, GPGPUs, storage systems and interfaces.

  • 504 High Performance Computing. 3 hrs.

Learn how to develop highly optimized applications for multi-core processors and clusters using software tools, parallel algorithms, performance profilers, and programming constructs in MPI, OpenMP, MapReduce, CUDA, and OpenCL.

  • 505 Computing for Bioinformatics. 3 hrs.

Study of computational algorithms and programming techniques for various bioinformatics tasks including parsing DNA files, sequence alignments, tree construction, clustering, species identification, principal component analysis, correlations, and gene expression arrays.

  • 510 Database Systems. 3 hrs.

Study of relational data model and abstract query languages, SQL, logical and physical database design, transactions, database recovery, query optimization, XML databases, issues in managing Big Data, and NewSQL systems.

  • 540 Digital Image Processing. 3 hrs.

Study of mathematical techniques and algorithms for image sampling, quantization, intensity transformations, spatial filtering, Fourier transforms, frequency domain filtering, restoration and reconstruction, color imaging, wavelets, morphological image processing, and segmentation.

  • 550 Information Retrieval. 3 hrs.

Study of theory and algorithms for modeling and retrieving text. Text representation, IR models, query operations, retrieval evaluation, information extraction, text classification and clustering, enterprise and Web search, recommender systems.

  • 552 Natural Lang Processing. 3 hrs.

Fundamental algorithms and computational models for core tasks in natural language processing: word and sentence tokenization, parsing, information and meaning extraction, spelling correction, text summarization, question answering, and sentiment analysis.

  • 605 Software Specifications. 3 hrs.

Study of software specification and verification technologies that facilitate: semantic reasoning; and verification of development artifacts including functional models, architecture, and source-code implementations.

  • 610 Software Design. 3 hrs.

Study of approaches to software design that meet availability, manageability, maintainability, performance, reliability, scalability, and securability goals. Emphasis is on object-oriented analysis and design, design patterns and metrics.

  • 615 Software Testing. 3 hrs.

Study of methods and tools to design high quality tests during all phases of software development. Topics include test design, test automation, test coverage criteria, and how to test software.

  • 620 Applied Algorithms. 3 hrs.

Study of clustering, graph-theoretic, genetic, probabilistic and randomized algorithms and their application to machine learning, data streams, data mining, computer vision, natural language processing, information retrieval, and bioinformatics.

  • 625 AI Principles and Methods. 3 hrs.

Study of machine learning and statistical pattern recognition algorithms and their application to data mining, bioinformatics, speech recognition, natural language processing, robotic control, autonomous navigation, text and web data processing.

  • 630 Machine Learning. 3 hrs.

Study of maching learning and statistical pattern recognition algorithms and their application to data mining, bioinformatics, speech recognition, natural language processing, robotic control, autonomous navigation, text and web processing.

  • 645 Advanced Topics Bioinformatics. 3 hrs.

Study of advanced algorithms, data structures, and architectures required for solving complex problems in Bioinformatics. Focus is on analysis of patterns in sequences and 3D-structures. Team taught seminar course.

  • 650 Special Topics. 1 to 4 hrs.

Study of emerging and advanced topics in Computer Science. Topics vary with instructor and change from one semester to another.

  • 651 Special Topics. 1 to 4 hrs.

Study of emerging and advanced topics in Computer Science. Topics vary with instructor and change from one semester to another.

  • 652 Special Topics. 1 to 4 hrs.

Study of emerging and advanced topics in Computer Science. Topics vary with instructor and change from one semester to another.

  • 653 Special Topics. 1 to 4 hrs.

Study of emerging and advanced topics in Computer Science. Topics vary with instructor and change from one semester to another.

  • 660 Big Data Systems. 3 hrs.

Study of emerging and advanced topics in Computer Science. Topics vary with instructor and change from one semester to another.

  • 670 Visual Analytics. 3 hrs.

Study of approaches, algorithms, and tools for Big Data exploration, analysis, and interpretation to enable novel discoveries and innovation. Integrating analytic capabilities of computers and domain knowledge of human analysts.

  • 681 Thesis. 1 to 6 hrs.

Investigate a research problem of theoretical interest and practical value under mentorship of a computer science faculty.

  • 685 Independent Study. 1 to 4 hrs.

Pursue faculty supervised, individualized course of study of a topic which is not currently a part of the Computer Science graduate curriculum.

  • 686 Independent Study. 1 to 4 hrs.

Pursue faculty supervised, individualized course of study of a topic which is not currently a part of the Computer Science graduate curriculum.

  • 687 Independent Study. 1 to 4 hrs.

Pursue faculty supervised, individualized course of study of a topic which is not currently a part of the Computer Science graduate curriculum.

  • 688 Independent Study. 1 to 4 hrs.

Pursue faculty supervised, individualized course of study of a topic which is not currently a part of the Computer Science graduate curriculum.

  • 690 Comprehensive Project. 3 hrs.

Develop expertise in an emerging area of computer science through guided study under faculty mentorship.