Computer Science Courses

Computer Science (CSC) courses

  • CSC 111 Introduction to Computing

    Prerequisite: eligible for MTH 261.

    An introduction to computer hardware, software, and network resources. Spreadsheets and computer-based mathematical software will be emphasized. Students will write programs and create computational models to analyze data and make written and oral presentations describing conclusions drawn from their analyses.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 121 Introduction to BASIC Programming

    Problem solving with computers, analysis of computational problems and development of algorithms for their solution. Algorithms will be implemented in the BASIC language utilizing personal computers.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 125 Introduction to C++ Programming

    Programming and problem-solving using C++. Topics will include data representation and data types, logic and control flow, selection, loops, and functions, etc. Techniques of object-oriented programming are introduced. Concurrent enrollment in MTH 136 or MTH 137 or MTH 138 is strongly suggested for Computer Science majors or minors.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    432Fall, Spring
  • CSC 130 The World of Computer Science

    An introduction to programming and computer science. Topics will include data representation, algorithm design, and software development. Students will learn a high level language and use it to write programs. Suitable for non-majors who want to learn about programming and computer science. Concurrent enrollment in MTH 136 or MTH 137 or MTH 138 is strongly suggested for Computer Science majors or minors.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 131 Computational Thinking

    Prerequisite: C grade or better in CSC 130; and MTH 137 or MTH 138 or concurrent enrollment.

    Solving problems using computation and implementing solutions in a high-level programming language with emphasis on higher order functions, recursion, object-oriented programming and GUI development. The course continues with Python from CSC 130 before transitioning to C++. The basic constructs of C++ including data types, I/O, control statements, arrays, and pointers are covered.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    432Fall, Spring
  • CSC 197 Introductory Topics in Computer Science

    Variable content course with topics that can change from semester to semester. Topics will be identified by title in the schedule of classes. The course may be repeated if a different topic is offered, however, no more than six credits may count toward any degree.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-3Upon demand
  • CSC 210 Public Affairs Issues in Computing

    An introduction to public affairs issues in computing. Topics include civic applications, public sources of data, data and computer system security, opportunities and dangers of artificial intelligence and data mining, social media and computer mediated collaboration, and cultural factors in the internationalization of software. Student will design a civic application or system intended to serve the public good.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 226 Special Languages

    Study of computer languages and their use in particular application domains.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 232 Data Structures

    Prerequisite: C grade or better in CSC 131; and MTH 261 or MTH 314 or MTH 315 or concurrent enrollment.

    A continuation of CSC 131. Topics will include: algorithm design; complexity analysis; abstract data types and encapsulation; basic data structures and their application, including stacks, queues, linked lists and binary trees; dynamic memory allocation; recursion; sorting and searching; debugging techniques.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    432Fall, Spring
  • CSC 244 Computer Architecture

    Prerequisite: CSC 131.

    An overview of computer architecture, which stresses the underlying design principles and the impact of these principles on computer performance. General topics include digital logic circuits, digital components, data representation, basic computer organization, processor design, control design, pipelining, vector processing, input-output organization, and memory organization.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 300 Service-Learning in Computer Science

    Prerequisite: 30 hours and concurrent registration in a Computer Science course designated as a service-learning offering.

    This service component for an existing course incorporates community service with classroom instruction in Computer Science to provide an integrative learning experience that addresses the practice of citizenship and promotes an awareness of and participation in public affairs. Includes 40 hours of service that benefits an external community organization, agency, or public service provider. Approved service placements and assignments will vary depending on the specific course topic and learning objectives; a list of approved placements and assignments is available from the instructor and the Citizenship and Service-Learning Office. May be repeated.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1Upon demand
  • CSC 301 Introduction to Video Game Design

    Prerequisite: 30 hours; and eligible for Writing II; and permission of instructor.

    An introduction to the main elements of video game design (including setting, story, goals, narrative, mechanics, and level design) and the structure and responsibilities of a game development team. The emphasis will be on game designs that could be implemented by a small team within one year. Students will design a game and create a design document. Does not count towards a Computer Science major. Identical with ART 301. Cannot receive credit for both CSC 301 and ART 301.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    110Upon demand
  • CSC 303 Introductory Video Game Development for Designers and Programmers

    Prerequisite: ART/CSC 301; and either CSC 232 or MED 290.

    Hands-on introduction to video game development software, emphasizing level design, placement of art assets, lighting, and scripting. Students may collaborate with ART 302 students to experience industry-typical workflow between designers, artists and programmers. Does not count towards a Computer Science major.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    102Upon demand
  • CSC 325 Algorithms and Advanced Data Structures

    Prerequisite: C grade or better in CSC 232; and MTH 314 or MTH 315.

    A study of algorithms and advanced data structures including graphs, heaps, hashing, self-adjusting data structures, set representations, greedy algorithms, dynamic programming and introduction to NP-complete problems. The course emphasizes on the study of efficiency and algorithm analysis. May be taught concurrently with CSC 611. Cannot receive credit for both CSC 325 and CSC 611.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 330 Introduction to Data Science

    Prerequisite: CSC 131.

    An introduction to software and techniques used in data science. Topics will include sources of data, data preparation, data analysis, use of software tools, development of data analysis software, and ethical and legal considerations. May be taught concurrently with CSC 630. Cannot receive credit for both CSC 330 and CSC 630.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 333 Languages and Machines

    Prerequisite: C grade or better in CSC 232; and MTH 314 or MTH 315.

    A study of two classes of languages: formal languages (regular, context-free, and computable) and their associated machines (finite automata, pushdown automata, and Turing machines). Other topics include programming languages, focusing on the essential features of imperative, functional, object-oriented, and logic programming languages, together with their design and implementation on modern computers.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    220Fall, Spring
  • CSC 335 Database System Concepts

    Prerequisite: C grade or better in CSC 121 or CSC 125 or CSC 131; and MTH 314 or MTH 315.

    A study of modern database systems and their underlying concepts. Core topics include the relational model, SQL, database design theory, query processing, file structures, transactions, and concurrency. Programming projects provide practical experience in developing GUI database applications. Public Affairs Capstone Experience course. May be taught concurrently with CSC 612. Cannot receive credit for both CSC 335 and CSC 612.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 344 Computer Systems Fundamentals

    Prerequisite CSC 232. An integrated introduction to computer systems fundamentals. Topics include computer architecture and major components, operating system concepts and implementation techniques (processes, threads, memory management, and distributed systems), and network theory, concepts and techniques. May be taught concurrently with CSC 613. Cannot receive credit for both CSC 344 and CSC 613.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 360 Operating Systems

    Prerequisite: C grade or better in CSC 232 and CSC 244.

    Introduction to operating systems concepts, principles, and design. Topics include: processes, threads, CPU scheduling, mutual exclusion, process synchronization, deadlocks, memory management, file systems, i/o systems, disk management, distributed systems, security and protection. May be taught concurrently with CSC 660. Cannot receive credit for both CSC 360 and CSC 660.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 365 Internet Programming

    Prerequisite: C grade or better in CSC 121 or CSC 125 or CSC 131.

    An introduction to paradigms and languages used in internet and World Wide Web programming. These include modern tools for client-side and server-side programming and dynamic Web page generation. Advanced topics, such as security and XML, will be covered as time allows. Public Affairs Capstone Experience course.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 388 Introduction to Secure Computing

    Prerequisite: CSC 232.

    This course provides an introduction to the general principles of secure computing and computer security. Students will learn about common threat types and cyber attacks including malware, denial-of-service, spoofing, and phishing as well as fundamental building blocks of secure computing systems such as authentication, encryption, and digital signatures.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 399 Cooperative Education in Computer Science

    Prerequisite: permission of department head.

    The opportunity to earn academic credit in a planned learning process that integrates academic training with a supervised work experience. Variable content course. May be repeated to a maximum of six hours. Does not count toward a Computer Science minor.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-3Upon demand
  • CSC 421 Numerical Analysis I

    Prerequisite: MTH 280.

    Recommended Prerequisite: CSC 125 or CSC 131. Solution of systems of linear and nonlinear equations, interpolation, integration, approximation, matrix computations. Problem solution will include the use of software. Identical with MTH 421. Cannot receive credit for both CSC 421 and MTH 421.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 422 Numerical Analysis II

    Prerequisite: MTH 303 and MTH 421.

    Solution of initial and boundary value problems in ordinary and partial differential equations, simulation, and optimization. Problem solution will include the use of software. Identical with MTH 422. Cannot receive credit for both CSC 422 and MTH 422.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 423 Digital Simulation

    Prerequisite: CSC 232 and either MTH 345 or MTH 540.

    The study of simulation techniques. Topics will include: probability distributions, statistical testing, random number generators, design of simulation experiments, language structures for simulation, and study of a simulation language.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 450 Introduction to Software Engineering

    Prerequisite: any two courses from CSC 325, CSC 335, and CSC 360.

    This course provides students with a capstone project experience. Focus will be on the software engineering concepts including requirements gathering and analysis, software architecture and design, testing, and basic project management. A semester-long group project will require application of the software engineering concepts from requirements gathering to deployment and evaluation. Successful completion of the computer science major field test (MFT) with at least a score of 145 for Computer Science/Computer Science option and 140 for Computer Science/Software Development option is required for passing the course.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    440Fall, Spring
  • CSC 455 Software Quality Assurance and Project Management

    Prerequisite: CSC 232.

    A broad coverage of software quality and testing including quality assurance, inspections and reviews, software validation and verification, various testing techniques, and related tools. Other topics are essential software project planning steps, cost estimation, productivity metrics, release and configuration management concepts. May be taught concurrently with CSC 655. Cannot receive credit for both CSC 455 and CSC 655.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall
  • CSC 482 Seminar in Computer Science

    Prerequisite: 60 hours.

    This course focuses on professional development skills, including resume development, interviewing, and presentations. Case studies in ethics and steps for ethical decision making will be introduced. Public Affairs Capstone Experience course.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    110Fall, Spring
  • CSC 500 Hardware, Software, and Troubleshooting Personal Computers

    An introduction to the installation, maintenance, troubleshooting, upgrading, simple repair, and management of personal computers found in educational settings. This course will provide numerous laboratory experiences providing hands-on experience with the goal of enabling students to support personal computer laboratories found in PK-12 schools. This course cannot be taken for credit toward a computer science major or minor. May be taught concurrently with CSC 600. Cannot receive credit for both CSC 500 and CSC 600.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    322Upon demand
  • CSC 505 Web-Based Resources in Educational Settings

    An introduction to the design, implementation, and management of World Wide Web resources over the internet and intranet networks. Topics include Internet overview, web authoring, web programming, server setting and maintenance. The objective of the course is to know tools (HTML, JavaScript, and Java applets, and Internet Server software, and Navigator/Internet Explorer software packages), and their applicability in WWW design and management in PK-12 school settings. This course cannot be taken for credit toward a computer science major or minor. May be taught concurrently with CSC 605. Cannot receive credit for both CSC 505 and CSC 605.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    220Upon demand
  • CSC 510 Networking and Telecommunications in Educational Settings

    An introduction to networking and data communications from an educator's perspective. The course will examine the necessary computer hardware, software, and personnel resources relevant to networking and data communication requirements in various educational settings. Local Area Networks, Wide Area Networks, Network Interconnections, and the internet will be addressed. This course cannot be taken for credit toward a computer science major or minor. May be taught concurrently with CSC 610. Cannot receive credit for both CSC 510 and CSC 610.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    220Upon demand
  • CSC 515 Advanced Internet Programming

    Prerequisite: CSC 365.

    A continuation of CSC 365. Topics include HTML as a semantic language, advanced CSS techniques, the DOM event model, asynchronous JavaScript, user input validation, utilizing 3rd party APIs, authentication over HTTP and high performance site design (including request minification and compression). Security principles will be reinforced throughout the course. May be taught concurrently with CSC 615. Cannot receive credit for both CSC 515 and CSC 615.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Spring
  • CSC 521 Compiler Construction

    Prerequisite: CSC 333.

    Topics include lexical analysis, parsing, symbol tables, type checking, run-time organization, code generation, basic code optimization, and the use of compiler development tools. The student must write a complete compiler for a small imperative programming language. May be taught concurrently with CSC 621. Cannot receive credit for both CSC 521 and CSC 621.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    432Upon demand
  • CSC 525 Computer Graphics

    Prerequisite: CSC 232 and either MTH 314 or MTH 315.

    An introduction to two-dimensional and three-dimensional computer rendering. Topics will include computer graphics API's, techniques and algorithms for object modeling, viewing, transformations, and event-driven programming. May be taught concurrently with CSC 625. Cannot receive credit for both CSC 525 and CSC 625.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall
  • CSC 526 Methods of Optimization

    Prerequisite: CSC 421 or MTH 421; and MTH 314 or MTH 315.

    Convex sets, classical optimization of functions, constrained optimization, search techniques, linear and nonlinear optimization, applications to applied problems. May be taught concurrently with CSC 626. Cannot receive credit for both CSC 526 and CSC 626.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 535 Data Mining

    Prerequisite: CSC 232.

    Introduction to the basic concepts of data mining including data preprocessing, classification, clustering and association rules mining. The focus will be on understanding the algorithms underlying data mining and on the practical use of those algorithms. May be taught concurrently with CSC 635. Cannot receive credit for both CSC 535 and CSC 635.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 538 Parallel and Distributed Computing

    Prerequisite: CSC 360.

    Introduction to parallel and distributed computing through algorithms, strategies for problem decomposition, system architecture, implementation strategies, and performance analysis. In this course, students will have the opportunity to write parallel or distributed programs and applications in several contexts such as multithreaded programming, general purpose computing on a graphics processing unit, and MPI programming.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 540 Introduction to Artificial Intelligence

    Prerequisite: CSC 325.

    Modern techniques for the implementation of goal-directed behavior in intelligent systems, including knowledge representation, search, perception, reasoning, and learning. May be taught concurrently with CSC 640. Cannot receive credit for both CSC 540 and CSC 640.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Spring
  • CSC 545 Computer Speech, Music and Images

    Prerequisite: CSC 232.

    This is an applied course focusing on the technical aspects of computer-based multimedia-speech, music, audio, and video. In any given semester, the focus may be more on audio or image processing, or it may be equally balanced between the two. Topics include multimedia data capture and representation, methods of data compression, multimedia information retrieval, and multimedia standards. May be taught concurrently with CSC 645. Cannot receive credit for both CSC 545 and CSC 645.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 565 Computer Networks

    Prerequisite: CSC 360.

    An introduction to the theory, concepts and techniques upon which modern computer networks are based. The emphasis will be on layered network architectures, the design frameworks for both local and wide area networks and communication protocols. May be taught concurrently with CSC 665. Cannot receive credit for both CSC 565 and CSC 665.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall
  • CSC 567 Mobile Computing Applications

    Prerequisite: CSC 232.

    An introduction to the design, development, and publication of software applications for mobile devices. Course topics will include design and creation of basic and advanced applications, use of an integrated development environment, performance and security issues, and application packaging and distribution mechanisms. May be taught concurrently with CSC 667. Cannot receive credit or both CSC 567 and CSC 667.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Spring
  • CSC 587 Computing for Bioinformatics

    Prerequisite: any one of CSC 121, CSC 125, CSC 131, CSC 232, BMS 231, BIO 235, or CHM 350.

    This course focuses on computational techniques used in bioinformatics. Topics will include nucleotide and amino acid data representation, sequence alignment, coding sequence prediction, and use of statistical models. Students will learn to use bioinformatics libraries with a script language such as Python or Perl. May be taught concurrently with CSC 687. Cannot receive credit for both CSC 587 and CSC 687.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 590 Advanced Topics in Computer Science

    Prerequisite: CSC 232.

    Variable content course with topics in the field of Computer Science. Topics may be identified by title in the schedule of classes. May be repeated if a different topic is offered. May be taught concurrently with CSC 690. Cannot receive credit for both CSC 590 and CSC 690.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-4Upon demand
  • CSC 596 Special Readings

    Prerequisite: permission of department head.

    Directed study with a faculty member. Periodic conferences with the faculty member are required. A maximum of three credit hours may count towards any degree option. May be taught concurrently with CSC 696. Cannot receive credit for both CSC 596 and CSC 696.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-3Upon demand
  • CSC 600 Hardware, Software, and Troubleshooting Personal Computers

    An introduction to the installation, maintenance, troubleshooting, upgrading, simple repair, and management of personal computers found in educational settings. This course will provide numerous laboratory experiences providing hands-on experience with the goal of enabling students to support personal computer laboratories found in PK-12 schools. May be taught concurrently with CSC 500. Cannot receive credit for both CSC 500 and CSC 600.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    322Upon demand
  • CSC 605 Web-Based Resources in Educational Settings

    An introduction to the design, implementation, and management of World Wide Web resources over the internet and intranet networks. Topics include Internet overview, web authoring, web programming, server setting and maintenance. The objective of the course is to know tools (HTML, JavaScript, and Java applets, and Internet Server software, and Navigator/Internet Explorer software packages), and their applicability in WWW design and management in PK-12 school settings. May be taught concurrently with CSC 505. Cannot receive credit for both CSC 505 and CSC 605.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    220Upon demand
  • CSC 610 Networking and Telecommunications in Educational Settings

    An introduction to networking and data communications from an educator's perspective. The course will examine the necessary computer hardware, software, and personnel resources relevant to networking and data communication requirements in various educational settings. Local Area Networks, Wide Area Networks, Network Interconnections, and the internet will be addressed. May be taught concurrently with CSC 510. Cannot receive credit for both CSC 510 and CSC 610.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    220Upon demand
  • CSC 611 Algorithms and Advanced Data Structures

    A study of algorithms and advanced data structures including graphs, heaps, hashing, self-adjusting data structures, set representations, greedy algorithms, dynamic programming and introduction to NP-complete problems. The course emphasizes on the study of efficiency and algorithm analysis. May be taught concurrently with CSC 325. Cannot receive credit for both CSC 325 and CSC 611.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 612 Advanced Database System Concepts

    A study of modern database systems and their underlying concepts. Core topics include the relational model, SQL, database design theory, query processing, file structures, transactions, and concurrency. Programming projects provide practical experience in developing GUI database applications. May be taught concurrently with CSC 335. Cannot receive credit for both CSC 335 and CSC 612.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 613 Computer Systems Fundamentals

    An integrated introduction to computer systems fundamentals. Topics include computer architecture and major components, operating system concepts and implementation techniques (processes, threads, memory management, and distributed systems), and network theory, concepts and techniques. May be taught concurrently with CSC 344. Cannot receive credit for both CSC 344 and CSC 613.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 615 Advanced Internet Programming

    Topics include HTML as a semantic language, advanced CSS techniques, the DOM event model, asynchronous JavaScript, user input validation, utilizing 3rd party APIs, authentication over HTTP and high performance site design (including request minification and compression). Security principles will be reinforced throughout the course. May be taught concurrently with CSC 515. Cannot receive credit for both CSC 515 and CSC 615.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Spring
  • CSC 621 Compiler Construction

    Topics include lexical analysis, parsing, symbol tables, type checking, run-time organization, code generation, basic code optimization, and the use of compiler development tools. The student must write a complete compiler for a small imperative programming language. May be taught concurrently with CSC 521. Cannot receive credit for both CSC 521 and CSC 621.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    432Upon demand
  • CSC 625 Computer Graphics

    An introduction to two-dimensional and three-dimensional computer rendering. Topics will include computer graphics API's, techniques and algorithms for object modeling, viewing, transformations, and event-driven programming. May be taught concurrently with CSC 525. Cannot receive credit for both CSC 525 and CSC 625.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 626 Methods of Optimization

    Convex sets, classical optimization of functions, constrained optimization, search techniques, linear and nonlinear optimization, applications to applied problems. May be taught concurrently with CSC 526. Cannot receive credit for both CSC 526 and CSC 626.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 630 Introduction to Data Science

    Prerequisite: admission to a Computer Science graduate program or permission.

    An introduction to software and techniques used in data science. Topics will include sources of data, data preparation, data analysis, use of software tools, development of data analysis software, and ethical and legal considerations. May be taught concurrently with CSC 330. Cannot receive credit for both CSC 330 and CSC 630.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 635 Data Mining

    Recommended Prerequisite: equivalent of CSC 232. Introduction to the basic concepts of data mining including data preprocessing, classification, clustering and association rules mining. The focus will be on understanding the algorithms underlying data mining and on the practical use of those algorithms. May be taught concurrently with CSC 535. Cannot receive credit for both CSC 535 and CSC 635.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 640 Introduction to Artificial Intelligence

    Recommended Prerequisite: equivalent of CSC 325. Modern techniques for the implementation of goal-directed behavior in intelligent systems, including knowledge representation, search, perception, reasoning, and learning. May be taught concurrently with CSC 540. Cannot receive credit for both CSC 540 and CSC 640.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 645 Computer Speech, Music and Images

    This is an applied course focusing on the technical aspects of computer-based multimedia-speech, music, audio, and video. In any given semester, the focus may be more on audio or image processing, or it may be equally balanced between the two. Topics include multimedia data capture and representation, methods of data compression, multimedia information retrieval, and multimedia standards. May be taught concurrently with CSC 545. Cannot receive credit for both CSC 545 and CSC 645.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 655 Software Quality Assurance and Project Management

    A broad coverage of software quality and testing including quality assurance, inspections and reviews, software validation and verification, various testing techniques, and related tools. Other topics are essential software project planning steps, cost estimation, productivity metrics, release and configuration management concepts. May be taught concurrently with CSC 455. Cannot receive credit for both CSC 455 and CSC 655.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 660 Operating Systems

    Introduction to operating systems concepts, principles, and design. Topics include: processes, threads, CPU scheduling, mutual exclusion, process synchronization, deadlocks, memory management, file systems, i/o systems, disk management, distributed systems, security and protection. May be taught concurrently with CSC 360. Cannot receive credit for both CSC 360 and CSC 660.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall, Spring
  • CSC 665 Computer Networks

    An introduction to the theory, concepts and techniques upon which modern computer networks are based. The emphasis will be on layered network architectures, the design frameworks for both local and wide area networks and communication protocols. May be taught concurrently with CSC 565. Cannot receive credit for both CSC 565 and CSC 665.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 667 Mobile Computing Applications

    An introduction to the design, development, and publication of software applications for mobile devices. Course topics will include design and creation of basic and advanced applications, use of an integrated development environment, performance and security issues, and application packaging and distribution mechanisms. May be taught concurrently with CSC 567. Cannot receive credit or both CSC 567 and CSC 667.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 687 Computing for Bioinformatics

    This course focuses on computational techniques used in bioinformatics. Topics will include nucleotide and amino acid data representation, sequence alignment, coding sequence prediction, and use of statistical models. Students will learn to use bioinformatics libraries with a script language such as Python or Perl. May be taught concurrently with CSC 587. Cannot receive credit for both CSC 587 and CSC 687.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 690 Advanced Topics in Computer Science

    Variable content course with topics in the field of Computer Science. Topics may be identified by title in the schedule of classes. May be repeated in a different topic is offered. May be taught concurrently with CSC 590. Cannot receive credit for both CSC 590 and CSC 690.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-4Upon demand
  • CSC 696 Special Readings

    Prerequisite: permission of department head.

    Directed study with a faculty member. Periodic conferences with the faculty member are required. A maximum of three credit hours may count towards the degree. May be taught concurrently with CSC 596. Cannot receive credit for both CSC 596 and CSC 696.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-3Upon demand
  • CSC 701 Seminar I

    Computer Science literature and research methods. Students will read research literature in Computer Science and make presentations describing that research. Students will attend presentations by faculty, visitors, and other students. Graded Pass/Not Pass only.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    110Fall
  • CSC 702 Seminar II

    Prerequisite: CSC 701 or concurrent enrollment.

    Continuation of CSC 701 with a focus on tools and methods for data analysis. Students will make oral presentations that report experimental results and will attend presentations by faculty, visitors, and other students. Graded Pass/Not Pass only.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    220Spring
  • CSC 703 Research Methods

    The course will introduce the research methods, tools, ethics, and approaches. Students will become familiar with the research process, qualitative and quantitative analysis, and mixed methods approaches. Students will learn to critically review literature relevant to the Computer Science field or interest and find how their findings can be useful in their understanding of and solving real-world problems. Students will attend presentations by faculty, visitors, and other students. Students will write a research proposal and make oral presentations.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 735 Data Analytics

    Study of tools, techniques and frameworks for extracting useful information from large data. Study of machine learning algorithms for data analytics. Visual display of results.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 736 Machine Learning

    Prerequisite: CSC 325 or CSC 611 or equivalent.

    Machine learning explores the study and construction of algorithms that can learn from data. This study combines ideas from both computer science and statistics. The study of learning from data is playing an increasingly important role in numerous areas of science and technology. This course will familiarize students with several frequently used machine learning models and algorithms to attack real world problems and prepare students for research or industry application of machine learning techniques.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 737 Deep Learning

    A study of neural networks, including backpropagation, loss functions, gradient descent, convolutional neural networks, recurrent neural networks, regularization techniques, network architectures, transfer learning, generative models.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 742 Evolutionary Computing

    Principles and applications of programs inspired by biological principles. Genetic algorithms and their use in search and optimization. Problem representation, operators, and control. Artificial life and the use of evolutionary computation in robotics.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 745 Advanced Multimedia Programming

    Advanced aspects of computer-based multimedia. Topics may differ from semester to semester but will be chosen from computer vision, speech recognition, gesture recognition, image and audio signal processing, data visualization, and multimedia information retrieval.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall
  • CSC 746 Human Computer Interaction

    Research and practice in Human-Computer interaction (HCI). Impact of human perception and cognition on user interface design. Tools for building graphical user interfaces (GUIs) and multimodal user interfaces incorporating speech and gesture. Research methods.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Fall
  • CSC 747 Multimedia Communications

    This course introduces fundamental technologies for multimedia coding, processing, and communications. Emphasis will be given on content representation, delivery over a variety of networks, and various applications including compression, adaptation, and authentication.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 750 Advanced Topics in Software Engineering

    This course will provide understanding and knowledge of the software engineering techniques and practices, and CASE tools to build modern software products and services. Focus will be on strengthening students programming knowledge by extending it with specific techniques for software requirements gathering and analysis, software architecture and design, testing, and basic project management. Students will also familiarize themselves with the recent advances in software engineering techniques, investigate any associated challenges and outstanding problems, and perform graduate-level research for potential solutions to those challenges and problems. A group project will require the application of the software engineering concepts from requirements gathering to deployment and evaluation.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 755 Software Testing and Quality Assurance

    Various topics in software testing and quality assurance concepts will be covered including inspections and reviews, validation and verification, testing techniques, and related tools. Selective software project planning steps, cost estimation, productivity metrics, as well as release and configuration management concepts will be also covered. Cannot receive credit for both CSC 455 and CSC 755.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 765 Ubiquitous Computing and Internet of Things

    Prerequisite: CSC 565 or CSC 665 or equivalent course or background approved by the instructor.

    An introduction to some of the fundamental concepts and state-of-the-art research in the areas of ubiquitous computing (UbiComp). A significant portion of the course will cover the Internet of Things (IoT). Less emphasis will be given to the hardware and device level details. The major focus of this course is Internet Evolution and Wireless Technologies, Location Services in UbiComp, context-aware computing, privacy and security, wearable computing, mobile OS, IoT and data analytics, cloud computing. Students will learn to carry out research in UbiComp and IoT.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    330Upon demand
  • CSC 790 Graduate Topics in Computer Science

    Variable content course with topics that can change from semester to semester. Topics may be identified by title in the class schedule. May be repeated if a different topic is offered.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-4Upon demand
  • CSC 796 Science Internship

    Completion of an internship project (480 hours) at a discipline-related business, nonprofit organization, or government agency, approved and supervised by both the departmental and internship advisors. Includes a formal report in the appropriate professional format, and an oral presentation at an approved venue. Graded Pass/Not Pass only. No more than 6 hours may count toward a master's degree.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-6Fall, Spring, Summer
  • CSC 798 Graduate Project in Computer Science

    Prerequisite: permission of department head.

    Students will complete and present a supervised graduate research or development project in Computer Science. Tentative tasks and semester-end outcomes must be prepared in consultation with the supervising faculty within the first week of the semester. May be repeated, but no more than six hours may count towards the degree program.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-3Fall, Spring, Summer
  • CSC 799 Thesis

    Prerequisite: permission of instructor.

    Independent research leading to writing and defending a successful thesis in Computer Science. Students will conduct research, analyze, interpret, apply, and disseminate the findings. A thesis proposal must be successfully defended after the completion of no more than three hours of thesis work. No more than six hours may count toward the degree program.

    Credit hoursLecture contact hoursLab contact hoursTypically offered
    1-6Fall, Spring, Summer