|
Section I: The
University
Section II: Graduation
Requirements
Section III: Majors,
Minors, Courses
School of Music
College of Liberal Arts
ArtAsian StudiesBiochemistryBiologyBlack StudiesChemistryClassical StudiesCommunication and TheatreComputer ScienceConflict StudiesEconomicsEducation StudiesEnglishGeosciencesHistoryHonors ProgramsKinesiologyLatin American and Caribbean StudiesMathematicsModern LanguagesMusic (CLA)Music, School
ofOff Campus
StudyPhilosophyPhysics and AstronomyPolitical SciencePsychologyReligious StudiesRussian StudiesSociology and AnthropologyUniversity StudiesWomen's Studies
Section IV: Academic
Policies
Section V: the DePauw
Experience
Section VI: Campus
Living
Section VII: Admission,
Expenses, Aid
Section VIII: University
Personnel
|
 |
Computer Science (Program Homepage) Faculty: M. Bell, D. Harms, B. Howard, A. Olowoyeye, C. Singer, S. Thede, G. Townsend, K. Van Busum Computer Science is the study of algorithmic processes and the design, development and analysis of software and hardware used to carry out these processes. Since computers are used for a variety of purposes by people in all walks of life, there is a significant human side to computer science as well.
Some graduates choose to continue their studies in graduate or professional school (not necessarily in computer science) before seeking employment. Majors accepting positions upon graduation typically work for companies that provide computing hardware, software or services for use in business, education, government and research.
The department regularly offers Computer Science I and other courses of a more general nature for students interested in surveying key topics in computing. Departmental programs consist of a computer science major and a computer science minor. Most courses provide hands-on computing experience.
Computing facilities include Windows-based microcomputer laboratories that are part of the University network. They provide tools for computer science, standard desktop productivity, e-mail and connectivity to the Internet. The department maintains a state-of-the-art laboratory of Linux workstations with high-end servers that provide robust file services and a full array of software development tools. The department also has a computer-based, cooperative-work laboratory and a lounge for use by its majors. University programs of interest to computer science majors include: Science Research Fellows Program, Oak Ridge Science Semester and Winter Term internships. Some employment and research opportunities with the department and the Computer Center are available during the year and summer. Finally, the student computer clubs (Association for Computing Machinery and ACM-Women) provide coordinated programs each year.
Requirements for a major in Computer Science: | Total courses required: | Eight CSC + MATH 123 and MATH 223 |
| Core courses: | CSC 121, CSC 122, CSC 221, CSC 222, CSC 498 |
| Other required courses: | One course from the following is also required: CSC 422, CSC 424, CSC 426, CSC 428. |
| # 300 and 400 level courses: | Four |
| Senior requirement: | The senior requirement is CSC 498. |
| Additional information: | MATH 123 and MATH 223 are also required. |
Requirements for a minor in Computer Science: | Total courses required: | Five | | Core courses: | CSC 121 and CSC 122
| | # 300 and 400 level courses: | One | Courses in Computer Science
| CSC 121.
Computer Science I |
Group 1 |
1 course |
| This is an introductory course in which problem solving and algorithm development are studied by considering computer science topics, such as
computer graphics, graphical user interfaces, modeling and simulation, artificial intelligence and information management systems. Interesting and relevant programming assignments related to these topics are written in a high-level programming language that supports objects. Additional assignments utilize writing and data analysis to reinforce
central course concepts and to address related areas of computing, such as ethics, history and the meaning of intelligence. The course meets
three hours in class and two hours in laboratory (3-2). Prerequisites: None. Offered each semester. Not offered pass/fail.
|
| CSC 122.
Computer Science II |
Group 1 |
1 course |
| This course builds on CSC 121 and introduces programming topics, such as sets, recursion and dynamic data types. Data type abstraction and implementation are introduced by studying structures, such as lists, stacks, queues and binary trees. The object-oriented implementation of these structures is emphasized. Tools for algorithm analysis are introduced, and comparisons of functional, object oriented and imperative programming paradigms are made. The concept of tradeoffs (i.e., time vs. space, iteration vs. recursion, static vs. dynamic and imperative vs. functional) recurs as a theme throughout the course. Prerequisite: CSC 121. Recommended pre- or corequisite: MATH 123 or MATH 223. Offered each semester. Not offered pass/fail.
|
| CSC 197.
First-Year Seminar |
|
1 course |
| A seminar focused on a theme related to the study of computer science. Open only to first-year students. |
| CSC 221.
Computer Organization |
Group 1 |
1 course |
| This is an introduction to the study of computer hardware, concentrating on the central processing unit and main storage. Topics include representing information, machine language, combinational and sequential logic, input/output, registers, register transfer logic and bus structures. Assembly language and the high-level language, C++, are used to aid in the understanding of these topics. Prerequisite: CSC 122 and either MATH 123 or MATH 223. It is recommended but not required that both MATH 123 and MATH 223 are completed by the time CSC 221 and CSC 222 are completed. Offered each semester. Not offered pass/fail.
|
| CSC 222.
Data Structures and Algorithms |
Group 1 |
1 course |
| This course examines, in depth, several historically significant and highly functional models of data storage, including trees, sets, tries, priority queues and graphs. Attention is given to selecting the most appropriate model for a particular problem. Differences between the conceptual features of a model and its physical representation on a computer are emphasized. Algorithms which operate on these models are also considered. Other topics include an in-depth study of sorting, including special-purpose sorting algorithms. Prerequisite: CSC 122 and either MATH 123 or MATH 223. It is recommended but not required that both MATH 123 and MATH 223 are completed by the time CSC 221 and CSC 222 are completed. Offered each semester. Not offered pass/fail.
|
| CSC 296.
Computer Science Topics |
|
1/2-1 course |
| Topics are chosen from computer science to allow the study of computer science topics for non-computer science majors. Not open to
computer science majors; does not count in the computer science major GPA.
|
| CSC 320.
Human Computer Interaction |
Group 1 |
1 course |
| This course examines fundamental principles in Human Computer Interaction as seen from the viewpoint of a computer scientist. Topics include user-centered design, expert reviews, usability tests, tradeoffs between interaction devices, alternative input-output methods, including handwriting recognition and associated algorithms, the design of interfaces for users with visual or motor impairments, construction of appropriate error messages and implementation of graphical user interfaces (GUIs). Prerequisites: CSC 221 or 222. Offered annually. Not offered pass/fail.
|
| CSC 330.
Artificial Intelligence |
Group 1 |
1 course |
| This course examines the definition of intelligence using a variety of approaches from personal experience through the Turing test. Problems, problem spaces and search and knowledge representation, two basic units of the course, precede the study of more advanced topics, such as game playing, planning, robotics, vision, learning, connectionist models and expert systems. Prerequisite: CSC 222. Offered annually. Not offered pass/fail.
|
| CSC 341.
Theory of Computation |
Group 1 |
1 course |
| Various models of formal languages (which provide a basis for compilers) and computation (which defines the kinds of problems that can be solved by a computer) are studied. Topics include regular languages, regular expressions, finite state automata, context-free languages, context-free grammars, push-down automata and Turing machines. The application of these models to several practical problems in computer science is considered. Computational limits are also discussed, using as examples several problems which cannot be solved by any algorithm. Prerequisite: CSC 122 and MATH 223 . Offered annually. Not offered pass/fail.
|
| CSC 350.
Graphics |
Group 1 |
1 course |
| This course is an introduction to the concepts, techniques, algorithms and implementation of computer graphics. Topics include moving and drawing lines in absolute and relative coordinates, transformations, windowing, clipping, projections, perspective, polygon filling, hidden surface techniques and a variety of applications, including graphical user interfaces and menuing systems. Prerequisite: CSC 222. Recommended prerequisite or co-requisite MATH 151. Offered annually. Not offered pass/fail.
|
| CSC 381.
Database and File Systems |
Group 1 |
1 course |
| This course provides an external and an internal view of relational database management systems (DBMSs). The external view consists of database design and implementation. The database query and manipulation languages SQL and QBE will be studied to the degree that students will be able to become proficient in these languages on their own. The internal view involves characteristics of secondary storage devices, methods of organizing information, various file organization and accessing techniques and other topics related to database engine implementation. Programming assignments complement topics discussed in class, including the building of a few key components of a database engine. Prerequisite: CSC 222 or permission of instructor. Offered annually. Not offered pass/fail.
|
| CSC 396.
Computer Science Topics |
|
1/2-1 course |
| Topics are chosen from computer science content areas that extend explorations of content in existing courses or allow exploration of content not duplicated in regular course offerings. Open to students by permission of instructor or to those who satisfy prerequisites determined by the instructor. |
| CSC 422.
Computer Networking |
Group 1 |
1 course |
| This course examines the core concepts and fundamental principles of computer networks and the services built on top of them. Topics covered include protocol organization, circuit-switch and packet-switch networks, routing, flow control, congestion control, reliability, security, quality-of-service and Internet protocols (TCP/IP). Prerequisites: CSC 221 and CSC 222 . Offered annually. May not be taken pass/fail.
|
| CSC 424.
Programming Languages |
Group 1 |
1 course |
| The topics of this course include a history of programming languages, virtual machines, representation of data types, sequence control, data control, lexical vs. dynamic scoping, sharing, type checking, parameter passing mechanisms, run-time storage management, context-free grammars, language translation systems, semantics and programming paradigms. Prerequisite: CSC 221 and CSC 222. Offered annually. Not offered pass/fail.
|
| CSC 426.
Compilers |
Group 1 |
1 course |
| This course offers the study of theories related to compilers with the goal of implementing a compiler for an imperative language such as Pascal. Topics include formal languages, grammars, lexical, syntactic and semantic analysis, code generation and optimization. Prerequisites: CSC 221 and CSC 222. Offered annually. Not offered pass/fail.
|
| CSC 428.
Operating Systems |
Group 1 |
1 course |
| Topics in operating system concepts and design, such as file systems, CPU scheduling, memory management, virtual memory, disk scheduling, deadlocks, concurrent processes, protection and distributed systems are studied in this course. Topics are treated thoroughly in a generic way and also discussed in detail with respect to a specific operating system. Prerequisites: CSC 221 and CSC 222. Offered annually. Not offered pass/fail.
|
| CSC 496.
Computer Science Topics |
|
1/2-1 course |
| Topics are chosen from content areas of computer science that either extend explorations of content in existing courses or allow explorations of content not duplicated in our current course offerings. Open by permission of instructor to students with more advanced prerequisites chosen by the instructor. |
| CSC 498.
Senior Project |
|
1 course |
| Students complete a project proposal and a project under the sponsorship of a member of the computer science faculty. Students will examine ethical issues related to their projects. Periodic progress reports will also be given. Prerequisite: senior standing and at least one computer science course at the 300 or 400 level. Offered each semester. Not offered pass/fail.
|
|