CS
130Foundations of Rigorous Thinking |
Prerequisites:
Permision of instructor |
Description:
- A
successful understanding of many scientific subjects requires
the ability to reason about mathematical objects. This is a course
which develops rigorous thinking skills: the ability to formally
reason about abstract objects.The traditional way of achieving
this goal is to teach the fundamental foundations of mathematics:
logic and sets.
- A
familiar example from high school is Euclidean geometry, in which
the properties of planar figures (formed by straightedge and compass)
are deduced by formal proofs.The objects encountered (such as
triangles and circles), are types of set abstractions that are
built upon the more fundamental objects of point and line.The
line-by-line proofs used to reason in this system are built upon
the axioms of geometry and logical rules of deduction.
- This
course could serve students in many ways.In addition to providing
non-science students with the tools to take regular computer science
courses, it could also serve as a "transition" between
calculus and higher mathematics for a potential mathematics student,
or might be useful for the increasing number of students interested
in cognitive science, neuro-science, psychology, and the philosophy
of mind. With enough student interest, it could lead into a more
advanced course in mathematical logic or set theory.
- One
of the unique features of the course will be the use of the cooperative
learning paradigm, where students are split into groups of 3 to
4 to solve problems in a supervised fashion during class (typically
the last third of an extended period) and present their results.
Because of this discussion-oriented approach, the course will
have the flavor of a 'Q' seminar. A combined laboratory component
is also a possibility.
|
Course
Materials:
|
Computer
Science Courses
Courses
listed in Brown are
offered at Bryn Mawr College only, those in RED are
offered at Haverford College only, those in BLACK are
offered at both colleges. See current course catalog for offering schedules.
Introductory
Courses
CS100 The
World of Computing
CS110 Introduction
to Computer Science
CS130 Foundations
of Rigorous Thinking
CS205 Introduction
to Computer Science
CS206 Data
Structures
CS231 Discrete
Mathematics
Core
Courses
CS240 Principles
of Computer Organization
CS245 Principles of
Programming Languages
CS330 Algorithms:
Design & Practice
CS340 Analysis
of Algorithms
CS345 Theory of Computation
200-Level
Electives
CS212 Computer
Graphics
CS222 Introduction
to Scientific Computing
CS235 Information
and Coding Theory
CS246 Programming
Paradigms
CS250 Computational
Models in the Sciences
Systems
Courses
CS350 Compiler
Design
CS355 Operating
Systems
Upper-level
Electives
CS320
Numerical Analysis
CS361 Emergence
CS371 Cognitive
Science
CS372 Artificial
Intelligence
CS376 Androids:
Design & Practice
CS380 Recent Advances
in Computer Science
CS393 Advanced
Topics in Computer Systems
CS394 Advanced
Topics in Discrete Mathematics
CS450 Computing
Across the Sciences