CSC 1010 Computers and Applications
Credit Hours 3.0
Prerequisites high school Algebra II
Description

History of computers, hardware components, operating systems, application software, data communication.

CSC 2010 An introduction to the discipline of computer science
Credit Hours 3.0
Prerequisites Major in Computer Science, Mathematics & Statistics, or Physics
Description

An introduction to the discipline of computer science. Computer programming is the primary focus of the course, with secondary focus on a breadth of computer science topics. These topics include algorithmic foundations, hardware concepts, virtual machine concepts, software systems, applications, and social issues.

CSC 2301 Computer Programming for Non-Majors
Credit Hours 3.0
Description

This class introduces students to computer programming. No prior programming experience is required. The class emphasizes design principles (e.g., pseudocode, stepwise refinement, object-oriented design as well as the syntax and semantics of an appropriate language. This class is for non-majors interested in obtaining some fundamental computer programming skills.

CSC 2302 Computer Programming II for Non-Majors
Credit Hours 3.0
Prerequisites CSC 2301 with a grade of "C" or better
Description

This course is the second of a two-course sequence that introduces advanced computer programming. Topics include: Object-Oriented Programming, Recursion, Graphical User Interface (GUI) development, database development, and Internet and distributed computing.

CSC 2310 Principles of Computer Programming
Credit Hours 3.0
Prerequisites CSC 2010 with grade of C or higher
Description

Fundamental principles of computer programming. Expressions, procedures, variable types, data, input/output. Emphasis on structure and clarity as well as correctness.

CSC 2320 Fundamentals of Website Development
Credit Hours 3.0
Prerequisites familiarity with basic programming language concepts
Description

This course provides a foundation for developing dynamic websites and web applications. The first part covers the front-end aspects of web development: creating, designing, and publishing content using HTML, CSS, and JavaScript. The second covers the back-end aspects: using programming languages to generate, manipulate, and manage content (CGI, cookies, server-side scripting), and accessing a database using SQL for common website tasks (forms, user registration). While this course covers web development concepts that are applicable to most popular platforms, it is significantly hands-on. A major component is a final project involving implementing a dynamic website.

CSC 2510 Theoretical Foundations of Computer Science
Credit Hours 3.0
Prerequisites CSC 2010 and (MATH 1112 or MATH 1113 or MATH 2211) with grade C or higher
Description

This course covers the basic theoretical foundations required to study various sub-disciplines in computer science. Topics include: propositional and predicate logic with applications to logic programming, database querying, and program verification; induction and its application in proving correctness and termination of programs; recurrence relations, combinatorics, and graph theory with applications to analysis of algorithms; sets, relations, and functions and their applications in databases, functional programming, and automata.

CSC 3210 Computer Organization and Programming
Credit Hours 3.0
Prerequisites CSC 2310 and CSC 2510 or MATH 2420 with grades of C or higher
Description

Computer structure and machine language, addressing techniques, macros, file I/O, program segmentation, and linkage.

CSC 3320 System-Level Programming
Credit Hours 3.0
Prerequisites CSC 2310 with grade of C or higher
Description

An introduction to programming at the level of the operating system. Topics include editors, system calls, programming tools, files, processes, interprocess communication, and shells.

CSC 3330 C++ Programming
Credit Hours 3.0
Prerequisites CSC 3320 with grade of C or higher
Description

Continuation of fundamental principles of computer programming. Topics covered include searching, sorting, and merging. Emphasis on structure and clarity as well as correctness.

CSC 3410 Data Structures-CTW
Credit Hours 3.0
Prerequisites CSC 2310, MATH 2211, and CSC 2510 or MATH 2420 with grades of C or higher
Description

Basic concepts and analysis of data representation and associated algorithms, including linearly-linked lists, multi-linked structures, trees, searching, and sorting. Serves as one of the two Critical Thinking Through Writing (CTW) courses required of all computer science majors.

CSC 4110 Introduction to Embedded Systems Laboratory
Credit Hours 4.0
Prerequisites CSC 3320 with grade of C or higher
Description

(Same as PHYS 4110.) Four lecture hours per week. Topics taken from: review of basic logic functions; automatic systems; microprocessor- based systems and applications; embedded system software survey; microprocessor-based applications; digital communications; and embedded systems programming.

CSC 4120 Introduction to Robotics
Credit Hours 4.0
Prerequisites CSC 3320 and MATH 3030 with grades of C or higher
Description

The course focuses on programming robots. We will use robotic kits for the hardware, and program them using state-of-the-art languages, such as NQC.

CSC 4210 Computer Architecture
Credit Hours 4.0
Prerequisites CSC 3210 with grade of C or higher
Description

Logic design, combinatorial and sequential circuits, input-output devices, memory, processors, controllers, parallel architectures, bit-slicing, reduced instruction sets.

CSC 4220 Computer Networks
Credit Hours 4.0
Prerequisites CSC 3320 and MATH 3030 with grades of C or higher
Description

Introduction to computer networks; details of layered network protocols with emphasis on functionality and analysis. Principles of relevant state-of-the-art network standards.

CSC 4221 Wireless Networks and Mobile Computing
Credit Hours 4.0
Prerequisites CSC 4220 with grade of C or higher, or consent of instructor
Description

Introduction to wireless communication networks and mobile computing. Topics include: wireless communications technology; communication protocols in wireless networks; representative network types such as cellular wireless networks, wireless LANs, wireless ad hoc networks and wireless sensor networks, and mobile communication systems.

CSC 4222 Introduction to Information Security
Credit Hours 4.0
Prerequisites CSC 4220 with a grade of C or higher
Description

This course provides an initial overview on the topic of Information Security. It covers the basics of encryption and decryption, program security including viruses and other malicious code, application security, security in operating systems, security in networks and distributed systems, different methods of administering security, and legal and ethical issues in computer security.

CSC 4225 Internetwork Programming
Credit Hours 4.0
Prerequisites CSC 4220 with grade of C or higher
Description

This course provides students with an understanding of the Internet and details regarding the protocols used in the Internet. The students will also learn key components of network programming using the most widely-used application program interface, sockets. Topics to be covered include: Internet Protocol (IP), Transport Layer Protocol-Transmission Control Protocol (TCP), Transport Layer Protocol-User Datagram Protocol (UDP), and Unix/Linux Network Programming.

CSC 4260 Digital Image Processing
Credit Hours 4.0
Prerequisites CSC 3410 with grade of C or higher
Description

Fundamentals of image processing, including image digitization, description, enhancement, segmentation, image transforms, filtering, restoration, coding, and retrieval. Concepts are illustrated by laboratory sessions in which these techniques are applied to practical situations, including examples from industrial and biomedical image processing.

CSC 4270 Introduction to Digital Signal Processing
Credit Hours 4.0
Prerequisites CSC 4210 with grade of C or higher
Description

This course covers the nature of information, signals, transforms, and applications. Topics include analog to digital and digital to analog conversion, data storage (such as the audio format MP3), data transforms, and filters. Applications include noise reduction, signal analysis, volume control (e.g., audio signals), and compression. We will be using computer programs to handle mathematical modeling and calculations.

CSC 4310 Parallel and Distributed Computing
Credit Hours 4.0
Prerequisites CSC 3210 and CSC 3320 with grades of C or higher
Description

Introduction to various parallel and distributed computing paradigms, algorithms, architectures, programming environments, and tools. Hands-on programming on both shared-memory and message-passing parallel architectures.

CSC 4320 Operating Systems
Credit Hours 4.0
Prerequisites CSC 3320 with grade of C or higher
Description

Introduction to operating systems concepts. Topics may include multiprogramming, resources allocation and management, and their implementation.

CSC 4330 Programming Language Concepts
Credit Hours 4.0
Prerequisites CSC 3210 and CSC 3410 with grades of C or higher
Description

Fundamental programming language concepts, including syntax versus semantics, binding time, scopes, and storage management.

CSC 4340 Introduction to Compilers
Credit Hours 4.0
Prerequisites CSC 4330 with grade of C or higher
Description

Survey of topics related to compiler design, including parsing, table processing, code generation, and optimization.

CSC 4350 Software Engineering-CTW
Credit Hours 4.0
Prerequisites CSC 3410 with grade of C or higher
Description

Techniques used in large scale scientific or technical software development, including requirements analysis, specification, systems design, implementation, testing, validation, verification, and maintenance. Serves as one of the two Critical Thinking Through Writing (CTW) courses required of all computer science majors.

CSC 4370 Web Programming
Credit Hours 4.0
Prerequisites CSC 3320 with grade of C or higher
Description

The course introduces the student to programming techniques required to develop Web applications. Topics include: HTML forms, JavaScript, Servlets and Java Server Pages, PHP and MySQL, Web access to Oracle databases, and XML.

CSC 4380 Windowing Systems Programming
Credit Hours 4.0
Prerequisites CSC 3320 with grade of C or higher
Description

Development of application software within windowed environments. Concepts of programming including graphical user interfaces, event-driven architectures, and object- oriented language programming with an application programming interface.

CSC 4510 Automata
Credit Hours 4.0
Prerequisites CSC 2510 with grade of C or higher
Description

Theory of computing devices and the languages they recognize.

CSC 4520 Design and Analysis of Algorithms
Credit Hours 4.0
Prerequisites CSC 3410 and MATH 3030 with grades of C or higher
Description

Techniques for designing efficient algorithms; analysis of algorithms; lower bound arguments; algorithms for sorting, selection, graphs, and string matching.

CSC 4610 Numerical Analysis I
Credit Hours 3.0
Prerequisites MATH 2215 with grade of C or higher and the ability to program in a high-level language
Description

(Same as MATH 4610.) Nature of error; iteration; techniques for nonlinear systems; zeros of functions; interpolation; numerical differentiation; Newton-Cotes formulae for definite integrals; computer implementation of algorithms.

CSC 4620 Numerical Analysis II
Credit Hours 3.0
Prerequisites MATH 3030 or MATH 3435 with grade of C or higher and the ability to program in a high-level language
Description

(Same as MATH 4620.) Gaussian Elimination for linear systems; least squares; Taylor, predictor-corrector and Runge-Kutta methods for solving ordinary differential equations; boundary value problems; partial differential equations.

CSC 4630 Introduction to Matlab Programming
Credit Hours 4.0
Description

This course is designed to give science majors experience with the Matlab programming language. Matlab is used for scientific applications involving images, sound, and other signals. No previous programming experience is needed.

CSC 4650 Introduction to Bioinformatics
Credit Hours 4.0
Prerequisites CSC 3410, BIOL 1103K, and CHEM 1211K with grades of C or higher
Description

The explosion in biological knowledge due to various genome projects and other high-throughput techniques has created entirely new fields and industries, and a need for trained computational biologists who are familiar with Biology, Statistics, and Computer Science. This course will introduce principles underlying current techniques in the analysis of different kinds of biological data. Topics include: sequence alignment, database searching, microarrays, structure analysis, and phylogenetic tree algorithms.

CSC 4710 Database Systems
Credit Hours 4.0
Prerequisites CSC 3410 with grade of C or higher
Description

An introduction to the fundamental concepts and principles that underlie the relational model of data. Topics include formal query languages; SQL; query optimization; relational database design theory; physical database design, integrity, security, and concurrency control.

CSC 4720 Human-Computer Interaction
Credit Hours 4.0
Prerequisites CSC 2310 with grade of C or higher
Description

Techniques and methodologies for development of user interfaces in software systems; topics include interaction styles, interaction devices, user documentation, and interface assessment.

CSC 4730 Data Visualization
Credit Hours 4.0
Prerequisites for computer science majors, CSC 2310 with grade of C or higher; for all other majors, consent of instructor
Description

Data visualization is about displaying data in visual forms such as charts, diagrams, or 3D models. This course is targeted towards students who are interested in using data visualization in their work as well as those who are interested in developing visualization systems. Topics include the theoretical basis (e.g. Gestalt theory, visual attention, visual complexity theories), visualization techniques (e.g. interactive maps, time series charts, scatterplot maps, trees, networks, graphs, etc.), and visualization tools (e.g. Google Chart Tools, Processing). Students will learn basic visualization principles, how to choose the right kind of display for specific purposes, and how to provide interactive features for the user interface.

CSC 4740 Data Mining
Credit Hours 4.0
Prerequisites CSC 3410 with grade of C or higher
Description

Introduction to basic data mining techniques (such as association rules mining, cluster analysis, and classification methods) and their applications (such as Web data mining, biomedical data mining and security).

CSC 4810 Artificial Intelligence
Credit Hours 4.0
Prerequisites CSC 3410 and CSC 4330 with grades of C or higher
Description

An overview of techniques and methodologies in the field of artificial intelligence. Topics may include search strategies, problem solving, natural language processing, logic and deduction, memory models, learning, expert systems, knowledge representation, and robotics.

CSC 4820 Interactive Computer Graphics
Credit Hours 4.0
Prerequisites CSC 2310 with grade of C or higher
Description

This course covers interactive 3D computer graphics techniques such as geometry modeling, transformation, lighting, texture mapping, graphics processing unit, shader, and user interaction.

CSC 4821 Fundamentals of Game Design
Credit Hours 4.0
Prerequisites CSC 2310 with grade of C or higher
Description

Covers major aspects of game design such as challenges, gameplay, actions, core mechanics, worlds, characters, game balancing, user interfaces, and game genres.

CSC 4840 Computer Graphics Imaging
Credit Hours 4.0
Description

(Same as GRD 4840 and FILM 4840.) Study the theories, techniques and tools for creating 3D graphics content. Topics include 3D modeling, camera, lighting, materials, texture mapping, physics based modeling, basic animation, and rendering techniques (such as tracing and radiosity).

CSC 4841 Computer Animation
Credit Hours 4.0
Description

The basics of three-dimensional computer animation including 3D modeling, lighting, texture mapping, key framing, character animation, rigid and soft body dynamics, particles, cloth, hair, fluid, etc.

CSC 4870 Honors Thesis: Research
Credit Hours 3.0
Prerequisites Good standing with the Honors College and consent of instructor
Description

Readings or research preparatory to honors thesis or project. This course may include a Signature Experience component.

CSC 4880 Honors Thesis: Writing
Credit Hours 3.0
Prerequisites CSC 4870 with grade of C or higher, good standing with the Honors College and consent of instructor
Description

Writing or production of honors thesis or project. This course may include a Signature Experience component.

CSC 4920 Senior Project I
Credit Hours 2.0
Prerequisites CSC 3320, CSC 4210, and CSC 4350 with grades of C or higher
Description

Consent of instructor may override the prerequisites in special circumstances. This course is meant to be the first part of two senior project classes. Students who enroll in this class are expected to enroll in the second part the following semester. Students will work as a team on a project, including planning the project, assigning roles, creating a time-line, literature research, acquiring equipment, and hardware and/or software design.

CSC 4921 Senior Project II
Credit Hours 2.0
Prerequisites CSC 4920 with grade of C or higher
Description

CSC 4921 consists of finishing the project from CSC 4920, followed by testing, revision, improvements, and further documentation. At the end of the semester, the team will turn in a comprehensive report detailing the project, its progress, evaluation, results, interpretation of the results, and conclusions. This report may be twice the size of the previous semester’s report, since it will likely include much of the first report. Also, the team is expected to explain and demonstrate the project.

CSC 4940 Computer Science Internship
Credit Hours 1.0 TO 4.0
Description

This course will require students to document and present the project they worked on during their internship. Students are able to register for the course at most 2 times for a maximum total of 4 credit hours to count towards their degree. This course may include a Signature Experience component.

CSC 4982 Undergraduate Research in Computer Science
Credit Hours 3.0
Prerequisites at least 12 upper-division hours in computer science
Description

Authorization required.
Independent investigation of topics of common interest to student and instructor. This course may include a Signature Experience component.

CSC 4995 Directed Readings B.I.S.-CTW
Credit Hours 3.0 TO 4.0
Description

Directed Readings designed for Bachelor of Interdisciplinary Studies students. This course may satisfy the junior and/or senior-level Critical Thinking Through Writing requirements.

CSC 4998 Selected Topics
Credit Hours 1.0 TO 3.0
Prerequisites consent of instructor
Description

No more than six credit hours may be applied toward the major. May be repeated if topics are different.