Computer Science Program

The Computer Science program at Marietta College prepares students to work at the systems level on software and other computer products developed by high-technology enterprises. It also prepares students to enter graduate school and pursue advanced studies in Computer Science and related fields.

The core courses in the curriculum stress the basic concepts underlying the study of Computer Science: algorithms, data types and structures, abstraction, digital electronics, architecture, programming language principles, databases and operating systems.

By choosing electives carefully, students can focus in more specialized areas of Computer Science, including:
  • Networking (including working on McNet)
  • Artificial Intelligence and Expert Systems
  • Scientific Computing and Numerical Analysis
  • Graphics (including fractals)
  • Programming Language Theory and Compilers
  • Theoretical Foundations of Computing.

Programs Goals

  • Given the specifications for a software application, design the appropriate internal and external data structures, then design, implement, and test the algorithms which represent and transform the data structures necessary to solve the problem.
  • Work within a group programming environment to utilize the object oriented paradigm and sound software engineering principles, such as using cohesive, independently compiled modules with appropriate abstract data types and user interfaces, in the program development cycle.
  • Communicate technical information clearly and concisely in oral and written forms.
  • Understand client/server and enterprise computing strategies and their important relationships to database design, application programming, data communications, and networking (workstations, LANs, WANs, World-Wide-Web).
  • Use analytical and technical skills for identifying, studying, and solving complex system problems.
  • Implement algorithms using a variety of software development tools based on a solid understanding of the architecture of the tools.
  • Design and implement major components of computer systems, such as hardware architectures, language translators, multi-tasking kernels and graphical user interfaces.
  • Utilize appropriate formal methods to model and analyze algorithms, programming languages, tasks, digital circuits, bus architectures and other aspects of computer systems.
  • Apply the various stages of the system development life cycle to the creation of medium and large-scale system-level software.

Requirements