COMPUTER SCIENCE (CS)

CS-COMP Comprehensive Exam (0 Credits)

Restrictions: RG.86+

CS-101 Beauty & Joy of Computer Science (3 Credits)

CS 101 BEAUTY AND JOY OF COMPUTER SCIENCE This course presents the history, social implications, great principles, and future of computing. It examines the computing applications that have changed the world and how computing empowers discovery and progress in other fields. The relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests. The course consists of two lecture hours and one two-hour laboratory per week.

Corequisite(s): Take CSL-101

CS-128 INTRO GEOGRAPHIC INFO SYS CS (3 Credits)

An introduction to the theory and practice of GIS, with applications to environmental planning and resource management. Classes will address basic cartography, creation and interpretation of computerized maps, use of aerial photographs and remote sensing data, and the analysis and modeling of spatial data. Labs will familiarize students with the management and analysis of spatial data, using Microsoft Access and Excel and ArcView GIS software. A brief introduction to outdoor use of global positioning systems will occur at the end of the semester. Class and labs will emphasize group projects of practical and local application. Equivalent to ES 228.

CS-131 COMPUTER SCIENCE I (4 Credits)

This is the first course in the computer science major sequence. The course introduces the object- oriented approach to software design using the programming language Java. Topics covered are software design, implementation and testing, basic computer organization and source code translation. No previous programming experience is presupposed. The course consists of three lecture hours and one two-hour laboratory per week.

Corequisite(s): Take CSL-131

CS-132 COMPUTER SCIENCE II (4 Credits)

This is the second course in the computer science major sequence. The course utilizes the object- oriented design approach to building applications, which emphasizes the creation and utilization of reusable software tools. Students are introduced to data structures that are commonly encountered in building software applications and to the analysis of the efficiency of algorithms used to solve problems. The programming language Java is used to implement software designs. The course consists of three lecture hours and one two-hour laboratory per week.

Prerequisite(s): Take CS-131

CS-145 Windows Application Dev (3 Credits)

Introduction to event-driven, object-oriented programming using Microsoft Visual Basic or C#. Topics include effective user interface design, creating forms and reports, data types and data conversions, Active-X controls, execution control structures and file management.

CS-192 IND STUDY IN COMP SCIENCE (1-3 Credits)

CS-231 COMPUTER ORGANIZATION (4 Credits)

A study of the organization of computer systems. Topics include the representation of information, conventional machine and assembly language, circuit design, and organization of the major components of a computer, e.g. the CPU, memory, I/O devices, etc. Students will become familiar with assembly language programming and will use simulators to learn about hardware components. The course includes three lecture hours and one two-hour laboratory per week.

Prerequisite(s): Take CS-132

CS-234 PROGRAMMING METHODOLOGIES (4 Credits)

A study of several modern approaches to practical software development at both a high and low level of abstraction. Students will become familiar with the Client-Server and Event-Driven models of software design, with elementary design patterns such as Adapter and Model-View-Controller that support these models and with techniques such as test-driven design and refactoring that aid in the implementation of these ideas. The course is primarily project-based and includes three lecture hours and one two-hour laboratory session each week.

Corequisite(s): Take CS-132.

CS-243 DATABASE MGMT SYSTEMS (4 Credits)

An introduction to database management systems, including database design and application development. Different database models are introduced, with emphasis on the relational model. The theoretical principles underlying the design of a database and the physical storage of data and its integrity are covered. The laboratory component is used to design and implement a real-world database application that illustrates theory.

Prerequisite(s): Take CS-132

CS-244 DATA-DRIVEN WEB APPL DEV (3 Credits)

Introduction to the design and implementation of a database-driven application using a tool such as Microsoft ASP.Net. Students will design and implement an e-commerce application based upon a SQL server database. The course presupposes familiarity with relational database design and application development. Topics include Visual Studio.Net tools for managing data sources, data controls for populating Web pages, data presentation tools, configuring, deploying and trouble-shooting an ASP.Net application. Students will build a data-driven Web site.

