COMP 101 COMPUTER LITERACY (3)

Three hours lecture in the lab per week

An introduction to computer applications, including web applications, word processing, spreadsheets, databases and programming. Includes service learning component. Not open to Computer Science majors.

GenEd: B4

COMP 102 WEB DEVELOPMENT (3)

Three hours lecture in the lab per week

Prerequisite: COMP 101 or Consent of Instructor

Introduction to the design and development of web pages. Use of HTML and scripting languages. Use of multimedia content. Current web development tools. Including web site database applications.

GenEd: B4

COMP 105 COMPUTER PROGRAMMING INTRODUCTION (3)

Three hours lecture in the lab per week

Provides a balanced view of computing and provides an introduction to the world of computer science. In depth coverage of the design, development, and expression of algorithms. Covers a variety of concepts relevant to the beginning student, including computer organization and design. Not open to students who have completed COMP 150.

GenEd: B4

COMP 110 COMPUTER LITERACY FOR EDUCATORS (3)

Three hours lecture per week

An introduction to computer systems, including web applications, word processing, spreadsheets, database emphasizing their use in educational settings. Same as LS 110

GenEd: B4

COMP 150 OBJECT-ORIENTED PROGRAMMING (4)

Four hours lecture in the lab per week

Prerequisite: Programming experience

Introduction to algorithms, their representation, design, structuring, analysis and optimization. The course introduces the concept of object paradigm, design and implementation of algorithms as structured programs in a high level language.

GenEd: B4

COMP 151 DATA STRUCTURES AND PROGRAM DESIGN (4)

Four hours lecture in the lab per week

Prerequisite: COMP 150

Introduction to data structures and the algorithms that use them. Review of composite data types such as arrays, records, strings, and sets. Topics include: the role of the abstract data type in program design, definition, implementation and application of data structures such as stacks, queues, linked lists, trees and graphs; recursion; use of time-complexity expressions in evaluating algorithms.; comparative study of sorting and searching algorithms. A lab fee is required.

COMP 162 COMPUTER ARCHITECTURE AND ASSEMBLY LANGUAGE (3)

Three hours lecture per week

Prerequisite: COMP 150

An introduction to computer architecture, assembly language programming, system software and computer applications. Topics include: number systems and data representation; internal organization of a computer; primitive instructions and operations; Assembly language; language translation principles; overview of operating systems. A lab fee is required.

COMP 221 INTRODUCTION TO UNIX AND C FOR PROGRAMMERS (3)

Three hours lecture per week

Prerequisite: COMP 151

Fundamentals of the UNIX operating system, including the command line interface (CLI), shell commands and related utilities. C will be covered at an accelerated pace, appropriate for students who already know another programming language. Fundamental C libraries, and basic UNIX system calls, will be covered. Principles of the program development cycle as applied to a UNIX environment will also be presented.

COMP 232 PROGRAMMING LANGUAGES (3)

Three hours lecture in the lab per week

Prerequisite: COMP 151 and COMP 162

Discussion of issues in the design, implementation, and use of high-level programming languages. Topics include: historical background; how languages reflect different design philosophies and user requirements; technical issues in the design of major imperative (procedural) programming languages; other approaches to programming: functional programming, logic programming, and object-oriented programming.

COMP 262 COMPUTER ORGANIZATION AND ARCHITECTURE (3)

Three hours lecture per week

Prerequisite: COMP 151 and COMP 162

Extension of basic addressing concepts to more advanced addressability such as base register and self relative addressing. Topics include: comparative computer architecture focusing on such organizations as multiple register processors and stack machines; basics of virtual memory, input/output; introduction to the concept of microprogrammable systems; low-level language translation process associated with assemblers; system functions such as relocatable loading and memory management; application of data structure and hashing techniques to the above.

COMP 337 SURVEY OF COMPUTER GAMING (3)

Three hours lecture per week

This course provides the student with a broad understanding of the world of computer gaming. This includes the evaluation and analysis of the cultural, historical, literary, psychological, and technological impact of computer gaming on society. The course will survey the different types of computer games such as educational, sports, first person shooter, adventure, and strategy, along with an overview of the design, implementation, and testing issues that confront game developers. The student will construct, submit and evaluate several written reports during the semester.

GenEd: B4, Interdisciplinary

COMP 345 DIGITAL IMAGE PROCESSING (3)

Three hours lecture in the lab per week Prerequisite: Consent of Instructor An introduction to the basic concepts and techniques for digital image restoration and enhancement, analysis, coding and compression. The emphasis is on processes which analyze primarily two-dimensional discrete images represented at the pixel level, including filtering, noise reduction and segmentation. Fourier analysis techniques will be explored. Programming exercises will be used to implement the various processes, and their performance on synthetic and real images will be studied.

Same as PHYS 345, MATH 345

GenEd: B1, B4, Interdisciplinary

