# Computer Science

The Department of Mathematics and Computer Science has as its goals:

- To give all students who take mathematics courses a sense of the nature of mathematics and its place in society;
- To give our majors and minors an understanding of mathematics and computer science, their nature and uses; to prepare students to become effective users of mathematics and computer science in their careers;
- To prepare future high school teachers of mathematics;
- To give our students interested in continuing to graduate study in mathematics, statistics, or computer science an adequate preparation to succeed in that study.

## Advanced Placement

- A student who gets a 4 or 5 on the computer science AP exam receives credit for CSC-111 Intro to Programming after taking another course beyond 111 and getting a grade of B- or better.

## Computer Science Major

No major is offered.

## Requirements for the Computer Science Minor

The requirements for a minor in computer science are five courses in computer science and a corequisite of one course in mathematics. The computer science courses must include

Code | Title | Credits |
---|---|---|

Core Requirements | ||

CSC-111 | Intro to Programming | 1 |

CSC-121 | Intro to Add. Program Language | 0.5 |

CSC-211 | Intro Data Structures | 1 |

CSC greater than CSC-211 | 1 | |

CSC Elective | 1.5 | |

Total Credits | 5 |

Code | Title | Credits |
---|---|---|

Collateral Requirement | ||

MAT-108 | Intro to Discrete Structures | 1 |

or MAT-219 | Combinatorics |

Potential computer science minors should consult with one of the department members who teaches computer science and should read the brochure “How to Minor in Mathematics and Computer Science at Wabash College.” Computer Science minors should take CSC-111 Intro to Programming by the fall of the junior year.

## Computer Science (CSC)

**CSC-101 Intro to Computer Science**

An introduction to the field of computer science as the study of algorithmic process. Students will study the history of the field as well as issues currently confronting the computer science community including ethical issues raised by a rapidly changing technology. Students will learn fundamental concepts of computer science such as computer architecture, data representation, and the issues of computability. Students will engage in hands-on algorithm-building activities and some basic programming exercises. This course is offered in the fall semester. Distribution in Natural Science and Mathematics or Quantitative Skills.** Prerequisites:** none**Credit: **1

** Distribution:** Natural Science/Mathematics, Quantitative Skills** Equated Courses:** APCR

**CSC-111 Intro to Programming**

An introduction to programming in a higher-level, general-purpose language (currently Java). Programming topics include primitive data types, simple data types such as arrays, program constructs such as conditionals, loops and procedures, in an object-oriented context. Applications are chosen from areas such as graphics, simulation, and file processing. This course is offered in the fall semester. Distribution in Natural Science and Mathematics or Quantitative skills. (Note: CSC 111 does not count as a laboratory science.)** Prerequisites:** CSC-101**Credit: **1

** Distribution:** Natural Science/Mathematics, Quantitative Skills

**CSC-112 Advanced Programming**

A variety of topics that are important in developing large-scale software. Object oriented programming in a language such as C++. Dynamic data structures such as lists, queues, and stacks. An introduction to a rigorous analysis of the efficiency of an algorithm. Advanced algorithms such as Quicksort, mergesort, and the use of hash tables. An introduction to using the Unix operating system and Unix tools for software development such as Make. This course is offered is not typically.** Prerequisites:** CSC-111**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-121 Intro to Add. Program Language**

An introduction to one or more additional programming languages. Students will build on their previous knowledge of a programming language to learn one or more additional languages. Languages vary by semester but may include any programming paradigm. For a given semester the course content and other particulars will be announced before registration for that semester. This course may be taken multiple times, for credit for each different language.** Prerequisites:** CSC-111 with a grade of C- or better.**Credits: **0.5

** Distribution:** Natural Science/Mathematics

**CSC-171 Special Topics in Comp. Sci.**

This course is designed for the treatment of material outside the regular offerings of the department. For a given semester, the course content and other particulars will be announced before registration for that semester. This course is offered irregularly.** Prerequisites:** none**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-187 Independent Study**

Enrollment through Instructor and Department Chair approval.** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-188 Independent Study**

Enrollment through Instructor and Department Chair approval.** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-211 Intro Data Structures**

An introduction to more advanced abstract data types such as lists; sets; trees, including balanced trees; and graphs. Algorithms for traversing, searching, determining connectivity, and so forth. An in-depth study of, and analysis of, the algorithms used to implement these structures. This course is offered in the spring semester.** Prerequisites:** Prereq CSC-111 with a grade of C- or better.**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-271 Special Topics in Comp.Sci.**

This course is designed for the treatment of material outside the regular offerings of the department. For a given semester, the course content and other particulars will be announced before registration for that semester. This course is offered irregularly. Refer to the Course Descriptions document on the Registrar's webpage for Topics and Descriptions of current offerings.** Prerequisites:** CSC-111 or permission of the instructor.**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-287 Independent Study**

Enrollment through Instructor and Department Chair approval.** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-288 Independent Study**

** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-311 Intro Machine Organ**

A study of the various layers at which a machine can be studied, including higher-level languages, assembly language, machine language, and digital circuits. Data representation. A comparison of RISC and CISC architectures. Some programming in a representative assembly language. Issues of cross-language programming. This course is offered irregularly.** Prerequisites:** CSC-211**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-321 Programming Lang**

A study of the paradigms of programming languages, including procedural languages such as Pascal or 'C', object-oriented languages such as C++ or Smalltalk, functional languages such as ML or Scheme, logic-oriented languages such as Prolog, and concurrency such as in Ada. Consideration of how concepts are implemented, such as modules, parameter passing, function evaluation, data types and type checking, memory management, exception handling, and threads. This course is offered irregularly.** Prerequisites:** CSC-121**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-331 Analysis Algorithms**

Advanced topics and problems in analyzing algorithms. Algorithms involving structures such as sequences, sets, and graphs, and topics such as geometric and numeric algorithms. An introduction to the question of P=NP and NP-Complete problems. Parallel algorithms. This course is offered irregularly.** Prerequisites:** CSC-211 and MAT-108 or 219**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-337 Intro. Numerical Analysis**

Advanced-This course will address topics such as numerical solution of non-linear equations in one variable, interpolation, approximation, differentiation, integration, difference equations, differential equations and their applications, boundary value problems, linear systems, matrices, and optimization. This course is offered in the fall semester of even-numbered years.** Prerequisites:** CSC-111 and MAT-223**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-338 Topics Computational Math**

Advanced. A course to develop mathematical and computational techniques in areas of mathematics or interdisciplinary study in which computation plays a central and essential role. Topics vary by semester but may include computational geometry, computer algebra, scientific computing, and symbolic computation. This course is offered in the fall semesters of odd-numbered years.** Prerequisites:** CSC-111 and MAT-112**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-341 Automata,Computability**

An introduction to theoretical computer science. Finite state machines and regular expressions. Context-free languages and push-down automata. Turing machines, effective computability, and the Halting Problem. This course is offered irregularly.** Prerequisites:** CSC-111 and MAT 108 or 219**Credit: **1

** Distribution:** Natural Science/Mathematics

**CSC-387 Independent Study**

Directed study on special topics for qualified students. May be repeated for credit.** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-388 Independent Study**

Directed study on special topics for qualified students. May be repeated for credit.** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-487 Independent Study**

** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-488 Independent Study**

** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics

**CSC-IND Independent Study**

Students may enroll in independent study courses for 0.5 or 1 course credit(s), with the approval of a supervising faculty member, the appropriate department/program chair, and the student's advisor. Registration forms for independent study are available in the Registrar's Office.** Prerequisites:** none**Credits: **0.5-1

** Distribution:** Natural Science/Mathematics