<
 
Gettyburg College

myGettysburg personalizes your web experience.

Prospective students

  • Update your interests
  • Connect with contacts on campus
  • Check the status of your application materials

Alumni

  • Update your profile and contact information
  • Search the alumni directory
  • Manage your investment in Gettysburg

Learn more

Search


Courses

Course level: 100 | 200 | 300 | 400
CS-103 Introduction to Computing
Liberal arts introduction to the discipline of computer science and the use of computers in a variety of fields. Topics include a historical survey of technology and the use of computers, computer application, software systems design, programming with scripts, computer hardware and logical design, and several implications of computing. Course is laboratory-oriented and includes several hands-on laboratory projects.


CS-111 Computer Science I
Introduction to computer science, with an emphasis on problem solving, methodology, and algorithms. Further topics include computer organization, data structures, and software engineering. Student projects using the Java programming language are an essential part of this course.


CS-112 Computer Science II
The second course in the introductory sequence for Computer Science majors and students interested in the principles of programming. Special attention is given to object-oriented program design methods, algorithms, and elementary data structures.



CS-201 The Mathematics of Computation
A study of the mathematics that is necessary for understanding the foundations of the Theory of Computation. Topics include mathematical logic, set theory, mathematical induction, mathematical definitions and proofs, graph theory, an introduction to finite state automata. Applications and illustrative examples will be drawn from topics in Computer Science such as digital circuits, analysis of algorithms, correctness of algorithms, automata, decidable problems, and efficient searching.


CS-216 Data Structures
Introduction to major data structures and some of their applications. Topics include linear lists, sets, queues, stacks, linked lists, string processing, trees, graphs, arrays, tables, files, dynamic memory management and an introduction to the analysis of algorithms.


CS-221 Computer Organization and Assembly Language Programming
Programming at the machine level, with emphasis on the logical connection of the basic components of the computer and systems programs. Topics include machine and assembly language programming, basic computer operations, data representation, hardware organization, systems software, and compilers.


CS-250 Introduction to Software Systems
Application of computer science principles to the design of a large software system. In response to a perceived need for a solution to a problem that involves computing, students work in teams, analyzing the problem, conducting interviews, and preparing specifications for a solution. Students then produce software that meets these specifications. All projects require an application of software design principles, as well as the general programming principles learned in previous computer science courses. Prerequisite: Computer Science 104.


CS-251 Introduction to Bioinformatics
Introduction to the emerging field of bioinformatics, where biology and computer science intersect with the rapidly expanding volume of biological information produced by genome sequencing and proteomic exploration of life processes. Application of bioinformatic software tools to the analysis of gene sequences and protein structures is emphasized. Students undertake a laboratory project combining in silico and in vitro approaches to isolate and analyze their own DNA. The course provides an introduction to computer algorithms used in bioinformatic software.



CS-301 The Theory of Computation
An introduction to an understanding of the capabilities and limitations of computers. Included are topics from complexity theory, computability theory, and automata theory. Specific topics include finite state automata, regular languages, push down automata, context free languages, Pumping Lemmas, the Church-Turing Thesis, Turing Machines, decidability, and NP-completeness.


CS-311 Design and Analysis of Algorithms
Survey of basic principles and techniques for the development of good algorithms. Emphasis is placed on individual development of algorithms and an analysis of the results in terms of usefulness, efficiency, and organization. Topics include design techniques, worst case and average case analysis, searching, sorting, branch and bound, spanning trees, reachability, combinatorial methods, and NP-hard problems. Alternate years. Offered 1999-2000.


CS-322 Introduction to Computer Networks
Introduction to principles used to analyze and build a network of computers. Course covers concepts and issues relating to low-level communications and protocols of computer networking. Students study formal methods for integrating communication events into normal process cycles of the computer, then concentrate on a study of practices for defining and specifying a formal communications protocol. Throughout the course, students apply principles that they study to existing networks within the department. Prerequisite: Computer Science CS 216.


