Computation Lab I (TDEC 160)
Announcements Labs Programs
Course Resources Grading
- Course Description
Introduces computation and programming through the use of a symbolic
mathematical computation system. Programming techniques and and
algorithmic problem solving are introduced in the context of the
differential calculus. Illustrates the power and limitations of
the computer in solving mathematical problems.
- Course Goals
To provide students with the skills to effectively use a symbolic
mathematical system to solve mathematical problems and to introduce
students to programming and algorithmic thinking. To reinforce
concepts from mathematics by presenting them in an algorithmic and
computational manner and to learn concepts from Computer Science in the
context of mathematical computation.
- Course Objectives
- To be able to use a symbolic mathematical system to perform
routine mathematical computations.
- To be able to use programming constructs to accomplish tasks and
to automate sequences of computations that would be laborious to do
- To be able to conceive and implement algorithms to solve problems.
- To use the computer to experiment with mathematical concepts and
to form conjectures.
- To view calculus from a computational point of view.
- This is a required freshman level course for all engineering
and computer science students.
- Should be taken concurrently with or following calculus I
(TDEC 110 or MATH 121)
- Jeremy Johnson
Office: 100 University Crossings
phone: (215) 895-2669
office hours: TR 11-12:30. Additional hours available upon
request (via email).
- Servesh Tiwari
Office: 147 Univ. Crossings (CS Student Resource Center)
office hours: M 1-3.
- Meeting Time
- W 10-12 (Univ. Crossings 150), 12-2 (Univ. Crossings 149), 2-4
(Univ. Crossings 149)
- Course Web Page and Mailing List
All students should have a copy of Maple 10 (free with Calculus
book). Instead of a text book, this course will rely on Maple
documentation and course notes/labs provided as Maple worksheets (see
class web page)
- The use of maple (interface, symbolic computation, numeric
computation, graphics, and an interactive programming
- Experimental mathematics (properties of sequences, equations, and
- Algorithmic mathematics (differentiation and equation solving)
- Elementary programming constructs (variables, loops,
- Elementary data structures (sequences, lists, sets, trees)
- Weekly labs (80%)
- Exam - (20%) - exams will be done in lab using Maple.
- Reference Books
- Charles F. van Loan, Introduction to Scientific Computing, 2nd Ed.,
Prentice Hall, 2000.
- Web Pages
Look Here for Important
This list is subject to change.
- Lab 1 on Wed. Oct. 5 and Wed. Oct. 12: Drawing lines - A
slippery slope (download Maple
worksheet - lab1.mw)
- Introduction to Maple (reviews High School algebra using
plotting and equation solving. Students will use Maple to
determine a line given two distinct points, interpolate a quadratic
through three points, and find the best line going through a collection
of points scattered about a line. Discussion will
introduce interpolation and least squares.
- Lab 2 on Wed. Oct. 19: The Quadratic Formula - Searching for your roots
(download Maple worksheet - lab2.mw)
- Reviews high school algebra using Maple (quadratic equation and
complex numbers). Students will investigate which quadratic equations
have real roots and will empirically compute the probability that a random
quadratic equation has real roots. The empirical investigation will require
students to write small Maple scripts (programming with loops and
conditionals). Beyond the introduction to programming the lab will
attempt to convey the spirit of using Maple in particular and computers in
general to perform empirical studies. Discussion will introduce polynomial
root finding and solvability of polynomial equations.
- No Lab on Wed. Oct. 26 (Lab 2 must be submitted by this day)
- Lab 3 on Wed. Nov. 2 and Nov. 9: Big Oh No - Sequences and limits
(download Maple worksheet - lab3.mw)
- Reviews the concept of limit using Maple. Utilizes sequences and
user defined functions, and introduces recursive functions. Discusses
symbolic and numeric limits. Students will investigate the Fibonacci
sequence (will discover the Fibonacci sequence solving an algorithmic
problem and will investigate various properties of the Fibonacci numbers
and programs to compute them). Discussion will introduce computing time
analysis and asymptotic growth rates.
- Lab 4 on Wed. Nov. 16: Newton's Method - Descending the curve
(download Maple worksheet - lab4.mw)
- Presents several ways of thinking about functions (Expressions,
Black Boxes, and White Boxes) and shows how to use Maple to compute
derivatives of functions using the different ways of representing
functions (Maple's diff command and numeric differentiation). Armed with
the derivative Newton's method for approximating the roots of an equation
is introduced. Students will use Newton's method to approximate sqrt(2)
to very high accuracy. Discussion introduces concept of rate of
convergence and error in numeric computation.
- Lab 5 on Wed. Nov. 30: A program to differentiate and differentiating
programs (download Maple worksheet - lab5.mw)
- Reviews properties of the derivative: linearity, product and quotient
rule, chain rule. Students will use these properties write a program to
expression, stored in a data structure called an expression tree.
Recursion provides a simple and elegant solution approach to writing such a
program. Students will also be introduced to automatic
differentiation (a program that is given a program to compute a function
and returns a program that computes the derivative of the function).
Discussion introduces the notion of programs writing programs.
This lab provides a culmination for the course and provides a framework
for summarizing the content of the first term of calculus.
- Final Maple quiz on Wed. Dec. 7.
Programs and Worksheets
Created: 7/20/05 (revised 10/25/05) by firstname.lastname@example.org