|
|
|
|
| Computer Science 130 Computing: Science and Applications. (4) 150 Introduction to the Science of Computing. (4) 160 Problem Solving, Programming and Computers. (4) 176 January Term Topics. (0-4) 200 Abstraction, Data Structures and Large Software Systems. (4) 210 Levels of Architecture, Languages and Applications. (4) 271 Individual Learning Project. (1-4) 276 January Term Topics. (0-4) 310 Computer Organization. (4) 312 Data Communications and Networks. (4) 317 Topics in Computer Science. (1-4) 318 Topics in Software Development. (1-4) 330 Software Engineering. (4) 331 Database Systems. (4) 338 Algorithms, Concurrency and the Limits of Computation. (4) 339 Theory of Computation. (4) 340 Organization of Programming Languages. (4) 341 Compiler Theory. (4) 350 Operating Systems. (4) 371 Individual Learning Project. (1-4) 372 Individual Senior Research. (0-4) 373 Senior Research in Computer Science Topics. (4) 375 Supervised Study. (0-4) 376 January Term Topics. (0-4) 398 Honors Senior Essay, Research or Creative Project. (4)Department Chair: J. Andrew Holey [Top]Faculty: Nathley Caesar, Noreen Herzfeld, J. Andrew Holey, James Schnepf, Lynn Ziegler Computers and information technology now permeate human society. People in almost any career find themselves using computers, many on a daily basis. This activity is supported by computing professionals who work in many 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 professionals 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 same time, the curriculum seeks to combine these principles with the design of applications current to each topic. Major The computer science department offers two distinct majors - computer science and 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 Regulations.) Computer Science Major(52 credits) [Top] This major focuses on the study and implementation of algorithms and the theoretical foundations of computing. It is appropriate for students interested in the full range of computing including software design, systems analysis, and graduate study in computer science. Required Courses: MATH 119 or 123, 120 or 124, and 240; CSCI 150, 160, 200, 210, 338, 339, 340; one of 372, 373, or 398; eight additional upper-division credits in computer science, four of which may include MATH 320, 325, or 338. Mathematics/Computer Science Major (52 credits) [Top] This major focuses on the study and implementation of algorithms with a special emphasis on mathematical computing. It is most appropriate for students who are also interested in mathematics, computational science or other scientific disciplines including graduate study in any of these disciplines. This major is offered jointly with the mathematics department.Required Courses: CSCI 150, 160, 200, and 210; MATH 119, 120, 239, 240, and 331 or 343; two of CSCI 338, 339, or 340; one of MATH 320, 325, or 338; four additional credits in upper-division mathematics or computer science. Minor (24 credits) [Top] Required Courses:150, 160, and 200; plus 12 additional upper-division credits in computer science. CSCI 210 may be counted for four of these credits. There are no mathematics course requirements for the minor, but students are urged to consider taking MATH 119 (Calculus I), MATH 123 (Essential Calculus), or MATH 124 (Probability and Statistical Inference) as their mathematics core course. Computer science courses use sophisticated mathematics and a certain level of mathematical maturity is necessary in many upper-division courses. Those students interested in a computer science minor with a business emphasis will probably want to take 330 (Software Engineering) and 331 (Database Systems) as part of their minor. Courses (CSCI) 130 Computing: Science and Applications. (4) [Top]An overview of computing and its applications from a scientific perspective, designed to equip students with the basic tools needed to understand computers and use them effectively. Students will study the basic architecture of computers, the structure of programming, and the design of spreadsheets and databases. Through regularly scheduled labs they will gain hands-on experience with applications to scientific and business problems. Not intended for students majoring in the sciences. Prerequisite: Math proficiency. 150 Introduction to the Science of Computing. (4) [Top]An overview of the field of computer science, emphasizing a scientific approach to the design of computer hardware and the structure of computer programs. Regularly scheduled labs will explore the processes, possibilities and limits of computing. Intended for majors in computer science, mathematics, and the natural sciences and computer science minors. Prerequisite: Math proficiency. 160 Problem Solving, Programming and Computers. (4) [Top]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. Supporting mathematical structures are also covered. Prerequisite: 150. |
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. 200 Abstraction, Data Structures and Large Software Systems. (4) [Top]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, completion of four credits in mathematics. 210 Levels of Architecture, Languages and Applications. (4) [Top] Examines the variety of levels from which the discipline of computing can be viewed, including architecture, languages, systems, and applications and emphasizing the underlying structures of the computer. Labs will include testing and construction of some of these structures. Prerequisite: 200 or 160 and consent of instructor. 271 Individual Learning Project. (1-4) [Top]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) [Top]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. 310 Computer Organization. (4) [Top]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. 312 Data Communications and Networks. (4) [Top]Introduction to the concepts, terminology and approaches used in data communication systems. Topics include protocol stacks as models and implementations, signal encoding, media for transmission, analysis of network architectures, addressing and routing, error and flow control, connection management and security. Prerequisite: 200, 210. Fall, alternate years. 317 Topics in Computer Science. (1-4) [Top]Selected computer science topics such as distributed processing systems, graphics or artificial intelligence. Prerequisite: consent of instructor. May be repeated for credit. 318 Topics in Software Development. (1-4) [Top]Selected computer science topics requiring a major software development project. Prerequisite: consent of instructor. May be repeated for credit. [Top]Examines the methods and tools used to determine information requirements of a business, construct logical models of business processes, prepare specifications for program development, prepare procedures and documentation, and test, install and maintain an information system. Prerequisite: 200. Spring, alternate years. [Top]Introduction to physical file organization and data organization techniques, including an examination of data models, file security, data integrity and query languages. Discussion will focus on examples which illustrate various data models. Prerequisite: 200. Spring, alternate years. 338 Algorithms, Concurrency and the Limits of Computation. (4) [Top]Introduction to formal methods for the design and analysis of complex algorithms, with an emphasis on developing students' problem-solving abilities. Focuses on computational resources and ways of conserving both time and memory. Prerequisite: 200 and MATH 240. Fall. 339 Theory of Computation. (4) [Top]Introduction to the theoretical structures of programming languages and computers. Topics include regular expressions, formal grammars, abstract automata and computability. Prerequisite: 200 and MATH 240. Fall. 340 Organization of Programming Languages. (4) [Top]The structure, design and application of various programming language paradigms, with emphasis on the principles and semantics of languages. Prerequisite: 339. Spring. [Top]Introduction to the design and construction techniques of modern language compilers, including both parsing and code generation. Prerequisite: 210, 339. [Top]The fundamentals of the software that drives the computer, including single-user, multi-user and multi-tasking systems. Topics include networks, file systems, task scheduling, multiprocessing, memory management, user interfaces and peripheral devices. Prerequisite: 200, 210. 371 Individual Learning Project. (1-4) [Top]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 Individual Senior Research. (0-4) [Top]Individualized experimental, theoretical or applied projects for seniors. Each student intensively explores a topic, writes a major research paper, and makes a formal presentation to the department. May be repeated for up to 4 credits. 373 Senior Research in Computer Science Topics. (4) [Top]Directed research in computer science organized around a selected topic and conducted in a seminar format. Includes consideration of computer science research methodology and analysis of current research in the seminar topic. Each student intensively explores a topic, writes a major research paper and makes a formal presentation to the department. [Top]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) [Top]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. 398 Honors Senior Essay, Research or Creative Project. (4) [Top]Required for graduation with "All-college Honors" and "Departmental Distinction in Mathematics/Computer Science" or "Departmental Distinction in Computer Science." Prerequisite: HONOR 396 and approval of the department chair and director of the honors program.
|