Computer Science (CS) Course Descriptions

  • 105 Expl World with Computing: 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 MTH 099)

  • 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 24; 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: admittance to the Honors College and Math ACT of 24 or higher)

  • 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: CS 110 or CS 110H)

  • 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 140; Concurrent PR: MTH 229 or MTH 229H)

  • 210 Algorithm Analysis and Design: 3 hrs

Data structures including stacks, queues, lists, trees, graphs, priority queues, and dictionaries. (PR: MTH 220)

  • 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: CS 210; Concurrent PR: MTH 220)

  • 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: CS 305)

  • 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 or MTH 229H; PR: CS 210)

  • 330 Operating Systems: 3 hrs

Modern operating systems design and implementation: multi-tasking and time sharing, concurrency and synchronization, inter process 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: CS300)

  • 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: CS 402)

  • 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: CS 215)

  • 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: CS 210)

  • 415 Data Mining: 3 hrs

Covers the process of knowledge discovery, algorithms (association rules, classification, and clustering), and real-world applications. Focuses on efficient data mining algorithms and scaling up data mining methods. (PR CS 215 and CS 410)

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

  • 430 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)

  • 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: CS 215)

  • 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: CS 215 and MTH 220 )

  • 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)

  • 475 Internship: 3-12 hrs; I, II, S. CR/NC.

An in-depth and hands-on involvement in a real-world project under direct professional supervision. The project may be on-campus or off-campus. Requires prior approval of the Internship Director, who is a member of the Computer Science faculty. (PR: CS 310 or CS 215)

  • Special Topics: 1-4 hrs; I, II, S.
  •  

  • Independent Study: 1-4 hrs; I, II, S.
  •  

  • 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: CS 310 and CS 410)

  • 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-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-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-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-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

Learn high performance computing architectures and methods for developing and querying databases for Big Data.

  • 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-6 hrs

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

  • 685 Independent Study: 1-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-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-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 Stud:. 1-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.