COMPUTER SCIENCE

CS 115. ELEMENTS OF COMPUTER SCIENCE 3 HRS.

(Prerequisites, 1 year of high school algebra, MA 098, or permission.)

This course covers the computer and computer application at the

introductory level. Topics include the history of computing, hardware,

components, software, problem solving, data types and structures,

acquisition and selection of equipment and software, social and

economic implications, and careers in computing. The course is

designed for students who will utilize the computer in other disciplines

and students desiring general information about computers and their

applications.

CS 130. MICROCOMPUTER PROBLEM SOLVING 3 HRS.

(Prerequisite, one year of high school algebra.) An introductory study of

problem solving using computers, with emphasis on the microcomputers.

Basic programming skills and efficient techniques for setting

up problems applicable for computer solution are stressed. The primary

response of the student is to solve problems by writing programs, testing

them, and obtaining the results on the computer.

CS 201. CURRENT TOPICS IN COMPUTER SCIENCE 1-3 HRS.

This course will provide a study of selected topics in computer science

not currently found in other computer science courses. It may be

repeated with different topics for a maximum of six credits. See

Schedule of Classes for specific topics.

CS 220. INTRODUCTION TO COMPUTER SCIENCE 3 HRS.

(Prerequisite, high school algebra.) An overview of the discipline of

Computer Science. Topics to be covered will consist of introductions to

the “traditional” areas of computer science such as data structures,

assemblers and compilers, theory of computing, artificial intelligence,

theory of data bases, and programming languages. This is intended as a

first course for computer science majors.

CS 234. SOFTWARE IMPLEMENTATION AND

UTILIZATION 3 HRS.

(Prerequisites, CS 130 and CS 220.) This course will introduce the

secondary education student to use of software technologies and provide

a framework for utilizing software products in an educational setting.

The course will provide its participants with strategies for employing

these technologies to assist the secondary classroom teacher and

learning community.

CS 250. INTRODUCTION TO COMPUTER PROGRAMMING 3 HRS.

(Prerequisite, MA 110.) This course is designed to introduce students

to the discipline of computer science. Major emphasis will be placed on

problem solving by decomposition top-down design of algorithms,

elementary control and record structures, array, string, and file

processing, recursion and pointer variables.

CS 260. PROGRAMMING AND PROBLEM SOLVING 3 HRS.

(Prerequisite, MA 110.) This course is designed to introduce students

to the discipline of computer science. Major emphasis is placed on

problem solving and program development skills. Students write

computer programs in a high-level language. Major topics include

program design, control structures, subprograms, arrays, pointers, and

class construction.

CS 301. FLUENCY WITH INFORMAITON TECHNOLOGY 3 HRS.

An overview of Information Technology and its relation to society.

Through a hands-on approach, students will learn fundamentals of

computer architecture, operating systems, computer communications, an

overview and limitation of programming languages, and applications

software. Students will have the opportunity to reflect on the integration

of computer technology and society (past/present/future.)

CS 315. JAVA PROGRAMMING 3 HRS.

(Prerequisites, CS 260 or instructor permission.) Java is an objectoriented

language that has become an important language for use on the

Internet. This course will give an introduction to programming in Java.

CS 320. COMPUTER NETWORKS AND INTERNETS 3 HRS.

(Prerequisite, MA 110.) This course answers the basic question, "How

do computer networks and internets operate?" in the broadest sense.

The course provides a comprehensive, self-contained tour through all of

networking from the lowest levels of data transmission and wiring to the

highest levels of application software.

CS 325. HTML PROGRAMMING 3 HRS.

This course provides the student with the information necessary to

create HTML documents for the World Wide Web. The course will

cover syntax and design issues as well as techniques and technologies

which promote information transmission across the Internet.

CS 340. ALGORITHMS AND DATA

STRUCTURES I 3 HRS.

(Prerequisites, CS 220 and CS 250.) Basic concepts of data structures

and algorithms. Design and analysis of algorithms and analysis of the

data structures which are appropriate to the implementation of particular

algorithms. The effect of data structures and algorithms on program

development, efficiency and maintenance will be covered. Applications

of data structures such as lists, strings, arrays, trees, stacks, queues, and

graphs in file processing and bulk data storage will be covered.

CS 345. ALGORITHMS AND DATA STRUCTURES II 3 HRS.

(Prerequisite, CS 340 or consent of instructor.) Continuation of CS 340.

The analysis of a variety of algorithms which arise frequently in

computer applications. Basic principles and techniques for analyzing

and improving algorithms in areas such as List Searches, Sorting,

Pattern Recognition, Polynomial and Matrix Computations.

CS 350. PROGRAMMING LANGUAGES 3 HRS.

(Prerequisite, CS 340.) The study of the general concepts and

principles of underlying computer programming languages. Case studies

of specific computer languages which illustrate these general concepts

and principles.

CS 355. UNIX 3 HRS.

This course provides an overview of the commands, utilities and

supporting architecture used in the UNIX operating system. This course

provides the student with skills needed to operate UNIX based

computers on the Internet and perform file/system operations on

graphics workstations and servers. Topics include installation, common

