Computer Science Courses

Computer Science (CSC) courses

  • 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