Know what to expect in class before you even sign up. Check out the course description to see a snapshot of what you'll learn, any required prerequisite classes and more. You can also see course descriptions by logging in to your Ramlink account. Start planning your next semester today.
Prerequisite: Completion of, or concurrent enrollment in, MAT 0301 or higher. Introduction to computer science. Topics include problem solving and software development principles including problem decomposition, abstraction, date structures, algorithm design and analysis, debugging, and testing; computer architecture including low-level data representation and instruction processing; computer systems including programming languages, compilers, operating systems; real-world application including networks, security and cryptography, artificial intelligence, and social issues.
Prerequisite: MAT 1302 (or higher-level mathematics with MAT 1302 prerequisite). A study of problem-solving techniques, algorithms, object-oriented principles, and programming using C++. Includes an introduction to computer history, hardware and systems software, software engineering and modular programming methods, control structures, data types, arrays, and files.
Prerequisite: CSC 1321 (with grade of C or better). Advanced features of C++ programming language will be studied. Topics include operator overloading and templates; pointer and dynamic memory; container; inheritance and virtual functions. Object-oriented analysis and design is also covered.
Prerequisite: CSC 1321 (with grade of C or better). Representation of data, base conversions, CPU organization, addressing, relocatability, interpretation of program listings and dumps, indexing, looping, branching, subroutines, and linkages.
Prerequisite: CSC 1322 and CSC 1330 or consent of instructor. An introduction to computer structure and organization. Topics include fundamentals of digital logic; logic modules and design (CPU, memory, and I/O units); instruction sets; data path and control; pipelining; registers and addressing modes; Von Neumann, parallel, and other non-traditional machine organizations. An introduction to machine microcode programming is also covered.
Prerequisite: CSC 1322. An introduction to abstract data types, algorithms and computational complexity, and implementation of data types and algorithms in programs. Data types include arrays, stacks, queues, linked lists, trees, and graphs. Sorting and searching algorithms.
Prerequisite: CSC 1322 or consent of instructor. A study of object-oriented design and programming using one or more OO programming languages, such as C++ and Java. An introduction to the Unified Modeling Language (UML) for object-oriented modeling and implementation of significant programming projects. Emphasis is placed on object-oriented techniques and applications.
Prerequisite: CSC 2320, CSC 2340. Syntactic and semantic of programming languages, programming language structures, data types, control structures, operators, language extendibility, comparison of the structure features, compile and run-time characteristics of imperative, object-oriented, functional, and declarative programming languages.
Prerequisite: CSC 2320 and MAT 3381. Introduce formal techniques to support the design and analysis of algorithms, focusing on both the underlying mathematical theory and practical considerations of efficiency. Topics include computational complexity analysis, NP-completeness theory, sorting and searching, graphs, polynomial arithmetic, pattern matching, divide-conquer techniques, greedy methods, and dynamic programming.
Prerequisite: CSC 2320 and MAT 3381 or concurrent enrollment. Study of the structure and design of operating systems, including memory management, concurrency, file systems, resource scheduling and synchronization.
Prerequisite: Any 3000 or 4000 level CSC course or consent of instructor. A study of database design and management focusing on the relational model. Topics include data modeling, data definition, data manipulation, normalization, query optimization, and data integrity.
Prerequisite: CSC 2320. The hardware and software components of graphics systems. Algorithms for creating and manipulating graphics displays, implementation techniques, and applications.
Prerequisite: CSC 2310 and CSC 3391. Introduces the networking of computer systems. Topics include local area (LAN) and wide area (WAN) networks, data transmission, communications software, the architecture of networks, network communication protocols, and network security.
Prerequisites: CSC 1321 and MAT 1325 Topics include techniques for finding roots, Interpolation, functional approximation, numerical differentiation, numerical integration, solutions of linear systems and numerical solution of differential equations.
Prerequisites: CSC 2320 and CSC 3391. A study of the software development life cycle, with emphasis on the analysis and design of software systems. Included are problem identification and definition, modeling systems, requirements analysis, specification, design, implementation, testing, verification, maintenance, and project management. Ethics of the profession are discussed.
Prerequisites: CSC 4383 . An undergraduate research project in computer science under the direction of an approved advisor. Students will work on the conception, design, and implementation of a significant computer science project. To demonstrate their ability to communicate the results of their effort to others, students are required to submit a final written report and make an oral presentation of their work.
Prerequisites: Any 3000 or 4000 level CSC course or consent of the instructor. In-depth investigation of selected topics in computer science, such algorithms in bioinformatics, game programming, data communications, data mining, neural networks, information retrieval, and parallel computing. Topics will vary. Course can be taken twice for credit.
Prerequisite: Completion of 45 hours or dean's approval; 2.0 GPA. Graded academic experiences that provide students with an opportunity to put classroom learning into practice. Internships provide supervised work experience directly related to one's major field of study.