CS 107: Computing for Math and Science
Fall, 2010

Syllabus

Overview

This course is designed to introduce the student to computers, programming, and some of the key ideas on which the field of computer science is based. The primary vehicle for doing so is the computer language MATLAB. The use of a program like MAPLE to manipulate symbolic equations is also covered.

Course Goals

The primary educational goals of this course are:

Who SHOULD take this course?

This course is designed for students who are majoring in math or in one of the sciences, and who do not plan to take further courses in the Computer Science Department. It is accepted by the Math Department in place of CS 111.

Who should NOT take this course?

This class does not count towards a Computer Science major or minor, and does not take the place of CS 111 as a prerequisite for other CS courses. Therefore it should NOT be taken by

Who else might want to take this course?

This course may also be appropriate if you are uncertain about a Computer Science major or minor and want to get some taste of the field before deciding. Some students find college-level Computer Science very, very hard. The only way to find out if you are in this group is to try taking a class. CS 107 is designed so that even people in this group can pass this class (albeit with some hard work). Therefore, taking CS 107 is a good way to find out whether you have the interest and talent to take more CS courses. The down side is that, as noted above, CS 107 does not satisfy any of the CS major or minor requirements.

Prerequisite

Before you take this course you must have passed one semester of calculus (one of Math 135 or 151 or 153 or 191 or the equivalent at another school) with a C or better. You should also be familiar with computer concepts like folders, menus, and mouse clicking.

Textbooks

Required:

Introduction to Scientific Computation and Programming
Daniel T Kaplan
Brooks/Cole
ISBN 978-0534389130

You may find this useful:

The Maple Book
Frank Garvan
Chapman & Hall/CRC
ISBN 978-1584882329

Asessment

Grades will be based on homework, in-lecture quizzes (1/2 hour, roughly every other week) a midterm exam, and a final exam. Tentative weights are:
Homework     20%
Quizzes      20%
Midterm      30%
Final        30%

Tentative Schedule of Topics and Readings

Note that this schedule is tentative.

Lecture Topic Reading
1 instructions, languages & computations Kaplan Ch. 1
2 State, variables, and assignment Kaplan Ch. 2
3 text, text operations, scripts, functions Kaplan Ch 3.1, 3.2, 6.1, 6.2
4 Text and indexing, means-ends Kaplan Ch 4.1
5 Booleans and ifs Kaplan Ch 3.4, 3.5, 7.1, 7.2
6 loops Kaplan 8.1-8.8
7 loops
8 loops
9 loops
10 review
Exam
11 Matrices Kaplan 4.2
12 functions as args and values Kaplan 6.4, 6.5
13 scope, recursion Kaplan 12.1 - 12.4
14 recursion
15 review
16 real number representation, error Kaplan 15
17 solving f(x)=0 Kaplan 16.1, 16.2
18 optimization kaplan 16.3, 16.4
19 fitting, interpolation, quantization Kaplan 16.5, 16.6
20 matlab solvers, functions of >1 variable Kaplan 17.1 - 17.5
21 Maple Garvan 1 - 5.6
22 Maple
23 review
24 review