Computer Science Course Descriptions 2016-2017

COMPUTER SCIENCE COURSES


CS 120 Professional Computer Skills 3 credits
A comprehensive study of the essentials of software used by professionals, emphasizing applications of spreadsheets to fundamental data organization, presentation, analysis and decision making applications.


CS 140 Game Programming for Beginners 3 credits
For the complete beginner, an introduction to computer programming by writing basic animations and arcade games. Standard programming issues such as language constructs, problem solving and debugging are combined with game specific considerations such as animation, scoring, collision detection, game levels and working with multiple moving objects. The course uses industry-standard software such as Python.


CS 150 Computers in Society 3 credits
An introduction to the use of computing devices and their impact on society. Topics include: how computers work, the history of computing, philosophical issues in computing, the economics of software development, intellectual property issues, privacy and security, applications of computing, legal issues, the digital divide, the role of computing in government, and computer-assisted collaboration.


CS 160 Introduction to Web Design 3 credits
An introduction to creating web pages and sites with XHTML and CSS as well as using site building software and commercial plugin capabilities. This course is designed for students without a background in computer science.


CS 190 Computer Science I 3 credits
An introduction to software development. Students develop applications using modern programming languages and techniques. Emphasis is placed on good software engineering practices for problem analysis, program design, documentation, testing and debugging. The course uses an industry standard programming language.


CS 191 Computer Science II 3 credits
A continuation of CS 190 taught in the Java programming language. Students develop stand alone GUI and console applications and applets of increasing sophistication. Topics include: arrays, objects and classes, encapsulation and inheritance, file management, dynamic data structures, searching, sorting, recursion, stacks and queues, with emphasis on abstraction and implementation and an introduction to algorithm analysis.

Prerequisite: CS 190 with a minimum grade of “C-.”


CS 195 Database Management Systems 3 credits
An introduction to the principles and practice of relational database design, implementation and manipulation. Topics include Structured Query Language (SQL), relational models, elementary database design as well as database management with a programming language such as Java.

Prerequisite: CS 190 with a minimum grade of “C-”.


CS 197 Special Topics 1-6 credits


CS 235 Computer Networks 3 credits
An investigation of the transmission of data and information between computer systems. Topics include simple data communications, protocols, error control, local-area networks, wide-area networks such as the Internet packet-switching networks, and several networking models. Various data communication hardware and software are also examined.

Prerequisites: CS 191 with a minimum grade of “C-”.


CS 250 Web Applications Development I 3 credits
A course studying web site design, focusing on HTML5 and CSS for page structure and style, the embedded JavaScript language for interactivity, and a web application server language for database access. The student learns to implement the essentials of a interactive, database driven website.

Prerequisite: CS 191; Corequisite: CS 195.


CS 280 Data Structures 3 credits
A survey of advanced data structures and algorithms. Topics include: linear lists, linked lists, arrays, trees, multi-linked lists, hashing, searching, sorting, recursion and analysis of the algorithms that use these structures. Taught in Java.

Prerequisite: CS 191 with a minimum grade of "C-".


CS 297 Special Topics 1-6 credits


CS 303 Machine Learning 3 credits
A study of computer systems that learn from experience. Classroom exercises include the building of systems that learn and adapt using real-world applications. Topics covered include decision trees, concept learning, neural networks, reinforcement learning, linear and non-linear models, clustering, validation, and feature selection.

Prerequisites: CS 190 and MATH 213.


CS 310 Programming Projects with X 3 credits
A project-based course focusing on medium-sized projects in a given programming language using tools and environments appropriate to the selected language. Students gain proficiency in the language by doing projects from a variety of subjects such as artificial intelligence, graphics, machine learning, compilers, and Human-Computer Interaction. This course contains individual and group work. May be repeated with a different implementation language.

Prerequisite: CS 191 with a minimum grade of “C-.”


CS 311 Embedded Systems 3 credits
A project-based introduction to embedded systems. Students build and program systems that include microcontrollers and sensors, actuators, networking, motors, and cameras. Various applications involve robotics, remote sensing, sound processing, and kinetic sculpture.