utilities, making files, creating and manipulating databases, servers,

editors, and the C, Bourne, and Korne shells.

CS 386. INTERNSHIP: COMPUTER SCIENCE 1-3 HRS.

(Prerequisite, 20 hours in computer science courses.) An academic

course to provide students with an opportunity to gain field experience

in computer science through professional experience. The academic

experience is developed jointly by the student and the faculty advisor.

No more than 3 hours in CS 386 may be counted toward the computer

science major.

CS 410. SEMINAR IN COMPUTER SCIENCE 1-4 HRS.

(Prerequisite, permission of mathematics department.) A seminar

involving various topics in computer science.

CS 444. DATABASE ORGANIZATION 3 HRS.

(Prerequisite, CS 260 or instructor permission.) Investigations of

strategies for deploying database application. Overview of database

architectures, including the Relational, Hierarchical, Network and

Objects Models. Database interfaces, including the SQL query

language. Issues such as security, integrity, and query optimization.

Database design using the Entity-Relationship Model. Develop

familiarity with modeling, design and implementation techniques used

in the construction of database applications.

CS 472. TEACHING COMPUTER SCIENCE 2 HRS.

(Prerequisites, CS 130 and CS 115.) A methods course to aid the

prospective computer science teacher in high school and junior high

school with aspects of hardware and software selection and evaluation;

use of the computer in other disciplines and in the home; organization

of computer topics for presentation; design of computer projects;

careers in the computer science field; computer architecture; practicum

in the teaching of computer science.

CS 480. INDEPENDENT STUDY COMPUTER SCIENCE 1-4 HRS.

(Prerequisite, permission of mathematics department. Open only to

qualified juniors and seniors.) Topics of special interest in some area of

computer science study not included in regularly listed courses.

CS 501. ADVANCED COMPUTER PROGRAMMING 1-3 HRS.

(Prerequisite, CS 250 or consent of instructor.) Elementary and

advanced programming techniques for a particular language will be

studied along with applications of the language. The student will have

many opportunities to learn these skills through frequent programming

assignments. Course may be repeated for credit.

CS 520. MICROCOMPUTER PROJECTS 3 HRS.

(Prerequisites, MA 161 or MA 165 & CS 130 or instructor’s

permission.) This course is designed to introduce students to additional

features and capabilities of microcomputers, such as cassette tape or

floppy disk storage and retrieval, used to solve scientifically oriented

problems. With minimal instruction, students are required to complete

advanced projects, primarily using the programming language BASIC,

on each of the available micro-computers.

CS 523. ARTIFICIAL INTELLIGENCE 3 HRS.

(Prerequisites, CS 501 and CS 345, or equivalent course work.) This

course includes problem solving methods, game playing, and

knowledge representation.

CS 542. DISCRETE STRUCTURES 3 HRS.

(Prerequisite, MA 240.) Computer oriented course. Theory and

applications with regard to trees, graphs, partial orders, lattices, Boolean

algebra, finite groups and combinatorics.

CS 545. DATABASE THEORY 3 HRS.

(Prerequisites, MA 240, CS 345.) This course will provide a rigorous

treatment of database theory and the implementation of database

structures. Topics will include: data modeling, relational algebra,

relational calculus, dependencies and normalization theory, and external

implementations of data structures such as B-Trees and hash tables.

CS 552. PRINCIPLES OF SOFTWARE ENGINEERING 3 HRS.

(Prerequisite, CS 345.) This course covers the phases of software

development including formalization of requirements, architectural and

detailed design, implementation, testing, and maintenance.

CS 554. PRINCIPLES OF COMPUTER

ARCHITECTURE 3 HRS.

(Prerequisites, CS 345 and CS 542.) A lecture-laboratory course where

students will learn the hierarchical structure of computer architecture. A

hands on experience will be included.

CS 555. PRINCIPLES OF COMPUTER ORGANIZATION 3 HRS.

(Prerequisite, CS 345.) This course stresses the hierarchical structure of

computer architecture. Levels of computer organization include digital

logic, microprogramming, machine language, macro language,

operating systems. Topics covered are instruction execution, memory,

registers, addressing, input/output, control, instruction sets, data flow,

control flow, interrupts, and multitasking. Hands on experience will

include assembly language programming using macros, linkers, and

loaders.

CS 557. OPERATING SYSTEMS 3 HRS.

(Prerequisite, CS 345.) This course is designed to study the principles

and problems involved in the development of an operating system of a

computer. Overview of the development of operating systems,

sequential and concurrent processes, cooperation, communication and

mutual exclusion, synchronization constructs: monitors, conditional

critical regions, semaphores; deadlocks, resource allocation, scheduling

policies, storage management, case study of the operating system of a

personal computer.

CS 561. SYSTEMS PROGRAMMING 3 HRS.

(Prerequisite, CS 340.) Organization of a computer system. Internal

representation of data. Memory management, input/output and

interrupts. Utilizing system software in order to program the system via

assembling, linking, and debugging.

CS 563. COMPUTER ATTACK ESSENTIALS 3 HRS.

When talking about Network Security, we have to acknowledge that all

