COMPUTER SCIENCE

Professors Bloss, Ingram; Associate Professor Shende; Assistant Professor Hughes; Lecturer Poore

A Bachelor of Science degree with a major in computer science requires the satisfactory completion of 12 units in the areas of computer science, mathematics, and statistics to include Computer Science 170, 220, 270, 370, 390, 425, 430; Mathematics 201; Statistics 202; and three additional units from computer science courses at or above the 300 level (one of these units may be Math 306 or Math 361). Computer Science 120 is a prerequisite for the computer science courses, and Mathematics 121 and 122 are prerequisites for the statistics and mathematics courses.

Minor in Computer Science

A minor in Computer Science requires six units: Computer Science 120, 170, 220, 270, and two additional units of computer science at or above the 300 level.

101 Introduction to Computers

Basic concepts underlying computers with emphasis on algorithms, logic, and information representation. Hands-on experience programming and using spreadsheets. (May not be taken if credit has been received for Computer Science 120.) (1)

Lecture: 3 hrs/wk.

120 Fundamentals of Computer Science I

Problem solving and algorithm design; basic programming concepts including subprograms and objects; mathematical logic. Programming in a modern object-oriented language and an introduction to the UNIX operating system are an integral part of the course. (1)

Lecture: 3 hrs/wk.; Laboratory: 3 hrs/wk.

Prerequisites: No formal prerequisite; however, a strong aptitude for math usually predicts success in the course.

170 Fundamentals of Computer Science II

Arrays, list processing, recursion, mathematical induction, introduction to computational complexity and reasoning about programs, introduction to object-oriented design. (1)

Lecture: 3 hrs/wk.; Laboratory: 3 hrs/wk.

Prerequisite: Computer Science 120.

220 Fundamentals of Computer Science III

Data structures, abstract data types, elementary graph theory, n log n sorting algorithms, and dynamic memory allocation. (1)

Lecture: 3 hrs/wk.

Prerequisite: Computer Science 170.

270 Algorithms

Algorithms and their analysis; advanced data structures. (1)

Lecture: 3 hrs/wk.

Prerequisites: Computer Science 220 or permission.

310 Topics in Applied Computing

A course offered in various formats, designed to give students instruction and hands-on experience in an area of applied
computing. (1)

Lecture: 3 hrs/wk.

Prerequisite: Computer Science 170.

(Offered in 2005-2006 and alternate years.)

340 Database Systems

Database organization and management; hierarchical, network, and relational models of data and some corresponding systems. (1)

Lecture: 3 hrs/wk.

Prerequisite: Computer Science 170.

(Offered in 2005-2006 and alternate years.)

370 Computer Architecture and Operating Systems

Machine language and assembly language concepts, data paths, parallel system architecture; system calls, process synchronization and scheduling, input and output subsystems, memory management, file systems. (1)

Lecture: 3 hrs/wk.

Prerequisite: Computer Science 220.

(Offered in 2006-2007 and alternate years.)

390 Theory of Computation

Study of formal models of computation. Topics include regular, context-free, context-sensitive, and unrestricted grammars; Church’s thesis; computability; and undecidability. (1)

Lecture: 3 hrs/wk.

Prerequisite: Computer Science 170.

(Offered in 2005-2006 and alternate years.)

402 Numerical Analysis

Numerical integration and differentiation, numerical methods in linear algebra, interpolation; error analysis, stability, and conditioning. (1)

Lecture: 3 hrs/wk.

Prerequisites: Mathematics 201, Mathematics 122 Computer Science 120.

(Offered in 2005-2006 and alternate years.)

(Cross-listed as Mathematics 402.)

405, 406, 407 Independent Study and Research

Selected topics in computer science carried out under the direction of a member of the computer science staff. (Enrollment with the approval of the Chair of the department.) (1/2, 1, 1/2)

416 Internship

Field placement providing practical experience and training in areas in which computer science is applied. These areas may include industry, government agencies, educational institutions, insurance companies, and a variety of private enterprises. (1)

Prerequisite: Permission of the Department.

420 Simulation

Techniques of digital computer simulation including modeling, data analysis, model validation, and simulation languages. (1)

Lecture: 3 hrs/wk.

Prerequisites: Statistics 202 and Computer Science 220.

(Offered in 2006-2007 and alternate years.)

425 Principles of Programming Languages

Fundamentals in the design and implementation of programming languages. Topics include BNF, compilation and interpretation, data types, control structures, runtime systems, data abstraction, exception handling and concurrency. Language paradigms include functional, logic, and object oriented approaches. (1)

Lecture: 3 hrs/wk.

Prerequisite: Computer Science 270.

(Offered in 2005-2006 and alternate years.)

430 Senior Seminar

Advanced study in selected topics in a seminar format. (1)

Lecture: 3 hrs/wk.

Prerequisite: Computer Science 270.

(Offered in 2006-2007 and alternate years.)

495, 496, 497 Honors Project

A program of independent study culminating in a paper, artistic creation, or performance.

Prerequisites: To qualify for consideration to receive honors in the major, a student in his/her senior year or in the Summer prior to the senior year, must work under the guidance of his/her committee. A written proposal and application must be approved by the committee and department. A minimum GPA of 3.4 in the major is required. 495 Honors Project is prerequisite for 497 Honors Project. (1/2, 1, 1/2