Prerequisites: CS 190 and junior standing.


CS 320 Programming Languages 3 credits
An investigation of the theory, usage, and implementation of programming languages. Emphasis is on the theoretical basis for programming languages and practical examples of their use. Basic language paradigms are developed: imperative, functional, objectoriented, and logic. Other topics include type systems and language translation. Languages studied include C, C++, Java, Lisp, Haskell, Prolog, and Python.

Prerequisite: CS 280 with a minimum grade of “C-.”


CS 330 Operating Systems with UNIX System Administration 3 credits
A study of the major components of operating systems, such as job and resource management in both multiprogramming and multiprocessing systems. Additionally, an introduction to the UNIX operating system includes UNIX commands, the role of the system administrator, the file system, controlling processes, programming in the shell, the network file system, and security.

Prerequisite: CS 300 with a minimum grade of “C-.”


CS 340 Computer Graphics 3 credits
A presentation of the design and use of computer-graphics systems (hardware and software) and construction of two- and three-dimensional graphics. Applications of computer graphics in business, industry, education, and communications are emphasized.

Prerequisite: CS 190 with a minimum grade of “C-.”


CS 350 Web Applications Development II 3 credits
A study of client-server applications designed around the World Wide Web. Students design and implement interactive applications which provide access to centralized resources such as databases and mail servers from web browsers. Students utilize JavaScript and server-based technologies to construct web-based programs that communicate with servers. Technologies such as Ajax, XML, JSON, and commonly used JavaScript libraries are included.

Prerequisite: CS 250 with a minimum grade of “C-.”


CS 391 Computer Science Seminar 1 credit
An advanced topic in computing, selected by the instructor from areas of computer science not usually included in the regular curriculum, conducted in a lecture, seminar or individualized format. Student involvement through presentations is emphasized. May be taken under different topics for a total of three credits.

Prerequisite: CS 191 with a minimum grade of “C-.”


CS 397 Special Topics 1-6 credits


CS 410 Systems Analysis and Design 3 credits
The fundamental concepts of systems analysis and design are studied in the context of computerized information systems. Topics include high-level system construction tools, system design methodology, data representation languages such as XML, server-based system design, web services, system security, and system description languages such as UML. Also addressed is the human element in system design: working with users and domain experts to develop system requirements, and understanding the challenges of large scale system projects. Each student completes a number of systems design projects during the term.

Prerequisite: CS 310 with a minimum grade of “C-.”


CS 412 Software Engineering 3 credits
An introduction to the fundamental principles of software engineering. Formal software development techniques and high-level software tools are emphasized. Students are taught a programming method based on the recognition and description of useful abstractions. Topics include encapsulation and reuse, design patterns, object-based design, software testing and quality, formal methods for software design, and project management. Students are expected to complete a significant project that employs techniques from the topics studied.

Prerequisite: CS 410 with a minimum grade of “C-.”


CS 480 Computer Science Application Project 3 credits
Students develop a comprehensive application project with a supervising faculty member. A summary paper is written or public presentation of the project is made to the CS faculty and students.

Prerequisite: 18 credits of Computer Science course work, including nine upper-division credits, and instructor permission.


CS 490 Workshop in Computer Science 1-6 credits
A series of organized meetings dealing with a topic of current interest. Offered periodically in a variety of computer-related subjects. Only three credits of this title can be applied toward a Computer Science Minor.


CS 492 Independent Study in Computer Science 1-3 credits
A singular investigation into a unique problem agreed upon by the student and the advisor. Independent Studies (CS 192, CS 292, CS 392, and CS 492) may be repeated for a total of up to 12 credits.


CS 497 Special Topics 1-6 credits


CS 499 Internship or Field Experience in Computer Science 1-12 credits
Students participate in a supervised internship or field experience with a cooperating university or corporation, in the computer science field. A summary paper is written or public presentation of the field experience is made before the CS faculty and students, and a review from the supervisor is prepared.

Prerequisite: 18 credits of Computer Science course work, including nine upper-division credits, and instructor permission.