Course Descriptions

1310. Foundation of Computer Science 3 hours
Prerequisite: Completion of, or concurrent enrollment in, MAT-1301 or
higher

Introduction to computer science. Topics include problem solving and
software development principles including problem decomposition,
abstraction, date structures, algorithm design and analysis, debugging, and testing; computer architecture including low-level data representation and instruction processing; computer systems including programming languages, compilers, operating systems; real-world application including networks, security and cryptography, artificial intelligence, and social issues.

1315. Introduction to Computers and Programming 3 hours
Prerequisite: MAT 1302 (or higher level mathematics with MAT 1302
prerequisite)

Introduction to computers, computer terminology, computer organization, use of computer terminals, and computer programming in the BASIC language. Not for computer science majors.

1321. Computer Programming with C++ (1320) 3 hours
Prerequisite: MAT 1302 (or higher level mathematics with MAT 1302
prerequisite)

A study of problem-solving techniques, algorithms, object-oriented
principles, and programming using C++. Includes an introduction to
computer history, hardware and systems software, software engineering and modular programming methods, control structures, data types, arrays, and files.

1322. Advanced Computer Programming with C++ 3 hours
Prerequisite: CSC 1321 or consent of instructor
Advanced features of C++ programming language will be studied. Topics include operator overloading and templates; pointer and dynamic memory; container; inheritance and virtual functions. Object-oriented analysis and design is also covered.

1330. Assembly Language Programming 3 hours
Prerequisite: CSC 1321 or consent of instructor
Representation of data, base conversions, CPU organization, addressing,
relocatability, interpretation of program listings and dumps, indexing,
looping, branching, subroutines, and linkages.

2310. Computer Organization 3 hours
Prerequisite: CSC 1322, CSC 1330 or consent of instructor
An introduction to computer structure and organization. Topics include
fundamentals of digital logic; logic modules and design (CPU, memory, and I/O units); instruction sets; data path and control; pipelining; registers and addressing modes; Von Neumann, parallel, and other non-traditional
machine organizations. An introduction to machine microcode
programming is also covered.

2320. Data Structures (3351) 3 hours
Prerequisite: CSC 1322
An introduction to abstract data types, algorithms and computational
complexity, and implementation of data types and algorithms in programs.
Data types include arrays, stacks, queues, linked lists, trees, and graphs.
Sorting and searching algorithms.

2340. Object-Oriented Programming and Design 3 hours
with Internet Applications (3371, 2330, 2331)
Prerequisite: CSC 1330, 2320 or consent of instructor
A study of object-oriented design and programming using one or more OO
programming languages, such as C++ and Java. An introduction to the
Unified Modeling Language (UML) for object-oriented modeling and
implementation of significant programming projects. Emphasis is placed on object-oriented techniques and language syntax. Extensive coverage of class libraries including strings, graphical interfaces, threads, networking, and Internet applications.

3320. Programming Language Concepts (4361) 3 hours
Prerequisite: CSC 2320, CSC 2340
Syntactic and semantic of programming languages, programming language structures, data types, control structures, operators, language extendibility, comparison of the structure features, compile and run-time characteristics of imperative, object-oriented, functional, and declarative programming languages.

3360 Analysis of Algorithms 3 hours
Prerequisite: CSC 2320 and MAT 3381
Introduce formal techniques to support the design and analysis of
algorithms, focusing on both the underlying mathematical theory and
practical considerations of efficiency. Topics include computational
complexity analysis, NP-completeness theory, sorting and searching,
graphs, polynominal arithmetic, pattern matching, divide-conquer
techniques, greedy methods, and dynamic programming.

3391. Operating Systems 3 hours
Prerequisite: CSC 2320 and MAT 3381 or concurrent enrollment
Study of the structure and design of operating systems, including memory
management, concurrency, file systems, resource scheduling and
synchronization.

4320. Artificial Intelligence 3 hours
Prerequisite: CSC 3320
A survey of the field of Artificial Intelligence. Topics include the competing
definitions of AI, links to other disciplines (mathematics, psychology,
philosophy, biology), approaches for solving problems that typically are
thought to require human intelligence. Areas covered include knowledgebased systems, intelligent search and planning, machine learning, and uncertain reasoning. Students will gain experience by using available AI software and by doing a team project on a current topic.

4341. Principles of Database Systems 3 hours
Prerequisite: CSC 2320 and MAT 3381
A study of database design and management focusing on the relational
model. Topics include data modeling, data definition, data manipulation,
normalization, query optimization, and data integrity.

4351. Computer Graphics 3 hours
Prerequisite: CSC 2320
The hardware and software components of graphics systems. Algorithms
for creating and manipulating graphics displays, implementation techniques, and applications.

4360. Computer Networks 3 hours
Prerequisite: CSC 2310 and CSC 3391
Introduces the networking of computer systems. Topics include local area
(LAN) and wide area (WAN) networks, data transmission, communications
software, the architecture of networks, network communication protocols,
and network security.

4371. Numerical Analysis (MAT 4371) 3 hours
Prerequisites: CSC 1315 or CSC 1321, MAT 2351 or MAT 3321
recommended

Scientific applications programming specifically for mathematics or science
majors. Topics include techniques for finding roots, interpolation, functional
approximation, numerical differentiation, numerical integration, linear
programming, and numerical solution of differential equations.

4383. Software Engineering 3 hours
Prerequisites: CSC 2320 and CSC 3391
A study of the software development life cycle, with emphasis on the
analysis and design of software systems. Included are problem identification and definition, modeling systems, requirements analysis, specification, design, implementation, testing, verification, maintenance, and project management. Ethics of the profession are discussed.

4384. Senior Design Project 3 hours
Prerequisites: CSC 4383
Detailed design, implementation, and testing of software systems using
formal software engineering methodologies. To demonstrate their ability to
communicate the results of their effort to others, students are required to
submit a final written report and make an oral presentation of their work.

4391. Contemporary Topics in Computer Science 3 hours
Prerequisite: CSC 2320 and MAT 3381
In-depth investigation of selected topics in computer science, such as data
communications, Bayesian networks, data mining, machine learning, neural networks, fuzzy logic, and parallel processing. Topics will vary.

4393. Internship I 3 hours
Prerequisite: Completion of 45 hours or dean’s approval; 2.0 GPA
Graded academic experiences that provide students with an opportunity to
put classroom learning into practice. Internships provide supervised work
experience directly related to one’s major field of study.

4394. Internship II 3 hours
Prerequisite: Completion of 45 hours or dean’s approval; 2.0 GPA
Graded academic experiences that provide students with an opportunity to
put classroom learning into practice. Internships provide supervised work
experience directly related to one’s major field of study.