|
|
|
Undergraduate
Courses
CS 1310 Intro to
Computer Programming
CS 1401 Introduction
to Computer Science
CS 1420 Computer
Programming Science / Engineering
CS 2401 Elem. Data
Structures / Algorithms
CS 2402 Data
Structures
CS 3190 Special Topics in Programming
CS 3195 Junior
Professional Orientation
CS 3320 Comp Arch II: Adv.
Design/Imp
CS 3331 Adv.
Object-Oriented Programming
CS 3335 Systems
Programming
CS 3350 Automata/Computability/Formal
Lang
CS 3360
Design/Implementation Programming Language
CS 3370 Computer Graphics
CS 3432 Comp Arch I: Comp
Org/Design
CS 4181 Undergraduate Seminar
CS 4191
Introduction to Computer Science Research
CS 4195 SR Professional
Orientation
CS 4310 Software
Engineering I
CS 4311 Software
Engineering II
CS 4316 Computer Networks
CS 4320 Artificial
Intelligence
CS 4351 Computer Security
CS 4352 Compilers and
Interpreters
CS 4342 Database
Management
CS 4365 Topics in Soft Computing
CS 4371 Computer Science Problems
CS 4375 Theory of
Operating Systems
CS 4390 Scientific &
Programming Visualization
CS 4390 Human-Computer
Interaction
CS 4390 Cryptography
CS 4390 Software Design
CS 4390 Robotics
CS 4390 Usability
CS 4390 Computer Security
CS 4392 Research Methods
in Computer Science
CS 4393 Senior Project
Graduate Courses
CS 5303 Logical Foundations of Computer Science
CS 5310 Computer Graphics
CS 5314 Artificial Intelligence I
CS 5315 Theory of Computation
CS 5317 Human-Computer Interaction
CS 5318 Topics in Interactive Systems
CS 5319 Topics in Language Processing
CS 5322 Topics in Advanced Database Systems
CS 5333 Logic Programming
CS 5334 Parallel And Concurrent Programming
CS 5336 Scientific and Program Visualization
CS 5337 Topics in Advanced Interconnection Networks
CS 5340 Advanced Operating Systems
CS 5341 Advanced Computer Architecture
CS 5350 Advanced Algorithms
CS 5351 Interval Computations
CS 5352 Computer Security
CS 5353 Topics in Emerging Computing Paradigms
CS 5354 Topics in Intelligent Computing
CS 5356 Validation Analysis and Interval Computations
for Bioinformatics
CS 5381 Topics in Software Design
CS 5382 Topics in Software Development
CS 5383 Topics in Software Assurance
CS 5390 Special Topics
CS 5391 Individual Studies
CS 5392 Graduate Research Methods
CS 5394 Graduate Research
CS 5694 Graduate Research
CS 5396 Graduate Projects
CS 5397 Graduate Projects
CS 5398 Thesis
CS 5399 Thesis
Doctoral Courses
CS 6194 Doctoral Research
CS 6294 Doctoral Research
CS 6394 Doctoral Research
CS 6694 Doctoral Research
CS 6390 Special Topics
CS 6391 Individual Studies
CS 6398 Dissertation;
CS 6399 Dissertation;
Undergraduate Course Descriptions
- CS
1310-Introduction to Computer Programming (3-0) (TCCN COSC 1301)Fundamentals
of computers, including software, hardware, impact on society, and
beginning programming in a high-level language, such as FORTRAN,
BASIC, LOGO, and Python. Designed for students not engaged in mathematically
oriented studies.
(HOMEPAGE/SYLLABUS)
|
- CS
1401-Introduction to Computer Science (3-3) (TCCN COSC 1430)First
course for students majoring in Computer Science. Introduction to
problem solving with computers, including representation, control
structures, and software development methods; closed laboratory and
programming assignments in a high-level language; programming
environments; social and ethical aspects of computing. Prerequisite
: MATH 1508 with a grade of C (HOMEPAGE/SYLLABUS)
|
- CS
1420-Computer Programming for Scientists and Engineers (3-3)Introduction
to computers and problem solving with digital computers. A
procedural programming language will be utilized to solve scientific
and engineering oriented problems. Visualization methods will also
be used to provide an experimental approach to problem solving.
Prerequisite
: MATH 1508 with a grade of C or better.
(HOMEPAGE/SYLLABUS)
|
- CS
2401-Elementary Data Structures and Algorithms (3-3) (TCCN COSC
1418)Second course for students majoring in Computer Science.
Fundamental computing algorithms, including searching and sorting;
elementary abstract data types including linked lists, stacks,
queues and trees; introduction to algorithm analysis. Prerequisite
: CS 1401 with a grade of C or better.
(HOMEPAGE/SYLLABUS)
|
- CS
2402-Data Structures (3-3)(TCCN COS 2318)The definition and
implementation of abstract data types; representation of data using
sets, lists, trees, and graphs; the design and implementation of
traversal, search, and sort algorithms; and the space and time
analysis of algorithms. Prerequisite:
CS 2401 and MATH 2300 each with a grade of C or better. (Homepage)
|
- CS
3190-Special Topics in Programming (1-0)Essential constructs and
usage of either a programming language (e.g., C, PROLOG, Haskell,
C++, Perl), an operating system (e.g., Unix), or advanced topics
within a particular language or OS (e.g., CGI programming, Java GUI
programming, Windows GUI programming, Intended to allow advanced
students to acquire working proficiency quickly. The language/OS
will vary. May not be counted toward the major in Computer Science.
May be repeated for credit when the topic differs. Prerequisite:
CS 3360 with a grade of C or better.
|
- CS
3195-Junior Professional Orientation (1-0)Introduction to the
Computer Science profession with a special emphasis on professional
ethics. Required of all students prior to graduation.
(HOMEPAGE/SYLLABUS)
|
- CS
3320-Computer Architecture II: Advanced Computer Design and
Implementation (3-0)The organization and structure and the major
hardware components of computers; the mechanics of information
transfer and control within digital computer systems. Prerequisite:
CS 3432 and EE 2369 each with a grade of C or better.
(HOMEPAGE/SYLLABUS)
|
- CS
3331-Advanced Object-Oriented Programming (3-0) An in-depth
exposure to the object-oriented programming paradigm, which builds
upon programming experience gained in lower-level computer science
classes. Emphasis on programming in an object-oriented language with
which students are already familiar, and on requirements, testing,
code reading, and comprehension. Prerequisite:
CS 2402 with a grade of C or better.(HOMEPAGE/SYLLABUS)
|
- CS
3335-Systems Programming (3-0) The
design and implementation of the programming environment including
editors, compilers, loaders and linkers, debuggers and operating
systems. Prerequisite:
CS 2402 with a grade of C or better.
(HOMEPAGE/SYLLABUS)
|
- CS
3350-Automata, Computability, and Formal Languages (3-0)Theoretical
computing models and the formal languages they characterize: Finite
state machines, regular expressions, pushdown automata, context-free
grammars, Turing machines and computability. Capabilities and
limitations of each model, and applications including lexical
analysis and parsing. Prerequisite:
CS 2402 with a grade of C or better. (HOMEPAGE/SYLLABUS)
|
- CS
3360-Design and Implementation of Programming Languages (3-0)
Design features of modern programming
languages including flow control mechanism and data structures;
techniques for implementation of these features. Prerequisite:
CS 3331 with a grade of C or better.(HOMEPAGE/SYLLABUS)
|
- CS
3370-Computer Graphics (3-0) An
introduction to representation and display of graphical information
including line, character, and curve generation. Emphasis on
two-dimensional techniques. Prerequisites:
CS 2402 and MATH 3323 each with a grade of C or better. (HOMEPAGE/SYLLABUS)
|
- CS
3432-Computer Architecture I: Basic Computer Organization and Design
(3-3) Compile and assembly
processes; machine organization; fetch/decode/execute process;
symbolic coding of instructions and data, including instruction
types, formats, and addressing modes; implementation of data and
control structures, subroutines, and linkage; and input/output
handling at the assembly level, including memory-mapped I/O and
interrupt and exception handling. Prerequisites:
CS 2402 and EE 2369 each with a grade of C or better.
(HOMEPAGE/SYLLABUS)
|
- CS
4181-Undergraduate Seminar (1-0) Advanced
topics in computer science. Presentation and discussion of various
topics in computer science by faculty, students, speakers from other
institutions and from industry.
|
- CS
4191-Introduction to Computer Science Research (0-0-1) Introduction
to the basic skills needed for research, including oral presentation
skills, report writing skills, comprehension, critiquing and
feedback skills, teamwork skills, and research skills such as
formulating a problem, planning research efforts, and managing time.
These skills are taught in a group environment as part of a research
project. Participation requires departmental approval and permission
of the faculty member(s) supervising this research. Prerequisite:
Department approval.
|
- CS
4195-Senior Professional Orientation (1-0) Continuation
of CS 3195.Further introduction into the Computer Science profession
with emphasis on job placement. Senior standing required. May not be
counted toward the major in Computer Science. (HOMEPAGE/SYLLABUS)
|
- CS
4310-Software Engineering: Requirements Engineering (3-0)
Methodologies, approaches, and
techniques associated with software requirements analysis and
definition; process for defining requirements of a system including
feasibility study, requirements elicitation, formal specification,
modeling, validation, verification, and documentation; other topics
include cooperative teamwork and project management; first semester
of a two-semester capstone project in which students work with a
customer. (HOMEPAGE/SYLLABUS)
|
- CS
4311-Software Engineering: Design and Implementation (3-0)
Methodologies, approaches, and
techniques associated with software design, implementation, and
testing of a software system; other topics include cooperative
teamwork, project management, and documentation; second semester of
a two-semester capstone project in which students design and
implement a real-world application specified in CS 4310.Prerequisite:
CS 4310 with a grade of C or better.(HOMEPAGE/SYLLABUS)
|
- CS
4316-Computer Networks (3-0)Introduction to data communications.
Covered topics include: data transmission, link control, encoding,
multiplexing, switching, network topologies, internetworking,
address resolution, protocol layering, routing methods, data
security, and distributed systems. Prerequisites:
CS 2402 and EE 3384 each with a grade of C or better.
|
- CS
4317 Human-Computer Interaction --
Models and methods of human-computer interaction. Theory of human-computer interaction. Development methods for interfaces such as user-centered design, prototyping, and participatory design. Evaluation and testing techniques, such as heuristic evaluation, the cognitive walkthrough, and usability testing. User-interface programming. Ethical and societal issues. (HOMEPAGE)
|
- CS
4320-Artificial Intelligence (3-0) Introduction
to basic concepts and techniques of artificial intelligence
including knowledge representation, search strategies, symbolic
logic, expert systems, and applications. Prerequisite:
2402 with a grade of C or better. (HOMEPAGE)
|
- CS
4342-Database Management (3-0) Introduction
to data base concepts, hierarchical, network and relational data
models, data description and query languages, file and index
organization, and file security and integrity. Prerequisite:
2402 with a grade of C or better.(HOMEPAGE/SYLLABUS)
|
- CS
4351-Computer Security (3-0) General concepts and applied
methods of computer security,especially as they relate to
confidentiality, integrity, and availability of information assets.
Topics include system security analysis; access control and security
models; identification and authentication; protection against
external and internal threats; communication protocols;
Internet security. Prerequisite: CS 3331 with a grade of "C" or
better.
(HOMEPAGE/SYLLABUS)
|
-
CS 4352-Compilers and Interpreters (3-0)
The structure of compilers and interpreters: lexical syntax and
semantic analysis, formal description of programming languages,
parsing techniques, intermediate languages, optimization and code
generation.
Prerequisite: CS 3350 with a grade of C or better.(HOMEPAGE/SYLLABUS)
|
- CS
4365-Topics in Soft Computing (3-0) Introduction
to basic concepts and techniques of soft computing, including
neural, fuzzy, evolutionary, and interval computations, and their
applications. This course may be repeated for credit when topic
varies. Prerequisites:
EE 3384 or STAT 3330, and MATH 4329.
|
- CS
4371-Computer Science Problems (0-0-3) Original
investigation of special problems selected by the student in
consultation with the instructor and with the permission of the
Chairperson of the Computer Science Department. May be repeated for
credit. Prerequisites:
Senior standing in Computer Science and department approval.
|
- CS
4375-Theory of Operating Systems (3-0) Process
and thread management, concurrency, memory management, processor
scheduling, I/O management and disk scheduling, and file management.
Prerequisite:
CS 3320 with a grade of C or better.(HOMEPAGE/SYLLABUS)
|
- CS
4390-Special Topics in Computer Science (3-0) Selected
topics of current interest in Computer Science. May be repeated for
credit when topic varies. Prerequisites:
Senior standing in Computer Science and department approval.
|
- CS
4392-Research Methods in Computer Science (3-0) An
advanced course in the skills needed for research in Computer
Science, including a survey of the various research paradigms and
experimental protocols used across the field. Within a particular
research area of the students choice, a student will learn to:
judge whether a question is a research question; design an
appropriate experiment to answer a research question; interpret the
results of an experiment, including selection and application of
appropriate statistical tests; present and defend their research
orally and in writing.
(HOMEPAGE/SYLLABUS)
|
- CS
4393-Senior Project (0-0-3) Research
and analysis leading to a new publishable theoretical result or a
new useful sophisticated piece of software. Includes formal project
proposal, generation of a well-documented report, and a presentation
of the results to faculty and students. Intended to allow advanced
undergraduate students to actively and productively participate in
research. A research topic must be selected by the student in
consultation with the instructor and with the permission of the
Chairperson of the Computer Science Department.
|
|
Graduate Course Descriptions
|
- CS
5303 Logical Foundations of Computer Science
-- A presentation of fundamental tools required in advanced computer
science, including topics such as propositional and first-order
logic, topological properties of networks, managing tasks in
parallel systems using graphs as well as modeling, simulation and
queuing processes.
(HOMEPAGE/SYLLABUS)
|
- CS
5310
Computer Graphics
-- Computer
representation and display of graphical information including line,
character and curve generation, two and three dimensional graphical
techniques, interactive methods, and advanced topics. Prerequisite:
CS 3370 or equivalent.
|
- CS
5314 Artificial Intelligence I --
A study of
first-order logic, including an introduction to Prolog, knowledge
representation including semantic networks and logical
representations, query answering, and reasoning methods. Prerequisite:
CS 4320 or equivalent.
|
- CS
5315 Theory of Computation
-- A
review of formal languages and models of computation such as Turing
machines, followed by an in-depth study of undecidability,
computational complexity theory, and intractability. Prerequisite:
CS 3350 or
equivalent.
(HOMEPAGE/SYLLABUS)
|
- CS
5317 Human-Computer Interaction --
Models and methods of human-computer interaction. Theory of human-computer interaction. Development methods for interfaces such as user-centered design, prototyping, and participatory design. Evaluation and testing techniques, such as heuristic evaluation, the cognitive walkthrough, and usability testing. User-interface programming. Ethical and societal issues. (HOMEPAGE)
|
- CS
5318 Topics in Interactive Systems
-- Advanced study of human-computer interaction.
In-depth treatment of topics such as theoretical models of
interaction, evaluation of interfaces, dialogue modeling,
next-generation interfaces, user interface management systems,
participatory design, groupware, and design of procedures and
documentation. May be repeated for credit when the topic varies. Prerequisite:
CS 5317.
|
- CS
5319 Topics in Language Processing
-- Concepts and techniques of computational processing of human language. Topics may include natural language processing, spoken language understanding, natural language generation, machine translation, and dialogue systems. May be repeated for credit when topic varies. Prerequisite: CS 3350 with a grade of B or better.
(HOMEPAGE/SYLLABUS)
|
- CS
5322 Topics in Advanced Database Systems
-- A review of relational algebra followed by a study of DATALOG and
its extensions (negation as failure, aggregates), query
optimization, dependencies, and object-oriented databases.
Prerequisites: CS 5303 and CS 4342, each with a grade of
"B" or better.
|
- CS 5333 Logic Programming --
This course will include advanced logic programming technique as
well as an in-depth study of the semantics of Prolog, more advanced
logic programming systems, and deductive databases. Prerequisite: CS
5314 or equivalent.
|
- CS
5334 Parallel And Concurrent Programming
-- The study of software and hardware architectures for parallel and distributed systems, including techniques for task partitioning and allocation,
interprocess communication and synchronization, load balancing, and performance issues, in particular, task granularity, locality,
and scalability. Prerequisite: CS 2402 with a grade of C or better or department approval.
(HOMEPAGE/SYLLABUS)
|
- CS
5336 Scientific and Program Visualization
-- In-depth treatment of scientific and program visualization
techniques, including a survey of visualization, fundamentals of
visualization and visualization systems, applications of color to
visualization, and applications of data and program visualization
techniques.
|
- CS
5337 Topics in Advanced Interconnection Networks
-- An in-depth treatment of both electrical and optical
interconnection networks that may be used for parallel processing
algorithms and systems. Topics covered include interconnection
architectures, switching and routing techniques and algorithms, and
metrics.
|
- CS
5340 Advanced Operating Systems
-- A review of process synchronization, deadlocks and memory
allocation paradigm, followed by in depth coverage of distributed
systems, computer security and queuing theory. Prerequisites: CS
4375 and instructor approval.
(HOMEPAGE/SYLLABUS)
|
- CS
5341 Advanced Computer Architecture
- A review of the fundamentals of computer design and instruction set
principles, followed by the study of the basic principles underlying
the design of todays computers, including advanced pipelining,
instruction-level parallelism, memory-hierarchy design, storage
systems, interconnection networks, and multiprocessors. Real examples,
measurements on real machines, cost/performance tradeoffs, and good
engineering design are emphasized.
(HOMEPAGE/SYLLABUS)
|
|
Graduate Course Descriptions
|
- CS
5350 Advanced Algorithms
A review of mathematical techniques for analysis of computer
algorithms, techniques for design of efficient algorithms, description
and analysis of both well-established and recently developed
algorithms. Prerequisites: CS 2302 or permission of instructor.
|
- CS
5351 Interval Computations
-- An overview of interval computations that take into account how
input uncertainties influence the computation result. A review of
the main ideas behind interval computations, main interval
techniques, and applications to practical problems such as robotics,
computer graphics, control, and bioinformatics. (HOMEPAGE)
|
- CS
5352 Computer Security --
General concepts and applied methods of computer security,
especially as they relate to confidentiality, integrity, and
availability of information assets. Topics include system security
analysis, access control and various security models, identification
and authentication, protection against external and internal
threats, communication protocols and Internet security.
(HOMEPAGE/SYLLABUS)
|
- CS
5353 Topics in Emerging Computing Paradigms
-- Introduction to emerging, revolutionary computing paradigms.
Topics may include quantum, chemical, and biological computing. May
be repeated for credit when topic varies.
(HOMEPAGE/SYLLABUS)
(SECOND
HOMEPAGE/SYLLABUS)
|
- CS
5354 Topics in Intelligent Computing --Introduction
to advanced concepts and techniques of intelligent and soft
computing and their applications. Topics may include neural
computations, fuzzy computations, evolutionary computations,
intelligent control and intelligent web design. May be repeated for
credit when topic varies. (HOMEPAGE)
|
-
CS 5356 Validation Analysis and Interval
Computations for Bioinformatics - Introduction to numerical
algorithms with automatic results verification and to interval
computations-methodology that provides guaranteed error estimates
for the results of indirect measurement and data processing. Topics
include reliable methods for equation solving, global optimization,
etc. All topics are illustrated by bioinformatics examples (such as
protein folding).
|
- CS
5381 Topics in Software Design
-- The study of methods and approaches to software design. Topics
may include advanced object-oriented design, meta-object protocols,
software architectures, and design patterns. May be repeated for
credit when topic varies. Prerequisites: CS 4311 or instructor
approval.
|
- CS
5382 Topics in Software Development --
The study of the production of high-quality software systems. Topics
may include process improvement models, deductive and inductive
program synthesis, clean-room programming, and software project
management. May be repeated for credit when topic varies.
(HOMEPAGE/SYLLABUS)
|
- CS
5383 Topics in Software Assurance
-- The study of methods and approaches to software quality assurance
particularly as it applies to high-assurance, high-consequence, and
safety-critical systems. Topics may include software specification
methods, formal methods of software development, formal methods in
software verification, and high-assurance software engineering and
system safety. May be repeated for credit when topic varies.
Prerequisites: CS 5303 and CS 4311.
(HOMEPAGE/SYLLABUS)
|
- CS
5390 Special Topics
-- Advanced topics of contemporary interest in Computer Science. May
be repeated for credit when topic varies. Prerequisite:
Department approval.
|
- CS
5391 Individual Studies
-- Individual variable-credit research, design or analysis on
advanced phases of computer science problems conducted under the
direct supervision of a faculty member. A maximum of 3 credit hours
may be applied towards the M.S. degree. Prerequisite:
Instructor approval.
|
- CS
5392 Graduate Research Methods
-- Introduction to research methods, including research paradigms
and methodologies across computer science, research question
formulation, design of research approach, literature search and
presentation of related work, analysis of results, verbal and
written presentation skills, and research ethics. Students prepare
and defend a thesis proposal or project proposal in an area of their
choice.
(HOMEPAGE/SYLLABUS)
|
- CS
5394 Graduate Research
-- Individual variable-credit research of contemporary topics in
Computer Science. Prerequisite: Permission of Graduate
Advisor.
|
- CS
5694 Graduate Research -- Individual
variable-credit research of contemporary topics in Computer Science.
Prerequisite: Permission of Graduate Advisor.
|
- CS
5396 Graduate Projects --
Individual research, design, or analysis on advanced phases of
Computer Science conducted under the direct supervision of a faculty
member. The courses, including a written report, are required of all
students in the non-thesis option. Prerequisite:
instructor approval.
|
- CS
5397 Graduate Projects --
Individual research, design, or analysis on advanced phases of
Computer Science conducted under the direct supervision of a faculty
member. The courses, including a written report, are required of all
students in the non-thesis option. Prerequisites: CS 5396 and
instructor approval.
|
- CS
5398 Thesis -
Initial work on the thesis.
|
- CS
5399 Thesis
- Continuous enrollment required while work on thesis continues.
Prerequisite: CS 5398.
|
|
Doctoral Course Descriptions
|
-
CS 6194 Doctoral Research
Individual doctoral research in computer science. Prerequisite: Department approval
|
- CS
6294 Doctoral Research -
Individual doctoral research in computer science. Prerequisite: Department approval
|
- CS
6394 Doctoral Research
- Individual doctoral research in computer science. Prerequisite:
Department approval
|
-
CS 6694 Doctoral Research -
Individual doctoral research
in computer
science. Prerequisite: Department approval.
|
-
CS 6390 Special Topics ---
Advanced topics of contemporary interest in computer science.
May be repeated for credit when topic varies. Prerequisite:
Department approval.
|
- CS 6391
Individual Studies -
Individual study of a specific
topic advanced in computer science under the direct supervision of a
faculty member. A maximum of three credit hours may be applied
toward the Ph.D. degree. Prerequisites: Department Approval.
|
- CS
6398 Dissertation
- Initial work on the dissertation. Prerequisite: Department approval
|
- CS
6399 Dissertation
- Taken continuously during preparation of the dissertation. Prerequisite: CS 6398
Back To Top
|
|