DePauw University Catalog
Section III: Majors, Minors, Courses of Instruction

2002-04 HOME

Section I:
The University

Section II:
Graduation Requirements

Section III:
Majors, Minors, Courses

School of Music

College of Liberal Arts
  • Art
  • Asian Studies
  • Biology
  • Black Studies
  • Chemistry
  • Classical Studies
  • Communication Arts and Sciences
  • Computer Science
  • Conflict Studies
  • Economics
  • Education
  • English
  • Geology and Geography
  • Health and Physical Performance
  • History
  • Honors Programs
  • Latin American and Caribbean Studies
  • Mathematics
  • Modern Languages
  • Music (CLA)
  • Music, School of
  • Off Campus Study
  • Philosophy
  • Physics and Astronomy
  • Political Science
  • Psychology
  • Religious Studies
  • Russian Studies
  • Sociology and Anthropology
  • University Studies
  • Women'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

    2001-2002 Faculty: Berque, Harms, Singer (chair), Thede, Townsend.

    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 two courses: Computer Science I and Computers in Business, Science and Society that are for students interested in surveying key topics in computing. Departmental programs consist of a computer science major and two minors for students who want to combine computing with a major in another discipline. One minor is in computer science and the other is in computational mathematics. 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, email and connectivity to the Internet. The department maintains a state-of-the-art laboratory of Linux workstations with a high-end server that provides 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 scholarships, 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 two coordinated programs each year.

    Requirements for a major in Computer Science:
    Total courses required: eight courses
    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, 424, 426, 428.
    # 300 and 400 level courses: four courses
    Senior requirement: The senior requirement is CSC 498.
    Additional information:
  • MATH 151 (or MATH 135 and MATH 136)
  • MATH 253
  • Requirements for a minor in Computational Mathematics:
    Total courses required: five courses
    Core courses: CSC 121, CSC 122, MATH 151, MATH 253
    Other courses: The remaining course may be either a computer science or mathematics course.
    # 300 and 400 level courses: one course

    Requirements for a minor in Computer Science:
    Total courses required: five courses
    Core courses: CSC 121, CSC 122
    Other courses:
    # 300 and 400 level courses: one course

    Courses in Computer Science

    CSC 121. Computer Science I --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, modeling and simulation, artificial intelligence, computer architecture, and text file manipulation. Interesting and relevant programming assignments related to these topics are written in a high-level structured 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 --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. 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 --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. Offered each semester. Not offered Pass-Fail.



    CSC 222. Data Structures and Algorithms --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. Recommended prerequisite or co-requisite: MATH 253. Offered each semester. Not offered Pass-Fail.



    CSC 255. Computers in Business, Science, Society --1 course
    This course provides an introduction to the uses of computers in society and how these uses continue to reshape our world: politically, economically, ethically and socially. Software packages, including those for electronic communication and information gathering, graphics, spreadsheets and database management are used in this study, although software packages are not the main focus of this class. Non-classroom activities such as field trips and work in the laboratory are significant components of the course. Prerequisite: None. Offered annually. Not offered Pass/Fail. May not be counted toward the computer science major but may count toward the computer science minor.

    CSC 315. Modeling and Simulation --1 course
    Techniques of simulation systems from diverse fields are presented in this course. A simulation language such as SLAM is used. Topics include principles of modeling and simulation, random number generators, simulation languages and data structures in the context of simulation. The course provides a scientific methodology for fields such as sociology, economics, business and computer systems performance. Prerequisite: CSC 122. Recommended prerequisite or co-requisite: MATH 151. Offered biannually. Not offered Pass-Fail.

    CSC 320. Human Computer Interaction --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 122 and at least one of CSC 221 or CSC 222. May not be taken pass/fail.

    CSC 330. Artificial Intelligence --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 or permission of instructor. Offered annually. Not offered Pass-Fail.


    CSC 341. Theory of Computation --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 253 . Offered biannually. Not offered Pass-Fail.

    CSC 350. Graphics --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 122 and MATH 151. Recommended prerequisite or co-requisite MATH 253. Offered annually. Not offered Pass-Fail.


    CSC 381. Database and File Systems --1 course
    The study of database modeling, design and implementation is the focus of this course. Characteristics of secondary storage devices, methods of organizing information and various file organization and accessing techniques are discussed to provide a basis for understanding database implementation and performance issues. The Entity-Relationship, relational and object oriented database models are studies. Systems such as ORACLE and ACCESS are used to illustrate implementations of database management systems. Programming assignments complement topics discussed in class. A semester project may be required. Prerequisite: CSC 222 or permission of instructor. Offered annually. Not offered Pass-Fail.


    CSC 422. Computer Networking --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, qualify-of-service, and Internet protocols (TCP/IP). Prerequisites: CSC 221 , CSC 222 . Offered annually. May not be taken pass/fail.


    CSC 424. Programming Languages --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 222 or permission of instructor. Offered annually. Not offered Pass-Fail.


    CSC 426. Compilers --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 --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 222 and MATH 253 . Offered annually. Not offered Pass-Fail.


    CSC 492. Computer Science Topics --1 course
    A. Modeling and Simulation, II. B. Computer Organization II. Prerequisite: permission of instructor. May be repeated for credit with different topics. Not offered Pass-Fail.

    CSC 496. Seminar: Computer Science --1/2-1 course
    Advanced topics considered individually or in small groups. Prerequisite: permission of instructor. May be repeated for credit with different topics. Not offered Pass-Fail.

    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 or permission of instructor. Offered each semester. Not offered Pass/Fail.



    ©2001 DePauw University

    email: sbates@depauw.edu

    Last Updated: 3/25/2002