| Computer Science |
| CS 1002 Introduction
to the Computing Disciplines |
2-0-2 |
This course examines the
various aspects of computer science in today's world. The students
will become familiar with topics such as computer software, hardware, networks,
operating systems, web development and data processing. They will
also be exposed to what is expected in the field of computer science and
types of job opportunities available. Speakers will be brought in
for various topics. Institutional credit only. |
CS 1301 Computer Science
I
Prerequisite: CS 1002 and
MATH 1113 or concurrently |
3-2-4 |
This course provides an
introduction to computer science with a focus on structured programming.
Topics include an overview of programming, problem-solving and algorithm
development, simple data types, arithmetic and logical operators, selection
and repetition structures, text files, arrays, procedural abstraction and
software design, and modular programming including subprograms. Programming
assignments focus on the techniques of good programming style and how to
design, code, debug, and document programs. The student will be able
to solve problems using top-down design and modularize their solutions
with proper use of abstraction mechanisms. |
CS 1302 Computer Science
II
Prerequisite: CS 1301 and
CS 1002 |
3-2-4 |
This second course in computer
science provides a focus on both abstraction and advanced programming techniques
of object-oriented programming. Topics include abstract data types,
multi-dimensional arrays and records, recursion, pointers and linked lists,
use of parameterized types, software engineering concepts, and introduction
to the usage of dynamic data structures (stacks, queues, and trees) to
solve application problems. The student will be able to solve problems
using objects, including designing and writing their own. Programming
assignments emphasize good software development principles such as information
hiding, re-use, use of symbolic debuggers, and separate compilation. |
CS 2123 C Programming
Prerequisite: MATH 1113
or concurrently |
3-0-3 |
This course covers the beginning
concepts of programming logic and algorithms using the C Programming Language.
Procedural programming style is used in the labs. (CS and SWE majors
may not receive degree credit for this course). |
CS 2223 Digital Design
Prerequisite: MATH 2345 |
3-0-3 |
A study of the digital devices
and circuits used in the implementation of computer systems. Pertinent
topics include Boolean algebra and logic concepts, design and minimization
of combinational and sequential logic circuits, and modern digital-design
software tools such as VHDL. |
CS 3123 Programming Language
Concepts
Prerequisite: CS 1302 and
CS 3223 |
3-0-3 |
A comparative study of programming
languages covering their history, development, and different design criteria;
their formal definitions of syntax and semantics; their concepts and constructs;
and the similarities and differences between languages. This course includes
examination of object-oriented, functional, and concurrent languages, exception
handling, modularization, scoping, etc. The use of programming tools that
enable the student to practice the course objectives are incorporated. |
CS 3153 Database Systems
Prerequisite: CS 1302 |
3-0-3 |
The topics in this course
span from a review of the traditional file processing systems to database
management systems. Topics include files systems and file processing
logic, planning, and major phases of database development: analysis, design
and implementation. Labs use an SQL based database product such as
Oracle. |
CS 3223 Computer Architecture
Prerequisite: CS 2223 and
CS 1301 |
3-0-3 |
A study of instruction set
architectures; basic processor components such as control units, ALU's,
and registers; memory; input/output; and performance enhancement using
caches and pipelines. Design of the major processor components is discussed
in terms of the concepts presented in CS 2223. Some coverage of assembly
language programming is included. |
CS 3243 Operating Systems
Prerequisite: CS 3223 and
CS 3424 |
3-0-3 |
An introduction to basic
operating system principles. Process management, memory management (real
and virtual), peripheral device management, file systems, and distributed
systems are introduced and examined from a conceptual viewpoint. Selected
aspects of operating systems are explored in greater depth via software
simulation projects. |
CS 3424 Data Structures
Prerequisite: CS 1302 and
MATH 2345 |
3-2-4 |
Common data structures and
algorithms for their processing are covered. Elementary analysis
of algorithms is included. Data structures include stacks, queues
(including priority queues), binary search trees, advanced trees, graphs
and their representations (including depth- and breadth-first traversals),
and hash tables (including collision-avoidance strategies). Additional
topics include searching and sorting. All data structures are presented
using object-oriented implementations, including inheritance. |
CS 3663 Applications
Programming in Java
Prerequisite: CS 3243 |
3-0-3 |
The computer programming
language Java is presented with emphasis on its use for developing graphical
user interfaces and client/server applications. Laboratory projects are
required. |
CS 3683 Applications
Programming in Ada
Prerequisite: CS 3243 |
3-0-3 |
The computer programming
language ADA is presented with a focus on its use in applications that
involve multi-tasking and as a vehicle for applying a software engineering
approach to software development. Laboratory projects are required. |
CS 3901-3904 Special
Topics
Prerequisite: Junior standing |
1 to 4
hours |
Special topics selected
by the department. Offered on a demand basis. |
CS 4134 Programming PDA's
Prerequisite: CS 3243 |
4-0-4 |
This course offers a first-hand
programming experience with Personal Digital Assistants. The course
addresses issues particular to small, portable devices, such as their GUI,
storage and synchronization. It also explores the wireless environment
where these devices would interact. |
CS 4243 Systems Programming
Prerequisite: CS 3243 |
3-0-3 |
This course covers command
line, shell, scripting and system tools like AWK and PERL. It also
covers Unix file I/O and process control, as well as the use and construction
of user interfaces. |
CS 4253 Distributed Computing
Prerequisite: CS 3243 |
3-0-3 |
A course that introduces
students to the fundamental principles common to the design and implementation
of programs that run on two or more interconnected computer systems.
The subtopics, which are based on these principles, include: distributed
operating system and network protocols for process communication, synchronization,
scheduling, and exception and deadlock resolution; understanding of client-server,
web-based collaborative systems; parallel computing; concurrency issues;
and API's for distributed application development. Several distributed
computing environments, like MPI, PVM, and Java RMI are discussed and used
in developing experimental projects in a cluster of networked computers. |
CS 4263 Computer Networks
Prerequisite: CS 3243 |
3-0-3 |
This course broadly covers
networking technology from the bottom up. It begins with physical
media (copper wire, optical fiber, radio), moves to electrical signaling
(carriers, modulation), digital encoding, error detection, data framing
and media access strategies. Physical and data link layer devices
are studied along with popular topologies. Most popular data-link
protocols are reviewed. The course includes an introduction to TCP/IP
protocols. |
CS 4284 Real-Time Systems
Prerequisite: CS 3243 |
4-0-4 |
This course covers the software-development
life cycle as it applies to real-time systems. Labs involve the use of
a real-time operating system and an associated development environment.
System performance issues are also discussed. Major project included. |
CS 4354 Computer Graphics
and Multimedia
Prerequisite: CS 3424 |
4-0-4 |
The basic principles and
practices of interactive computer graphics and multimedia systems are covered
in this introductory course. The design and implementation of state-of-the-art
computer graphic rendering and visual multimedia systems are the main part
of the course. The sub-topics of the course deal with specific input/output
hardware devices and their technology, software and hardware standards,
programming methods for implementing 3-dimensional graphical applications
and interactive multimedia applications, and a study and evaluation of
the effectiveness of graphic/multimedia communications. A large component
of the class is the building of a large-scale application. |
CS 4413 Algorithm Analysis
Prerequisite: CS 3424 |
3-0-3 |
Advanced algorithm analysis
including the introduction of formal techniques and the underlying mathematical
theory. Topics include asymptotic analysis of upper and average complexity
bounds using big-O, little-o, and theta notation. Fundamental
algorithmic strategies (brute-force, greedy, divide-and-conquer, backtracking,
branch-and-bound, pattern matching, and numerical approximations) are covered.
Also included are standard graph and tree algorithms. Additional
topics include standard complexity classes, time and space tradeoffs in
algorithms, using recurrence relations to analyze recursive algorithms,
non-computable functions, the halting problem, and the implications of
non-computability. Algorithmic animation is used to reinforce theoretical
results. Upon completion of the course, students should be able to
explain the mathematical concepts used in describing the complexity of
an algorithm, and select and apply algorithms appropriate to a particular
situation. |
CS 4423 Logical Foundations
of Computer Science
Prerequisite: CS 3424, MATH
2343 and senior standing |
3-0-3 |
An elective course surveying
computability theory, finite state machines, automata, parsing, grammars,
and selected aspects of compiler construction. Particularly useful for
students contemplating attending graduate school in computer science. |
CS 4453 Simulation and
Modeling
Prerequisite: MATH 2260
and a programming course |
3-0-3 |
An introduction to the basic
role of simulation in system modeling. Presents approaches to organizing
and conducting simulation studies. Emphasis is on the principles and practice
of discrete-event simulation using one or more applicable programming languages. |
CS 4523 Artificial Intelligence
Prerequisite: CS 3424 |
3-0-3 |
A survey of Artificial Intelligence
principles and applications, along with in-depth coverage of search techniques.
Some emphasis on knowledge representation and problem-solving strategies
is included. |
CS 4533 Digital Image
Processing
Prerequisite: MATH 2345
and CS 3424 |
3-0-3 |
Application of digital image
processing. Topics include image enhancement and restoration, image
transforms, geometrical image modifications, edge detection, image segmentation
and classification, image coding, feature extraction, morphological image
processing, and parallel image processing. |
CS 4543 Neural Computation
Prerequisite: MATH 2345
and CS 3424 |
3-0-3 |
Application of brain-style
computing models. Topics include fundamentals of artificial neural
networks, pattern classification, perceptrons, back-propagation, counter-propagation
networks, Hopfield nets, bi-directional associative memories, competitive
learning algorithms, and adaptive resonance theory. |
CS 4554 Expert Systems
Prerequisite: SWE 4624 |
4-0-4 |
An introduction to the development
of expert systems, with emphasis on the roles of domain knowledge, knowledge
acquisition, expert knowledge representation, and implementation. A major
project is required. |
CS 4894 Computer Science
Capstone
Prerequisite: SWE 4624,
ENGL 2010 and SPCH 2400 |
4-0-4 |
Team projects in software
design, construction, implementation of project management and quality
assurance plans, and configuration management for a complex real-world
application project. The capstone project offers the opportunity
to integrate the knowledge acquired in preceding courses. Coverage of topics
include human-centered evaluation and development; GUI design and programming;
effective team management; and communication skills. |
CS 4901-4904 Special
Topics
Prerequisite: Senior standing |
1 to 4
hours |
Special topics selected
by the department. Offered on a demand basis. |
| |
|
|
| Computer
Science Graduate |
CS 5123 Advanced Programming
and Data Structures
Prerequisite: CS 1301
or equivalent course |
3-0-3 |
Transition course for graduate
students with a limited background in programming. Topics include pointers,
recursion, data structures such as lists, stacks, queues, trees, etc.,
sorting and searching, data abstraction, introduction to runtime analysis
and the big-oh notation. Appropriate programming projects are also included. |
CS 5153 Database Systems
Prerequisite: CS 5123
or CS 1302 or IT 5113 |
3-0-3 |
Transition course.
This course provides an overview of various database models including relational,
object-oriented, hierarchical, and network. Also covered are various
file structures including sequential, indexed sequential, and direct.
It covers planning, analysis, design, and implementation of a database.
Entity Relationship models and normalization are covered. It covers
an SQL-based database system such as Oracle. A major project and/or
paper required. |
CS 5183 Object-Oriented
Programming
Prerequisite: CS 5123
or CS 3424 |
3-0-3 |
Transition course.
Topics to be covered include encapsulation and abstraction, objects and
classes, inheritance, polymorphism, class libraries, and messaging.
The course includes major project(s) and/or paper(s). |
CS 5223 Computer Architecture
Prerequisite: CS 1301 or
equivalent course |
3-0-3 |
Topics from the principles
of computer organization and architecture include number systems, digital
logic, basic logic design in combinational and sequential circuits, and
assembly and machine language. |
CS 5243 Operating Systems
Prerequisites: CS
5123/3424 and CS 5223/3223 |
3-0-3 |
Topics from the principles
of operating systems include management of resources including processes,
real and virtual memory, jobs, processes, peripherals, network, and files. |
CS 5423 Mathematical
Structures for Computer Science
Prerequisites: An
undergraduate course in Calculus |
3-0-3 |
Transition course.
Topics from discrete mathematics include set theory, relations and functions,
principles of counting, introductory graph theory, formal logic, recursion,
and finite state machines. |
| CS 6023 Research Methods
and Presentations |
3-0-3 |
Materials and methods of
scholarly research in computer science. Includes study of standard research
paradigms with illustrative cases of each and the use of research methods
and presentations in industrial and business settings. |
CS 6103 Discrete-Time
Signals and Systems
Prerequisite: CS 5423 |
3-0-3 |
Underlying principles of
discrete-time signals and digital signal processing. Topics include mathematical
representation of discrete-time signals and systems, sampling theorem and
aliasing, introduction to difference equations, IIR and FIR filters, DTF,
FFT, and Z-Transforms. |
CS 6123 Theory and Implementation
of Programming Languages
Prerequisites: CS
5123/3424 and CS 5423 |
3-0-3 |
Comparative study of programming
language paradigms with emphasis on design and implementation issues.
Covers formal definitions of syntax and semantics, data types, static and
dynamic storage allocation, definition of operations, control of program
flow, subroutine and function linkages, formal tools for characterizing
program execution, and abstraction techniques. |
CS 6153 Advanced Database
Systems
Prerequisite: CS 5153/3153
and CS 5423 |
3-0-3 |
An advanced course in database
systems emphasizing design issues and implementation tradeoffs. It
covers the theory, algorithms, and methods that underlie distributed databases.
Relational algebra is discussed. The client-server architecture and
application development are also covered. |
CS 6163 Information Retrieval
and Search Engines
Prerequisites: CS
5123 and CS 5423 |
3-0-3 |
The course covers efficient
storage and effective retrieval of large amounts of unstructured text information,
including an overview of conventional IR techniques and newer perspectives. |
CS 6223 Advanced Computer
System Architecture
Prerequisites: CS
5243/3243 |
3-0-3 |
Topics include computer
performance issues, instruction set architectures, RISC versus CISC, machine
language, microprocessor design and implementation, performance enhancing
techniques, cache memory design, and implications to operating system design. |
CS 6243 Advanced Concepts
in Operating Systems
Prerequisite: CS 5243/3243 |
3-0-3 |
Topics from the theory of
operating systems include: memory and process management of high-performance
architectures that address concurrent, parallel, and distributed processing. |
CS 6263 Computer Networks
Prerequisite: CS 5243/3243 |
3-0-3 |
Issues involved in computer
communications are examined, based on the layered ISO/OSI Reference Model
and the TCP/IP Protocol suite. A bottom-up approach is taken with
particular emphasis placed on the physical, data link, and network layers.
Topics include WANs, LANs, ADSL, and wireless communication systems.
Laboratory projects involve simulation of various aspects of computer Communication. |
CS 6283 Real-Time Systems
Prerequisite: CS 5243/3243 |
3-0-3 |
The software development
life cycle as it applies to real-time systems. Labs involve the use
of a real-time operating system and an associated development environment.
Related topics such as concurrent task synchronization and communication,
sharing of resources, schedulability, reliability, fault tolerance, and
system performance are discussed. Project included. |
CS 6293 Information Security:
Implementation and Application
Prerequisites: CS
5123 and CS 5423 |
3-0-3 |
This course covers the fundamentals
of computing security, access control technology, cryptographic algorithms,
implementations, tools and their applications in communications and computing
systems security. Topics include public key infrastructure, operating system
security, database security, network security, web security, firewalls,
security architecture and models, and ethical and legal issues in information
security. |
| CS 6323 Human Factors |
3-0-3 |
The psychological, social,
and technological aspects of interaction between humans and computers.
Includes usability engineering, cognitive and perceptual issues, human
information processing, user-centered design approaches, and development
techniques for producing appropriate systems. Major project included. |
CS 6353 Computer Graphics
and Multimedia
Prerequisites: CS
5123/3424 and CS 5423 |
3-0-3 |
A study of the hardware
and software of computer graphics and multimedia systems from the programmer's
perspective. Includes a survey of display and other media technologies,
algorithms and data structures for manipulation of graphical and other
media objects, and consideration of user interface design. Major project
included. |
CS 6413 Theory of Computation
Prerequisites: CS
5423 |
3-0-3 |
A study of topics from theoretical
computer science that includes automata and languages, computability theory,
and complexity theory. |
CS 6423 Algorithmic Processes
Prerequisites: CS
5123/3424 and CS 5423 |
3-0-3 |
Design and analysis of algorithms.
Includes notations for representing algorithms, mathematical techniques
for analyzing algorithms for appropriateness, efficiency, completeness,
correctness, and decidability. |
CS 6453 Simulation and
Modeling
Prerequisites: CS
5123/3424, Matrix Algebra, and Probability and Statistics |
3-0-3 |
The application of various
modeling techniques to the understanding of computer system performance.
Includes analytic modeling, queuing theory, continuous and discrete simulation
methods, and the use of some simulation software tool to implement a major
project. |
CS 6523 Survey of Artificial
Intelligence
Prerequisite: CS 5123/3424
and CS 5423 |
3-0-3 |
A survey of the major issues
in AI. Knowledge representation, reasoning, and learning with AI
programming techniques. Current topics are also included. |
CS 6563 Digital Image
Processing and Analysis
Prerequisites: CS
5123 and CS 5423 |
3-0-3 |
Theory and application of
digital image processing. Topics include sensing, sampling and quantization,
image enhancement and restoration, image transforms, geometrical image
modifications, edge detection, image segmentation and classification, image
coding, feature extraction, image representation, morphological image processing,
and parallel image processing. Applications include satellite images
and biomedical images. |
CS 6593 Selected Topics
in Artificial Intelligence
Prerequisites: As
determined by the Instructor and Department Chair |
3-0-3 |
In-depth study of specific
AI topics. Possible topics include, but are not limited to, Expert
Systems, Neural Networks, Genetic Algorithms, Machine Learning, Fuzzy Logic,
etc. |
CS 6703 Independent Study
Prerequisites: Approval
of course director |
3-0-3 |
Independent study/project
under the direction of a graduate CS faculty member. |
CS 6901-6903 Special
Topics
Prerequisite: As determined
by the Instructor and Department Chair |
1 to 3
hours |
Special topics selected
by the Department Chair. Offered on a demand basis. A student
may repeat this course with special permission. |
CS 7803 Master's Thesis
Prerequisite: Consent
of the Department Chair and the Thesis Advisor |
3-0-3 |
The thesis is designed for
students wanting a research focus to their degree. The student works
independently under the supervision of a designated CS faculty member on
a thesis of substance in computer science. The student will generate
a formal written thesis and give a final defense of the thesis. This
course may be repeated, but only 6 hours may be applied toward the degree. |