CDA 3100
Computer Organization I (3)
Co requisites: COP 3330, MAD 2104
This is a core course intended for computer science majors with previous C/C++ background. The course introduces fundamental concepts in computer organization and digital logic design, including numbering systems and number representation, logic gates and design, the Von-Neumann architecture principle, and the machine instruction cycle. Assembly language programming with C language interfacing is also presented, reinforcing basic computer structure and machine cycle operation principles.
CDA 3101
Computer Organization II (3)
Prerequisite: CDA 3100
Fundamental concepts in processor design, including datapath and control, pipelining, memory hierarchies, and I/O.
CEN 4021
Software Engineering II (3)
Prerequisites: CEN 4020 and STA 4442
The second of a two-semester sequence on project-system development, this course focuses on software design and implementation. Topics include software design, architectures, testing, deployment, metrics, configuration management, reusability, portability, and interoperability.
CDA 4150
Computer Architecture (3)
Prerequisites: CDA 3101; MAD 3105
High performance architecture design and analysis, including memory-system design, pipelining, vector computers, and multiprocessors.
CEN 4020 Software Engineering I
CEN 4681
Expert Systems (3)
Prerequisite: COP 4530
Topics include: definitions and historical development, methodology tools for analysis and design, survey of existing systems, inference engines, and theory and applications of fuzzy relational products to new developments in inference engines.
CEN 5064 Advanced Software Design (3)
Prerequisites: CEN 5035
This course concentrates on the design of software systems after requirements engineering has been completed. The course offers education in techniques such as architectural design, pattern integration, and refactorings.
CGS 3408
Introduction to Programming with the C Language (3)
Prerequisite: MAC 1140
This course is an introduction to C programming. Topics include types, operators, and expressions; control flow; IO; functions and program structure; and software design techniques. Eight to ten programming projects are required.
CIS 4930r
Special Topics in Computer Science (3)
Prerequisite: at least six (6) semester hours in computer science or software engineering at or above the 4000 level. May be repeated to a maximum of twelve (12) semester hours.
CIS 5935
Introductory Seminar on Research (2)
(S/U grade only)
A series of lectures given by faculty on the research being conducted by the Department of Computer Science. Other lectures include guidelines on the preparation of the doctoral portfolio, and on the use of library research tools.
COP 3014
Programming I (3)
Prerequisite: MAC 1140.
Fundamental concepts and skills of programming in a high-level language. Flow of control: sequence, selection, iteration, subprograms. Data structures: arrays, strings, structs, ADT lists and tables. Algorithms using selection and iteration (decision making, finding maxima and minima, basic searching and sorting, simulation, etc.). Good program design using a procedural paradigm, structure, and style are emphasized. Interactive and file IO. Testing and debugging techniques. Intended primarily for computer science or computer engineering majors, or anyone who is required to take COP 3330.
COP 3252
Internet Applications Programming with Java (3)
Prerequisites: COP 3330, 3331
This course covers the applications of the Java language to education, electronic commerce, scientific research, and distributed systems in general. Topics include the following: the architecture of the Web, including software protocols for passing information in typical Web applications; introduction to the Java programming language; developing Graphical User Interfaces using Swing; an introduction to distributed objects using Java Remote Method Invocation (RMI); and server-side programming using Servlets and JDBC. Emphasis is placed on practical programming using these technologies.
COP 3330
Object Oriented Programming (3)
Prerequisite: CGS 3014.
Pre- or Co requisite: COP 3344
Object-oriented programming in a modern programming language; classes, objects, inheritance, and polymorphism; introduction to data structures and container classes.
COP 3344
Introduction to UNIX (1)
This is an introductory course in the use of the UNIX operating system designed for both majors and non-majors. Topics include: UNIX history, requesting UNIX accounts, logging in to a UNIX system, basic operating system concepts and file structure, basic commands, text editor(s) (to include emacs, vi, and pico), printing, mail, and online help. The goals of this course are to enable students to log in to their UNIX accounts from any type of computer and have a basic understanding of the commands and utilities.
COP 3353
Introduction to UNIX (1)
This is an introductory course in the use of the UNIX operating system designed for both majors and non-majors. Topics include: UNIX history, requesting UNIX accounts, logging in to a UNIX system, basic operating system concepts and file structure, basic commands, text editor(s) (to include emacs, vi, and pico), printing, mail, and online help. The goals of this course are to enable students to log in to their UNIX accounts from any type of computer and have a basic understanding of the commands and utilities.
COP 4020
Programming Languages (3)
Prerequisite: COP 4530
A survey of programming languages and language features and an introduction to compilers. Languages to be discussed include Fortran, Pascal, Ada, PL/1, APL, and Lisp. Oral presentation required.
COP 4530
Data Structures, Algorithms and Generic Programming (3)
Prerequisites: COP 3330; MAD 2104
Pre- or co requisite: CDA 3100
Definition, use, and implementation of generic data structures using a modern programming language; reusable program components.
COP 4531
Complexity and Analysis of Data Structures and Algorithms (3)
Prerequisite: COP 4530; MAD 3105; STA 4442
Analysis of the complexity of algorithms, including sorting, searching, and graph algorithms; use and implementation of graphs.
COP 4610
Operating Systems and Concurrent Programming (3)
Prerequisite: COP 4530
Pre- or Co requisite: CDA 3101 or consent of instructor
Design principles of batch, multiprogramming, and time-sharing operating systems; linking, loading, input-output systems, interacting processes, storage management, process and resource control, file systems.
COP 4710
Theory and Structure of Databases (3)
Prerequisites: COP 3330, MAD 2104.
Theory of relational and object-oriented databases; relational database management systems and SQL; design, development, and implementation issues in database systems.
COT 4420
Theory of Computation (3)
Prerequisite: MAD 3105
Introduction to the theory of computation, including models of computation such as Turing machines; theory of programming languages, including grammars, parsing, syntax, and semantics.
MAD 2104
Discrete Mathematics I (3)
Prerequisite: MAC 1140. Credit is not also allowed for MGF 3301
Mathematical techniques of definition and proof, with application to discrete domains; formal logic; elementary combinatorics; digraphs and relations; graphs, trees, and multigraphs; applications.
MAD 3105
Discrete Mathematics II (3)
Prerequisite: MAD 2104 or MGF 3301
Techniques of definition and logical argument as applied in several areas of discrete mathematics; counting techniques, permutations, combinations; recurrence relations, graph and network algorithms.
STA 3032
Applied Statistics for Engineers and Scientists (3–5)
Prerequisite: MAC 2312
This course will cover calculus-based probability, discrete and continuous random variables, joint distributions, sampling distributions, and the central limit theorem. Topics include descriptive statistics, interval estimates and hypothesis tests, ANOVA, correlation, simple and multiple regression, analysis of categorical data, and statistical quality control.