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 321 - ADVANCED PROGRAMMING
Prerequisite: CS 230
Presents concepts and hands-on experience for designing and writing programs using a contemporary programming language in solving real-world problems. Intended for junior/senior undergraduate computer science majors.
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 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: SDD 241 or MIS 372
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