Corequisite(s): Take CS-132

CS-254 COMPUTER NETWORKS (4 Credits)

A study of computer networks based on the OSI model of a layered network architecture. The TCP/IP protocol suite is used to illustrate network protocols. The course includes an overview of local area networks, routing algorithms, and network applications. The course consists of three lecture hours and one two-hour laboratory per week. The laboratory component provides experience in network programming using sockets.

Prerequisite(s): Take CS-132

CS-255 WEB SERVER MANAGEMENT (3 Credits)

Introduction to the design, deployment and maintenance of a web server. Students will learn how to set up, deploy, secure and manage a web server using both IIS and Apache. Students will act both as server managers and web server hackers. Topics include network protocols, server setup, server performance, server security, and server maintenance.

Prerequisite(s): Take CS-254

CS-256 COMPUTER GRAPHICS (4 Credits)

A survey of two- and three-dimensional computer graphics including graphics standards, graphics systems at both the hardware and software levels, and the implementation of graphics techniques for rendering an image. The course focuses on the architecture of computer graphics systems, and students will be expected to program within such systems as part of the course work. The course includes three lecture hours and one two-hour laboratory period per week.

Prerequisite(s): Take CS-132 AND MATH-208 or MATH-151

CS-257 USER INTERFACE DESIGN (4 Credits)

This course will expose the student to a wide variety of material related to the design of user interfaces. Command-time, batch, and event-driven models of user interaction will be discussed as well as presentation styles, models of communication and cognitive processes, and the social implications of user interface design. Students will study the theory of user interface design in class and will put that theory into practice through laboratory exercises and team projects.

Corequisite(s): TAKE CS-132

CS-331 PRIN. OF PROGRAMMING LANGUAGES (3 Credits)

A study of the fundamental principles around which programming languages are designed. Topics include language specifications, syntax and semantics, data types, control statements, support for abstraction, and program organization. Students will be exposed to issues involving compilation, interpretation, lexical analysis, and parsing as well as to languages in each of the major paradigms. The course includes three lecture hours per week.

Prerequisite(s): Take CS-333

CS-332 THEORY OF COMPUTATION (3 Credits)

A mathematical treatment of formal language theory and how it relates to computer science. Topics include automata, grammars, Turing machines, computability, and computational complexity. The course includes three lecture hours per week.

Corequisite(s): Take CS-333.

CS-333 ALGORITHMS & DATA STRUCTURE (3 Credits)

A study of abstract data types including trees, hash tables, and graphs. The course will study each of these in the context of the analysis of algorithms and algorithm design techniques in general. Intractable and unsolvable problems and their implications will also be covered.

Prerequisite(s): Take CS-132 MATH-208

CS-341 ARTIFICIAL INTELLIGENCE (4 Credits)

A laboratory course that implements some of the artificial intelligence systems discussed in CS 141. The course is designed for computer science majors wishing to take CS 141 for credit towards the major. It must be taken at the same time as CS 141. The prerequisite is enforced strictly.

Prerequisite(s): Take CS-132

CS-342 ROBOTICS & COMPUTER VISION (3 Credits)

The course introduces the design of autonomous robots that are capable of carrying out tasks that involve intelligence. Higher-level intelligent behavior is built upon low-level algorithms that govern robot-environment interaction. Tasks examined are navigation, planning, object manipulation, and object recognition using 2-dimensional vision. Behavior control algorithms are developed for and tested on Khepera robots, miniature robots designed for this purpose.

Prerequisite(s): Take CS-333

CS-346 OPERATING SYSTEMS (4 Credits)

A study of modern multiprogrammed operating systems including system structure, concurrency, process scheduling and control, memory management, file systems, and system performance. The course consists of three lecture hours and on two-hour laboratory per week. The laboratory component provides experience in concurrent programming using Java threads and in system level programming using C in a UNIX environment.

Prerequisite(s): Take CS-231

CS-346H OPERATING SYSTEMS (HONORS) (4 Credits)

Corequisite(s): Take CS-231

