CS 102 WINDOWS PROGRAMMING FOR NON-PROGRAMMERS
An introduction to programming for non-majors
using Visual Basic .NET
CS 103 COMPUTER SCIENCE I
Programming in Java, object
oriented programming and design. Introduction to algorithms : sorting
and searching. Elementary data structures.
CS 104 COMPUTER SCIENCE II
Continuation of CS 103:
introduction to linked lists, stacks, queues, trees.
CS 195 HOW COMPUTERS WORK
An exploration of how
computers work: what goes on inside the computer (hardware), how to
program computers (software), the Internet and communication revolution,
artificial intelligence and the limits of computation.
CS 201 - 202
DISCRETE MMATHEMATICS FOR COMPUTER SCIEINCE I AND II
LC 207 Mathematical
Experiments in Computer Science
CS 211 DATA STRUCTURES
Stacks, queues, linked
lists, trees, graphs, searching, and sorting. Design and analysis of
CS 212 INTRODUCTION TO FILE PROCESSING
Basic concepts and
terminology, I/O devices, sequential files, external sorting, direct
files, indirect address translation, hashing, inverted file systems,
tree file structures.
CS 221 COMPUTER LOGIC AND ORGANIZATION
Binary number systems,
information representation, Boolean algebra, gates and digital circuit
design, timing and control , memory, designing a simple computer,
for the world wide web. Design patterns.
Processing Layer: XSLT, Servlet Frameworks.
Data Layer: XML, Document Object Model.
Prerequisite: CSC 211
CS 304 COMPUTER ARCHITECTURE
The basics of computer
organization, architecture and assembly language. Instructions
sets, address modes, and the run/time stack are explored by programming
on a RISC machine. CPU and ALU design, performance analysis,
pipelining, cache, virtual memory are examined. Trade-offs between
RISC, CISC and advanced architectures is discussed. Assumes basic
knowledge of digital logic.
CS 311 ALGORITHMS AND COMPLEXITY
Basic algorithm techniques:
recursion, dynamic programming, greedy method branch and bound. Analysis
of algorithms: recurrence equations, NP-completeness, asymptotic
complexity. Applications include graph and combinatorial algorithms.
CS 312 COMPILER DESIGN
Finite automata and lexical
analysis, context free grammars, top down and bottom up parsing, syntax
directed translation, symbol table techniques, runtime storage
administration, code generation, optimization.
CS 314 OPERATING SYSTEMS
Focuses on the fundamentals
of operating systems including: processes, deadlocks, memory management,
I/O, and file systems. After a thorough grounding in these basics,
students will explore distributed/multiprocessor computing. Security and
computer networks are also covered. Lectures in class will be reinforced
with programming assignments using the Linux operating system.
CS 321 MICROCOMPUTER ELECTRONICS
inductors in circuits, diodes, transistors and op amps. Digital
electronics and the use of common integrated circuits. Lab-based course,
includes use of multimeter, oscilloscope, and function generator.
CS 323 PROGRAMMING LANGUAGES
Formal language concepts
including syntax and basic characteristics of grammars. Control
structures, data flow, run-time considerations. Interpretative
CS 325 DATABASE MANAGEMENT SYSTEMS
This course focuses on the
basic principles of Database Management Systems. Students learn why
databases are important to the information age. Data Modeling is taught
using Entity Relationship diagrams. These data models are then
translated into Relational schemas as students learn about Relational
Algebra, Calculus, and Relational Database Systems. Practical experience
is gained through projects using the commercial RDBMS ORACLE. Students
learn SQL (both DDL and DML), database administration, and how to create
complete database applications. The course will culminate in a major
programming project that demonstrates proficiency in modern database
CS 382 ARTIFICIAL INTELLIGENCE
Natural language processing. Deduction and inference. Expert Systems.
Computer vision. Robotics. Programming in LISP, PROLOG, or another AI
CS 384 THEORY OF COMPUTATION
Introduction to the general
theory of computation. Formal grammars: regular, context-free, and
context-sensitive languages. Formal automata: finite-state and pushdown
models. Decidability. Parsing. Turing theory. The Chomsky hierarchy.
Also listed as MA 384.
CS 390 DATA NETWORKING
Data Networking: Data
communications system components, network architectures, layered
protocols, traffic analysis and capacity planning
CS 393 NUMERICAL ANALYSIS
Both theoretical and
practical problems in the computational aspects of mathematics:
approximation of functions, numerical differentiation, solutions to
algebraic and differential equations; topics in linear algebra. Also
listed as MA 393
CS 399 TOPICS IN COMPUTER SCIENCE
Spring 2003: Software
Performance Engineering: Introduction to the discipline of software
performance engineering. Software performance engineering is not
directly concerned with high performance applications for
supercomputers, rather it is concerned with the development of ordinary
software that meets or exceeds performance expectations. Students will
learn about: performance requirements, performance modeling, performance
analysis, workloads, and resource analysis. Lectures will be reinforced
with projects where students will gain first hand experience identifying
and correcting performance problems. Students work in teams on a final
project developing a web server application that scales to thousands of
CS 400 COMPUTER SCIENCE CAPSTONE
Large-scale software project
involving teamwork, written reports, and oral presentations.
CS 475 INTERNSHIP IN COMPUTER SCIENCE
Opportunity for the
qualified student to work in the computer industry under professional
CS 490 DIRECTED STUDY IN COMPUTER SCIENCE
Opportunity for upper level
students to advanced work in a specialized area of computer science.