| Computer Science |
CS 400 - Exploring Computer Science
Credits:
2.00
A gentle introduction to computer science, focusing on the
Internet. Students are introduced to Web design, HTML
authoring, and JavaScript programming. In addition, the
field of computer science is surveyed. Ideal for students
who want to explore what computer science is all about.
Laboratory sessions provide hands-on experience. No
previous experience with computers is required.
CS 401 - Computer Applications
Credits:
4.00
Use of computers to manage and analyze information across
a variety of settings and disciplines. Introduces major
categories of software for large and small computer systems
and discusses the computer's role in today's society. No
prior computer experience required. Significant hands-on
work in campus clusters required. Not open to students who
have completed DCE 491 or 492. Not open to CS majors. CEPS
students should check with their major department for
approval.
CS 401H - Honors/Computer Applications
Credits:
4.00
See description for CS 401.
CS 402 - Survey of Computer Science
Credits:
4.00
Explores the core concepts of computer science, including
computer architecture, operating systems, relationship
between hardware and software, communications and networks,
and data representation. Programming languages and
concepts, algorithm analysis, database systems, graphics
and ethics will also be discussed. Not open to CS majors.
CS 403 - Online Network Exploration
Credits:
4.00
Introductory course covering basic topics relating to the
Internet. Subjects discussed include e-mail, newsgroups,
mailing lists, file transfer, telnet, the World Wide Web,
Web browsers, search engines, and hypertext markup language
(HTML). A large portion of the course focuses on Web
publishing. Security and privacy issues, and commerce and
legal issues are also discussed. Students are expected to
have no previous experience with HTML. They will acquire
new skills as well as broad understanding of the technical
possibilities of living and working in an online society
and its implications. No credit if credit earned for CIS 405
CS 405 - Introduction to Applications Programming with Visual Basic
Credits:
4.00
Introduces the concepts and techniques of microcomputer
windows programming. Students use the Visual Basic
language to develop modular, event-driven
programs/applications. Topics include: forms, properties,
controls, variables, decision structures, and built-in and
user-defined functions and subroutines. CEPS students
should check with their major department for approval. Not
open to CS majors.
CS 407 - Introduction to Computer Programming with Java
Credits:
4.00
Introduces the concepts and techniques of computer
programming, including basic data structures such as
lists, stacks, and queues. The topics include control
structures, file manipulation, recursion, and an
introduction to graphic user interface design. Introduces
object-oriented design and analysis, including class
definition and use, inheritance, and polymorphism. Good
programming style is stressed. Significant out-of-class
programming required. Not open to students who have had CS
410, 412, 415, or the equivalent.
CS 410 - Introduction to Scientific Programming
Credits:
4.00
Introduces the concepts and techniques of computer
programming. Particular emphasis on computer programming
as a problem-solving technique in science and engineering
applications. The C language is taught and used for
assignments. Good programming style is stressed.
Significant out-of-class programming required. Not open to
students who have completed CS 407, 415, or the equivalent.
Pre- or Coreq: MATH 425.
CS 415 - Introduction to Computer Science I
Credits:
4.00
Theory and practice of computer science. Algorithm
development and analysis; data abstraction techniques;
elementary data structures; dynamic memory manipulation;
debugging; and program design issues. Computer systems and
applications. Intended for CS majors.
CS 416 - Introduction to Computer Science II
Credits:
4.00
See description for CS 415.
CS 502 - Intermediate Web Design
Credits:
4.00
An intermediate level exploration of the theory and
practice of Web design. Students learn the fundamentals of
design theory applicable to the World Wide Web and examine
tools and techniques for applying that knowledge to their
projects. Additional topics inlcude information
architecture, usability, accessibility, optimization,
typography, and market visibility. Working knowledge of
XHTML and CSS required. Prereq: CS 403.
CS 503 - Introduction to Web Programming
Credits:
4.00
Introduces the concepts and techniques of client-side
development for the World Wide Web. Students will be
taught the basics of programming and how to apply that
knowledge to enhance Web pages. Topics include variables,
control structures, functions, events, objects, user
feedback, form handling, and the Document Object Model.
Significant out-of-class programming required. Prereq: CS 40
CS 504 - Intermediate Web Development
Credits:
4.00
An intermediate-level examination of the theory and
practice of developing applications for the World Wide
Web. Students will learn practical techniques for designing
and implementing Web applications, with a particular
emphasis on server-side processing and data-driven Web
sites. Working knowledge of XHTML, CSS, and some
programming language is required. Prereq: CS 403 and
programming course.
CS 505 - Database Programming
Credits:
4.00
Introduces database programming in the microcomputer
environment. Students use a procedural programming
language such as Visual Basic to manipulate data managed by
a database management system. Emphasis is on the relational
database model. Topics include connections, queries
(including use of SQL), relations, constraints, transaction
processing, concurrency issues, exception handling, and
report generation. Prereq: a programming course.
CS 506 - Intermediate Applications Programming with Visual Basic
Credits:
4.00
Introduction to advanced Visual Basic data structures,
focusing on the language's object oriented features.
Topics include the creation of programmer-defined classes
and objects, collections, user controls, exception
handling, regular expressions, database programming, and
Web forms. Prereq: CS 405.
CS #508 - Introduction to Data Structures with C++
Credits:
4.00
Introduction to basic data structures including strings,
stacks, queues, lists, files, and binary search trees;
emphasis on abstract data type (ADT) design and programming
techniques. Basic introduction to C++ including
nonhierarchical classes, operator overloading, template
functions, and template classes. (Not offered for credit if
credits received for CS 416.) Prereq: CS 410 (or 407).
CS 509 - Network/System Administration
Credits:
4.00
Introduces the central issues in administration of a
networked computer system. Topics include the
client-server model (including support of mail, FTP,
Telnet, the Web), disk and file systems, backup and
recovery, and security. Privacy and other legal/social
issues will be discussed. Prereq: CS 402 and a programming
course, or permission of the instructor.
CS 515 - Data Structures
Credits:
4.00
Reviews basic data structures; advanced data structures
such as graphs, B-trees, and AVL trees; abstract data
structure design and programming techniques; use of data
abstraction language. Introduction to algorithm analysis.
Prereq: CS 416.
CS 516 - Introduction to Software Design and Development
Credits:
4.00
Principles of problem analysis and solution design applied
to the development cycle of a software system (i.e., from
system requirements specifications to design,
implementation, and system test). Experience in
understanding and debugging exisiting software systems.
Prereq: CS 515.
CS 520 - Assembly Language Programming and Machine Organization
Credits:
4.00
Assembly language programming and machine organization:
program and data representation; registers, instructions,
and addressing modes; assemblers and linkers. Impact of
hardware on software and software on hardware. Historical
perspectives. Prereq: CS 515.
CS 595 - Computer Science Seminar
Credits:
2.00
Students read literature about computer sciences, make
oral presentations about the literature to other members
of the class, and discuss the issues raised in class. The
literature includes both technical and non-technical topics
about computer science, including social issues related to
computing and ethics in the computer science profession.
Prereq: CS 516.
CS 600 - Internship
Credits:
1.00
Provides opportunity to apply academic experience in
settings associated with future professional employment. A
written proposal for the internship must be approved by the
department chair. The proposal must specify what the
student will learn from the internship, why the student is
properly prepared for the internship, and what supervision
will be available to the student during the internship. A
mid-semester report and a final report are required.
Prereq: permission. Cr/F.
CS 620 - Operating System Fundamentals
Credits:
4.00
Introduces operating system concepts and design. Job,
process, and resource management; scheduling; file
systems; interprocess communication. Prereq: CS 515 and CS
520 or ECE 612.
CS 645 - Introduction to Formal Specification and Verification
Credits:
4.00
Mathematical reasoning can be applied to study the
behavior of software systems, an approach that is
particularly relevant to critical systems. This can be
achieved through the description of those systems along
with their properties in formally-defined, logically-based
languages. Introduces techniques relevant to the
application of formal specification and verification
methods, including symbolic logic and proof techniques
related to program correctness. Prereq: CS 516, MATH 531,
MATH 532.
CS 659 - Introduction to the Theory of Computation
Credits:
4.00
Review of sets, relations, and languages. Induction and
diagonalization. Finite automata, context-free languages,
pushdown automata. Basic complexity theory. Prereq: MATH
531 and 532; CS 515.
CS 671 - Programming Language Concepts and Features
Credits:
4.00
Explores the main features of modern, high-level, general
purpose programming languages from the user (programmer)
point of view. Provides students with an opportunity to use
nonimperative programming paradigms, such as
object-oriented, functional, and logical, and to learn how
specific features of such languages can be used efficiently
in solving programming problems. Prereq: CS 516.
CS 696 - Independent Study
Credits:
1.00 to 6.00
Individual projects developed and conducted under the
supervision of a faculty member. Prereq: permission of
faculty supervisor and department chairperson. May be
repeated for credit.
CS 696W - Independent Study
Credits:
3.00 to 6.00
See description for CS 696. Writing intensive.
CS 712 - Compiler Design
Credits:
4.00
Formal languages and formal techniques for syntax analysis
and parsing; organization of the compiler and its data
structures; problems presented by error recovery and code
generation. Classical topdown and bottom-up techniques
currently in wide-spread use, general discussion of LL(k)
and LR(k) parsers; automatic methods of compiler generation
and compiler compilers. Students required to define a
simple, nontrivial programming language and to design and
implement its compiler. Prereq: CS 520 and CS 671.
CS #718 - Software Engineering
Credits:
4.00
Design approaches, implementation methodologies, and
management techniques required to develop large, reliable
software systems, including applications-oriented systems.
Team programming projects. Prereq: CS 671.
CS 719 - Object-Oriented Methodology
Credits:
4.00
Object-oriented system design and programming. Languages
for object-oriented programming. Design intensive. Prereq:
CS 671 or permission.
CS 719W - Object-Oriented Methodology
Credits:
4.00
See description for CS 719. Writing intensive.
CS 720 - Operating System Programming
Credits:
4.00
Detailed discussion of operating system concepts and
features. Practical examples and exercises that utilize
advanced operating system features, including interprocess
communication, synchronization, client-server
communication, shared memory, threads, remote procedure
calls, and device-level I/O. Discussion of POSIX 1003.1
Part I Standards. Prereq: CS 516 and CS 620.
CS 721 - Operating System Kernel Design
Credits:
4.00
Design and implementation of an operating system kernel,
using LINUX as an example. Detailed discussion of the data
structures and algorithms used in the kernel to handle
interrupts, schedule processes, manage memory, access
files, deal with network protocols, and perform
device-level I/O. Course is project-oriented, and requires
the student to make modifications and additions to the
LINUX kernel. Prereq: CS 720 or permission.
CS 724 - Distributed Operating Systems
Credits:
4.00
Fundamental concepts, algorithms, and design principles
that form the basis of distributed and multiprocessor
operating systems. Architectural overview, design, and
implementation methodology of several real distributed
systems. Prereq: CS 516 and CS 620.
CS 725 - Computer Networks
Credits:
4.00
Introduces local, metropolitan, and wide area networks
using the standard OSI Reference Model as a framework.
Introduces the Internet protocol suite and network tools
and programming. Discusses various networking technologies.
Prereq: CS 516 and CS 620.
CS 730 - Introduction to Artificial Intelligence
Credits:
4.00
In-depth introduction to artifical intelligence,
concentrating on aspects of intelligent problem-solving.
Topics include situated agents, advanced search techniques,
knowledge representation, logical reasoning techniques,
reasoning under uncertainty, advanced planning and control,
and learning. Prereq: CS 671.
CS 730W - Introduction to Artificial Intelligence
Credits:
4.00
See description for CS 730. Writing intensive.
CS #735 - Introduction to Parallel and Distributed Programming
Credits:
4.00
Programming with multiple processes and threads on
distributed and parallel computer systems. Introduces
programming tools and techniques for building applications
on such platforms. Course requirements consist primarily of
programming assignments. Prereq: CS 516 and CS 620.
CS 735W - Introduction to Parallel and Distributed Programming
Credits:
4.00
See description for CS 735. Writing intensive.
CS 760 - Introduction to Human-Computer Interaction
Credits:
4.00
Human-computer interaction is a discipline concerned with
the design, evaluation, and implementation of interactive
computing systems for human use and with the study of major
phenomena surrounding them. Prereq: CS 516 and CS 620.
CS 760W - Introduction to Human-Computer Interaction
Credits:
4.00
See description for CS 760. Writing intensive.
CS 765 - Introduction to Computational Linguistics
Credits:
4.00
Introduces computational analysis of natural language with
a focus on semantic representations and the resolution of
ambiguity. Provides an elementary working knowledge of
linguistic and artificial intelligence analysis methods as
motivated by examples of potential input texts. Topics
include parsing, formal grammars, representation of
knowledge and memory, inference, and interpretation of
nonliteral language. Prereq: elementary knowledge of LISP
or instructor's permission.
CS 765W - Introduction to Computational Linguistics
Credits:
4.00
See description for CS 765. Writing intensive.
CS 767 - Interactive Data Visualization
Credits:
4.00
Detailed discussion of how an understanding of human
perception can help us design better interactive displays
of data. Topics include color, space perception, object
perception and interactive techniques. Students write
interactive programs, give presentations and undertake a
project designing and evaluating a novel display technique.
Prereq: instructor's permission.
CS 767W - Interactive Data Visualization
Credits:
4.00
See description for CS 767. Writing intensive.
CS 770 - Computer Graphics
Credits:
4.00
Input-output and representation of pictures from hardware
and software points of view; interactive techniques and
their applications; three-dimensional image synthesis
techniques and their applications. Prereq: CS 671.
CS 770W - Computer Graphics
Credits:
4.00
See description for CS 770. Writing intensive.
CS 775 - Database Systems
Credits:
4.00
Database analysis, design, and implementation. Focus on
the relational model. Data description and manipulation
languages, schema design and normalization, file and index
organizations, data integrity and reliability. Usage of
selected DBMS. Prereq: CS 671 and MATH 531.
CS 780 - Topics
Credits:
4.00
Material not normally covered in regular course offerings.
May be repeated for credit.