Course Descriptions

Courses numbered 399 and below may be taken for undergraduate credit only. Courses numbered 400 through 699 may be taken by either undergraduate or graduate students. Courses numbered 700 or above are intended only for graduate students. Undergraduates are allowed to take courses numbered 700 or above, but only if permission is obtained from the dean’s office.

Courses offered less than once every two years are marked as “infrequently offered”; students should not count on taking these classes when planning their schedules.

Additional information about many cross-listed courses can be found via the home pages of the College of Engineering and the Department of Mathematics.

Course Number Name Credits
CS 200 Programming I 3
CS 202 Introduction to Computation 3
CS 240 Introduction to Discrete Mathematics 3
CS 250 Digital Society: The Impact of Computers and Computer Technology 3
CS 252 Introduction to Computer Engineering 2
CS 270 Fundamentals of Human-Computer Interaction 3
CS 298 Directed Study in Computer Science 1-3
CS 300 Programming II 3
CS 301 Introduction to Data Programming 3
CS 302 Introduction to Programming 3
CS 304 WES-CS Group Meeting 0-1
CS 310 Problem Solving using Computers 3
CS 352 Digital Systems Fundamentals 3
CS 354 Machine Organization and Programming 3
CS 367 Introduction to Data Structures 3
CS 368 Learning a New Programming Language 1
CS 369 Web Programming 3
CS 371 Technology of Computer-Based Business Systems 3
CS 400 Programming III 3
CS 402 Introducing Computer Science to K-12 Students 2
CS 407 Foundations of Mobile Systems and Applications 3
CS 412 Introduction to Numerical Methods 3
CS 416 Foundations of Scientific Computing 3
CS 425 Introduction to Combinatorial Optimization 3
CS 435 Introduction to Cryptography 3
CS 471 Introduction to Computational Statistics 3
CS 475 Introduction to Combinatorics 3
CS 506 Software Engineering 3
CS 513 Numerical Linear Algebra 3
CS 514 Numerical Analysis 3
CS 515 Introduction to Splines and Wavelets 3
CS 520 Introduction to Theory of Computing 3
CS 524 Introduction to Optimization 3
CS 525 Linear Programming Methods 3
CS 526 Advanced Linear Programming 4 (Undergrad) / 3 (Grad)
CS 532 Theory and Applications of Pattern Recognition 3
CS 533 Image Processing 3
CS 534 Computational Photography 3
CS 536 Introduction to Programming Languages and Compilers 3
CS 537 Introduction to Operating Systems 4 (Undergrad) / 3 (Grad)
CS 538 Introduction to the Theory and Design of Programming Languages 3
CS 539 Introduction to Artificial Neural Networks and Fuzzy Systems 3
CS 540 Introduction to Artificial Intelligence 3
CS 545 Natural Language and the Computer 3
CS 547 Computer Systems Modeling Fundamentals 3
CS 552 Introduction to Computer Architecture 3
CS 558 Introduction to Computational Geometry 3
CS 559 Computer Graphics 3
CS 564 Database Management Systems: Design and Implementation 4 (Undergrad) / 3 (Grad)
CS 567 Medical Image Analysis 3
CS 570 Introduction to Human-Computer Interaction 4
CS 576 Introduction to Bioinformatics 3
CS 577 Introduction to Algorithms 3
CS 578 Contest-Level Programming 1
CS 579 Virtual Reality 3
CS 635 Tools and Environments for Optimization 3
CS 638 Undergraduate Topics in Computing 1-3
CS 640 Introduction to Computer Networks 3
CS 642 Introduction to Information Security 3
CS 679 Computer Game Technology 3
CS 681 Senior Honors Thesis (681) 3
CS 682 Senior Honors Thesis (682) 3
CS 691 Senior Thesis (691) 2-3
CS 692 Senior Thesis (692) 2-3
CS 699 Directed Study 1-6
CS 701 Construction of Compilers 3
CS 703 Advanced Topics in Programming Languages and Compilers 3
CS 704 Principles of Programming Languages 3
CS 706 Analysis of Software Artifacts 3
CS 707 Mobile and Wireless Networking 3
CS 710 Computational Complexity 3
CS 714 Methods of Computational Mathematics I 3
CS 715 Methods of Computational Mathematics II 3
CS 717 Numerical Functional Analysis 3
CS 719 Stochastic Programming 3
CS 720 Integer Programming 3
CS 723 Dynamic Programming and Associated Topics 3
CS 726 Nonlinear Optimization I 3
CS 727 Convex Analysis 3
CS 728 Integer Optimization 3
CS 730 Nonlinear Optimization II 3
CS 731 Advanced Artificial Intelligence 3
CS 733 Computational Methods for Large Sparse Systems 3
CS 736 Advanced Operating Systems 3
CS 737 Computer System Performance Evaluation and Modeling 3
CS 739 Distributed Systems 3
CS 740 Advanced Computer Networks 3
CS 747 Advanced Computer Systems Analysis Techniques 3
CS 750 Real-Time Computing Systems 3
CS 752 Advanced Computer Architecture I 3
CS 753 Fault-Tolerant Computing 3
CS 755 VLSI Systems Design 3
CS 756 Computer-Aided Design for VLSI 3
CS 757 Advanced Computer Architecture II 3
CS 758 Advanced Topics in Computer Architecture 3
CS 759 High Performance Computing for Applications in Engineering 3
CS 760 Machine Learning 3
CS 761 Advanced Machine Learning 3
CS 764 Topics in Database Management Systems 3
CS 765 Data Visualization 3
CS 766 Computer Vision 3
CS 767 Computational Methods for Medical Image Analysis 3
CS 769 Advanced Natural Language Processing 3
CS 770 Human-Computer Interaction 3
CS 776 Advanced Bioinformatics 3
CS 777 Computer Animation 3
CS 779 Rendering Images with Computers 3
CS 780 Robot Motion Planning 3
CS 784 Foundations of Data Management 3
CS 787 Advanced Algorithms and Data Structures 3
CS 790 Master’s Thesis 1-9
CS 799 Master’s Research 1-9
CS 809 Mathematical Techniques for Analysis of Algorithms 3
CS 812 Arithmetic Algorithms 3
CS 830 Randomness in Computation 3
CS 837 Topics in Numerical Analysis 3
CS 838 Topics in Computing 3
CS 841 Computational Cognitive Science 3
CS 880 Topics in Theoretical Computer Science 3
CS 887 Approximation Theory 3
CS 899 Pre-Dissertator Research 1-9
CS 900 Advanced Seminar in Computer Science 0-1
CS 915 Computation and Informatics in Biology and Medicine 1
CS 990 Dissertation 1-6
CS 999 Dissertator Research 1-6