COMP 350 INTRODUCTION TO SOFTWARE ENGINEERING (3)

Three hours lecture in the lab per week

Prerequisite: COMP 232 and COMP 262

Concepts and techniques for systems engineering, requirements analysis, design, implementation and testing of large scale computer systems. Principles of software engineering for production of reliable, maintainable and portable software products. Emphasis on functional analysis and structured design techniques. Topics include unit, integration and systems testing, configuration management, and software quality assurance practices. Participation in group activities involving analysis, design and implementation of a software intensive system. Introduction to Computer Aided Software Engineering (CASE). A lab fee is required.

COMP 351 DISTRIBUTED COMPUTING (3)

Three hours lecture per week

Prequisites: COMP 151

Learn effective use of remote objects and component technologies in computer programs. Study of fundamentals of distributed programming technologies. Build expertise in using modern tools and services to transparently integrate local and remote resources to solve problems.

COMP 362 OPERATING SYSTEMS (3)

Three hours lecture in the lab per week

Prerequisite: COMP 262

Examination of the principal types of systems including batch, multi-programming, and time-sharing. Networked systems are also discussed. The salient problems associated with implementing systems are considered including interrupt or event driven systems, multi-tasking, storage and data base management, and input-output. Emphasis will be placed on some of the simple algorithms used to solve common problems encountered such as deadlocks, queue service, and multiple accesses to data. Projects will be implemented to reinforce the lectures. A lab fee is required.

COMP 420 DATABASE THEORY AND DESIGN (3)

Three hours lecture in the lab per week

Prerequisite: COMP 350

Topics include: database structure including: structure definition, data models, semantics of relations, and operation on data models; database schemas: element definition, use and manipulation of the schema; elements of implementation.; algebra of relations on a database; hierarchical data bases. Discussion of information retrieval, reliability, protection and integrity of databases.

COMP 421 UNIX FOR PROGRAMMERS (3)

Three hours lecture per week

Prerequisite: COMP 151 and COMP 362

In this course students will become proficient in the use of Unix operating environment including command line Unix utilities, vi and emacs editors, regular expressions, text processors and Unix shells. Discover fundamental Perl and its application in programming CGI. Learn how to write in C utilities that control the operating environment through the use of system calls. Find out how to develop programs using Unix facilities.

COMP 424 COMPUTER SYSTEM SECURITY (3)

Three hours lecture in the lab per week

Prerequisite: COMP 350

Security techniques in operating systems, data bases, and computer networks. Analysis of formal security models. Introduction to cryptography, and public key security schemas.

COMP 425 COMPUTER GAME PROGRAMMING (3)

Three hours lecture per week

Prerequisite: COMP 429 and COMP 464

This course focuses on exploring software techniques for development of computer-controlled games. The topics include: principles of game design, integrating graphics, animation and audio in games, game control including methods based on artificial intelligence, networking for multi-player games, game optimization and deployment, and game development cycles

COMP 429 COMPUTER NETWORKS (3)

Three hours lecture in the lab per week

Prerequisite: COMP 232 and COMP 362

Basic software design and analysis considerations in networking computers into coherent, cooperating systems capable of processing computational tasks in a distributed manner. Network topology, routing procedures, message multiplexing and process scheduling techniques will be discussed. A lab fee is required.

COMP 437 FOUNDATIONS OF COMPUTER GAME DEVELOPMENT (3)

Three hours lecture per week

Prerequisite: COMP 105, MATH 137, ART 205, ART 206 or instructor permission

This course lays down the foundation for a multi-disciplinary approach to computer game development. The students study game design principles followed by implementation methodologies and technologies. Management issues in the gaming industry are also examined. The students develop an understanding of how various perspectives from art, technology and business come together in the creation of compelling and profitable game entertainment.

GenEd: B4, Interdisciplinary

COMP 445 IMAGE ANALYSIS AND PATTERN RECOGNITION (3)

Three hours lecture in the lab per week

Prerequisite: PHYS/COMP/MATH 345 or Consent of Instructor

The course addresses the issue of analyzing the pattern content within an image. Pattern recognition consists of image segmentation, feature extraction and classification. The principles and concepts underpinning pattern recognition, and the evolution, utility and limitations of various techniques (including neural networks) will be studied. Programming exercises will be used to implement examples and applications of pattern recognition processes, and their performance on a variety of diverse synthetic and real images will be studied.

Same as PHYS 445, MATH 445

GenEd: B1, B4, Interdisciplinary

COMP 447 SOCIETAL ISSUES IN COMPUTING (3)

Three hours lecture in the lab per week

Prerequisite: Senior standing

A survey course on the role of the digital computer in modern society. Topics include: dangers of the misuse of computers, privacy, copyright, computer crime, legal and social issues, as well as the proper and intelligent use of the machines.

GenEd: B4, D, Interdisciplinary

