COSC 10403 - INTRODUCTION TO PROGRAMMING
Prerequisite: Two years of high school algebra
or MATH 10023. Introduction to computers, problem
solving, algorithm design, and programming techniques.
Includes what a computer is (and is not), problem
organization, data representation, and how to utilize
the computer to solve problems. Numerical and non-numerical
problems are solved in a high-level programming language.
COSC 20203 - TECHNIQUES IN PROGRAMMING
Prerequisite: COSC 10403 or equivalent and
MATH 10052 or equivalent. A study of program
development and programming techniques. Structured
programming with problems selected from list processing,
string processing, and file manipulation. Ethics
of the profession will be discussed.
COSC 20803 - DATA STRUCTURES
Prerequisites: COSC 20203. Basic concepts
of data. Linear lists, strings and arrays. Representation
of trees and graphs. Storage systems and structures.
Symbol tables and searching techniques, sorting techniques.
Formal specification of data structures and data
structures in programming languages.
COSC 30203 - COMPUTER SYSTEM FUNDAMENTALS
Prerequisite: COSC 20803. Introduction
to assembly language, linkers, and loaders. Study
of the design and implementation of 2-pass assemblers
with special attention to symbol tables and the problem
of resolving forward and external references.
COSC 30253 - COMPUTER ORGANIZATION (ENGR 3573)
Prerequisites: COSC 30203 (may be concurrent)
and MATH 10123 (may be concurrent). Treatment
of sequential and combinatorial circuits including
flip-flops, multiplexers, decoders, adders, registers,
counters. Design of functional components of a computer
including memory, ALU, control unit, buses. The tradeoffs
of alternative architectural features such as word
size, instruction sets, addressing modes.
COSC 30353 - MICROPROCESSOR BASED DIGITAL SYSTEMS
(ENGR 30583)
Prerequisite: COSC 30253. Introduction
to the design of microprocessor based digital systems
including the study of processor control signals,
address decoding and memory interfacing, interfacing
to serial and parallel ports, A/D conversion, and
interrupt processing. Features of state-of-the-art
microprocessors will be discussed. Both hardware
and software assignments will be required.
COSC 30403 - PROGRAMMING LANGUAGE CONCEPTS
Prerequisite: COSC 20803. A study and
comparison of the concepts and constructs of major
programming language paradigms. Topics include evolution
of programming languages, formal definition (syntax
and semantics), data types, scope, subprograms, data
abstraction. Students will review a published paper
in the area of programming languages. Lab assignments
are given in languages selected to illustrate paradigms.
COSC 30603 - DATABASE SYSTEMS
Prerequisite: COSC 20803 and MATH 10123. Introduction
to design, implementation, and use of relational
database systems. Topics include entity-relationship
modeling, dataflow modeling, relational algebra and
tuple calculus, normalization, SQL, external data
structures, query optimization, and transaction processing.
COSC 40203 - OPERATING SYSTEMS
Prerequisites: COSC 30253 and MATH 10143. Introduction
to operating systems principles. Includes management
of CPU, memory, peripherals, and information; the
problems associated with interprocess communications
and controlling concurrent processes; and the differences
in batch, time-sharing, and real-time operating systems.
COSC 40603 - COMPILER DESIGN AND CONSTRUCTION
Prerequisites: COSC 30203, COSC 30403, and
MATH 10143. Formal description of algorithmic
languages, such as Pascal, and the techniques used
in writing compilers for such. Topics include syntax,
semantics, storage allocation, code generation, error
handling and diagnostics, code optimization, etc.
Includes the definition and writing of a compiler
for a simple programming language.
COSC 40943 - SOFTWARE ENGINEERING
Prerequisite: Senior standing. Stages
of the software development lifecycle (requirements
analysis, specification, design, implementation,
testing), evolution, and quality assurance. Classical
and alternative process models and techniques are
described and discussed. Management issues, professional
responsibilities, and ethics of the profession are
covered. Includes team projects and individual requirements
analysis effort.
COSC 40993 - SENIOR DESIGN PROJECT
Prerequisite: COSC 40943. Senior computer
science majors are required to demonstrate their
mastery of several computer science topics and their
ability to communicate the results of their efforts
to others. They are required to identify and analyze
a computer science problem, develop and implement
a workable solution to the problem, and then document
the results of their efforts.
COSC 30453 - COMPUTER ARCHITECTURE (ENGR 30593)
Prerequisite: COSC 30253. The logical
organization and functional behavior of digital computers
are studied. Fundamental principles in the design
of the CPU, memory, I/O devices, and bus structures
are presented. Performance enhancement topics such
as caching, memory interleaving, interconnection
schemes, pipelining, memory management, reduced instruction
sets (RISC), and multiprocessing are discussed.
COSC 30503 - ADVANCED SYSTEMS PROGRAMMING
Prerequisite: COSC 30203. Introduction
to the systems software features provided by a modern
operating system. The techniques and problems associated
with the use of concurrent execution of multiple
tasks (spawning new tasks from within a task; intertask
communications, synchronization, and termination;
the use of low-level I/O primitives; and methods
for dealing with mutual exclusion, race conditions,
and deadlock). Students will be required to develop
command language procedures and write programs which
invoke operating system services.
COSC 30803 - SYSTEM SIMULATION
Prerequisites: COSC 20803. Discrete event
simulation programming and analysis techniques for
simulation experiments. Includes experimental sampling
and model development in a special purpose simulation
language.
COSC 40003 - COMPUTER NETWORKS
Prerequisite: COSC 30253. Introduction
to basic data communication concepts, including hardware
and software aspects of protocols, asynchronous and
synchronous communication, network configurations,
and error detection. This course includes the study
of both local area networks and long haul networks,
the 7 layer ISO network model, the architecture of
networks, and network communication protocols. Local
and wide area networks including the internet and
world wide web will be discussed.
COSC 40103 - GRAPHICS
Prerequisites: COSC 30253 and a knowledge
of linear algebra (MATH 30224). A basic course
in graphics systems. Considers the equations of lines,
planes, and surfaces; hidden line algorithms; rotations,
scaling, and cutaway transformations; 3-D images
and the use of shading and perspective; animation;
and color graphics.
COSC 40403 - ANALYSIS OF ALGORITHMS
Prerequisites: COSC 20803, MATH 10143, and
a knowledge of probability and statistics. Topics
concerning what can and cannot be proven about computational
complexity, including algorithm design methodologies,
techniques for analysis of space and time requirements,
and P and NP completeness.
COSC 40503 - ARTIFICIAL INTELLIGENCE
Prerequisite: COSC 30603. Introduction
to knowledge representation and methods for intelligent
search. Fundamental topics include state space search,
logic, and inference engines. AI languages Prolog,
Lisp, and Clips will be used to explore additional
topics selected from two-person games, expert systems,
automated theorem proving, planning, and machine
learning.
COSC 40703 - PROGRAMMING LANGUAGE DESIGN
Prerequisite: COSC 40603. Concentration
on the issues of programming language design and
implementation. Topics will include language constructs,
data representation, sequence control structures,
data control structures, storage management.
COSC 40803 - ADVANCED TOPICS IN COMPUTER HARDWARE
Prerequisite: Permission of instructor. Advanced
topics of current interest in computer hardware,
such as computer design, computer networks, advanced
computer graphics. Students will study current literature.
May be repeated for credit when topic changes.
COSC 40903 - ADVANCED TOPICS IN COMPUTER SOFTWARE
Prerequisite: Permission of instructor. Advanced
topics of current interest in computer software,
such as natural language programming, advanced operating
systems, advanced compiler design, file structures,
advanced database. Students will study current literature.
May be repeated for credit when topic changes.
COSC 50123 - OBJECT-ORIENTED DESIGN AND PROGRAMMING
Prerequisite: COSC 30403 or permission of
instructor. Introduction to object-oriented techniques
including design methodologies and programming language
support. Survey of new languages and extensions to
existing languages which provide support for encapsulation,
inheritance, and polymorphism.
COSC 50133 - FORMAL LANGUAGES
Prerequisite: COSC 40603. Languages and
grammars which can be characterized in formal terms,
for the purpose of constructing models for artificial
(computer) languages. Topics will include finite
automata, push down automata, Turing machines, solvable
and unsolvable problems, etc.
COSC 50970 - SPECIAL TOPICS IN COMPUTER SCIENCE
Prerequisite: Permission of instructor. (1-6
semester hours).
CITE 20970 - TOPICS IN COMPUTER INFORMATION SCIENCE
Prerequisite: COSC 20203. Topics of current
interest. May be repeated for credit when the topic
changes. (1-3 sem. hrs.)
CITE 30103 - SYSTEM AND NETWORK ADMINISTRATION
Prerequisites: COSC 20203. Overview of
operating system services and objectives. Installation
and maintenance of Unix, Windows, and Macintosh operating
systems. Issues in heterogeneous and homogeneous
network maintenance and resource sharing. Introduction
to scripting.
CITE 30153 -INTERFACE DESIGN AND SCRIPTING FUNDAMENTALS
Prerequisites: COSC 20203. Fundamental
principles of interface design. Using scripts to
assemble existing programs into new applications.
Topics include GUI and web site design, and cgi-bin
applications utilizing platform independent scripting
languages.
CITE 30333 - DATABASE ADMINISTRATION
Prerequisites: COSC 30603. Introduction to the
database adminstration in both small and large-scale database
operations. Course focuses on the setup, analysis, and maintenance
of relational databases used in modern applications.
CITE 30363 - WEB TECHNOLOGIES
Prerequisites: COSC 30603 or consent of instructor.
This course will provide an overview of current web technologies.
The student will study bot client-side and server-side
technologies and will learn about web authoring, site management,
and distributed web based application.
CITE 30533 - COMPUTERS, TECHNOLOGY, AND SOCIETY
Prerequisites: None. In addition to the
benfits from the introduction of new technologies,
the costs and risks of such changes should be considered.
Class discussions will examine the social, political,
legal, and ethical aspects of technology, with an
emphasis on computer technology. Experimental activities
and selected readings will provide a basis for the
discussion. Credit will not be granted for both COSC
10433 and COSC 20533.
CITE 40353 - COMPUTER HARDWARE CONCEPTS
Prerequisites: COSC 20203 and MATH 10123.
Introduction to the design and operation of hardware systems
that include embedded microcontrollers and microprocessors,
and the programming techniques required to control hardware
systems.
CITE 40453 - COMPUTING INTERNSHIP
Prerequisites: Junior standing, 2.5 GPA in
major, and approval of department chair. Practical
experience in computer and information science. Must
include a minimum of 260 work hours in approved practical
experience situation. Includes 7-8 hours of class
meetings. This course may only be taken pass/no credit.
Open to CS and CIT majors only.
CITE 40773 - ADMINISTERING COMPUTING RESOURCES
Prerequisites: CITE 30103. Tasks of the
computer center manager are studied in the context
of the role of administrative decision maker. Management
processes, models for tradeoff decisions, behavior
concepts, leadership, team dynamics, and infrastructures
are covered. Both centralized and distributed models
with multiple platforms and networked delivery are
considered.
CITE 40913 -ADVANCED TOPICS IN COMPUTER INFORMATION
TECHNOLOGY
Prerequisite: Permission of the instructor. Advanced
topics of current interest. Students will study current
literature. May be repeated for credit when the topic
changes.
COSC 10503 - INTRODUCTION TO PROGRAMMING FOR ENGINEERING & SCIENCE
Prerequisite: MATH 10524 or concurrent. Introdcution
to computer programming and to problem solving techniques using
computer programs with applications in engineering and the
physical sciences.
COSC 10203 - COMPUTER LITERACY
Credit will not be given for both MANA 2103 and
COSC 10203. Introduction to the history of computers,
computer organization, principles of operation, and
impact of computers on society. Hands-on experience
utilizing a variety of computer software tools including
word processing, database management, graphics, and
spreadsheet applications.
COSC 20101 - ASSEMBLER FUNDAMENTALS
Prerequisite: COSC 10403. Computer structure,
machine language, instruction execution, addressing
modes, and internal representation of data. Several
assembler language programming assignments are required.
COSC 20970 - TOPICAL STUDIES IN COMPUTER SCIENCE
Prerequisites: COSC 20203. Courses dealing
with a particular area of investigation in computer
science. The topics will be changed from semester
to semester and the course may be repeated when the
topic is different. (1-3 semester hours)