Southwestern

Engaging Minds, Transforming Lives

Math & Computer Science

Computer Science

The Computer Science curriculum is also traditional, at least in the early courses. The first two courses in the major are taught in Java, which is an excellent language for introducing object-oriented concepts. 

The following list of courses represents current or recent course offerings. See the course catalog for updated information.

  • 54-144 EXPLORATIONS IN COMPUTING
    This course is an introduction to the discipline of computer science with an emphasis on applications in the liberal arts. Topics include basic programming constructs, basic data structures, algorithmic computation, selection, iteration, interactive user interfaces, abstraction and reasoning about computer programs. This is an introductory course intended for humanities, social science and fine arts majors. May not be used for the Computer Science major or minor. Cannot be taken after successful completion of 54-184, 54-284, or 54-454 without departmental approval. (NS)
  • 54-184 COMPUTER SCIENCE I
    This is the standard first course in computer programming in an object-oriented style. It is primarily intended for students pursuing a major or minor in computer science, mathematics or other disciplines in the natural sciences. Topics include primitive types and operations, assignment, conditional execution, iteration, arrays, classes, methods, recursion, encapsulation, type extension, inheritance and reasoning about programs. The course includes a laboratory component designed to explore applications and to enhance conceptualization. (Each semester) (NS)
  • 54-281 COLLOQUIUM IN COMPUTER SCIENCE In this seminar-style course, each student will give a lecture on a topic in computer science not normally covered in depth in the regular curriculum
    Presentation of one lecture and participation in discussions is required. This course may be repeated for credit, but may not be counted toward the major or minor. Must be taken Pass/D/F. Prerequisite: Prior or concurrent enrollment in Computer Science 54-284, and permission of the instructor.
  • 54-284 COMPUTER SCIENCE II
    This course is a continuation of 54-184 Computer Science I, with an emphasis on abstract data objects such as lists, stacks, queues, trees and graphs. Topics include algorithms for searching, sorting, traversing, inserting and deleting, and reasoning about these algorithms. The course includes a laboratory component designed to explore applications and to enhance conceptualization. Prerequisite: Computer Science 54-184 or permission of instructor. (Each semester) (NS)
  • 54-291 RAPID APPLICATION DEVELOPMENT
    This course will develop skills needed for the rapid development of programming solutions to problem specifications. This course (or, prior enrollment in this course) is required for students wishing to compete in the South Central Programming Contest. This course may be repeated for credit. May not be counted toward the major or minor, and must be taken P/D/F. Prerequisite: Computer Science 54-184. (Fall)
  • 54-384 DISCRETE MATHEMATICS
    This course investigates concepts fin the modeling of discrete phenomena. Topics include logic, structure of proof, set theory, combinatorics, graphs, induction and recurrence relations. Also Mathematics 52-384. Prerequisites: Mathematics 52-154, Computer Science 54-184, and either Mathematics 52-254 or Computer Science 54-284, or permission of instructor. (Fall) (NS)
  • 54-394 COMPUTER ORGANIZATION
    This course studies the Computer architecture, internal representation of data, assembly language programming, subroutines and parameter passing, design of machine language instruction sets, bus structure, datapath and command interpreter. The course includes a laboratory component designed to explore applications and to enhance conceptualization. Prerequisite: Computer Science 54-284 or permission of instructor. (Fall) (NS)
  • 54-454 ALGORITHMS
    This course studies algorithms for stacks, trees, queues, graphs, and hashing, sorting, and searching. , There is an emphasis analysis of algorithms for sorting, searching and merging files, complexity of algorithms, hashing methods. Prerequisite: Computer Science 54-284 or permission of instructor. (Spring) (NS)
  • 54-474 PROGRAMMING LANGUAGES
    A study of the principles and practice in the design and implementation of imperative, functional, logic and object-oriented programming languages. Prerequisite: Computer Science 54-394 or permission of instructor. (Fall) (NS)
  • 54-514 DATABASE MANAGEMENT
    A study of the logical and physical organization of data in conventional database systems. Topics include functional dependencies, normal forms, relational and other data models, indexing and concurrency control. Prerequisite: Computer Science 54-284 or permission of instructor. (Fall, odd years) (NS)
  • 54-524 INTRODUCTION TO NUMERICAL ANALYSIS
    See Mathematics 52-524. (Spring, odd years) (NS)
  • 54-534 FUNCTIONAL PROGRAMMING
    An introduction to functional programming. Topics include functions, lists, types, induction and recursion, pattern matching, infinite lists and trees. A functional programming language such as Haskell, Lisp or ML will be used in the course. There will be a large number of programming projects. Prerequisite: Computer Science 54-284 or permission of instructor. (NS)
  • 54-554 COMPUTER GRAPHICS
    An Introduction to 2D and 3D graphics. Topics include: display hardware, graphics primitives, data structures, geometric transformations, modeling, 2D display algorithms, 3D viewing, clipping, hidden line and surface removal, illumination and shading. Prerequisite: Mathematics 52-674, Computer Science 54-394 and 454, or permission of instructor. (NS)
  • 54-644 COMPUTER SYSTEMS
    An introduction to operating systems and computer networks. Topics include process control, scheduling, threads, concurrency, memory management, virtual memory, network protocol layers, packets, routing and network security. Prerequisite: Computer Science 54-394. (Spring) (NS)
  • 54-414 OPERATIONS RESEARCH
    Formulation and solution of problems with management, economics, engineering and science applications using modeling, optimization techniques, and simulation. Topics include linear and integer programming, simplex method, duality, sensitivity analysis, branch and bound algorithm, transportation and assignment problems, network optimization, and problem solving using optimization software. Also 52-414 and 30-414. Prerequisites: 52-154 (Calculus I) and either 30-474 (Finance) or 52-674 (Linear Algebra) or permission of the instructor.
  • 54-684 THEORY OF COMPUTATION
    A study of finite state systems, finite automata and formal language theory. Topics include Context-free grammars, regular expressions, pushdown automata, Turing machines, decidability, and complexity. Prerequisite: Mathematics or Computer Science 52/54-384. (NS)
  • 54-844 SEMINAR IN SPECIAL TOPICS
    A limited enrollment seminar not generally covered in other courses. This course may be repeated for credit as topics vary. Prerequisites: Three courses at the 200 level or above and permission of instructor. (NS)
  • 54-894 SENIOR SEMINAR IN SOFTWARE ENGINEERING
    Introduction to techniques and theories for the development of large software systems. This course will fulfill the capstone requirement in Computer Science. Topics include: software design and quality, ethics, professional issues, the study of current software engineering trends, theory and practice. A major semester project is expected from each student, as well as significant class participation and presentation. Prerequisite: Six courses in the major at the 300 level or above, and permission of instructor. (Spring) (NS) (WA)
  • 54-001 SELECTED TOPICS
    May be repeated with change in topic.
  • 54-002 SELECTED TOPICS
    May be repeated with change in topic.
  • 54-003 SELECTED TOPICS
    May be repeated with change in topic.
  • 54-004 SELECTED TOPICS
    May be repeated with change in topic.
  • 54-301 SELECTED TOPICS
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-302 SELECTED TOPICS
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-303 SELECTED TOPICS
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-304 SELECTED TOPICS
    May be repeated with change in topic. Prerequisite: Permission of instructor.
  • 54-901 TUTORIAL
  • 54-902 TUTORIAL
  • 54-903 TUTORIAL
  • 54-904 TUTORIAL
  • 54-951 INDEPENDENT STUDY
    May be repeated with change in content.
  • 54-952 INDEPENDENT STUDY
    May be repeated with change in content.
  • 54-953 INDEPENDENT STUDY
    May be repeated with change in content.
  • 54-954 INDEPENDENT STUDY
    May be repeated with change in content.
  • 54-984 HONORS
    By invitation only.