Computer Science (CS) Courses

 

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. (CSE majors may only

receive free elective 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: (CSE 1302C or CSE 1302J or CSE 1302E) and CS 3224

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: (CSE 1302C or CSE1302J or CSE 1302E) or IT 1324

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 CSE 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 3224 Computer Organization & Architecture

Prerequisite: (CSE 1302C or CSE1302J or CSE 1302E) and MATH

2345

3-2-4

Introduction and overview of basic computer organization.

Computer arithmetic: binary, hexadecimal and decimal

number conversions, binary number arithmetic and IEEE binary

floating point number standard. Basic computer logic: gates,

combinational circuits, sequential circuits, adders, ALU, SRAM

and DRAM. Basic assembly language programming, basic

Instruction Set Architecture (ISA), and the design of single cycle

CPU.

 

CS 3243 Operating Systems

Prerequisite: CS 3224 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: (CSE 1302C or CSE 1302J or CSE 1302E), and SWE

2313, 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.

 

CS 3693 Applications Programming

Prerequisite: CS 3424

3-0-3

Students will be exposed to writing larger applications than in the

introductory programming sequence (CSE 1301, CSE 1302, and CS

3424). In depth coverage of the programming language of choice

is used to design and implement applications. Large scale

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 4133 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 4283 Real-Time Systems

Prerequisite: CS 3243

3-0-3

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 4363 Computer Graphics and Multimedia

Prerequisite: CS 3424

3-0-3

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 2345 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 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 4553 Expert Systems

Prerequisite: SWE 3613

3-0-3

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 4893 Computer Science Capstone

Prerequisite: CS 3243, SWE 3613, TCOM 2010 and COMM 2400

2-2-3

Team projects in software design, construction, and

implementation for a complex real-world application project. The

capstone project offers the opportunity to integrate the knowledge

acquired in preceding courses. Components that are emphasized

include analysis and design, effective documentation, team

management, verification and validation of implementation, and

communication skills. Additional material and topics related to

current projects may also be included. Final projects will be

evaluated by faculty and/or Industrial Advisory Board members.

Students will be expected to present their final projects on one day

that may be different from a scheduled class day.

CS 4901-4904 Special Topics

Prerequisite: Senior standing

1 to 4 hours

Special topics selected by the department. Offered on a demand

basis.