Course Information

Schedule Codes

At the end of each course description, information is provided to indicate when the course will be scheduled. The schedule codes are the following:

F =Scheduled Fall
FS = Scheduled Fall and Spring
S =Scheduled Spring
SU = Scheduled Summer
WI = Scheduled Winter Intersession
AY = Scheduled alternate years
N =Offered when needed

Please Note: Schedules are subject to change; consult the Office of the Dean prior to registration

CS 140. Computers, Technology and Society
This course will provide students with a firm foundation in computers and technology and enable them to become knowledgeable, ethical and responsible users of technology. Students will explore the various aspects of computer systems to develop a comprehensive understanding of how computers operate as well as an appreciation of their pervasive influence on society. This course will lay the basis for further study in computer science. Not for major credit. Weekly laboratory. Special fee required. 3 credits. FS, SU

CS 201. Computer Science I
This course provides an introduction to problem solving, data representation, algorithm design, programming and application. Programs requiring a variety of control structures and data structures will be assigned for computer solutions. Programs of increasing difficulty will be assigned to give students experience with problem analysis and solution design. Ethical and social issues relating to computing will be discussed. Weekly laboratory. 4 credits. FS

CS 202. Computer Science II
This course provides an introduction to advanced programming techniques, data structuring and encapsulation techniques. Emphasis will be placed on problem analysis and solution design incorporating modern design principles. The use of these principles to achieve clarity and ease of debugging is required in the programming assignments. Ethical and social issues relating to computing will be discussed. Weekly laboratory. Prerequisite: CS 201 or equivalent. 4 credits. FS

CS 262. Web Site Design
This course will introduce students to the fundamental concepts of the Internet and website development and design. An overview of the HTTP protocol, client-server concepts, the use of mark-up languages, the role of browsers, and web servers will be covered. The emphasis of this course will be on HTML and XHTML and providing the student with a firm introduction to the use of markup tags and CSS, with a brief introduction to client side scripting. Students will be expected to create web pages of increasing complexity. May not be used for major credit. Prerequisite CS 140 or equivalent. 3 credits. N

CS 301. Data Structures and Algorithm Analysis
A study of abstract data types such as stacks, queues, lists, trees and graphs, and of the design of data structures and algorithms to implement them. The use of these data structures to design solutions to problems will be emphasized. Weekly laboratory. Prerequisite: CS 202 or equivalent. Corequisite: MTH 163 or MTH 310. 4 credits. FS

CS 311. Computer Organization and
Assembly Language An introduction to the architecture, organization and logic design of digital computers. Topics include a review of number systems, analysis and design of basic digital components, computer architecture, CPU organization and components, control unit and ALU design, microcode and instruction cycle, pipelining, RISC vs. CISC architectures, hyperthreaded and multicore CPUs, memory systems, cache memory design, topics in IO design, interrupts, and assembly language programming. The impact of compiler and operating system technology on hardware design will be considered throughout the course. Weekly software and hardware laboratory. Prerequisite: CS 201. 4 credits. S

CS 321. Database Organization and Design
This course deals with the design, implementation and use of computer databases. Topics include database architecture, management, design process, models and normalization; relational and object oriented systems; physical data organization; data definition and data manipulation languages; database implementation; legacy databases. Weekly laboratory. Prerequisite: CS 301. 4 credits. F

CS 331. Programming Languages
A study of the design and organization of higherlevel programming languages: processing, data types and data flow, control structures, program units, storage management, binding strategies, language design criteria, formal language definition. Weekly laboratory. Prerequisite: CS 301. 4 credits. AYF

CS 341. Simulation of Discrete and Continuous Systems
Introduction to the analytical and computational tools and techniques available for building simulation models. Introduction to queuing theory; design and validation of simulation experiments; generating pseudorandom numbers; simulation languages. Prerequisite: CS 301 and MTH 163 or MTH 310. 3 credits. N

CS 361. Artificial Intelligence
Using computer algorithms and programs as tools, and focusing on the notion of an intelligent agent, the course will explore such topics as problemsolving using uninformed and heuristic search, reasoning processes and logic, machine perception, learning and communication, and philosophical foundations. Prerequisite: CS 301. 3 credits. N

CS 371. Concepts of Data Communication
This course is an introduction to the analysis, design and evaluation of data communications networks. Topics include transmission signals, signal encoding, multiplexing, switching, flow control, error control, media access control, network architecture, network protocols and network security. Prerequisite: CS 201 or equivalent. 3 credits. F

CS 408. Automata and Formal Languages
An introduction to the theory of computation, emphasizing finite automata, regular languages push-down automata/context-free languages and grammars. Additional topics to be discussed include an introduction to Turing Machines, computability and unsolvability. Same as MTH 408. Prerequisites: CS 301 and MTH 163 or MTH 310. 3 credits. N