COMP 449 HUMAN-COMPUTER INTERACTION (3)

Three hours lecture in the lab per week

Prerequisite: Programming experience or Consent of Instructor

The information exchange between humans and computer systems will be examined. Aspects of input/output devices, software engineering, and human factors will be discussed with respect to human-computer interactions. Topics include: text and graphic display; user modeling; program design, debugging, complexity and comprehension; and current research studies and methodologies.

Same as PSY 449

GenEd: B4, E, Interdisciplinary

COMP 451 ADVANCED OBJECT-ORIENTED PROGRAMMING (3)

Three hours lecture in the lab per week

Prerequisite: COMP 350

Principles of object-oriented design and programming based on languages such as JAVA, C++ and Smalltalk will be presented. Understanding of the role of objects, methods, message passing, encapsulation, and inheritance for effective programming will be stressed. Language structure versus particular engineering objectives will be analyzed. Design Patterns techniques will be an unifying theme.

COMP 452 COMPUTATIONAL BIOINFORMATICS (4)

Four hours lecture in the lab per week

Prerequisite: Programming experience and Statistics, or Consent of Instructor

Basic computational models used in molecular biology will be introduced. Topics include algorithms for string alignments, dynamic programming, structural superposition algorithms, computing with differential information, 3D motifs, Hidden Markov Models, phylogenetic trees, statistical/ information techniques for pattern recognition, genetic algorithms.

Same as MATH 452

COMP 454 AUTOMATA, LANGUAGES, AND COMPUTATION (3)

Three hours lecture in the lab per week

Prerequisite: MATH 300

Study of the relation of languages (i.e. sets of strings) and machines for processing these languages, with emphasis on classes of languages and corresponding classes of machines. Phrase structure languages and grammar. Types of grammars and classes of languages. Regular languages and finite state automata. Context-free languages and pushdown automata. Unrestricted languages and Turing Machines. Computability models of Turing, Church, Markov, and McCarthy. Applications to programming languages, compiler design, and program design and testing.

COMP 462 EMBEDDED SYSTEMS (3)

Three hours lecture per week

Prerequisite: COMP 362

This course covers the design of embedded systems. This includes the analysis of small computer systems designed for robotic mechanisms and common appliances such as cell phones and other hand held devices. The course will cover the design, implementation, and testing of software used in such systems with special attention paid to maximizing the use of limited computational resources and the need for event-driven real time system responses.

COMP 464 COMPUTER GRAPHIC SYSTEMS AND DESIGN I (3)

Three hours lecture in the lab per week

Prerequisite: COMP 350 and MATH 240

Topics include: fundamental concepts of computer graphics; graphics devices; graphics languages; interactive systems; applications to art, science, engineering and business; trade-offs between hardware devices and software support. A lab fee is required.

COMP 469 ARTIFICIAL INTELLIGENCE/NEURAL NETS (3)

Three hours lecture in the lab per week

Prerequisite: COMP 350 and 362

An exploration of the use of computers to perform computations normally associated with intelligence, pattern formation and recognition using various backpro iterations. Stacks, decision trees and other modern mining tools and computational models for knowledge representation will be covered. Other topics may include natural language and imagining.

COMP 490 TOPICS IN COMPUTER SCIENCE (3)

Three hours lecture per week

Prerequisite: Upper Division Standing

Current issues in computer science.

COMP 491 CAPSTONE PREPARATION (1)

One hour seminar per week

Prerequisite: COMP 350, COMP 362, Senior Standing in the Computer Science Major

Research and develop a proposal for a significant software project under faculty supervision.

COMP 492 INTERNSHIP (1-3)

Variable hours per week

Prerequisite: Upper Division Standing and program approval of written proposal

Supervised work and study in an industrial or scientific setting involving development of degree-related skills. All students are required to present their projects at the Senior Colloquium.

COMP 494 INDEPENDENT RESEARCH (1-3)

Variable hours per week

Prerequisite: Upper Division Standing and program approval of written proposal

Supervised project involving theoretical research in the field of computer science and its applications. All students are required to present their projects at the Senior Colloquium.

COMP 497 DIRECTED STUDIES (3)

Variable hours per week

Prerequisite: Program approval of written proposal

Supervised project involving library research in the field of computer science or its applications. All students are required to present their projects at the Senior Colloquium.

COMP 499 CAPSTONE PROJECT (3)

Three hours activity per week

Prerequisite: COMP 491

Design, implement and present a significant software project under faculty supervision.

COMP 510 ALGORITHMS (3)

Three hours lecture per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

Design strategies for algorithms and data structures. Theoretical limits to space and time requirements. Time/space trade-offs. Categories of problems and algorithms. Applications to business, bioinformatics, engineering, telecommunications and other disciplines. Open problems in the field.

COMP 520 ADVANCED DATABASE SYSTEMS (3)

