| |
|
This page contains revisions
since the catalog's original publication:
Additions are in red
Deletions are in red
strikethrough
Go back to current
version
Computer Science Course Descriptions
CS 1136 (COSC 1136) Computer Science Laboratory
(1 semester hour) Laboratory course to accompany CS 1336. This course
teaches basic computer literacy/programming skills: disk operating system
(DOS) commands (to format disks and to create, manipulate, and remove
directories and files), the authoring of ASCII text files, compiler
usage in converting source programs into executable form, printer commands.
Corequisite: CS 1336. (0-2) S
CS 1336 (COSC 1336) Programming Fundamentals
(3 semester hours) Introduction to computers. Primitive data types,
variable declarations, variable scope, and primitive operations. Control
statements. Methods/functions. Arrays and strings using primitive data
arrays. Output formatting. Debugging techniques. Designed for students
with no prior computer programming experience. Corequisite: CS 1136.
Note that a grade of 'C' or better is required in order to register
for CE/CS 1337. (3-0) S
CS 1337 (COSC 1337) Computer Science I (3 semester
hours) Introduction to object-oriented software analysis, design,
and development. Classes and objects. Object composition and polymorphism.
Sorting, searching, recursion. Strings using core classes. Inheritance
and interfaces. Graphical User Interfaces. Includes a comprehensive
programming project. Prerequisite: CS 1336 with a grade of C or better
or equivalent. (Same as CE 1337) (3-0)
S
CS 2110 Introduction to Digital Systems Laboratory
(1 semester hour) Laboratory to accompany CS 2310. The purpose of this
laboratory is to give students an intuitive understanding of digital
circuits and systems. Laboratory exercises include construction of simple
digital logic circuits using prototyping kits and board-level assembly
of a personal computer. Corequisite: CS 2310. (0-2) S
CS 2305 (MATH 2305) Discrete Mathematics
for Computing I (3 semester hours) Principles of counting.
Boolean operations. Logic and methods of proof. Sets, relations, functions,
strings, and languages. Prerequisite: MATH 1326 or MATH 2417. (3-0)
S
CS 2310 Introduction to Digital Systems
(3 semester hours) Introduction to hardware structures and assembly-language
concepts that form the basis of the design of modern computer systems.
Internal data representation and arithmetic operations in a computer.
Basic logic circuits. MIPS assembly language. Overview of PC architecture.
Prerequisite: CS 1337. Corequisite: CS 2110. (3-0) S
CS 2336 (COSC 2336) Computer Science II (3
semester hours) Exceptions and number formatting. File input/output
using Stream classes. Implementation of primitive data structures,
including linked lists (all types), stacks, queues, and binary trees.
Advanced data manipulation using core classes. Introduction to multithreading,
multimedia, and networking. Includes a comprehensive programming project.
Prerequisite: CS 1337. (Same as CE 2336) (3-0)
S
CS 2V95 Individual Instruction in Computer
Science/Software Engineering (1-6 semester hours) Individual
study under a faculty member’s direction. May be repeated for
credit as topics vary (6 hours maximum).
Consent of instructor required. (Same as SE 2V95) ([1-6]-0) R
CS 3195 Special Topics in Computer Science/Software Engineering
(1 semester hour) May be repeated for credit as
topics vary (4
hours maximum). Must be taken Credit/No Credit. Consent of instructor
required. (Same as SE 3195) (1-0) R
CS 3305 Discrete Mathematics for Computing
II (3 semester hours) Topics in enumeration; principle of inclusion
and exclusion. Partial orders and lattices. Algorithmic complexity;
recurrence relations. Graph theory. Prerequisite: CS 2305. (3-0) S
CS 3333 Data Structures (3 semester
hours) Programming with basic data structures (arrays, stacks, queues,
lists, and trees) and their associated algorithms. Various sorting and
searching techniques. Fundamental graph algorithms. This course covers
much of the same material as CS 3345 without requiring the analysis
of algorithms. Computer Science majors may NOT take this course. This
course may not be taken for degree credit by students who have completed
CS 2336. Prerequisite: CS 1337 or CS 3335 or equivalent programming
experience. (3-0) Y
CS 3335 C and C++ (3 semester hours)
Numerous programming projects in both C and C++. All fundamentals of
C, with special emphasis on use of pointers. Use of C++ extensions to
create and extend (by inheritance) abstract data types. The use/advantages
of virtual functions (dynamic polymorphism). Prerequisite: CS 2336.
(3-0) S
CS 3340 Computer Architecture (3 semester hours)
This course introduces the concepts of computer architecture by going
throug multiple levels of abstraction, and the numbering systems and
their basic computations. It focuses on the instruction-set architecture
of the MIPS machine, including MIPS assembly programming, translation
between MIPS and C, and between MIPS and machine code. General topics
include performance calculation, processor datapath, pipelining, and
memory hierarchy. Students that have credit for CS 2310 can not get
credit for this course. Prerequisite: CS 1337. (Same as SE 3340) (3-0)
S
CS 3341 Probability and Statistics in Computer
Science and Software Engineering (3 semester hours) Axiomatic
probability theory, independence, conditional probability. Discrete
and continuous random variables, special distributions of importance
to CS/SE and expectation. Simulation of random variables and Monta
Carlo methods. Central limit theorem. Basic statistical inference, parameter
estimation, hypothesis testing, and linear regression. Introduction
to stochastic processes. Illustrative examples and simulation exercises
from queuing, reliability, and other CS/SE applications. Prerequisites:
MATH 1326 or MATH 2419, and CS 2305. (Same as SE 3341) (3-0) S
CS 3345 Data Structures and Introduction
to Algorithmic Analysis (3 semester hours) Analysis of algorithms
including time complexity and Big-O notation. Analysis of stacks, queues,
and trees, including B-trees. Heaps, hashing, and advanced sorting techniques.
Disjoint sets and graphs. Course emphasizes design and implementation.
Prerequisites: CS 2336 and one of CS 3305 or SE 3306. Prerequisite or
corequisite: CS/SE 3341. (Same as SE 3345) (3-0) S
CS 3354 Software Engineering (3
semester hours) Introduction to software life cycle models. Software
requirements engineering, formal specification and validation. Techniques
for software design and testing. Cost estimation models. Issues in
software quality assurance and software maintenance. Prerequisites: CE/CS
2336 or CS 3333, and CS 2305. Prerequisite
or cCorequisite:
ECS 3390. (Same as CE/SE 3354) (3-0) S
CS 3360 Politics and Values in Business and
Technology (3 semester hours) A social and behavioral science
survey of current business practices and the normative value systems
by which they operate and are regulated. Topics will include the influences
on business practices by culture, especially race, ethnicity, gender,
religion, and by developing technology and the Information Society.
(Same as ISSS 3360). (3-0) S
CS 3375 Principles of UNIX (3 semester
hours) Design and history of the UNIX operating system. Detailed study
of process and file system data structures. Shell programming in UNIX.
Use of process-forking functionality of UNIX to simplify complex problems.
Interprocess communication and coordination. Device drivers and streams
as interfaces to hardware features. TCP/IP and other UNIX inter-machine
communication facilities. Prerequisite: CS 2336 (C/C++) or CS 3333 or
CS 3335 or equivalent programming experience, including knowledge of
C. (3-0) S
CS 3385 Ethics, Law, Society, and Computing
(3 semester hours) Issues of professional ethics; computer crime; wiretapping
and encryption; protecting software and other intellectual property;
privacy and information; careers and computers; reliability and safety;
constitutional issues. Broader issues on the impact and control of computers.
(3-0) S
CS 3V95 Undergraduate Topics in Computer
Science/Software Engineering (2-9 semester hours) Subject
matter will vary from semester to semester. May be repeated for credit as
topics vary (9
hours maximum). (Same as SE 3V95) ([2-9]-0) S
CS 4141 Digital Systems
Laboratory (1 semester
hour) Laboratory to accompany CS 4340. THe purpose of this laboratory
is to give students an intuitive understanding of digital circuits
and systems. Laboratory exercises include construction of simple digital
logic circuits using prototyping kits and board-level assembly of
a personal computer. Students that have credit for CS 2110 have credit
for this course and cannot get additional credit for this course.
Corequisite: CS 4341. (0-2) S
CS 4314 Intelligent Systems Analysis
(3 semester hours) Mathematical tools for investigating the asymptomatic
behavior of both deterministic and stochastic nonlinear dynamical systems.
Topics include: artificial neural network architectures, Lyapunov stability
theory, and stochastic approximation theory. Applications to artificial
neaural network models of brain and behavior. Prerequisite: CGS 4313
or consent of instructor. (Same as CGS 4314) (3-0) T
CS 4315 Intelligent Systems Design
(3 semester hours) Mathematical tools for the design and evaluation
of artificially intelligent deterministic and stochastic nonlinear dynamical
systems. Topics include: nonlinear optimization theory, Markov random
fields, asymptomatic statistical theory. Applications to theory and
model construction in the behavioral and braind sciences as well as
the field of artificial intelligence. Prerequisite: CS 4314 or consent
of instructor. (Same as CGS 4315) (3-0) T
CS 4334 Numerical Analysis (3 semester
hours) Solution of linear equations, roots of polynomial equations,
interpolation and approximation, numerical differentiation and integration,
solution of ordinary differential equations, computer arithmetic, and
error analysis. Prerequisites: CS 1337, MATH 2418, MATH 2451. (Same
as MATH 4334) (3-0) Y
CS 4336 Advanced Java (3 semester
hours) Advanced Java programming techniques integrating the technologies
of advanced swing GUI components, JavaBeans, Java Servlets and Server
Pages, XML, Security, Java Database Connectivity, Remote Method Invocation,
and Software applications for Wireless Devices. Students will have the
opportunity to work on their own E-Business Solutions. Prerequisite:
CS 2336 or equivalent. (3-0) T
CS 4337 Organization of Programming Languages
(3 semester hours) Principles of design and implementation of contemporary
programming languages. Formal description including specification
of syntax and semantics of programming languages. Language definition
structures including binding, scoping, data types, control structures,
parameter passing, abstraction mechanism, and run-time considerations.
Design issues of imperative languages, object-oriented languages,
functional languages, and logic languages. Design, implement, and
debug programs in various programming language paradigms. Prerequisites:
CS 2336 or
CS 3333, and CS 2305. (Same as CE 4337) (3-0)
S
CS 4340 Computer Architecture (3
semester hours) Boolean algebra and logic circuits; register transfer
operations; design of a small computer; input, output, and interrupt
organization; powerful addressing modes, instruction formats, and their
hardware structures; microprogram control. Prerequisites: CS 2305 or
TE 3307, and PHYS 2326. (Same as SE 4340) (3-0) S
CS 4341 Digital Logic and
Computer Design (3 semester
hours) Boolean algebra and logic circuits;synchronous sequential circuits;
gate level design of ALSU, registeres, and memory unit; register transfer
operations; design of data path and control unit for a small computer;
Input-Output interface. Students that have completed CS 4340 can not
get credit for this course. Prerequisites: EE 2310 or CS 3340, and
PHYS 2326. Corequisite: CS 4141. (3-0) S
CS 4347 Database Systems (3 semester
hours) This course emphasizes the concepts and structures necessary
for the design and implementation of database management systems. Topics
include data models, data normalization, data description languages,
query facilities, file organization, index organization, file security,
data integrity, and reliability. Prerequisite: CS/SE 3345. (Same as
SE 4347) (3-0) Y
CS 4348 Operating Systems Concepts
(3 semester hours) An introduction to fundamental concepts in operating
systems: their design, implementation, and usage. Topics include process
management, main memory management, virtual memory, I/O and device
drivers, file systems, secondary storage management, and an introduction
to critical sections and deadlocks. Prerequisites: One of CS/SE 34340 or CE/EE 4304, one of
CS/SE 3345 or CE/TE 3346, and a working knowledge of C and UNIX. (Same
as CE/SE/TE 4348 and
TE 4348) (3-0) S
CS 4349 Advanced Algorithm Design and Analysis
(3 semester hours) Asymptomatic analysis, recurrences, and graph algorithms.
Algorithm design techniques such as greedy method, dynamic programming,
and divide-and-conquer. Issues from computational complexity. Course
emphasizes a theoretical approach. Prerequisite: CS/SE 3345. (3-0) S
CS 4352 Human Computer Interactions I
(3 semester hours) Methods and principles of human-computer interaction
(HCI), user-centered design (UCD), and usability evaluation. Provides
a broad overview of HCI and how HCI informs UCD processes throughout
product development lifecycle. (Same as CGS 4352) (3-0) T
CS 4353 Human Computer Interactions II
(3 semester hours) Detailed exploration of human-computer interaction
(HCI) through readings in journal articles and research reports. Practical
experience in methodology typically used in the design of usable systems.
Prerequisite: CS 4352 or consent of the instructor. (Same as CGS 4353)
(3-0) T
CS 4361 Computer Graphics (3 semester
hours) Review of graphic display architecture and graphic input devices.
Two- and three-dimensional transformations, matrix formulations, and
concatenation. Clipping and windowing. Data structures for graphics
systems, segmented display files, rings, etc. Hidden line and surface
elimination. Shading. Graphics packages and applications. Prerequisites:
MATH 2418, CS 2336, and CS/SE 3345. (3-0) Y
CS 4365 Artificial Intelligence
(3 semester hours) Basic concepts and techniques that enable computers
to perform intelligent tasks. Examples are taken from areas such as
natural language understanding, computer vision, machine learning, search
strategies and control, logic, and theorem proving. Prerequisites: CS
2336 and CS/SE 3345. (3-0) Y
CS 4375 Introduction to Machine Learning
(3 semester hours) Algorithms for creating computer programs that can
improve their performance through learning. Topics include: cross-validation,
decision trees, neural nets, statistical tests, Bayesian learning, computational
learning theory, instance-based learning, reinforcement learning, bagging,
boosting, support vector machines, Hidden markov Models, clustering,
and semi-supervised and unsupervised learning techniques. Prerequisites:
CS/SE 3341 and CS/SE 3345. (3-0) Y
CS 4376 Object-Oriented Programming Systems
(3 semester hours) In-depth study of the features/advantages of object-oriented
approach to problem solving. Special emphasis on issues of object-oriented
analysis, design, implementation, and testing. Review of basic concepts
of object-oriented technology (abstraction, inheritance, and polymorphism).
Object-oriented programming languages, databases, and productivity tools.
Prerequisite: CS 2336 or equivalent. (Same as SE 4376) (3-0) S
CS 4384 Automata Theory (3 semester
hours) A review of the abstract notions encountered in machine computation.
Topics include finite automata, regular expressions, PDAs, and context-free
languages. Prerequisite: CS 3305. (3-0) S
CS 4386 Compiler Design (3 semester
hours) Basic phases of a compiler and their design principles. Topics
include lexical analysis, basic parsing techniques such as LR(K) and
LL(K) grammars. Prerequisites: CS/SE 3345 and CS 4384. (3-0) T
CS 4389 Data and Applications Security
(3 semester hours) Data as a critical resource. Threats to data and
applications security including access control violations, integrity
violations, unauthorized intrusions and sabotage; techniques to enforce
security. Prerequisite: CS/SE 4347. (3-0) Y
CS 4390 Computer Networks (3 semester
hours) The design and analysis of computer networks. Topics include:
the ISO reference model, transmission media, medium-access protocols,
LANs, data link protocols, routing, congestion control, internetworking,
and connection management. Prerequisite: CS/SE 3345 or CE/TE 3346. (Same as CE/TE 4390)
(3-0) S
CS 4391 Introduction to Computer Vision
(3 semester hours) Techniques for manipulating and extracting information
from digital images and video. Topics include color representations,
analysis and processing based on image histograms, geometric transformations,
convolutions, image blurring and sharpening, extraction of edges, matching,
image and video motion. Prerequisites: CS/SE 3345. (3-0) Y
CS 4392 Computer Animation (3 semester
hours) Introduction to traditional animation. Kinematics of motion.
Key framing. Coordinate systems and transformations (review), Euler
angles and Quaternions, Catmull Rom and B-Splines, Advanced Key framing,
articulated figures (forward kinematics), human and animal modeling
(soft tissue, skin, etc.). Facial animation (parametric). Physically
based modeling (rigid, collision detection). Physically based modeling
(deformable). Behavioral and heuristic models. Algorithmic animation.
Optimization techniques. Animation languages and systems. Motion capture
and real time control. Virtual reality and animation. Rendering and
temporal aliasing. 2D and 3D morphing. 3D modeling. Prerequisites: MATH
2418 and CS 2336 or CS/SE 3345. (3-0) Y
CS 4393 Computer and Network Security
(3 semester hours) The study of security and vulnerabilities in computer
and network systems. Common attacking techniques such as buffer overflow,
viruses, worms, etc. Security in existing systems such as UNIX, Windows,
and JVM. Fundamental access control and information flow concepts.
Symmetric Ciphers such as DES and AES. Public-key encryption techniques
and related number theory. Message authentication, hash functions,
and digital signatures. Authentication applications, IP security and
Web security. Prerequisite:
CE/CS/SE/TE 4348.
(3-0) Y
CS 4394 Implementation of Modern Operating
Systems (3 semester hours) This course focuses on developing
systems implementation skills through a set of projects. Each project
will explore one fundamental component of operating systems such as
process scheduling, memory management, device drivers, file systems,
and network communication management. The projects are expected to involve
kernel-level programming. Prerequisites: CS 4348 (OS) and CS 3335, or
equivalent programming experience. (3-0) Y
CS 4396 Networking Laboratory (3
semester hours) This course will enable students to gain hands-on
experience with real networks by building networks in a laboratory
environment. Projects may include establishing an intra-domain routing
infrastructure in the laboratory; establishing inter-domain network
topologies with BGP used to connect the different autonomous systems;
running network services/applications on top of this network, including
DHCP, DNS, HTTP, configuring firewalls; and network management with
SNMP. Prerequisite:
CE/CS/TE 4390.
(3-0) Y
CS 4397 Embedded Computer Systems
(3 semester hours) Introduction to embedded computer applications and
concepts. Real-time operating systems and resource management. Real-time
scheduling and communication. Senior data acquisition, processing
and fusion. Error handling, fault tolerance, and graceful degradation.
System performance analysis and optimization techniques. Includes
a project to develop and analyze a small embedded computer application.
Prerequisite:
CE/CS/SE/TE 4348.
(3-0) Y
CS 4398 Digital Forensics
(3 semester hours) Creating and preserving digital evidence, data recovery
and evidence collection algorithms, evidence construction and reconstruction,
methods for certifying evidence, storing evidence, data acquisition,
forensic analysis algorithms, image files, network forensics, logging
methods to trace back attacks and digital trails, e-mail investigations.
Prerequisites: CE/CS/SE/TE 4348
and CE/CS/TE 4390. (3-0) Y
CS 4399 Senior Honors in Computer Science/Software
Engineering (3 semester hours) For students conducting independent
research for honors theses or projects. (Same as SE 4399) (3-0) R
CS 4485 Computer Science Project
(4 semester hours) This course is intended to complement theory and
to provide an in-depth, hands-on experience in all aspects of a software
development project. Students will work in teams on projects of interest
to industry and will be involved in specifying the problem and its
solution, designing and analyzing the solution, developing the software
architecture, along with implementation and testing plans. The deliverables
will include reports that document these steps as well as a final
project report and a user manual of the developed system. Teams will
also make presentations during the class as well as demonstrate their
software. Prerequisites: CS/SE 3345, CE/CS/SE
3354, at least three CS 43XX classes including at least one elective.
(4-0) S
CS 4V95 Undergraduate Topics in Computer
Science/Software Engineering (1-9 semester hours) Subject matter
will vary from semester to semester. May be used as CS Guided Elective
on CS degree plans. May be repeated for credit as topics vary (9 hours maximum). (Same
as SE 4V95) ([1-9]-0) R
CS 4V98 Undergraduate Research
in Computer Science/Software Engineering (1-9 semester hours) Topics will vary from semester to semester.
May be repeated for credit as topics vary (9 hours maximum). Consent
of instructor required. (Same as SE 4V98) ([1-9]-0) R
|

|