systems have vulnerable points. This course examines the fundamental

and historical perspective of hacking methodology and psyche. The

hacking topics are explored in order to examine the current systems

associated with these vulnerable points. This course researches and

studies the techniques and tools to detect and evaluate these vulnerable

points of known exploits in network and operating systems. Types of

hackers include those that snoop around networks, vandalize websites

or even steal proprietary information by the use of well-known schemes,

such as viruses, worms, Trojan horses, denial-of-service attacks and

buffer overflows.

CS 564. NETWORK DEFENSE AND COUNTERMEASURES 3 HRS.

Network Defense and Countermeasures focuses on students’

understanding of the architecture for network defense. Students will

work with layered network defense structures and implement firewalls

on various platforms. Students will also gain a working knowledge of

Virtual Private Networks and Intrusion Detection Systems, perform

packet and signature analysis, identify different methods of risk

analysis, and create a security policy.

CS 565. COMPUTER FORENSICS 3 HRS.

This course examines procedures and tools for identifications,

preservation, and extraction of electronic evidence, auditing and

investigation of network and host system intrusions, analysis and

documentation of information gathered, and preparation of expert

testimonial evidence.

CS 569. DATA SECURITY PRACTICUM 3 HRS.

This course takes a practical look at using good security practices in

software. We take a broad look at the issues of correctly implementing

security strategies, including why some strategies fail. Students will

apply concepts from software engineering, cryptography, and security

theory. Students will study state-of-the-art implementation techniques

and learn appropriate conditions under which these techniques apply (or

not). Students will implement a non-trivial project that will stress

correct secure programming techniques.

CS 570. THEORY OF COMPUTATION 3 HRS.

(Prerequisite, CS 542.) This course covers the basic theoretical

principles of computer science embodied in finite automata context free

grammars, computability, and computational complexity.

CS 580. INTRODUCTION TO COMPUTER NETWORKS 3 HRS.

(Prerequisite, CS 345, MA 161.) An introductory examination of the

Open System Interconnection Reference Model (OSI). Special

emphasis will be given to real world implementations of the various

sub-levels of the OSI model.

CS 584. RAPID APPLICATION DEVELOPMENT 3 HRS.

This course introduces the student to Rapid Application Development

Languages as well as the theory and practice of using these programs to

access the internet.

CS 620. COMPUTER NETWORKS AND INTERNETS 3 HRS.

(Prerequisite, MA 110.) This course answers the basic question “How

do computer networks and internets operate?” in the broadest sense.

The course provides a comprehensive, self-contained tour through all of

networking from the lowest levels of data transmission and wiring to the

highest levels of application software.

CS 625. HTML PROGRAMMING 3 HRS.

This course provides the student with the information necessary to

create HTML documents for the World Wide Web. The course will

cover syntax and design issues as well as techniques and technologies

which promote information transmission across the Internet.

CS 760. NUMERICAL ANALYSIS 3 HRS.

(Prerequisites, MA 262.) Most real world applications of mathematics

involve the implementation of numerical algorithms to approximate the

solutions to well known types of mathematical problems. Therefore this

course includes the study of types of numerical errors, precision versus

efficiency considerations, and methods of detecting when a numerical

solution is unacceptably inaccurate. Mathematical areas for numerical

algorithms include solving nonlinear equations, interpolation,

polynomial approximation and differentiation and integration.

CS 762. OPTIMIZATION TECHNIQUES 3 HRS.

(Prerequisites, MA 322 and MA 262, and CS 260.) Computer oriented

course. Mathematical development of optimization techniques, linear

programming, transportation problems, game theory.

CS 763. SIMULATION TECHNIQUES 3 HRS.

(Prerequisites, MA 262 and MA 332, and CS 260.) Computer oriented

course, simulation of complex problems, queing, models, Monte-Carlo

techniques.

CS 765. NUMERICAL LINEAR ALBEGRA 3 HRS.

(Prerequisite or co-requisite: MA322.) The solution of systems of

linear equations is an important component of solving many

applications in a wide variety of fields. A central part of the course

features how this is done efficiently and accurately when using a

calculator or computer to solve the system. Topics include LU

factorization and iterative methods, along with modern techniques for

approximating eigenvalues and eigenvectors.

CS 775. COMPILER DESIGN 3 HRS.

(Prerequisites, CS 350, CS 345, and CS 561.) The course is designed to

study various theoretical aspects involved in construction of a compiler.

Compiler organization--overview, lexical analysis, symbol tables,

representation of data types in a compiler, syntactic analysis, attribute

grammars, semantic analysis, address assignment, code generation, error

handling, storage management; large programming project/case study or

a language used on a personal computer.

CS 780. FILE STRUCTURES 3 HRS.

(Prerequisites, CS 345.) Basic physical characteristics of peripheral

storage devices. File organization and processing methods for

sequential, direct, indexed, B-trees and other tree structured file

organizations. Application of data structure concepts to logical and

physical file organization. Performance analysis. Elements of advanced

data base systems.

CS 810. SEMINAR IN COMPUTER SCIENCE 0-3 HRS.

Directed reading and research in Computer Science.