Restrictions: RG.HON

CS-354 INTRO INTERNET SYS. SECURITY (4 Credits)

Introduction to network security auditing. Students will learn how to perform the different phases of an audit, including discovery and penetration, as well as how to prevent hackers from controlling your network. This course introduces various tools to help students in the auditing process. Students will be exposed to international standards, along with time-tested methods for auditing a network efficiently, and they will be able to use specific, practical tools for counteracting network attacks. Finally, they will be able to analyze all findings and make informed recommendations for establishing the best security possible in a given scenario.

Prerequisite(s): Take CS-254

CS-380 SPECIAL TOPICS IN COMP.SCIENCE (3 Credits)

An intensive study of an aspect of computer science not fully treated in a regularly scheduled course.

Prerequisite(s): Take CS-132

CS-380A SP.TOPICS IN COMP.SCIENCE (3 Credits)

Prerequisite(s): Take CS-333

CS-380B SP TOP: CRYPTOLOGY (3 Credits)

An intensive study of an aspect of computer science not fully treated in a regularly scheduled course.

Corequisite(s): Take CS-132 & MATH-208

CS-380C SP TOP: CYBERSECURITY (3 Credits)

An intensive study of an aspect of computer science not fully treated in a regularly scheduled course.

Corequisite(s): Take CS-132 & CSIA-101

CS-442 AL AND ROBOTICS (3 Credits)

Faculty directed independent study in artificial intelligence or robotics.

CS-446 OP SYS (3 Credits)

Faculty directed independent study in operating systems.

Corequisite(s): Take CS-346

CS-454 Networks (1-3 Credits)

Faculty directed independent study in computer networks.

CS-456 COMPUTER GRAPHICS PROJECTS (3 Credits)

Faculty directed independent study in computer graphics.

CS-457 ADVANCED USER INTERFACE PROJECTS (3 Credits)

Faculty directed independent study in user interface design.

Corequisite(s): Take CS-257

CS-480A SP.TOP:FORMAL LANG. THEORY (3 Credits)

CS-490 SOFTWARE ENGINEERING (3 Credits)

The course provides an overview of software requirements analysis, the software design process, verification and validation, software maintenance, and documentation. A major component of the course is a project that provides experience in the analysis and design of a software product using an object-oriented methodology.

Corequisite(s): Take CSL-490

Restrictions: RGM.129

CS-491 INTERNSHIP IN COMPUTER SCI. (1-3 Credits)

This program provides students with on-the-job training and experience which is not obtainable in classroom situations. The student is expected to secure a full-time position which involves significant work in an area of computer science. Each internship is individually arranged, subject to the approval of the computer science faculty.

Corequisite(s): Take CS-231 AND CS-234

CS-492 IND.STUDY IN COMP.SCIENCE (1-3 Credits)

Independent study or project in some area of computer application or computer science under supervision of computer science faculty.

CS-492A Ind. Study in Comp Science (1-3 Credits)

Corequisite(s): CS-232

CS-492C IND ST: RESEARCH (1-3 Credits)

Corequisite(s): CS-232

CS-492D IND.STUDY SECURITY OPERATIONS CENTER (1-3 Credits)

Independent study or project in some area of computer application or computer science under supervision of computer science faculty.

CS-492E IND ST: RESEARCH & IMPLEMENATION OF A SOC (3 Credits)

Independent study or project in some area of computer application or computer science under supervision of computer science faculty.

CS-492F DATABASE MANAGEMENT (3 Credits)

Independent study or project in some area of computer application or computer science under supervision of computer science faculty.

CS-495 Technical Consulting in the Community (3 Credits)

CS 495 TECHNICAL CONSULTING IN THE COMMUNITY This course provides students with the opportunity to experience a technical consulting role with a local non-profit community organization. The student will apply professional and communication skills as he/she works with a community partner as a technical consultant. The student will spend at least three hours a week on-site at the organization and will write and present consulting reports based on his/her experience.

Prerequisite(s): Take CS-132

Restrictions: RGC.105