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

Section I:
The University

Section II:
Graduation Requirements

Section III:
Majors, Minors, Courses

School of Music

College of Liberal Arts
  • Art
  • Asian Studies
  • Biochemistry
  • Biology
  • Black Studies
  • Chemistry
  • Classical Studies
  • Communication and Theatre
  • Computer Science
  • Conflict Studies
  • Economics
  • Education
  • English
  • Geosciences
  • History
  • Honors Programs
  • Kinesiology
  • 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       (Program Homepage)

    Faculty: D. Berque, D. Harms, B. Howard, G. Nasr, 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 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, 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 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 coordinated programs each year.

    Requirements for a major in Computer Science:
    Total courses required: Eight CSC+ two mathematics
    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
    Senior requirement: The senior requirement is CSC 498.
    Additional information:
  • MATH 123 and MATH 223 are also required.
  • Requirements for a minor in Computational Mathematics:
    Total courses required: five
    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

    Requirements for a minor in Computer Science:
    Total courses required: Five
    Core courses: CSC 121, CSC 122
    Other courses:
    # 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, 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  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. 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: 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: 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 content areas that extend explorations of content in existing courses, allow exploration of content not duplicated in regular course offerings or allow the study of computer science topics for non-computer science majors. Open to students by permission of instructor or to those who satisfy prerequisites determined by the instructor.
     
    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 122. May not be taken 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 or permission of instructor. 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, allow exploration of content not duplicated in regular course offerings or allow the study of computer science topics for non-computer science majors. 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.
     

    ©2001 DePauw University

    email: sbates@depauw.edu

    Last Updated: 4/15/2004