CS 411. Computer Architecture
This course presents a detailed study of efficient processor design and the integration of a processor into a computer system so that performance and cost are optimized. Advanced processor implementation techniques such as pipelining and superscalar operation, hyperthreading, and multicore CPUs, along with their cost/performance tradeoffs are discussed. The structure and operation of the memory hierarchy, memory design approaches, ISO structures, and the mutual impact of processor, compiler and operating system designs will be considered. Prerequisite: CS 311. 3 credits. F

CS 421. Advanced Organization and Implementation of Database Systems
Study of problems and techniques involved in the design and implementation of database systems. Topics include physical design consideration, performance analysis for database systems, recovery techniques, reorganization problems, logical design, query languages for relational databases, issues in design of distributed database systems. Prerequisite: CS 321. 3 credits. S

CS 431. Compiler Design
Principles and techniques of language translation: finite automata and lexical analysis, parsing of context-free languages, symbol tables, storage administration, error diagnosis, introductory optimization and code generation techniques. Prerequisites: CS 311, CS 331. 3 credits. AY S

CS 442. Web Programming
This course will cover the creation of both static and dynamic web pages and the use of advanced style sheets with an introduction to server side programming. The emphasis will be on the creation of interactive and dynamic web pages through the use of a scripting language. Client side validation of data entry, security and performance issues will be covered as well as an introduction database access. Web-based programming assignments will be an integral component of this course. May not be used for major credit. Prerequisite: CS 262. 3 credits. F

CS 443. Web Site Administration
This course will develop the techniques and programming skills needed to run and administer a dynamic website. The course will cover the means to save data to and retrieve data from a data store through a client-based dynamic web page. Students will create dynamic web pages of increasing complexity, which will be programmed on the server side. May not be used for major credit. Prerequisite: CS 201. 3 credits. S

CS 446. Computer Graphics
This course presents the fundamental components of 3D graphics pipeline. Topics include 2-D and 3-D geometrical transformations; raster algorithms; hidden surface removal, projection and viewing, lighting and shading, texture mapping and ray tracing. This course is based on the programming language of C/C++ and OpenGL. Prerequisites: CS 301 and MTH 163 or MTH 310. 3 credits. N

CS 451. Operating Systems
This course presents the fundamental concepts of the operating system technology. Topics include design and implementation issues for modern operating systems, operating system components (process-, memory-, IO- management, file systems, command interpreters, etc.), and their mutual relations, as well as dependence on the underlying hardware, and impact on compiler and hardware design. Assignments include the design and implementation of a simulation of a small operating system. Prerequisites: CS 301, CS 311. 3 credits. FS

CS 452 Advanced Operating Systems
The course examines the internal structure and implementation details of one or more modern operating systems. Various algorithms and data structures involved in scheduling, memory management, input-output and secondary storage management are discussed, and their interdependence and interaction is emphasized. The implementation of system calls for use in system programming and administration is also considered. Prerequisite: CS 451. 3 credits. S
CS 464. Parallel and Distributed Computing

The course is an introduction to Parallel and Distributed Computing. Topics include advantages, limitations, theory, and applications of parallel and distributed computing, modern trends in parallel hardware and software design, and parallel and distributed programming. Several major projects using parallel and distributed programming paradigms will be assigned. Prerequisites: CS 301 and CS 311. 3 credits. F

CS 471. Telecommunications Electronics
An introduction to the electronics of telecommunications. Fundamental concepts and components of analog and digital electronic systems such as transducers, signal conditioners and data transmission channels are covered. Topics also include theory of signal modulation, switching, multiplexing and transmission/reception. Prerequisites: CS 301, CS 371 and MTH 163 or MTH 310. 3 credits.

CS 476. Local Area Networks
This course is a study of LAN components and LAN technology, including topologies, communications media, interfacing equipment, hardware and software. Students will be introduced to topics such as network architecture, LAN design, LAN interconnect, network management and LAN performance. Prerequisites: CS 301 and CS 371. 3 credits. AYS

CS 481. Software Engineering
This course will involve a study of the steps and techniques necessary in the creation of large software systems. The following techniques will be included: object-oriented analysis and design; coding and testing; project management; structured system evaluation. Prerequisite: CS 321. 3 credits. F

CS 482. Software Design and Development Project
This course presents a formal approach to techniques in software design and development and provides a means for students to apply these techniques. As part of this course, students work in teams in the organization, management and development of a large software project. Capstone course. Prerequisite: CS 481. 3 credits. S

CS 490. Independent Study
By special permission, students with an average of "B" or better in computer science courses, and a demonstrated ability and need, may undertake independent work in a subject area not covered by any of the listed courses. Their work will be under the supervision of a member of the department. Prerequisite: CS 301 and permission of department chair. Open only to majors. 3 credits. N

CS 491- 496. Special Topics
Each course will study topics of current interest in computer science. Specific topics and additional prerequisite will be announced in advance. Prerequisite: CS 301. 3 credits. N

CS 498. Internship
The course provides students with an opportunity to work in the private or public sector, in an area directly related to computer science. Students meet with a designated faculty member, write reports and give presentations on their work experience. Prerequisite: CS 301 and a 3.0 or higher major index and approval of the department chair. Open only to majors. 3 credits. S