Chair: Lynn R. Ziegler
Faculty: Challou, Freund, Herzfeld, Holey, Ross, Ziegler
Computers and information technology now permeate human society. People in almost any career find themselves using computers, many people on a daily basis. This activity is supported by computing professional who work in may areas, including computer design, software development, systems management, technology consulting, and computing education. Study in the field of computer science provides both computer users and professional with an understanding of what is computable, how it can be computed, and how the power of computation affects human society.
The computer science curriculum stresses the underlying theory and abstraction of computing, providing students with a broad foundation on which to build more specialized understanding. At the time, the curriculum seeks to combine these principles with the design of applications current to each topic.
The computer science department offers a major in mathematics/computer science. In addition, students may develop individualized majors which meet their particular interests. (See the section on individualizing a traditional major under Academic Policies above.)
150, 160, 200, and 210; MATH 119, 120, 239, 241, and 331 or 343; sixteen additional credits in mathematics and computer science numbered 300 or above, including at least two from CSCI 338, 339, 340, and 350 and at least four credits in mathematics; and a one to four credit senior project in either computer science or mathematics (372 or 398).
150, 160, 200, and 210; twelve additional credits in computer science including at least ten credits in courses numbered 300 or above and at least one of 338, 339, 340, and 350; and MATH 119, 123, or 124. For a business computing minor, it is recommended that students complete 330 and 331.
(CSCI)
120 Introduction to Computing. (4)
Introduction to the field of computer science, designed to equip students with the basic tools needed to understand computers and use them effectively. Topics include the structure of hardware and software systems, history and ethical implications of computing, simple programming, and selected computing applications and issues. Labs will emphasize the possibilities and limits of computer systems and the practical use of programming and application techniques. Every semester.
150 Introduction to the Science of Computing (4)
Using a scientific approach, students will discover the nature and role of computing in the modern world. Regularly scheduled laboratory exercises will explore the nature, possibilities, and limits of computing through the formation and testing of hypotheses and the analysis of experimental results. Prerequisite: Math proficiency. Every semester.
160 Problem Solving, Programs, and Computers. (4)
Examines the fundamental skills of computer programming which underlie all of computer science. Using an advanced programming language, the laboratories will emphasize the use of control and data abstraction as well as program libraries to solve problems of moderate scale. Supporting mathematical structures are also covered. Prerequisite: 150, calculus readiness. Every semester.
176 January Term Topics. (0-4)
Study at the introductory level of a specific topic not ordinarily offered during the semesters. Consult department for applicability towards major requirements. May be repeated for credit when topics vary.
177 January Term Core Topics. (0-4)
Study of algorithm design and data abstraction in larger programs. Topics include basic data at the introductory level of a specific topic not ordinarily offered during the semesters. Designed to fulfill core disciplinary requirement. Consult department for applicability towards major requirements. May be repeated for credit when topics vary.
200 Abstraction, Data Structures and Large Software Systems. (4)
Examines the software implementation of data structures and objects along with careful analysis of time and space complexity. Students will use software components to construct larger software systems. Laboratories will include both software development and testing. Prerequisite: 160, MATH 119 or concurrent registration. Alternate semesters with 210.
210 Levels of Architecture, Languages, and Applications. (4)
Examines the variety of levels from which the discipline of computing can be viewed including architecture, languages, systems, and applications, emphasizing the underlying structures of computer science. Labs will include testing and construction of these structures. Prerequisite: 200 or 160 and consent of instructor. MATH 120 or concurrent registration. Alternate semesters with 200.
271 Individual Learning Project. (1-4)
Supervised reading or research at the lower-division level. Permission of department chair required. Consult department for applicability towards major requirements. Not available to first-year students.
276 January Term Topics. (0-4)
Study of a special topic not ordinarily offered during the semesters. Consult department for applicability towards major requirements. May be repeated for credit when topics vary.
277 January Term Core Topics. (0-4)
Study of a special topic not ordinarily offered during the semesters. Designed to fulfill core disciplinary requirement. Consult department for applicability towards major requirements. May be repeated for credit when topics vary.
310 Computer Organization. (4)
Topics in computer architecture, including the structure of major hardware components, information transfer and control within a computer system, parallel architectures, and network configurations and protocols. Prerequisite: 210. Alternate years.
317 Topics in Computer Science. (1-4)
Selected computer-science topics such as database management, distributed processing systems, graphics, artificial intelligence. Prerequisite: consent of instructor. May be repeated for credit.
330 Business Computing Systems. (4)
Examines the methods and tools used to determine information requirements of a business, construct logical models of the business processes, prepare specifications for program development, prepare procedures and documentation, and test, install, and maintain an information system. Prerequisite: 200 or either 120 or 150 and consent of instructor. Alternate years.
331 Database Systems. (4)
Introduction to physical file organization and data organization techniques, including an examination of data models, file security, data integrity, and query facilities. Discussion will focus on examples which illustrate various data models. Prerequisite: 200. Alternate years.
338 Algorithms, Concurrency, and the Limits of Computation. (4)
Introduction to formal methods for the design and analysis of complex algorithms, with an emphasis on improving students' problem-solving abilities. Focuses on computational resources and ways of conserving both time and memory. Prerequisite: 200 MATH 239 or 241. Alternate years.
339 Theory of Computation. (4)
Introduction to the theoretical structures of programming languages and computers. Topics include regular expressions, formal grammars, abstract automata, and computability. Prerequisite: 200, MATH 239 or 241. Alternate years.
340 Organization of Programming Languages. (4)
The structure, design, and application of various programming language paradigms, with emphasis on the principles and semantics of languages. Prerequisite: 200, 210. Alternate years.
341 Compiler Theory. (4)
Introduction to the design and construction techniques of modern language compilers, including both parsing and code generation. Prerequisite: 210, 339.
350 Operating Systems. (4)
The fundamentals of the software driving the computer, including single-user, multi-user, and multi-tasking systems. Prerequisite: 210. Alternate years.
371 Individual Learning Project. (1-4)
Supervised reading or research at the upper-division level. Permission of department chair and completion and/or concurrent registration of 12 credits within the department required. Consult department for applicability towards major requirements. Not available to first-year students.
372 Senior Research. (0-2)
Individualized experimental, theoretical, or applied projects for seniors. May be repeated for up to 4 credits.
375 Supervised Study. (0-4)
Full-time learning experience during the January Term done under the direction of a faculty moderator, often in conjunction with an off-campus supervisor. Requires permission of instructor. Not available to first-year students.
376 January Term Topics. (0-4)
Study at the upper-division level of a special topic not ordinarily offered during the semesters. Consult department for applicability towards major requirements. May be repeated for credit when topics vary.
377 January Term Core Topics. (0-4)
Study at the upper-division level of a special topic not ordinarily offered during the semesters. Designed to fulfill core disciplinary requirement. Consult department for applicability towards major requirements. May be repeated for credit when topics vary.
398 Honors Senior Essay, Research or Creative Project. (4)
Required for graduation with "All-College Honors" and "Departmental Distinction in Mathematics/Computer Science (or Physics/Computer Science)." Prerequisite: HONOR 396 and approval of the department chair and director of the honors program.