














|
|
c o m p u t e r     s c i e n c e
|
COM 1100
Fundamentals of Computer Science
|
4 QH |
Introduces computers and computer programming. Studies basic concepts of a
high-level language such as data types, variables, assignment, expressions,
statements, and input/output. Surveys structured programming tools including
flow control constructs, procedures and functions, parameters, local variables,
and user-defined data structures. Discusses character strings and 1-dimensional
arrays. Introduces graphics and animation. Emphasizes the systematic design of
programs using structured components. Prereq. An interest in programming
computers.
|
COM 1101
Algorithms and Data Structures 1
|
4 QH |
Introduces algorithms, data structures, abstraction, and encapsulation.
Examines arrays, stacks, classes, and templates. Discusses the creation of a
data structure in layers using composition of simpler components. Uses the
concept of class and template to encapsulate the functions and operations on a
data structure. Studies specific classes for arrays, stacks, queues, complex
arithmetic, polynomials, and function objects. Introduces dynamic memory
allocation for arrays and simple linked lists. Examines sorting and searching
techniques and introduces recursion. Prereq. COM1100 or equivalent.
|
COM 1102
Functional Programming and Its Applications
|
4 QH |
Introduces the fundamental concepts and applications of functional programming
based on procedural and data abstraction. Discusses the relation between
functional programming and symbolic processing as implemented in LISP-like
languages. Covers simple applications selected from artificial intelligence,
data-driven design, and programming language design and implementation. Prereq.
COM1101.
|
COM 1105
Computer Science and Its Applications
|
4 QH |
Provides an opportunity for students of all majors to understand and experience
the computer science field and to become informed and intelligent users of its
tools. Explores using the computer as a fundamental component of the
problem-solving process. Discusses basic principles and provides hands-on
experience with a word processor, a spreadsheet package, a database management
system, and a presentation manager. Not open to computer science or business
administration majors.
|
COM 1121
Computer Science Overview 1
|
1 QH |
Introduces ideas and skills that are necessary for success in the computer
science field. Examines the relation between personal goals and professional
standards. Studies work habits, time management, organizational skills,
interpersonal skills, and commitment. Raises issues of ethics and
responsibility. Discusses thinking skills that are needed in computer science
and introduces problem-solving exercises designed to develop these skills.
Introduces readings from the software literature to illustrate the variety of
skills needed in industry. Prereq. Computer science majors only.
|
COM 1122
Computer Science Overview 2
|
1 QH |
Introduces the UNIX operating system, the Internet, and other important
systems. Discusses their basic concepts and history. Introduces ethical issues
such as privacy, security, reliability, and intellectual property. Prereq.
Computer science majors only.
|
COM 1130
Computer Organization and Design
|
4 QH |
Discusses how a computer system works and why it performs as it does. Topics
include assembly language (programs, call/return, stack frames), arithmetic
(representations and algorithms), digital design (implementation of an RISC
subset), and organization (memory hierarchy). Prereq. COM1101 or permission of
instructor.
|
COM 1150
Presentation of Information
|
4 QH |
Discusses the presentation of information as text, hypertext, outlines,
numbers, tables, graphics, diagrams, maps, and annotated images. Emphasizes the
relation between the discovery of meaning in raw information and the effective
presentation of that information. Describes the principles and theories that
guide the selection of visual means to present information. Introduces basic
concepts of mathematics and statistics so that the visual and numerical methods
for studying information may be compared. Utilizes assorted software tools to
create effective presentations and also discusses the strengths and limitations
of current computer technology. Prereq. COM1105 or equivalent. Computer science
majors may take for general elective credit only.
|
COM 1160
Programming Using Visual Tools
|
4 QH |
Provides an introduction to programming using a high-level programming
language. Introduces students to the basic concepts of computation (objects,
data, decisions, loops, functions) using a high-level visual language that
provides support for the rapid development of a graphical user interface.
Emphasizes the ease of development using software toolkits. Develops
programming skills through a sequence of projects that result in simple and
useful programs. Prereq. COM1105 or equivalent. Not open to computer science
majors.
|
COM 1201
Algorithms and Data Structures 2
|
4 QH |
Continues the study of algorithms, data structures, abstraction, and
encapsulation. Introduces structures that utilize arrays and/or links in more
sophisticated ways. Studies linked lists, trees, heaps, priority queues, and
hashing. Discusses efficient sorting (quicksort and heapsort) and introduces
experimental analysis or algorithms. Examines several design issues, including
selection of structures based on what operations need to be optimized
(insertion, deletion, traversal, searching, sorting, evaluation), encapsulation
of algorithms using class and template techniques, and how and when to use
recursion (versus explicit stack-based techniques). Introduces graph algorithms
and structures if time permits. Prereq. COM1101 or equivalent.
Introduces the philosophy and methodology of object-oriented software design
and the techniques of object-oriented programming. Discusses the design and
implementation of individual classes and the tradeoffs in designing collections
of classes. Introduces class libraries and application frameworks. Examines
simple design patterns and compares object-oriented design to other software
design paradigms. Applies object-oriented design to several medium-sized
projects. Prereq. COM1201 or permission of instructor.
|
COM 1205
Software Design and Development
|
4 QH |
Presents the latest ideas and techniques in software methodology and provides a
means for students to apply these techniques. Students, working in groups, will
be expected to design, implement, test, and document a large software project.
Prereq. COM1201, COM1204.
|
COM 1230
Introduction to UNIX Tools
|
4 QH |
Introduces the essentials of UNIX tool programming (with a bent toward systems
administration) via the use of high-level programming languages, utilities, and
toolkits. Topics include UNIX shells and essential utilities, Perl, Tcl/Tk,
system and network security issues, and high-level networking and protocol
basics. Provides students with an opportunity to learn the tools and
programming languages that will help them make the best use of UNIX (and the
myriad other operating systems where the tools have been ported). This course
does not qualify as a computer science elective, but computer science majors
may take this course as a free elective.
Focuses on the use and properties of relational database management systems.
Uses the entity-relationship model on example problems. Presents the SQL
language. Topics may include indexing, query optimization, and object-oriented
databases. Requires implementing a database schema and writing a short
application program on a commercial database management system. Prereq. COM1101
or programming experience in a high-level language. Nonmajors with programming
experience in C are welcome.
|
COM 1317
Transaction Processing Systems
|
4 QH |
Focuses on the concepts and practice of modern transaction processing systems
in a distributed setting. Describes the overall architecture of systems such as
TP monitor, recovery manager, log manager, and lock manager. Discusses the
principles of DO/UNDO/REDO logging such as the write-ahead log rule and the
force log-on-commit rule. Describes compensation log records, checkpoint and
restart recovery procedures, two-phase commit, lock tables, granularity of
locking, and two-phase locking. Prereq. COM1130, COM1201, and COM1315.
(Register for IS1320) Covers the design principles and techniques for
organizing and searching large heterogeneous data collections. Topics covered
include retrieval models/ text and hypertext representation and indexing; query
formulation and search strategies; browsing, information visualization, and
relevance feedback; and evaluation metrics. Advanced topics may include
distributed information retrieval, knowledge-based approaches, and retrieval
from multimedia databases. Prereq. COM1201.
Introduces the basic concepts underlying computer operating systems and
provides hands-on experience with their implementation. Covers the basic
structure of an operating system: hardware and application interfaces,
processes, threads, synchronization, interprocess communication, processor
allocation, deadlocks, memory management, file systems, and input/output
control. Uses examples from many real operating systems (UNIX, MS-DOS, Windows
NT) to reinforce concepts. Prereq. COM1130 and COM1201.
|
COM 1335
Advanced Operating Systems
|
4 QH |
Explores advanced operating concepts with in-depth design and analysis of
operating system artifacts. Topics will be chosen from the following:
interprocess network communication, distributed resource management,
distributed coordination, file systems, file servers, Web servers, and
security. Prereq. COM1330.
|
COM 1337
Computer Communication Networks
|
4 QH |
Introduces the underlying concepts and principles of computer networks.
Presents the different components of a network and how these components fit
together. Emphasizes the design and implementation of network software that
transforms raw hardware into a richly functional communication system. Real
networks (such as the Internet, ATM, Ethernet, Token Ring) will be used as
examples to reinforce the concepts and demonstrate various protocols. Also
covers applications such as electronic mail and the World Wide Web. Topics
include introduction to communications connectivity and standards; layered
architectures; ISO/OSI and TCP/IP reference models; data transmission,
synchronization, and multiplexing; error handling, link control, and protocol
operations; local area networks; network interconnection; high-speed networks;
wide area networks; internetworking; transport layer services; and higher
layers and applications. Prereq. COM1201 and COM1130.
Offers an introduction to recursive thinking, recursive data types, and to
functions defined by induction of the structure of recursive data. Prereq.
COM1201 and MTH1137.
|
COM 1350
Automata and Formal Languages
|
4 QH |
Covers finite-state machines and regular expressions; context-free grammars;
properties and decidability problems of regular and context-free languages;
pushdown automata; pumping theorems for regular and context-free languages;
Turing machines, Church's thesis, and the halting problem; and applications to
compilers, artificial intelligence, and pattern recognition. Prereq. COM1201
and MTH1137.
Implements lexical analyzers and parsers as specified by regular expressions
and context-free grammars. Emphasizes the use of LALR(1) or LL(1) parser
generators. Covers basic code generation. Uses a hands-on approach, including
either a sequence of programming assignments or a project. Prereq. COM1130 and
COM1350.
|
COM 1358
Analysis of Programming Languages
|
4 QH |
Covers run-time behavior of programming languages; interpreters; static and
dynamic scoping; parameter-passing mechanism; implementation of functions and
recursion; and features of current languages and their implementation. Prereq.
COM1102 or COM1340 and COM1350.
Focuses on characteristics and programming of graphics output devices. Presents
basic point and line drawing, two-dimensional displays; clipping and windowing.
Surveys pictures; data structures and display file organization; and
interaction; graphical input and event-driven programs. Includes some
three-dimensional drawing. Prereq. COM1201 and MTH1301.
Introduces the basic principles and techniques for the discovery, design,
analysis, and implementation of efficient algorithms. Sample algorithms will be
drawn from sorting and searching, graph algorithms, string matching algorithms,
greedy algorithms, and dynamic programming. Analysis uses both theoretical and
experimental techniques. The course concludes with a discussion of `hard
problems' for which no efficient algorithms are known and will introduce the
concept of NP-complete problems. Prereq. COM1350.
Examines methods and techniques for representation, organization,
transformation, and security of data. Studies fundamental structures such as
sets, graphs, and finite functions. Examples focus on large objects such as
images, video, and sound, and on large systems such as file systems, databases,
and networks. Prereq. COM1390.
Introduces the basic concepts of parallel computer architectures, network
topologies, and data parallel programming. Emphasizes SIMD machines (with mesh
or hypercube interconnections) and networks of workstations. Studies
fundamental data structures and data parallel algorithms for matrix operations
and fast fourier transforms. Examines graph and geometric computations for
complexity and performance characteristics. Requires a significant amount of
programming to complete course assignments. Prereq. COM1390, MTH1125, and
MTH1301.
Focuses on approaches to making computers act intelligently by studying current
methods for automated understanding, problem solving, optimal search, knowledge
representation, vision, and learning. Students perform experiments with
semantic nets, logical deduction systems, evidential reasoning systems, and/or
neural nets. Prereq. COM1102 or COM1340 and COM1201.
Prepares students in methods of oral presentation of a topic in computer
science. Describes techniques in preparation of overheads and other visual aids
and their appropriate and effective use. Requires students to give a 2030
minute oral presentation with overheads on a topic of their choice. Prereq.
Computer science seniors only.
Freshman Honors Seminar 1, 2, and 3
Offers a seminar course for freshman honors students in computer science and
for freshman honors students in other majors who are concurrently taking
COM1100, COM1101, or COM1201, respectively, or who have completed these
courses. Introduces a variety of topics that extend the material in the
standard freshman computer science courses or go beyond the scope of these
courses. Prereq. Enrollment in the honors program or permission of the
instructor.
|
COM 1770
Computer Science Seminar (Honors)
|
4 QH |
Offers a capstone course for computer science honors students. Exposes students
to a variety of computer science topics of current interest, and provides an
opportunity to improve skills in presenting technical material. Requires
students to prepare a one-hour presentation of professional quality on a topic
of interest in computer science. Requires the student to write paper on the
same topic. Prereq. Computer science seniors in the honors program or
permission of instructor.
|
COM 1777
Honors Adjunct Computer Science
|
1 QH |
Allows honors students who do not have an honors section to do honors work in
one of the computer science elective courses while enrolled in the regular
course.
|
COM 1800
Directed Study in Computer Science
|
4 QH |
Provides students strong in computer science and related sciences a chance to
develop the art and skill needed to work independently and creatively in
computer science. Directed study can be used as an opportunity to examine
familiar material in fresh ways or to explore new material that is not offered
in formal courses. Prereq. Permission of the instructor. May be repeated for
credit.
|
COM 1805
Readings in Computer Science
|
2 QH |
Selected readings under the supervision of a faculty member. Prereq. COM1100,
COM1101, COM1201, COM1204, and permission of instructor. May be repeated for
credit.
|
COM 1810
Topics in Computer Science
|
4 QH |
Lectures by faculty on current topics in computer science. Topics vary from
quarter to quarter. Prereq. COM1100, COM1101, COM1201, COM1204, and permission
of instructor. May be repeated up to three times for credit with changes in
topics.
|
COM 1820
Computer Science Undergraduate Thesis
|
4 QH |
Interested students should contact the College for approval and registration
information. Prereq. COM1100, COM1101, COM1201, COM1204, and permission of
thesis adviser and approval of the Undergraduate Committee.
|
COM 1821
Computer Science Undergraduate Thesis Continuation
|
4 QH |
Prereq. COM1820. May be repeated for credit.
|
COM 1830
Computer Science Undergraduate Project
|
4 QH |
Offer students an opportunity to develop a computer software or hardware
artifact under the supervision of a project adviser. Prereq. COM1100, COM1101,
COM1201, COM1204, and permission of the project adviser. May be repeated for
credit with approval of the Undergraduate Committee.
|
COM 1831
Computer Science Undergraduate Project Continuation
|
4 QH |
Prereq. COM1830. May be repeated for credit.
BACK to TOP
Back to Computer Science Index
Arts and Sciences |
Business Administration |
Cooperative Education |
Criminal Justice |
Engineering |
Engineering Technology |
Health Sciences |
Physical Education and Dance |
ROTC |
General Studies |
English as a Second Language
|