Three hours lecture in the lab per week.

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

This graduate course covers advanced analysis of Relational Database Management Systems including their design and implementation. Topics include relational algebras, Entity Relation Diagrams, first, second, and third Normal Forms, data integrity constraints, triggers, query optimization, indexing, stored procedures, distributed databases, database administration issues, transaction processing and scheduling, object oriented database modeling, and data security.

COMP 524 SECURITY (3)

Three hours lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

A survey of security issues and techniques for stand-alone and networked computer systems including databases. Techniques such as auditing, risk analysis, cost-benefit analysis. Security standards. Application in various fields.

COMP 529 NETWORK COMPUTING (3)

Three hours of lecture in the lab per week.

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program and Consent of Instructor

Design and programming in Java of distributed systems that use telecommunication networks as their computing platform.

COMP 532 COMPUTATIONAL BIOINFORMATICS (3)

Three hours of lecture in the lab per week.

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program and Consent of Instructor

Contemporary computational models used in molecular biology and structures simulations will be introduced. Topics include dynamic programming, statistical/ information techniques for pattern recognition, algorithms for string alignments, structural superposition algorithms, computing with differential information, 3D motifs, Hidden Markov Models, phylogenetic trees, genetic algorithms.

COMP 549 HUMAN-COMPUTER INTERACTION (3)

Three hours lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

The design, development and analysis of effective interfaces to computer systems. Trends in graphical user interfaces.

COMP 550 ADVANCED SOFTWARE ENGINEERING (3)

Three hours lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program and Consent of Instructor

Fundamentals of Object-Oriented Design and Analysis. Designing systems with Unified Modeling Language (UML) and patterns. Applications to other fields.

COMP 566 GEOMETRY AND COMPUTER GRAPHIC (3)

Three hours of lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

Algorithms for geometric analysis and retrieval of 3D shapes from large 3D databases common in several fields, including computer graphics, computer-aided design, molecular biology, paleontology, and medicine. The focus of study will be recent methods for matching, registering, recognizing, classifying, clustering, segmenting, and understanding 3D data.

COMP 569 ARTIFICIAL INTELLIGENCE (3)

Three hours of lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

The course covers the many aspects of how human intelligence might be encoded in computer programs and mechanisms such as robots. This includes topics in Natural Language Processing, Computer Vision, Expert Systems, and Automated Problem Solving.

COMP 571 BIOLOGICALLY INSPIRED COMPUTING (3)

Three hours of lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

Study of computing paradigms that have roots in Biology including Neuromorphic Systems, Evolutionary Systems, Genetic Programming, Swarm Intelligence and Artificial Immune Systems.

COMP 572 NEURAL NETWORKS (3)

Three hours of lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

Covers the basic ideas of distributed computation with many simple processing units, similar to the neurons of the brain. Topics include: Hopfield style networks applied to optimization problems, and the backpropagation method applied to pattern classification problems. Additional topics include associate memory, binary vs. analog networks, simulated annealing.

COMP 575 MULTI-AGENT SYSTEMS (3)

Three hours lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

Analysis of design issues that currently confront software engineers as they define the electronic ecosystem that will be housed in the computer networks of the future. The course focuses on state-of-the-art agent technology. In this course the student will build an agent development framework and then implement several intelligent agents.

COMP 578 DATA MINING (3)

Three hours lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

This graduate course covers the fundamentals of Data Mining. Topics include: the analysis of patterns of data in large databases and data warehouses, the application of statistical pattern recognition, and data modeling and knowledge representation. Applications in large databases and gene hunting.

COMP 581 MATHEMATICAL METHODS IN ARTIFICIAL INTELLIGENCE (3)

Three hours lecture in the lab per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

This course presents several branches of mathematics that provide computational basis for Artificial Intelligence. The course covers Trees and Search, The Concepts of Predicate Logic, The Theory of Resolution, Nonmonotonic Reasoning, Probability Theory, Bayesian Networks, Fuzziness and Belief Theory, Classifier Systems, Math for Neural Networks, Elements of Statistics, Decision Trees and Optimization.

Same as MATH 581

COMP 590 ADVANCED TOPICS IN COMPUTER SCIENCE (3)

Three hours lecture per week

Selected advanced topics in Computer Science.

COMP 597 MASTER THESIS (1-9)

Variable hours per week

Supervised research in the field of computer science or its applications. Required to present their research at Graduate Seminar.

COMP 598 MASTER PROJECT (1-9)

Variable hours per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

Supervised industrial or scientific project involving design of new solutions in various applications. Required to present projects at the Graduate Seminar.

COMP 599 GRADUATE SEMINAR (1)

Variable hours per week

Prerequisite: Admission to the Computer Science or Mathematics Graduate Program

Oral presentations of current advancements in the field, reports on students’ research, master thesis, and projects. Repeatable.