COMPUTER SCIENCE (CS)


CS 101 - LOGIC AND COMPUTING

Prerequisite: 2 years high school algebra

Beginning with the building blocks of circuits and advancing through a collection of language abstractions, students use logic at several levels to gain a deep insight into how modern digital computers actually work. This course assumes no computer hardware or programming experience.

Credit: 3


CS 121 - COMPUTER PROGRAMMING I

Prerequisite: CS 101

An introduction to the design and development of object-oriented programs using the Java programming language.

Credit: 3


CS 122 - COMPUTER PROGRAMMING II

Prerequisite: CS 121

A continuation of CS 121. A further exploration of the principles, methods, tools and practices of object-oriented programming, including inheritance, recursion, object-oriented design, and GUI applications.

Credit: 3


CS 175 - WEB DESIGN

Prerequisite: None

An introduction to the World Wide Web, the creation of Web sites, Web page markup and styling languages, and client side programming.

Credit: 3


CS 221 - THE LINUX OPERATING SYSTEM

Prerequisite: CS 101

A study of Linux concepts, usage, and programming.

Credit: 3


CS 230 - DATA STRUCTURES

Prerequisite: CS 122; MATH 223

Formal specification of abstract data types using an object-oriented language with examples of their uses in computer science: records, stacks, queues, linked lists, hash table, heaps, and trees.

Credit: 3


CS 260 - TOPICS IN COMPUTER SCIENCE

Prerequisite: None

This course is offered subject to student need, faculty availability, and with the approval of the department chair and college dean. Topics may include Advanced Java Programming, and Introduction to UNIX. Repeatable for different topics.

Credit: 3


CS 275 - WEB PROGRAMMING

Prerequisite: CS 101 and CS 175

A continuation of CS 175, with emphasis on Web services and server-side programming using PHP.

Credit: 3


CS 293 - INTERNSHIP

Prerequisite: Chair Permission, Learning Contract

Credit will be granted for field experience in computer science relevant to the student's educational development and career goals. This work may be done on campus by providing technical assistance to faculty. Examples include UNIX administration and maintaining the hardware lab. Alternatively, this work may be done off campus. Prior approval of a CS faculty member is required. Does not count toward science electives.

Credit: 1-3


CS 301 - COMPUTER ARCHITECTURE

Prerequisite: CS 122

An introduction to the characteristics of computer systems at the digital logic and organization levels.

Credit: 3


CS 302 - THEORY OF COMPUTATION

Prerequisite: MATH 224 and MATH 250

An introduction to the logical and mathematical foundations of computer science. Topics discussed include models of computation, grammars and parsing, solvable and unsolvable problems, and P/NP complexity classes.

Credit: 3


CS 303 - COMPUTER ALGORITHMS

Prerequisite: CS 230 and MATH 224

An introduction to the design and efficiency of algorithms from both sequential and parallel perspectives, including identifying characteristics of sequential algorithms which are easily parallelizable and different parallel computing paradigms.

Credit: 3


CS 304 - THEORY OF PROGRAMMING LANGUAGES

Prerequisite: CS 230 and MATH 224

Issues in the design and implementation of a programming language including type models, control models, parameter passing, and storage management. Formalisms to describe the syntax and semantics of a programming language.

Credit: 3


CS 325 - MOBILE APPLICATIONS DEVELOPMENT

Prerequisite: CS 122

An introduction to the design and implementation of mobile applications for Android-driven hand-held devices.

Credit: 3


CS 393 - INTERNSHIP

Prerequisite: Chair Permission, Learning Contract

Credit will be granted for field experience in computer science relevant to the student's educational development and career goals. This work may be done on campus by providing technical assistance to faculty. Examples include UNIX administration and maintaining the hardware lab. Alternatively, this work may be done off campus. Prior approval of a CS faculty member is required. Does not count toward science electives.

Credit: 1-3


CS 421 - PRINCIPLES OF OPERATING SYSTEMS

Prerequisite: CS 230 and CS 301

Introduction to the design and implementation of modern operating systems. Topics include processes, interprocess communication, I/O management, memory management, file systems, and security.

Credit: 3


CS 427 - COMPUTER GRAPHICS

Prerequisite: CS 303 and MATH 307

An introduction to computer graphics concepts. Several graphics algorithms will be presented and implemented. Graphics theory in clipping, rotation, three-dimensional graphics and other related topics will be explored.

Credit: 3


CS 433 - COMPUTER NETWORKS

Prerequisite: CS 230 and CS 301

Presents computer networks and internets from the lowest level of data transmission over hardware to the highest level of communication between software applications.

Credit: 3


CS 460 - ADVANCED TOPICS IN COMPUTER SCIENCE

Prerequisite: CS 230

This course is offered subject to student need, faculty availability, and with the approval of the department chair and college dean. Topics may include Neural Networks, and System Programming. Repeatable for different topics.

Credit: 1-3


CS 485 - COMPUTATIONAL ROOTS OF SECURITY

Prerequisite: SEC 180

A study of security aspects in software development, computer hardware, operating systems, networks, databases, cloud computing, and data.

Credit: 3


CS 493 - INTERNSHIP

Prerequisite: Chair Permission, Learning Contract

Credit will be granted for field experience in computer science relevant to the student's educational development and career goals. This work may be done on campus by providing technical assistance to faculty. Examples include UNIX administration and maintaining the hardware lab. Alternatively, this work may be done off campus. Prior approval of a CS faculty member is required. Does not count toward science electives.

Credit: 1-3


CS 499 - SOFTWARE DEVELOPMENT

Prerequisite: CS 230 and Junior/Senior Status

Application of product engineering methods to the design and development of software - quality assurance, project management, requirements analysis, specifications, design, development, testing, production and maintenance.

Credit: 3