| CS 2244 |
Computer Programming I (3) |
| |
An introduction to a programming language. Programming
fundamentals include program structure,
assignment, data types, repetition, input/output,
flow of control, and functions. Program design
development and testing is emphasized. Prerequisite:
MTH 1112. |
| |
|
| CS 2260 |
Computer Programming II |
| |
A continuation of Computer Science I to include
advanced programming techniques including application
of arrays and advanced input/output. Students
design, implement, and test a number of moderately
large programs. Prerequisites: CS 2244 and
MTH 1125 or 2201. |
| |
|
| CS 2261 |
Foundations of Computer Science Concepts (3) |
| |
A broad perspective of computer science concepts
intended as preparation for more in-depth coverage
in higher-level courses. Topics include machine
and assembly language programming, computer
system organization and operation, logic circuits,
finite-state diagrams and programming language
grammar. Prerequisite: CS 2244. |
| |
|
| CS 2262 |
Business Systems Programming (3) |
| |
The study and application of a business-oriented
programming language. Students apply a structured,
multiphase program development process
that features a series of steps involving understanding
of problems, formal problem definition, design
methodologies, program specification, breakdown,
and files. Topics include file processing, data validation,
table handling, calculations, input/output
techniques, and report writing as practiced in the
application of computers to business data processing. Prerequisite: CS 2260. |
| |
|
| CS 2265 |
Advanced Programming 1 (3) |
| |
Provides student the opportunity to gain experience
and training in an additional high-level language.
The course focuses on advanced topics including
objects, structures, applets, graphics, exception
handling, files, and streaming. Prerequisite: CS
2260. |
| |
|
| CS 3323 |
Data Structures (3) |
| |
A survey of data structures that includes lists, ordered
lists, linked lists, stacks, queues and trees.
Also included are measurement of program performance
and how program performance is affected
by alternative data structures. These concepts are
presented within an object-oriented framework.
Programming labs are included. Prerequisite: CS
2260, MTH 2215. |
| |
|
| CS 3325 |
Operations Research (3) |
| |
Introduction to operations research, linear programming,
simplex-based sensitivity analysis and duality,
linear programming applications, network models,
simulation, waiting line models, Markov processes,
forecasting, and inventory models. Prerequisites:
CS 3313, MTH 1126. |
| |
|
| CS 3329 |
Analysis of Algorithms (3) |
| |
Alternative techniques to solve computer science
problems are presented. Problems include sorting,
searching, and graph traversal, lists, ordered lists,
linked lists, stacks, queues, and trees. These concepts
are presented within an object-oriented framework.
Prerequisite: CS 3323. |
| |
|
| CS 3330 |
Data Structures and Algorithms (3) |
| |
A course in fundamental data structures concepts
and alternative techniques for solving real-world
problems in computer science. Concepts and application
covered include analysis of data representation
and associated algorithms, including linked
lists, queues, stacks, arrays, graphs, trees, searching,
sorting, string matching, and the application of
recursive techniques. The course will place an emphasis
on the implementation of various algorithms
and data structures. Prerequisites: CS 2260 and
MTH 2215. |
| |
|
| CS 3331 |
Fundamentals of Artificial Intelligence (3) |
| |
Approaches to the definition of artificial intelligence
and to the design and implementation of
intelligent computer systems. Topics include the
Turing Test, Sourly; Chinese Room, blackboard
systems, logic programming, knowledge based
systems, scripts and schemas, and heuristic search
techniques. Prerequisite: CS 3323 or CS 3330. |
| |
|
| CS 3332 |
Software Engineering I (3) |
| |
Topics are presented that focus on the design and
development techniques for large high quality software
systems. They include project management
issues, analysis and design methods, and approaches
to testing. Prerequisite: CS 3323 or CS
3330. |
| |
|
| CS 3339 |
Fundamentals of Object-Oriented Programming
(3) |
| |
The conceptual framework for object-oriented programming
and systems. Topics include classes, data
hiding, modularity, inheritance, and reusable code.
They are presented through the use of some objectoriented
language. Prerequisite: CS 3323. |
| |
|
| CS 3347 |
Advanced Programming II (3) |
| |
Provides student the opportunity to gain experience
and training in an additional high level language.
Topics include interactive techniques, arrays, multiple
forms, data files and databases, grids, graphics,
OLE, DLL's and custom objects. Emphasis is on
finding creative solutions to application problems.
Prerequisite: CS 2260. |
| |
|
| CS 3357 |
Logical Structures of Computer Design(3) |
| |
Boolean algebra and design and minimization of
combinatorial and sequential circuits. This course
includes laboratories that demonstrate how simple
circuits are designed and what problems may be
encountered in design, such as hazards and race
conditions. Prerequisites: CS 2261, MTH 2215. |
| |
|
| CS 3365 |
Introduction to Computer Organization and
Architecture (3) |
| |
Organization and operation of computer systems.
Topics include hardware components of digital
computers, micro-programming, memory management,
interrupt organization, addressing modes, and
instruction formats. Prerequisite: CS 3357. |
| |
|
| CS 3370 |
Nature of Programming Languages (3) |
| |
Basic principles and concepts of programming
languages including what a programming language
is, various paradigms that a language can follow,
and how its syntactical and semantic structures can
be specified. The traditional object-oriented paradigm
will be presented as well as non-traditional
paradigms based on symbolic logic (logic programming)
and on functions in lambda calculus
(functional programming). Prerequisite: CS 3323
or 3330. |
| |
|
| CS 3372 |
Formal Languages and the Theory of
Computation (3) |
| |
Formal language theory, including the Chomsky
hierarchy, is presented. Emphasis is placed on regular
and context free grammars, finite state automata,
and translators. Prerequisite: CS 3370. |
| |
|
| CS 4401 |
Special Topics in Artificial Intelligence (3) |
| |
A continuation of Fundamentals of AI. A topic of
research including logic programming, fuzzy sets
genetic algorithms, artificial neural networks, or
pattern analysis is included. Prerequisite: CS
3331. |
| |
|
| CS 4420 |
Introduction to Database Systems (3) |
| |
The fundamental concepts and structures necessary
for the design and implementation of a database
management system. Students design, load, and
query a database using tools such as E-R diagrams
and SQL. Also includes data normalization and file
and index organization. Prerequisite: CS 3323 or
CS 3330. |
| |
|
| CS 4443 |
Web-Based Software Development (3) |
| |
The essentials of Internet programming. Students
will design and write Web page applications utilizing
Internet programming techniques including
scripting languages and hypertext. Programs will
manipulate many forms of data including hypertext,
graphics, audio, and video. Students use state-ofthe-art development tools and design methods to
implement an enterprise web application. Prerequisite:
CS 4420. |
| |
|
| CS 4445 |
Data Communication and Networking (3) |
| |
An overview of local-area and wide-area systems.
Issues discussed include standards, topologies,
management, communication protocols, and security.
Prerequisite: CS 3325 or CS 3330. |
| |
|
| CS 4447 |
Systems Analysis and Design (3) |
| |
Study of the analysis of computer-based information
systems. Emphasis is placed on analysis,
specifications development, design, and development
of information systems, including the software
and databases that support the business needs
of organizations. Both data-oriented and processoriented
design methods are covered. Topics include
the systems analyst, the systems development
life cycle, methodologies, development technology,
systems planning, project management, systems
analysis, systems design, systems implementation,
and systems support. Prerequisite: CS 3323 or CS
3330. |
| |
|
| CS 4448 |
Operating Systems (3) |
| |
An overview of operating system functions and
components. Issues include process definition,
scheduling, and memory management. Various
modern operating systems are compared. Prerequisites:
CS 4445 and CS 3323 or 3330. |
| |
|
| CS 4449 |
Applied Networking (3) |
| |
Computer networks and the use of computer networks
in industry environments. Topics covered
include client-server networks, network hardware
and software, distributed computing, user requirements,
considerations in physical media and topology,
selection of Network Operating Systems
(NOS), computing platforms, network administration,
applications software, internetworking components,
and key issues in network management. Prerequisite: CS 4445; CS 4448 recommended. |
| |
|
| CS 4451 |
Computer Security and Reliability (3) |
| |
Basic security concepts and principles applied to
real-world applications. Introduces the major elements
that go into a security implementation, including
encryption, authentication, access control
lists, execution control lists, vulnerability of operating
systems, auditing, performing vulnerability
analysis and risk assessment, developing a security
plan and protecting data, systems and infrastructure.
This course also builds on the fundamentals
of reliability and safety engineering, which include
software reliability, growth models, testing and
stopping-rules, safety methods and redundancy.
Prerequisite: CS 3323 or 3330; CS 4448 recommended. |
| |
|
| CS 4461 |
Software Engineering II (3) |
| |
This course is a continuation of Software Engineering
I with additional topics that include software
quality insurance and testing techniques. Students
will design, implement and test a large project. Prerequisite: CS 3323 or CS 3330. |
| |
|
| CS 4462 |
Special Topics in Object-Oriented Programming
(3) |
| |
This course is a continuation of CS 3339. It presents
the conceptual framework for the design of
object-oriented systems. Topics include refactoring
designs and design patterns, presented
through the use of some object-oriented language.
Prerequisite: CS 3339. |
| |
|
| CS 4495 |
Special Topics in Computer Science (3) |
| |
Topics in computer science that are not included in
regular course offerings. Specific contents are announced
in the course schedule for a given term.
Prerequisites: senior standing or consent of instructor. |