Computer Science Courses
CS 1014 Information and Communications Technology
How to find, use, manage, evaluate and convey information efficiently and effectively in an information-driven environment. Focus is on the ability to use technology as a tool to research, organize, evaluate and communicate information. Sources of digital information covered include, but are not limited to, text, sound, images, and video.
CS 1044 Computation and Technology in Western Thought
Computation relies on algorithms. These are simply precise, step-by-step instructions for solving a problem, but they have been foundational in the development of Western science, philosophy, and culture. The history of the algorithm is presented, its impact is tracked through a 400- year period, and a study of what can and cannot be accomplished with it is presented. III B
CS 1124 Foundations of Computer Science
An introduction to the field of computer science. Computer hardware, computer software, programming languages, and present and future uses of the computer will be considered. Topics will include algorithm development and analysis, algorithm efficiency, the binary number system, circuits, gates, basics of computer architecture, assembly language programming, and an introduction to translating language programming.
CS 2044 Computer Languages
An introduction to the use of a particular computer language and to its characteristic applications. Various languages, such as FORTRAN, COBOL, C, and C++, will be treated depending on demand. The course may be repeated to include different languages. IV
CS 2124 Logic and Problem Solving
A continuation of Computer Science 1124 with emphasis on logic in problem solving, algorithm design, the syntax of translating languages, and mastery of the language C++. Prerequisite: CS 1124. IV
CS 2144 Computer Organization
Designed to give the computer science major a new view of the operation of a modern digital computer. The course focuses on the hardware implementation of computing devices. The binary number system, basic logic design, memory, control, I/O, and arithmetic units will be covered. The student will be introduced to the MIPS assembly language as a tool to explore these issues. Prerequisite: CS 1124. IV
CS 2212 Independent Study
Readings, research, and system building on an approved topic. (1/2 course unit.) May be repeated once for credit. Standard or CR/NC grading. Prerequisite: Permission of the instructor.
CS 2344 Discrete Structures
Basic mathematical topics used in the study of computer science will be considered. Topics will include logic; sets, sequences, and functions; mathematical induction; algorithms and basic analysis of algorithms; permutations, combinations and discrete probabilities; recurrence relations; trees; Boolean algebras; and combinatorial circuits. Prerequisite: MATH 1304 or permission of instructor. IV
CS 2444 Data Structures
Includes the study of strings, lists, graphs, trees, and files. Sorting, searching, and memory management will be analyzed for minimizations. Prerequisite: CS 2124. IV
CS 3014 Computer Graphics
An introduction to computer graphics hardware, software, and algorithms for both two- and three-dimensions. Topics include scan-line algorithms, affine transformations, clipping, projections, lighting models, texture mapping, and surfaces. Interactive and animation techniques are studied. Prerequisite: CS 2444. IV
CS 3024 Compiler Construction
Students learn the detailed procedure necessary in compiler construction. A two-phase compiler will be written. Reverse Polish and other algebraic interpreters are included. Prerequisite: CS 2444. IV
CS 3074 Netcentric Computing
Designed to familiarize students with the modern view of an interconnected system of computers. The focus is on the underlying networks and the requirements of the operating system to support communication. Topics include hardware, software, deadlock, storage, process scheduling, TCP/IP protocol, and security. Java and C++ will be used to implement the algorithms presented in the course. Prerequisites: CS 2144 and 2444. IV
CS 3114 Special Topics in Computer Science
Study of computer hardware, computer software, and the integration of hardware and software. Emphasis on current issues in computing and topics not fully treated in other computer courses. May be repeated for credit. Standard or CR/NC grading. Prerequisites: CS 2124 and permission of instructor. IV
CS 3144 Database Management Systems
Organizations are accumulating vast volumes of data, mainly due to the use of technology. This course will cover topics such as the design, maintenance, and delivery systems used in information systems, with some specific topics being data retrieval, data mining, and data modeling. Prerequisite: CS 2444 IV
CS 3164 Interface Programming
Explores the capabilities of a scripting language for interfacing with system commands, Internet applications, networking applications, and databases. Special attention is given to Internet security issues and accessing databases via a network. Prerequisite: CS 2444 IV
CS 3234 Principles of Programming Languages
There are generally considered to be four major ’families’ of computer languages - procedural, functional, object-oriented, and logical. Each represents a different paradigm, which a programmer must be familiar with in order to write code in a variety of languages. This course takes a theoretical approach to teaching the similarities and differences among the four families by examining what can be computed. Regular expressions, context-free grammars, context-sensitive grammars, and Turing machines are used in this analysis. Prerequisite: CS 2344. IV
CS 3304 Numerical Analysis
An investigation of numerical methods for computer solutions of applied problems. Topics include review of calculus, round-off errors and computer arithmetic, solutions of equations in one variable, interpolation and polynomial approximation, approximation theory, and numerical differentiation and integration. Prerequisites: MATH 1324 or permission of instructor. Also listed as MATH 3304. IV
CS 3344 Computational Theory
Examines the mathematical foundations of computer science with respect to both hardware and software. Through discussion on formal languages, NP versus P, algorithmic analysis, and data structure design, students will learn how to determine what can and cannot be computed and what efficiency a particular approach offers. Both concrete and philosophical approaches and results will be considered. Prerequisite: CS 2344. IV
CS 3424 Robotics
Robotics will introduce the student to both the hardware and software sides of mobile robotics. The fields of physics and biology will be mined for ideas concerning the design of the devices; navigation, mapping, vision, and voice recognition will be covered. Students will gain hands on experience with a variety of robotic platforms in both lab settings and out-of-class work. Prerequisite: CS 2444. IV
CS 3434 Machine Intelligence
Familiarizes the student with the growing field of artificial intelligence. The course will describe what artificial intelligence is, how it is presently being used, and its future uses. Students will learn to design artificial intelligence systems, such as game systems and production systems. Prerequisite: CS 2444, PHIL 1024, or PSY 1004. Also listed as PHIL 2434. IV; V
CS 3444 Mental Organs
By viewing the mind as a powerful digital computer, the interdisciplinary approach known as cognitive science is unlocking secrets about thought that have puzzled humans for millennia. This seminar will provide the vocabulary, background, and skills that are needed to appreciate this interdisciplinary area. Students will investigate the narrative structure of thought and language, analyze how humans can be said to have free will, and explore the nature and limits of morality. Prerequisite: CS 2444, PHIL 1024, 2514, or 2554. Also listed as PHIL 3444. IV
CS 4204 Internship
A program offering students supervised instruction in a non-classroom setting. (1 course unit.) CR/NC grading. Prerequisite: Junior or senior standing.
CS 4208 Internship
A program offering students supervised instruction in a non-classroom setting. (2 course units.) CR/NC grading. Prerequisite: Junior or senior standing.
CS 4214 Independent Study in Computer Science
Readings, research, and computer simulations on an approved topic. May be repeated once for credit. Standard or CR/NC grading. Prerequisite: Junior or senior standing.
CS 4314 Senior Honors in Computer Science
A primarily independent study of a topic chosen by the student in consultation with a professor. Library and research facilities will be employed. May be taken for credit more than once. Prerequisites: Senior standing, 6 course units in computer science with at least a 3.0 grade point average, and the presentation of a satisfactory project proposal.
CS 4444 Senior Project in Computer Science
This seminar course will teach the student the methodology of managing an extensive research project, which will be chosen from their area of concentration. After an initial exploration of the topic, the student will focus on a specific problem to solve through the development of a significant computer project. Part of this development will focus on the evaluation of the final result with respect to the problem chosen. Prerequisite: senior standing in computer science. IV