CS-324 Principles of Operating Systems
Study of fundamental concepts of operating systems. Topics include sequential processes, concurrent processes, processor management, memory management, scheduling algorithms, and computer security. Projects include writing of a program to simulate major components of an operating system. Prerequisite: Computer Science 216. Alternate years. .


CS-327 Parallel and Distributed Processing
Introduction to techniques used to implement multiple processor problem solving. Course investigates several different environments for parallel computing including SIMD, MIMD, and computing in a distributed workstation environment. Students work with actual implementations of each of these environments and explore their advantages and design algorithms appropriate for these environments. Prerequisite: Computer Science 216. Alternate years.


CS-335 Software Engineering
Introduction to principles used to analyze and specify software systems. Course covers concepts and issues relating to initial stages of the software life cycle. Course examines formal methods for analyzing and investigating environments requiring automation, then studies languages and CASE (Computer-Aided Software Engineering) tools. Throughout the course students apply the principles that they study to situations within the campus and local communities.


CS-340 Advanced Systems Design
Formal approach to techniques of software design and development. Integral part of course is the involvement of students, working as a team, in the development of a large software project. Implementation of the software project is in ahigh-level language that supports modularity and procedural and data abstraction. Topics include formal model of structured programming, modular decomposition, information hiding, formal program specification techniques, software testing techniques, documentation, and user interfaces.


CS-341 Survey of Programming Languages
Study of fundamental concepts in the design of programming languages. Concepts include BNF grammar specification, abstract syntax trees, variables, expressions typing, scope, lexical address, procedures, data types, static/dynamic binding and environment-passing interpreters. Special emphasis is placed on the development of an interpreter using a functional programming language. Other languages are introduced to further illustrate these concepts..


CS-360 Principles of Database Systems
Study of fundamental concepts of database systems. Topics include physical organization of databases, indexing techniques, and query processing. Particular models studied include the Entity-Relationship and Relational. Class projects stress design and implementation of a database. Alternate years.


CS-371 Introduction to Artificial Intelligence
Study of modern techniques for creating software that behaves intelligently. Topics include uninformed and heuristic search, constraint satisfaction, stochastic optimization, game-tree search, propositional reasoning, probabilistic reasoning, Bayesian networks with Markov chain Monte Carlo techniques, and robotics. The class concludes with a class robotics project


CS-373 Computer Graphics
Study of methods and issues surrounding the construction of graphical images on the computer. Topics include windowing systems and user input, two-dimensional graphics packages, curve drawing techniques, modeling in three dimensions, use of lighting and shading techniques, and the process of rendering images. Student work consists both of using existing packages to create images and of implementing algorithms used in graphical systems. Alternate years. Offered 2000-01.


CS-374 Compilers
Introduction to techniques used to translate high level computer languages into machine code. Course covers current implementation techniques and relevant theory. Topics include lexical scanning, parsing, abstract syntax trees, semantic analysis, intermediate code generation, and code generation. Students complete a major project involving the compilation of a particular computer language. Alternate years.


CS-391 Selected Topics



CS-392 Selected Topics




CS-441 Student Originated Studies
Student Initiated and run course, with students having the primary responsibility for the content, readings, assignments, and conduct of the course.


CS-450 Individualized Study-Tutorial
Individualized tutorial counting toward the minimum requirements in a major or minor, graded A-F


CS-460 Individualized Study-Research
Intensive study of a selected topic in computer science or a related area. Research project is completed in collaboration with a faculty member. Prerequisites: Computer Science 216 and permission of department.


CS-463 Individualized Study-Research
Individualized research not counting in the minimum requirements in a major or minor graded S/U


CS-471 Individualized Study-Intern
Completion of a significant project in computer science within an industrial setting, government department, or research institute. Project must receive prior authorization from a faculty member and requires submission of a satisfactory written report upon completion. Prerequisites: Computer Science 216 and permission of department.


 
 
Gettysburg College 300 North Washington Street · Gettysburg, PA 17325
P: 717.337.6300