Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background::[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0em 14em;}
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0em 1em;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which use a logographic writing system and need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
.htmlarea .toolbarHA table {border:1px solid ButtonFace; margin:0em 0em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton {display: none ! important;}
#displayArea {margin: 1em 1em 0em 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler > fields syncing permalink references jump'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<!--}}}-->
To get started with this blank TiddlyWiki, you'll need to modify the following tiddlers:
* SiteTitle & SiteSubtitle: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* MainMenu: The menu (usually on the left)
* DefaultTiddlers: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These InterfaceOptions for customising TiddlyWiki are saved in your browser
Your username for signing your edits. Write it as a WikiWord (eg JoeBloggs)
<<option txtUserName>>
<<option chkSaveBackups>> SaveBackups
<<option chkAutoSave>> AutoSave
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkAnimate>> EnableAnimations
----
Also see AdvancedOptions
*Wednesday, August 22
**[[Overview]]
*Monday, August 27
**Problem Study Workshop
*Wednesday, August 29
**Egypt and Mesopotamia
*Instructor
**Dr. Michael Freeze
*Office Location
**Bear Hall 124
*Office Hours
**by appointment
*Phone
**910.795.1385
*Email
**freezem at uncw dot edu
!Texts
*//A History of Mathematics (Brief Edition)//, Victor J. Katz, 2004.
*//Math through the Ages: A Gentle History for Teachers and Others//, Berlinghoff and Gouvea, 2002.
!Course Content
We will survey the historical development mathematics from ancient Egypt and Mesopotomia to the twentieth century, including the mathematical contributions of China, India, and the Islamic world.
!Computer Use
This course will require use of Microsoft Powerpoint for oral presentations.
!Attendance
You are expected to attend class on time each day. Attendance will be recorded on a regular basis.
!Graded Assignments
A midterm exam will be given on Wednesday, September 26 and the final exam will be given on Friday, December 7, from 7:00 to 10:00p. A fifteen minute oral presentation and a term paper on an assigned topic will be required. Homework problems will be suggested and short, unannounced quizzes may also be given occasionally. There will be no make-ups for graded assignments without prior permission.
!Grading
Each of your exams will contribute 20% toward your grade and your [[Oral Presentation]] and [[Term Paper]] will each contribute 20% toward your grade. Your combined homework scores will determine the remaining 20% of your grade.
!Plus/Minus Grading
A plus or minus may be used as a possible grade modifier, for final grades only, at the end of the semester. Factors that influence the assignment of a + or - (or neither) are: performance on the final exam, consistency of performance throughout the semester, proximity to a grade borderline, class participation and effort.
!Academic Honesty
All students are expected to read and abide by the Academic Honor Code in the Student Handbook. Collaborative work is encouraged in general, but all work which is to be handed in must be written up individually. Clear instructions will be given with each assignment.
!Incompletes
A grade of I (incomplete) is given only if documented circumstances beyond the student's control (e.g., medical, legal) render the student unable to complete the course work, and only if there is a reasonable possibility of passing the course. The grade of I is not given for simply failing to meet the course requirements.
!Students with Disabilities
If you have a disability and need reasonable accommodation in this course, you should inform the instructor of this fact in writing within the first week of class or as soon as possible. If you have not already done so, you must register with the Office of Disability Services in Westside Hall (extension 3746) and obtain a copy of your Accommodation Letter. You should then meet with your instructor to make mutually agreeable arrangements based on the recommendations of the Accommodation Letter.
*Overview
*Problem Studies
*Egypt and Mesopotamia
*Greek Mathematics to the Time of Euclid
*Euclid and his Elements
*Greek Mathematics from Archimedes to Ptolemy
*Greek Mathematics from Diophantus to Hypatia
*Ancient and Medieval China
*Ancient and Medieval India
*Mathematics in Medieval Europe
*Mathematics in the Renaissance
*Precalculus in the Seventeenth Century
*Calculus in the Seventeenth Century
*Probability and Statistics in the Eighteenth Century
*Algebra and Number Theory in the Eighteenth Century
*Geometry in the Eighteenth Century
*Algebra and Number Theory in the Nineteenth Century
*Analysis in the Nineteenth Century
*Monday, December 3
**Oral Presentations
***Tatyana Carter: Map Coloring
***Bryan Clancy: Error-free Communication
***James Hart: Irrational and Transcendental Numbers
***Brevin Rock: Arrow's Theorem
*Wednesday, December 5
**Last day of classes
Please note that the following lecture outlines from Fall 2006 are under revision. Topics covered in Fall 2007 may differ.
*[[Overview (pdf)|lectures/mat346lecture0.pdf]]
*[[Problem Studies (pdf)|lectures/mat346lecture2.pdf]]
*[[Egypt and Mesopotamia (pdf)|lectures/mat346lecture3.pdf]]
*[[Greek Mathematics to the Time of Euclid (pdf)|lectures/mat346lecture4.pdf]]
*[[Euclid and his Elements (pdf)|lectures/mat346lecture4b.pdf]]
*[[Greek Mathematics from Archimedes to Ptolemy (pdf)|lectures/mat346lecture6.pdf]]
*[[Greek Mathematics from Diophantus to Hypatia (pdf)|lectures/mat346lecture7.pdf]]
*[[Ancient and Medieval China (pdf)|lectures/mat346lecture8.pdf]]
*[[Ancient and Medieval India (pdf)|lectures/mat346lecture9b.pdf]]
*[[Mathematics in Medieval Europe (pdf)|lectures/mat346lecture10.pdf]]
*[[Mathematics in the Renaissance 1 (pdf)|lectures/mat346lecture11.pdf]]
*[[Mathematics in the Renaissance 2 (pdf)|lectures/mat346lecture12.pdf]]
*[[Calculus in the Seventeenth Century (pdf)|lectures/mat346lecture14.pdf]]
*[[Algebra and Number Theory in the Eighteenth Century (pdf)|lectures/mat346lecture16.pdf]]
*[[Geometry in the Eighteenth Century (pdf)|lectures/mat346lecture17.pdf]]
*[[Algebra and Number Theory in the Nineteenth Century 1 (pdf)|lectures/mat346lecture18.pdf]]
*[[Algebra and Number Theory in the Nineteenth Century 2 (pdf)|lectures/mat346lecture19.pdf]]
*[[Analysis in the Nineteenth Century 1 (pdf)|lectures/mat346lecture21.pdf]]
*[[Analysis in the Nineteenth Century 2 (pdf)|lectures/mat346lecture22.pdf]]
[[Schedule]]
[[Lecture Notes]]
[[Problem Studies]]
[[Notable Dates]]
[[Practice Exams]]
[[Term Paper]]
[[Paper Topic List]]
[[Oral Presentation]]
[[Course Policies]]
[[Contact Information]]
<<toggleSideBar '' '' hide>>
^^TiddlyWiki <<version>>
© 2007 [[UnaMesa|http://www.unamesa.org/]]^^
//{{{
window.createTiddlerViewer_original_MathPlugin = window.createTiddlerViewer;
window.createTiddlerViewer=function(title,highlightText,highlightCaseSensitive) {
window.createTiddlerViewer_original_MathPlugin(title,highlightText,highlightCaseSensitive);
var theViewer = document.getElementById("viewer"+title);
if (theViewer) {
if (jsMath.ConvertTeX) {
jsMath.ConvertTeX(theViewer);
jsMath.ProcessBeforeShowing(theViewer);
}
if (AMprocessNode) AMprocessNode(theViewer,false);
if (drawPictures) setTimeout('drawPictures()',100);
}
}
//}}}
*Midterm Exam
**Wednesday, September 26
*Term Paper Summary Due
**Wednesday, September 26
*Term Paper Outline Due
**Wednesday, October 10
*Term Paper Draft Due
**Wednesday, November 14
*Presentation Slides Due
**Monday, November 19
*Oral Presentations
**Monday, November 26
**Wednesday, November 28
**Monday, December 3
*Term Paper Due
**Wednesday, December 5
*Final Exam
**Friday, December 7, 7:00-10:00p
*Monday, November 5
**Algebra and Number Theory in the Eighteenth Century
*Wednesday, November 7
**Algebra and Number Theory in the Nineteenth Century 1
*Monday, November 12
**Algebra and Number Theory in the Nineteenth Century 2
*Wednesday, November 14
**Analysis in the Nineteenth Century
*Monday, November 19
**Presentation Workshop: [[Oral Communication]]
*Wednesday, November 21
**Thanksgiving
*Monday, November 26
**Oral Presentations
***Jonathan Paschal: Diophantine Equations
***Starrett Pattison: The Mandelbrot Set
***Shaina Ray: Prime Number Conjectures
***Emily Smyth: The Prime Number Theorem
*Wednesday, November 28
**Oral Presentations
***Haylea Cockman: Construction of the Real Numbers
***Leah Kicinski: The Fundamental Theorem of Algebra
***Jeffrey Land: Modern Geometry
***Anthony Rousseau: The Quaternions
*Monday, October 1
**Debriefing
*Wednesday, October 3
**Presentation Workshop: [[Written Communication]]
*Monday, October 8
**Fall Vacation
*Wednesday, October 10
**Ancient and Medieval India
*Monday, October 15
**Mathematics in the Islamic World
*Wednesday, October 17
**Mathematics in Medieval Europe
*Monday, October 22
**Mathematics in the Renaissance
*Wednesday, October 24
**Mathematics in the Renaissance
*Monday, October 29
**Calculus in the Seventeenth Century
*Wednesday, October 31
**Presentation Workshop: [[Visual Communication]]
[[Oral Communication Workshop (pdf)|OralCommunication/OralCommunicationWorkshop.pdf]]
!Oral Presentation Requirements
#The presentation will be graded using the [[Oral Presentation Rubric]].
#The presentation should be planned to last at least 15 and no more than 20 minutes. You will be asked to stop after 20 minutes regardless of whether you are done or not.
#The presentation must make effective use of presentation software (e.g., Power Point).
#The presentation must include a statement and solution of a problem related to the assigned topic.
#The presentation should cite information from at least three separate sources.
#The presentation must be accompanied by the following material to be turned in to the instructor on some electronic medium (including e-mail attachments). These are due on the same day as your presentation:
##The Power Point file for your presentation.
##References for each of your citations.
##A paragraph briefly describing your topic, its historical origin and relevance.
##Five "exam" questions related to your topic. The format for these questions should be True/False, Multiple Choice, Short Answer, or Matching. Answers to the questions are to be included.
[[Oral Presentation Rubric|mat346OralPresentationRubric.pdf]]
<<slideShow>>
-s-
!History of Mathematics
Why study the history of mathematics?
-s-
!Pertinence
"It is interesting and pertinent that ... a true appreciation of a branch of mathematics is impossible without some acquaintance with the history of that branch, for mathematics is largely a study of ideas, and a genuine understanding of ideas is not possible without an analysis of origins." (Howard Eves)
"I am sure that no subject loses more than mathematics by any attempt to dissociate it from its history." (J.W.L. Glaisher)
-s-
!Organization of Study
How do we organize our study of the history of mathematics?
*Personalities
*Cultures
*Problems
*Theorems
*Issues
-s-
!Early Mathematical Periods
*Egyptian and Babylonian
**3000 BC - 260 AD
*Greek
**600 BC - 450 AD
*Chinese
**1030 BC - 1644 AD
*Hindu
**200 BC - 1250 AD
*Arabian
**650 - 1200 AD
-s-
!Late Mathematical Periods
*Dark Ages
**450 - 1120 AD
*Middle Ages
**950 - 1500 AD
*Renaissance
**1450 - 1700 AD
*Modern
**1700 AD - present
-s-
!Guidance of Study
What questions should we ask about historical sources?
*Context
**"Where does it come from?"
*Content
**"What is it about?"
*Significance
**"Why is it important?"
-s-
!Context and Content: Egyptian and Babylonian Period
*Practical problems of central government
**Agriculture
**Surveying
**Taxation
**Trade
*Training of leaders
-s-
!Context and Content: Greek Period
*Intellectual interest
**Geometry
**Astronomy
**Mechanics
-s-
!Context and Content: Chinese Period
*Empire administration
**Agriculture
**Business
**Engineering
**Surveying
-s-
!Context and Content: Hindu Period
*Arithmetic algorithms
*Numeral system
*Zero symbol
*Negative numbers
-s-
!Context and Content: Arabian Period
*Astronomy and spherical trigonometry
*Ornamentation
-s-
!Context and Content: Middle Ages
*Cathedral schools
*Trade and arithmetic
-s-
!Context and Content: Renaissance
*Commerce
**Navigation
**Banking
*Symbolism
*Kinematics
-s-
!Context and Content: Modern Period
*Representation
**number
**function
*Foundations
**Construction of real numbers
**Set theory
*Non-Euclidean Geometry
*Abstract spaces
-s-
!Issues of Significance
*Encoding of knowledge
**Short-term
**Mid-term
**Long-term
*Conceptual Framework
**Number
**Approximate versus exact
**Geometry
**Algebra
**Set
*Limits of knowledge
**Algorithm versus demonstration
**Classification and certainty
**Creation versus discovery
#Prime number conjectures and open questions: There are many fascinating open problems dealing with prime numbers, such as: (i) Goldbach's conjecture; (ii) Are there infinitely many primes of the form $n^2+1$ where $n$ is a natural number?; (iii) Is there always a prime number between $n^2$ and $(n+1)^2$? Report on at least one open problem and progress that has been made in resolving the problem.
#Public key encryption systems: What is a public key encryption system? How are they different than other methods of cryptography? Why are they important? What does RSA stand for? Why does the RSA system work?
#The Prime Number Theorem: What does the Prime Number Theorem tell us? Are mathematicians interested in other theorems that tell us about the distribution of certain types of primes? Why? Who originally proved the Prime Number Theorem? Have there been "better" proofs since?
#The Mandelbrot set: What is this famous set? How is it constructed? What are some interesting results that have been proven about this mathematical object?
#Solution of polynomial equations by radicals: Who were Galois and Abel? What were their contributions to mathematics? Why is their work considered to be the start of "modern" algebra? What does it mean to say that a polynomial equation is "solvable by radicals"? What mathematicians worked on their main problems prior to them?
#Fermat's Last Theorem: Describe the history of the theorem and attempts to prove it. You will not be able to include a complete proof of this theorem in your paper, but you should be able to include proofs of some special cases.
#The construction of the real numbers from the rational number system: We are able to construct the rational numbers from the integers as the field of quotients of the integers. So, if we start with the integers, then we know what the rational numbers are. But what are the real numbers? To construct the real numbers, you will need to use Dedekind cuts or Cauchy sequences.
#The quaternions: If we consider the complex numbers as a two dimensional space over the real numbers, is it possible to construct a three dimensional algebra over the real numbers? The quaternions were introduced by William Rowan Hamilton of Ireland in 1843. Hamilton was looking for ways of extending complex numbers (which can be viewed as points on a plane) to higher spatial dimensions. What are the quaternions? Why was the use of quaternions considered controversial in the nineteenth century? Is the use of the quaternions still controversial? What are some applications of the quaternions?
#The mathematical theory of apportionment: This could be a good project if you are interested in the history of the United States, and in particular, the history of representation methods for the House of Representatives. What are some of the famous apportionment methods that have been used? How is "fairness" defined for an apportionment method? What does it mean to say that an apportionment method is "unbiased?" Who are Balinski and Young and why is their theorem about apportionment methods important?
#Arrow's theorem: Is it possible to have an election method that satisfies a fairly modest set of "fairness criteria"? What are some of the standard election methods? This theorem is named after economist Kenneth Arrow, who proved the theorem in his Ph.D. thesis and popularized it in his 1951 book Social Choice and Individual Values. Arrow was a co-recipient of the 1972 Nobel Prize in Economics.
#Modern geometry: What are the theorems of Ceva, Menelaus, and Morley? How are they proved? Are there other surprising results that have arisen in the last 100 years or so that eluded the Greeks?
#The Fundamental Theorem of Arithmetic: What does this theorem say? Who first proved it? Can you prove it? What is the significance of this theorem in how it is used in mathematics today? Include at least two key applications of this theorem.
#The Fundamental Theorem of Algebra: What does this theorem say? Who first conjectured it? Who first proved it? What is the basic argument behind the proof? (Note: some experience with complex variables is helpful here.) How is the Fundamental Theorem of Algebra related to the work of mathematicians like Galois and Abel?
#The number $e$ is irrational (indeed transcendental): What is the history of $e$? Who was the first to prove $e$ is irrational? What is a transcendental number? Can we prove that $e$ is transcendental? Are there other famous transcendental numbers?
#Famous problems of geometry: With only a ruler and a compass, is it possible to trisect any angle? Is it possible to double the cube? Is it possible to square the circle? How was algebra used to answer these famous Greek geometric questions? What are constructible numbers and how were they used to help answer these questions? Are there methods that can be used to trisect any angle?
#The Binomial Theorem: Who first proved the Binomial Theorem? Why is it so important? What other mathematics relies heavily on the result? Is there a best proof of this theorem?
#Turan's theorem and extremal graph theory: Suppose that in a group of people, no group of $p$ are mutual friends. What is the largest number of mutual friends in the group? What arrangement of friendships between individuals in the group maximizes the number of mutual friends?
#Error-free communication: Suppose we want to transmit messages across a channel (where some symbols may be distorted) to a receiver. What is the maximum rate of transmission such that the receiver may recover the original message without errors? What methods may be used to correct communication errors?
#Euler's formula: How does one compute the area of a polygon on a geoboard? How does one classify the platonic solids?
#Map coloring: What is the smallest number of colors required to color the regions of a plane map such that regions which share a common boundary receive different colors? Who first answered the question and how did they do it?
<br /><br />''Acknowledgement:'' This topic list is an edited and expanded form of one prepared by Professor Ted Sundstrom for his "Nature of Modern Mathematics" course at Grand Valley State University.
/***
|Name|Plugin: jsMath|
|Created by|BobMcElrath|
|Email|my first name at my last name dot org|
|Location|http://bob.mcelrath.org/tiddlyjsmath.html|
|Version|1.5.1|
|Requires|[[TiddlyWiki|http://www.tiddlywiki.com]] ≥ 2.0.3, [[jsMath|http://www.math.union.edu/~dpvc/jsMath/]] ≥ 3.0|
!Description
LaTeX is the world standard for specifying, typesetting, and communicating mathematics among scientists, engineers, and mathematicians. For more information about LaTeX itself, visit the [[LaTeX Project|http://www.latex-project.org/]]. This plugin typesets math using [[jsMath|http://www.math.union.edu/~dpvc/jsMath/]], which is an implementation of the TeX math rules and typesetting in javascript, for your browser. Notice the small button in the lower right corner which opens its control panel.
!Installation
In addition to this plugin, you must also [[install jsMath|http://www.math.union.edu/~dpvc/jsMath/download/jsMath.html]] on the same server as your TiddlyWiki html file. If you're using TiddlyWiki without a web server, then the jsMath directory must be placed in the same location as the TiddlyWiki html file.
I also recommend modifying your StyleSheet use serif fonts that are slightly larger than normal, so that the math matches surrounding text, and \\small fonts are not unreadable (as in exponents and subscripts).
{{{
.viewer {
line-height: 125%;
font-family: serif;
font-size: 12pt;
}
}}}
If you had used a previous version of [[Plugin: jsMath]], it is no longer necessary to edit the main tiddlywiki.html file to add the jsMath <script> tag. [[Plugin: jsMath]] now uses ajax to load jsMath.
!History
* 11-Nov-05, version 1.0, Initial release
* 22-Jan-06, version 1.1, updated for ~TW2.0, tested with jsMath 3.1, editing tiddlywiki.html by hand is no longer necessary.
* 24-Jan-06, version 1.2, fixes for Safari, Konqueror
* 27-Jan-06, version 1.3, improved error handling, detect if ajax was already defined (used by ZiddlyWiki)
* 12-Jul-06, version 1.4, fixed problem with not finding image fonts
* 26-Feb-07, version 1.5, fixed problem with Mozilla "unterminated character class".
* 27-Feb-07, version 1.5.1, Runs compatibly with TW 2.1.0+, by Bram Chen
!Examples
|!Source|!Output|h
|{{{The variable $x$ is real.}}}|The variable $x$ is real.|
|{{{The variable \(y\) is complex.}}}|The variable \(y\) is complex.|
|{{{This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.}}}|This \[\int_a^b x = \frac{1}{2}(b^2-a^2)\] is an easy integral.|
|{{{This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.}}}|This $$\int_a^b \sin x = -(\cos b - \cos a)$$ is another easy integral.|
|{{{Block formatted equations may also use the 'equation' environment \begin{equation} \int \tan x = -\ln \cos x \end{equation} }}}|Block formatted equations may also use the 'equation' environment \begin{equation} \int \tan x = -\ln \cos x \end{equation}|
|{{{Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} }}}|Equation arrays are also supported \begin{eqnarray} a &=& b \\ c &=& d \end{eqnarray} |
|{{{I spent \$7.38 on lunch.}}}|I spent \$7.38 on lunch.|
|{{{I had to insert a backslash (\\) into my document}}}|I had to insert a backslash (\\) into my document|
!Code
***/
//{{{
// AJAX code adapted from http://timmorgan.org/mini
// This is already loaded by ziddlywiki...
if(typeof(window["ajax"]) == "undefined") {
ajax = {
x: function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}},
gets: function(url){var x=ajax.x();x.open('GET',url,false);x.send(null);return x.responseText}
}
}
// Load jsMath
jsMath = {
Setup: {inited: 1}, // don't run jsMath.Setup.Body() yet
Autoload: {root: new String(document.location).replace(/[^\/]*$/,'jsMath/')} // URL to jsMath directory, change if necessary
};
var jsMathstr;
try {
jsMathstr = ajax.gets(jsMath.Autoload.root+"jsMath.js");
} catch(e) {
alert("jsMath was not found: you must place the 'jsMath' directory in the same place as this file. "
+"The error was:\n"+e.name+": "+e.message);
throw(e); // abort eval
}
try {
window.eval(jsMathstr);
} catch(e) {
alert("jsMath failed to load. The error was:\n"+e.name + ": " + e.message + " on line " + e.lineNumber);
}
jsMath.Setup.inited=0; // allow jsMath.Setup.Body() to run again
// Define wikifers for latex
config.formatterHelpers.mathFormatHelper = function(w) {
var e = document.createElement(this.element);
e.className = this.className;
var endRegExp = new RegExp(this.terminator, "mg");
endRegExp.lastIndex = w.matchStart+w.matchLength;
var matched = endRegExp.exec(w.source);
if(matched) {
var txt = w.source.substr(w.matchStart+w.matchLength,
matched.index-w.matchStart-w.matchLength);
if(this.keepdelim) {
txt = w.source.substr(w.matchStart, matched.index+matched[0].length-w.matchStart);
}
e.appendChild(document.createTextNode(txt));
w.output.appendChild(e);
w.nextMatch = endRegExp.lastIndex;
}
}
config.formatters.push({
name: "displayMath1",
match: "\\\$\\\$",
terminator: "\\\$\\\$\\n?", // 2.0 compatability
termRegExp: "\\\$\\\$\\n?",
element: "div",
className: "math",
handler: config.formatterHelpers.mathFormatHelper
});
config.formatters.push({
name: "inlineMath1",
match: "\\\$",
terminator: "\\\$", // 2.0 compatability
termRegExp: "\\\$",
element: "span",
className: "math",
handler: config.formatterHelpers.mathFormatHelper
});
var backslashformatters = new Array(0);
backslashformatters.push({
name: "inlineMath2",
match: "\\\\\\\(",
terminator: "\\\\\\\)", // 2.0 compatability
termRegExp: "\\\\\\\)",
element: "span",
className: "math",
handler: config.formatterHelpers.mathFormatHelper
});
backslashformatters.push({
name: "displayMath2",
match: "\\\\\\\[",
terminator: "\\\\\\\]\\n?", // 2.0 compatability
termRegExp: "\\\\\\\]\\n?",
element: "div",
className: "math",
handler: config.formatterHelpers.mathFormatHelper
});
backslashformatters.push({
name: "displayMath3",
match: "\\\\begin\\{equation\\}",
terminator: "\\\\end\\{equation\\}\\n?", // 2.0 compatability
termRegExp: "\\\\end\\{equation\\}\\n?",
element: "div",
className: "math",
handler: config.formatterHelpers.mathFormatHelper
});
// These can be nested. e.g. \begin{equation} \begin{array}{ccc} \begin{array}{ccc} ...
backslashformatters.push({
name: "displayMath4",
match: "\\\\begin\\{eqnarray\\}",
terminator: "\\\\end\\{eqnarray\\}\\n?", // 2.0 compatability
termRegExp: "\\\\end\\{eqnarray\\}\\n?",
element: "div",
className: "math",
keepdelim: true,
handler: config.formatterHelpers.mathFormatHelper
});
// The escape must come between backslash formatters and regular ones.
// So any latex-like \commands must be added to the beginning of
// backslashformatters here.
backslashformatters.push({
name: "escape",
match: "\\\\.",
handler: function(w) {
w.output.appendChild(document.createTextNode(w.source.substr(w.matchStart+1,1)));
w.nextMatch = w.matchStart+2;
}
});
config.formatters=backslashformatters.concat(config.formatters);
window.wikify = function(source,output,highlightRegExp,tiddler)
{
if(source && source != "") {
if(version.major == 2 && version.minor > 0) {
var wikifier = new Wikifier(source,getParser(tiddler),highlightRegExp,tiddler);
wikifier.subWikifyUnterm(output);
} else {
var wikifier = new Wikifier(source,formatter,highlightRegExp,tiddler);
wikifier.subWikify(output,null);
}
jsMath.ProcessBeforeShowing();
}
}
//}}}
*Midterm Exam
**[[Sample Problems (pdf)|tests/mat346fall06SampleMidtermVer1.pdf]]
**[[Sample Problem Solutions (pdf)|tests/mat346MidtermSampleProblemBriefSolutions.pdf]]
*Final Exam
**[[Final Exam Study Guide (pdf)|tests/math346fall07ExamStudyGuideVer1.pdf]]
**[[Sample Problems (pdf)|tests/mat346fall06FinalExamVer2.pdf]]
**[[Sample Problem Solutions (pdf)|tests/mat346fall06_FinalExamSolutions.pdf]]
[[Problem Studies (pdf)|problemStudies/mat346fall07ProblemStudies.pdf]]
[[Problem Study Solutions (pdf)|problemStudies/mat346Fall2007_ProblemStudies_Solutions.pdf]]
/%
*Katz Chapter 1
**Exercises:
**Due:
*Katz Chapter 2
**Exercises:
**Due:
*Katz Chapter 3
**Exercises:
**Due:
*Katz Chapter 4
**Exercises:
**Due:
*Katz Chapter 5
**Exercises:
**Due:
*Katz Chapter 6
**Exercises:
**Due:
*Katz Chapter 7
**Exercises:
**Due:
*Katz Chapter 8
**Exercises:
**Due:
*Katz Chapter 9
**Exercises:
**Due:
*Katz Chapter 10
**Exercises:
**Due:
%/
<html>The tiddler 'New Tiddler' doesn't yet exist. Double-click to create it<br /><br />$x^2+x=0$<br /></html>
<<tabs Schedule
Aug "August" [[August]]
Sep "September" [[September]]
Oct "October" [[October]]
Nov "November" [[November]]
Dec "December" [[December]]
>>
<<slideShow>>
-s-
!Integration by Parts
*Recall that the product rule for differentiation states
<html>
<div class="math">
\frac{d}{dx} [ f(x)g(x) ] = f'(x)g(x) + f(x)g'(x).
</div>
</html>
*Integrating, we find that
<html>
<div class="math">
\int f(x)g'(x)dx = f(x)g(x) - \int g(x)f'(x)dx.
</div>
</html>
*Making the substitutions $u = f(x)$ and $v = g(x)$, we obtain
<html>
<div class="math">
\int u \ dv = uv - \int v \ du.
</div>
</html>
-s-
!Example
*Consider $\int x \ \sin x \ dx$.
*We must choose $u$ and $dv$ appropriately to apply the integration by parts formula.
*In this case, we may choose $u=x$ and $dv=\sin x dx$.
*Then we have
<html>
<div class="math">
\begin{eqnarray} u & = & x & \quad & dv & = & \sin x \ dx \\
du & = & dx & \quad & v & = & -\cos x \end{eqnarray}
</div>
</html>
*It follows that <html>
<div class="math">
\begin{eqnarray} \int x \sin x \ dx & = & x \cdot -\cos x - \int -\cos x \ dx \\
& = & -x \ \cos x + \int \cos x \ dx \\
& = & -x \ \cos x + \sin x + C \end{eqnarray}
</div>
</html>
-s-
!Example
*Consider $\int x^2 \cos x \ dx$.
*In this case, we may choose $u=x^2$ and $dv=\cos x \ dx$.
*We then have
<html>
<div class="math">
\begin{eqnarray} u & = & x^2 & \quad & dv & = & \cos x \ dx \\
du & = & 2x \ dx & \quad & v & = & \sin x \end{eqnarray}
</div>
</html>
*It follows that
<html>
<div class="math">
\begin{eqnarray} \int x^2 \cos x \ dx & = & x^2 \cdot \sin x - \int \sin x \cdot 2x \ dx \\
& = & x^2 \sin x - 2 \int x \sin x \ dx \\
& = & x^2 \sin x - 2 [ -x \ \cos x + \sin x ] + C \\
& = & x^2 \sin x + 2x \ \cos x - 2 \sin x + C \end{eqnarray}
</div>
</html>
-s-
!Choosing Parts
Two criteria to keep in mind as you apply integration by parts:
# $v$ should be easy to find from $dv$
# the integral $\int v \ du$ should be easier to evaluate than $\int u \ dv$.
In general, choosing $u$ according to the acronym LIATE will help to satisfy the second criterion.
-s-
!LIATE
LIATE is an acronym for
<<tiddler LIATE>>
Choose for $u$ the part of the integrand that appears first in LIATE and let $dv$ be whatever is left in the integrand.
Better to choose $u$ LIATE than never!
-s-
!Example
Consider $\int \cos^{-1} x \ dx$.
*Take $u=\cos^{-1} x$.
-s-
!Example
Consider $\int e^x \ \cos x \ dx$.
*Take $u=\cos x$.
-s-
!Example
Consider $\int x \ \ln x \ dx$.
*Take $u=\ln x$.
-s-
!Example
Consider $\displaystyle \int_{0}^{\pi/2} x \ \sin x \ dx$.
*Monday, September 3
**Labor Day
*Wednesday, September 5
**Greek Mathematics to the Time of Euclid
*Monday, September 10
**Euclid and his Elements
*Wednesday, September 12
**Greek Mathematics from Archimedes to Ptolemy
*Monday, September 17
**Greek Mathematics from Diophantus to Hypatia
*Wednesday, September 19
**Ancient and Medieval China
*Monday, September 24
**Review
*Wednesday, September 26
**Midterm
Historical Development of Mathematics, Fall 2007
<<slideShow>> - A simple slide show that keeps the TW style
<<slideShow style:'MySSStyleSheet' clock:'+'>> - A themed slide show with a clock showing the presentation elapsed time
<<slideShow repeat clock:'-20'>> - A looping slide show with a 20 minutes countdown clock
<<slideShow slidePause:1000>> - A timed slideshow that runs once
<<slideShow slidePause:1000 repeat>> - A timed looping slideshow
-s-
!The [[SlideShowPlugin]]
Press F11 to go fullscreen and adjust the font sizes with Ctrl++ Ctrl+- (or Ctrl+mousewheel).
This plugin was developed by Paulo Soares and Clint Checketts.
{{Comment{This block is not shown in the slide show.
@@Don't show me!!!@@}}}
-s-
!How slides are separated
In a tiddler, you start each slide with the markup {{{-s-}}}
-s-
Slides don't have to have titles like this poor one but can have images.
[img[photos/lisboa-0.jpg]]
-s-
!A slide with subsections and a long title
Check to TOC below to see how this slide title is abbreviated.
!!Section 1
This is a section
!!!Subsection 1.1
This is a subsection
!!!Subsection 1.2
This is another subsection
!!!!Subsubsection 1.2.1
This is a subsubsection
-s-
!Using the keyboard
The following keys are defined:
*Left arrow - previous overlay
*Down arrow - previous slide
*Right arrow - next overlay
*Up arrow - next slide
*Home - first slide
*End - last slide
*Escape - exit slide show
*Spacebar - pause/resume slide show in auto advance mode
-s-
!Slide show parameters
*The slide show can be themed by providing a ~StyleSheet ({{{<<slideShow style:'MyStyleSheet'>>}}})
*By default, there is a clock at bottom of the browser window that displays the current time. This clock can also show the presentation elapsed time with {{{<<slideShow clock:'+'>>}}} or a countdown clock with {{{<<slideShow clock:'-20'>>}}} (for 20 minutes). In these two cases, if you click on the clock display it will be restarted
*The slide show can be set to loop ({{{<<slideShow repeat>>}}})
*You can set it so each slide changes after X milliseconds ({{{<<slideShow slidePause:X>>}}}) (auto advance mode)
*Use auto start mode to begin the slideshow the moment the tiddler is opened ({{{<<slideShow autostart>>>}}})
*You can disable overlays with {{{<<slideShow noOverlays>>}}}
*These parameters can be mixed and matched in any order: {{{<<slideShow slidePause:1000 repeat>>}}} is the same as {{{<<slideShow repeat slidePause:1000>>}}}
-s-
!Overlays
To see how incremental display works use the left and right mouse buttons.
{{Overlay1{You can}}} {{Overlay2{present things}}} {{Overlay1{in an arbitrary order!!!}}}
{{Overlay3{Its a bit harder with lists but it works:}}}
<html>
<ol>
<li class="Overlay4">First item</li>
<li class="Overlay5">Second item</li>
<li class="Overlay4">Last item</li>
</ol>
</html>
{{Comment{You can hide comments on a slide that won't display in the slide show}}}
<!--{{{-->
<div id='displayArea'>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/***
|''Name:''|SlideShowPlugin|
|''Description:''|Creates a simple slide show type display|
|''Version:''|1.5.1|
|''Date:''|Nov 10, 2006|
|''Source:''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Author:''|Paulo Soares (psoares (at) math (dot) ist (dot) utl (dot) pt) and [[Clint Checketts|http://www.checkettsweb.com]]|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
<<tiddler SlideShowPluginDoc>>
!Code
***/
//{{{
config.macros.slideShow = {label: "slide show", maxTOCLength: 30};
config.macros.slideShow.messages = {gotoLabel: "Go to slide:"};
config.views.wikified.slideShow = {text: "slide show", tooltip: "Start slide show"};
config.views.wikified.slideShow.quit = {text: "end", tooltip: "Quit the slide show"};
config.views.wikified.slideShow.firstSlide = {text: "<<", tooltip: "first slide"};
config.views.wikified.slideShow.previousSlide = {text: "<", tooltip: "previous slide"};
config.views.wikified.slideShow.nextSlide = {text: ">", tooltip: "next slide"};
config.views.wikified.slideShow.lastSlide = {text: ">>", tooltip: "last slide"};
config.views.wikified.slideShow.resetClock = {text: " ", tooltip: "reset"};
config.formatters.push( {
name: "SlideSeparator",
match: "^-s-+$\\n?",
handler: function(w)
{
createTiddlyElement(w.output,"hr",null,'slideSeparator');
}
}
)
function changeStyleSheet(tiddlerName) {
if (tiddlerName == null) tiddlerName = "StyleSheet";
setStylesheet(store.getRecursiveTiddlerText("StyleSheetColors"),"StyleSheetColors");
setStylesheet(store.getRecursiveTiddlerText("StyleSheetLayout"),"StyleSheetLayout");
var theCSS = store.getRecursiveTiddlerText(tiddlerName,"");
setStylesheet(theCSS,"StyleSheet");
}
//Excellent (and versatile) reparser created by Paul Petterson for parsing the paramString in a macro
function reparse( params ) {
var re = /([^:\s]+)(?:\:((?:\d+)|(?:["'](?:[^"']+)["']))|\s|$)/g;
var ret = new Array() ;
var m ;
while( (m = re.exec( params )) != null ) ret[ m[1] ] = m[2]?m[2]:true ;
return ret ;
}
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null ) node = document;
if ( tag == null ) tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
var j=0;
for (var i = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
// 'keys' code adapted from S5 which in turn was adapted from MozPoint (http://mozpoint.mozdev.org/)
function keys(key) {
if (document.getElementById('contentWrapper').className == "slideShowMode"){
if (!key) {
key = event;
key.which = key.keyCode;
}
switch (key.which) {
case 32: // spacebar
if(time>0){
if(autoAdvance){
clearInterval(autoAdvance);
autoAdvance = null;
} else {
autoAdvance=setInterval("GoToSlide(1)", time);
}
}
break;
case 34: // page down
case 39: // rightkey
GoToSlide("n");
break;
// case 40: // downkey
GoToSlide(-1);
break;
case 33: // page up
case 37: // leftkey
GoToSlide("p");
break;
// case 38: // upkey
GoToSlide(1);
break;
case 36: // home
GoToSlide("f");
break;
case 35: // end
GoToSlide("l");
break;
case 27: // escape
endSlideShow();
break;
}
}
return false;
}
function clicker(e) {
if (!e) var e = window.event;
var target = resolveTarget(e);
//Whenever something is clicked that won't advance the slide make sure that the table of contents gets hidden
if (target.getAttribute('href') != null || isParentOrSelf(target, 'toc') || isParentOrSelf(target,'embed') || isParentOrSelf(target,'object') || isParentOrSelf(target, 'pageFooter') || isParentOrSelf(target, 'navigator')){
//Don't hide the TOC if the indexNumbers (which trigger the index) is clicked
if(isParentOrSelf(target,'indexNumbers') || isParentOrSelf(target,'jumpInput')){
return true;
}
showHideTOC('none');
return true;
}
//Advance a slide if the TOC is visible otherwise make sure that the TOC gets hidden
if ((!e.which && e.button == 1) || e.which == 1) {
if (document.getElementById('toc').style.display != 'block'){
GoToSlide("n");
} else {
showHideTOC('none');
}
}
if ((!e.which && e.button == 2) || e.which == 3) {
if (document.getElementById('toc').style.display != 'block'){
GoToSlide("p");
} else {
showHideTOC('none');
}
return false;
}
}
function isParentOrSelf(element, id) {
if (element == null || element.nodeName=='BODY') return false;
else if (element.id == id) return true;
else return isParentOrSelf(element.parentNode, id);
}
GoToSlide=function(step) {
var new_pos;
var slideHolder = document.getElementById('slideContainer');
//The parse float ensures that the attribute is returned as a number and not a string.
var cur_pos = parseFloat(slideHolder.getAttribute('currentslide'));
var numberSlides = parseFloat(slideHolder.getAttribute('numberSlides'));
switch (step) {
case "f":
new_pos=0;
break;
case "l":
new_pos=numberSlides-1;
break;
case "n":
var numberOverlays = parseFloat(slideHolder.childNodes[cur_pos].getAttribute('numberOverlays'));
var currentOverlay = parseFloat(slideHolder.getAttribute('currentOverlay'));
if(numberOverlays==0 || currentOverlay==numberOverlays){
new_pos=cur_pos+1;
} else {
var className="Overlay"+currentOverlay;
var overlay=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
for(var i=0; i<overlay.length; i++) {overlay[i].className=className+' previousOverlay';}
currentOverlay++;
slideHolder.setAttribute('currentOverlay',currentOverlay);
className="Overlay"+currentOverlay;
overlay=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
for(i=0; i<overlay.length; i++) {overlay[i].className=className+' currentOverlay';}
return false;
}
break;
case "p":
var numberOverlays = parseFloat(slideHolder.childNodes[cur_pos].getAttribute('numberOverlays'));
var currentOverlay = parseFloat(slideHolder.getAttribute('currentOverlay'));
if(numberOverlays==0 || currentOverlay==0){
new_pos=cur_pos-1;
} else {
var className="Overlay"+currentOverlay;
var overlays=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
for(var i=0; i<overlays.length; i++) {overlays[i].className=className+' nextOverlay';}
currentOverlay--;
className="Overlay"+currentOverlay;
overlays=getElementsByClass(className,slideHolder.childNodes[cur_pos]);
for(i=0; i<overlays.length; i++) {overlays[i].className=className+' currentOverlay';}
slideHolder.setAttribute('currentOverlay',currentOverlay);
return false;
}
break;
default:
new_pos=cur_pos+step;
}
if(slideShowCircularMode && new_pos == numberSlides) new_pos=0;
if(slideShowCircularMode && new_pos<0) new_pos=(numberSlides - 1);
if(step!=0 && new_pos>=0 && new_pos<numberSlides) {
slideHolder.childNodes[cur_pos].style.display='none';
slideHolder.childNodes[new_pos].style.display='block';
slideHolder.setAttribute('currentslide',new_pos);
var numberOverlays = parseFloat(slideHolder.childNodes[new_pos].getAttribute('numberOverlays'));
if(step=="p"){
var currentOverlay=numberOverlays;
var state=' previousOverlay';
} else {
var currentOverlay=0;
var state=' nextOverlay';
}
slideHolder.setAttribute('currentOverlay',currentOverlay);
if(numberOverlays>0) {
for(var i=1; i<=numberOverlays; i++){
var className="Overlay"+i;
var overlays=getElementsByClass(className,slideHolder.childNodes[new_pos]);
for(var j=0; j<overlays.length; j++) {overlays[j].className=className+state;}
}
if(step=="p"){
var className="Overlay"+numberOverlays;
var overlays=getElementsByClass(className,slideHolder.childNodes[new_pos]);
for(var j=0; j<overlays.length; j++) {overlays[j].className=className+' currentOverlay';}
}
}
new_pos++;
var indexNumbers = document.getElementById('indexNumbers');
indexNumbers.firstChild.data = new_pos+'/'+numberSlides;
if((new_pos==numberSlides) && !slideShowCircularMode && autoAdvance) clearInterval(autoAdvance);
return true;
}
return false;
}
function tocShowSlide(e) {
if (!e) var e = window.event;
var target = resolveTarget(e);
var slide = target.getAttribute('slideNumber');
var cur_pos = document.getElementById('slideContainer').getAttribute('currentslide');
var step = slide-cur_pos;
if(step!=0) GoToSlide(step);
showHideTOC('none');
return;
}
//Toggle the display of the table of contents
function showHideTOC(display){
var toc = document.getElementById('toc');
//Reset the input box
document.getElementById('jumpInput').value = "";
if (display == null || display.length == null){
if (toc.style.display == 'none' || toc.style.display == ''){
toc.style.display = 'block';
document.getElementById('jumpInput').focus();
} else {
toc.style.display = 'none';
}
} else {
toc.style.display = display;
if (display == 'block')
document.getElementById('jumpInput').focus();
}
}
function makeSignature(title,params){
var signature = title+store.getTiddler(title).modified;
if(params['style']) signature += params['style'];
if(params['repeat']) signature += "repeat";
if(params['slidePause'] > 0) signature += params['slidePause'];
if(params['autostart']) signature += "autostart";
if(params['clock']) signature += params['clock'];
if(params['noOverlays']) signature += "noOverlays";
return signature;
}
function padZero(x){
return (x>=10 || x<0 ? "" : "0")+x;
}
setClock=function(){
var actualTime = new Date();
var newTime = actualTime.getTime() - clockStartTime;
newTime = clockMultiplier*newTime+clockInterval+clockCorrection;
actualTime.setTime(newTime);
newTime = padZero(actualTime.getHours()) + ":" + padZero(actualTime.getMinutes())+ ":" + padZero(actualTime.getSeconds());
var clock = document.getElementById('slideClock');
clock.firstChild.nodeValue = newTime;
}
resetClock=function(){
var time = new Date(0);
if(clockStartTime>time){
var startTime = new Date();
clockStartTime=startTime.getTime();
}
}
var title;
var place;
var autoAdvance=null;
var autoStart=null;
var slideClock=null;
var noOverlays=false;
var time = 0;
var slideShowCircularMode;
var slideShowStyleSheet;
var slideShowParams;
var clockMultiplier;
var clockInterval;
var clockCorrection=0;
var clockStartTime;
var openTiddlers;
config.macros.slideShow.handler = function(aPlace,macroName,params,wikifier,paramString,tiddler){
if(tiddler instanceof Tiddler){
var lingo = config.views.wikified.slideShow;
var autostart = false;
if (!e) var e = window.event;
place = aPlace;
title = tiddler.title;
params = reparse(paramString);
var onclick = function(){config.macros.slideShow.onClickSlideShow(params);};
createTiddlyButton(aPlace,lingo.text,lingo.tooltip,onclick);
var slideShowHolder = document.getElementById('slideShowWrapper');
//If no show exist previously, create it
if(params['autostart']){
if(slideShowHolder != null){
var signature = slideShowHolder.getAttribute('showSignature');
if(signature.indexOf("autostart")==-1) autostart = true;
} else {autostart = true;}
if(autostart){
slideShowParams = params;
setTimeout(config.macros.slideShow.onClickSlideShow,100);
}
}
}
}
var disableFunction = function(e){return false;}
var enableFunction = function(e){}
config.macros.slideShow.onClickSlideShow = function(newParams) {
if(typeof(newParams)=="number") newParams=slideShowParams;
openTiddlers = new Array;
var viewer=document.getElementById('tiddlerDisplay');
for(var i=0; i<viewer.childNodes.length; i++){
var name = viewer.childNodes[i].getAttribute('tiddler');
openTiddlers.push(name);
}
document.oncontextmenu = disableFunction;
clockMultiplier = 1;
clockInterval = 0;
var startTime = new Date(0);
slideShowCircularMode = false;
time = 0;
slideShowStyleSheet = null;
if(newParams['style']){
slideShowStyleSheet = eval(newParams['style']);
}
if(newParams['repeat']){
slideShowCircularMode = true;
}
if(newParams['slidePause'] > 0){
time = newParams['slidePause'];
}
if(newParams['clock']){
clockCorrection=startTime.getTimezoneOffset()*60000;
startTime = new Date();
var clockType= eval(newParams['clock']);
if(clockType != '+') {
clockMultiplier = -1;
clockInterval = -clockType*60000;
}
}
clockStartTime=startTime.getTime();
if(newParams['noOverlays']){
noOverlays = true;
}
var contentWrapper = document.getElementById('contentWrapper');
if (contentWrapper.className != "slideShowMode"){
clearMessage();
//Attach the key and mouse listeners
document.onkeyup = keys;
document.onmouseup = clicker;
var slideShowHolder = document.getElementById('slideShowWrapper');
story.refreshTiddler(title,"SlideShowViewTemplate",true);
//If no show exist previously, create it
if(slideShowHolder == null){
createSlides(newParams);
//If there was once waiting in the background and it matches the one we just started, resume it
} else if (slideShowHolder.getAttribute('showSignature') == makeSignature(title,newParams)){
//Remove dblClick on edit function
var theTiddler = document.getElementById("tiddler"+title);
theTiddler.ondblclick = function() {};
// Grab the 'viewer' element and give it a signature so the show can be resumed if stopped
var tiddlerElements = theTiddler.childNodes;
var viewer;
for (var i = 0; i < tiddlerElements.length; i++){
if (tiddlerElements[i].className == "viewer") viewer = tiddlerElements[i];
}
theTiddler.insertBefore(slideShowHolder,viewer);
theTiddler.removeChild(viewer);
slideShowHolder.style.display = 'block';
document.getElementById("pageFooter").className = "pageFooterOff";
//If the show we started it totally new than the resumable one, create the new one and kill the resumable one
} else {
slideShowHolder.parentNode.removeChild(slideShowHolder);
createSlides(newParams);
}
slideClock=setInterval("setClock()", 1000);
if(time>0) autoAdvance=setInterval("GoToSlide(1)", time);
story.closeAllTiddlers(title);
toggleSlideStyles();
} else {
endSlideShow();
}
return ;
}
function endSlideShow(){
//Set aside show so it can be resumed later
var showHolder = document.getElementById('slideShowWrapper');
showHolder.style.display = 'none';
document.getElementById('contentWrapper').parentNode.appendChild(showHolder);
document.oncontextmenu = enableFunction;
if(autoAdvance) clearInterval(autoAdvance);
if(slideClock) clearInterval(slideClock);
story.refreshTiddler(title,null,true);
story.closeAllTiddlers();
toggleSlideStyles();
story.displayTiddlers(null,openTiddlers,DEFAULT_VIEW_TEMPLATE);
document.onmouseup = function(){};
}
function isInteger(s){
var i;
for (i = 0; i < s.length; i++){
// Check that current character is number.
var c = s.charAt(i);
if (((c < "0") || (c > "9"))) return false;
}
// All characters are numbers.
return true;
}
function jumpInputToSlide(e){
if (!e) {
e = window.event;
e.which = e.keyCode;
}
if(e.which==13){
var jumpInput= document.getElementById("jumpInput").value;
if(isInteger(jumpInput)){
var step=jumpInput-document.getElementById('slideContainer').getAttribute('currentslide')-1;
if (GoToSlide(step)){
showHideTOC('none');
}
}
}
return;
}
//Used to shorten the TOC fields
function abbreviateLabel(label){
var maxTOCLength = config.macros.slideShow.maxTOCLength;
if(label.length>maxTOCLength) {
var temp = new Array();
temp = label.split(' ');
label = temp[0];
for(var j=1; j<temp.length; j++){
if((label.length+temp[j].length)<=maxTOCLength){
label += " " + temp[j];
} else {
label += " ...";
break;
}
}
}
return label;
}
createSlides = function(newParams){
var lingo = config.views.wikified.slideShow;
//Remove dblClick on edit function
var theTiddler = document.getElementById("tiddler"+title);
theTiddler.ondblclick = function() {};
// Grab the 'viewer' element and give it a signature so the show can be resumed if stopped
var tiddlerElements = theTiddler.childNodes;
var viewer;
for (var i = 0; i < tiddlerElements.length; i++){
if (tiddlerElements[i].className == "viewer") viewer = tiddlerElements[i];
}
viewer.id = 'slideShowWrapper';
viewer.setAttribute("showSignature",makeSignature(title,newParams));
//Hide the text that comes before the first H1 element (I think I may put this into a cover page type thing)
while(viewer.childNodes.length > 0 && viewer.firstChild.nodeName.toUpperCase() != "HR" && viewer.firstChild.className!="slideSeparator") {
viewer.removeChild(viewer.firstChild);
}
//Cycle through the content and each time you hit an H1 begin a new slide div
var slideNumber = 0;
var slideHolder = document.createElement('DIV');
slideHolder.id = "slideContainer";
while(viewer.childNodes.length > 0){
//Create a new slide a append it to the slide holder
if (viewer.firstChild.nodeName.toUpperCase() == "HR" && viewer.firstChild.className=="slideSeparator"){
slideNumber++;
var slide = document.createElement('DIV');
slide.id = "slideNumber"+slideNumber;
slide.className = "slide";
if (slideNumber > 1) {
slideHolder.setAttribute('currentslide',0);
slide.style.display='none';
} else {
slide.style.display='block';
}
slideHolder.appendChild(slide);
viewer.removeChild(viewer.firstChild);
} else {
if(viewer.firstChild.nodeName=="SPAN" && viewer.firstChild.className=="" && viewer.firstChild.hasChildNodes()) {
var anchor=viewer.firstChild.nextSibling;
for (var ii=0;ii<viewer.firstChild.childNodes.length;ii++) {
var clone=viewer.firstChild.childNodes[ii].cloneNode(true);
viewer.insertBefore(clone,anchor);
}
viewer.removeChild(viewer.firstChild);
} else {
slide.appendChild(viewer.firstChild);
}
}
}
//Stick the slides back into the viewer
viewer.appendChild(slideHolder);
slideHolder.setAttribute('numberSlides',slideNumber);
//Create the navigation bar
var pagefooter = createTiddlyElement(viewer,"DIV","pageFooter","pageFooterOff");
var navigator = createTiddlyElement(pagefooter,"SPAN","navigator");
//Make it so that when the footer is hovered over the class will change to make it visible
pagefooter.onmouseover = function () {pagefooter.className = "pageFooterOn"};
pagefooter.onmouseout = function () {pagefooter.className = "pageFooterOff"};
//Create the control button for the navigation
var onClickQuit = function(){endSlideShow();};
createTiddlyButton(navigator,lingo.quit.text,lingo.quit.tooltip,onClickQuit);
createTiddlyButton(navigator,lingo.firstSlide.text,lingo.firstSlide.tooltip,first_slide);
createTiddlyButton(navigator,lingo.previousSlide.text,lingo.previousSlide.tooltip,previous_slide);
createTiddlyButton(navigator,lingo.nextSlide.text,lingo.nextSlide.tooltip,next_slide);
createTiddlyButton(navigator,lingo.lastSlide.text,lingo.lastSlide.tooltip,last_slide);
createTiddlyButton(navigator,lingo.resetClock.text,lingo.resetClock.tooltip,resetClock,"button","slideClock");
var indexNumbers = createTiddlyElement(pagefooter,"SPAN","indexNumbers","indexNumbers","1/"+slideNumber)
indexNumbers.onclick = showHideTOC;
var toc = createTiddlyElement(pagefooter,"UL","toc");
var ovl=1;
for (var i=0;i<slideHolder.childNodes.length;i++) {
if(!noOverlays) {
var ovl=1;
while(1){
var className="Overlay"+ovl;
var overlays=getElementsByClass(className,slideHolder.childNodes[i]);
if(overlays.length>0){
for(var j=0; j<overlays.length; j++) {overlays[j].className+=' nextOverlay';}
ovl++;
} else {break;}
}
}
slideHolder.childNodes[i].setAttribute("numberOverlays",ovl-1);
slideHolder.setAttribute("currentOverlay",0);
//Loop through each slide and check the header's content
var tocLabel = null;
for (var j=0;j<slideHolder.childNodes[i].childNodes.length;j++) {
var node = slideHolder.childNodes[i].childNodes[j];
if(node.nodeName=="H1" || node.nodeName=="H2" || node.nodeName=="H3" || node.nodeName=="H4") {
var htstring = node.innerHTML;
var stripped = htstring.replace(/(<([^>]+)>)/ig,"");
tocLabel = abbreviateLabel(stripped);
var tocLevel="tocLevel"+node.nodeName.charAt(1);
var tocItem = createTiddlyElement(toc,"LI",null,tocLevel);
var tocLink = createTiddlyElement(tocItem,"A",null,"tocItem",tocLabel);
tocLink.setAttribute("slideNumber",i);
tocLink.onclick=tocShowSlide;
}
}
}
//Input box to jump to s specific slide
var tocItem = createTiddlyElement(toc,"LI",null,"tocJumpItem",config.macros.slideShow.messages.gotoLabel);
var tocJumpInput = createTiddlyElement(tocItem,"INPUT","jumpInput");
tocJumpInput.type="text";
tocJumpInput.onkeyup=jumpInputToSlide;
}
var next_slide= function(e){GoToSlide(1);}
var first_slide= function(e){GoToSlide("f");}
var previous_slide= function(e){GoToSlide(-1);}
var last_slide= function(e){GoToSlide("l");}
function toggleSlideStyles(){
var contentWrapper = document.getElementById('contentWrapper');
if (contentWrapper.className == "slideShowMode"){
contentWrapper.className = "";
window.applyPageTemplate();
if(slideShowStyleSheet) changeStyleSheet();
} else{
contentWrapper.className = "slideShowMode";
window.applyPageTemplate("SlideShowPageTemplate");
if(slideShowStyleSheet) changeStyleSheet(slideShowStyleSheet);
}
}
setStylesheet("/***\n!Slide Mode Styles\n***/\n/*{{{*/\n#contentWrapper.slideShowMode #slideContainer{\n display: block;\n}\n\n#contentWrapper.slideShowMode .Comment{\n display: none;\n}\n\n#contentWrapper.slideShowMode .nextOverlay{\n visibility: hidden;\n}\n\n#contentWrapper.slideShowMode .currentOverlay{\n visibility: visible;\n}\n\n#contentWrapper.slideShowMode .previousOverlay{\n visibility: visible;\n}\n\n#jump{\n text-align: right;\n}\n\n.pageFooterOff #navigator{\n visibility: hidden;\n}\n\n.pageFooterOn #navigator{\n visibility: visible;\n}\n\n#contentWrapper.slideShowMode #slideClock{\n cursor: pointer; margin: 0 5px 0 5px; border: 1px solid #db4\n}\n\n#contentWrapper.slideShowMode,\n #contentWrapper.slideShowMode #displayArea{\n width: 100%;\n font-size: 1.5em;\n margin: 0 !important;\n padding: 0;\n}\n\n#slideContainer{\n display: none;\n}\n\n.indexNumbers{\n cursor: pointer;\n}\n\n#navigator{\n visibility: hidden;\n bottom: 0;\n}\n\n#toc{\n display: none;\n position: absolute;\n font-size: .75em;\n bottom: 2em;\n right: 0;\n background: #fff;\n border: 1px solid #000;\n text-align: left;\n}\n\nul#toc, #toc li{\n margin: 0;\n padding: 0;\n list-style: none;\n line-height: 1em;\n}\n\n.tocJumpItem{\n margin-right: 2em;\n}\n\n.tocJumpItem input{\nmargin-right: 1em;\n border: 0;\n}\n\n#toc a,\n#toc a.button{\n display: block;\n padding: .1em;\n}\n\n#toc .tocLevel1{\nfont-size: .8em;\n}\n\n#toc .tocLevel2{\n margin-left: 1em;\n font-size: .75em;\n}\n\n#toc .tocLevel3{\n margin-left: 2em;\nfont-size: .75em;\n}\n\n#toc .tocLevel4{\n margin-left: 3em;\nfont-size: .65em;\n}\n\n#toc a{\n cursor: pointer;\n}\n\nh1{\n min-height: 1em;\n}\n\n.slide h1{\n min-height: 0;\n}\n\n/* The '>' selector is ignored by IE6 and earlier so the proper rules are given */\n#pageFooter{\n position: fixed;\n bottom: 2px;\n right: 2px;\n width: 100%;\n text-align: right;\n}\n\n/* This is a hack to trick IE6 and earlier to put the navbar on the bottom of the page */\n* html #pageFooter {\n position: absolute;\n width: 100%;\n text-align: right;\n right: auto; bottom: auto;\n left: expression( ( -20 - pageFooter.offsetWidth + ( document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth ) + ( ignoreMe2 = document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) ) + 'px' );\n top: expression( ( -10 - pageFooter.offsetHeight + ( document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) ) + 'px' );\n}\n\n\n\n/*}}}*/","slideShowStyles");
//}}}
!Description
This plugin turns a TiddlyWiki tiddler into a simple slide show type display. Most features that are usually found in presentation software are available. It should work in a way that does not interfere with TiddlyWiki. When you close the slide show you get back to your good old TW.
This plugin has been tested in Firefox and Internet Explorer. Let me know if something seems broken.
!Usage
To use this plugin you //must// be using TiddlyWiki 2.0. Some optional features (as the incremental display) require version 2.0.8 or higher. To install the plugin copy the tiddlers SlideShowPlugin, SlideShowPageTemplate and SlideShowViewTemplate to your TW, label the first one with the //systemConfig// tag, save the TW and refresh the browser.
To make a slide show simply drop {{{<<slideShow>>}}} at the beginning of a tiddler and use {{{--s--}}} to start each slide.
If you move your mouse over the bottom of the browser window you will see a few navigation buttons, a clock and a table of contents that shows up when you click the slide number.
Any block of text marked as {{{{{Comment{For my eyes only!}}}}}} will not be displayed in the slide show.
See these and other features in this [[SlideShowExample]].
!Incremental display
A succession of overlays (or layers) can be defined in each slide by marking blocks of text with {{{{{Overlay1{...some text...}}}}}}, {{{{{Overlay2{...some text...}}}}}}, {{{{{Overlay3{...some text...}}}}}}, ...
To costumize the way overlays are shown you can redefine the following CSS classes
*contentWrapper.slideShowMode .previousOverlay
*contentWrapper.slideShowMode .currentOverlay
*contentWrapper.slideShowMode .nextOverlay
in a ~StyleSheet. The default style simply hides the next overlays and shows the current and the previous ones as normal text.
!Slide show parameters
*The slide show can be themed by providing a ~StyleSheet ({{{<<slideShow style:'MyStyleSheet'>>}}})
*By default, there is a clock at bottom of the browser window that displays the current time. This clock can also show the presentation elapsed time with {{{<<slideShow clock:'+'>>}}} or a countdown clock with {{{<<slideShow clock:'-20'>>}}} (for 20 minutes). In these two cases, if you click on the clock display it will be restarted
*The slide show can be set to loop ({{{<<slideShow repeat>>}}})
*You can set it so each slide changes after X milliseconds ({{{<<slideShow slidePause:X>>}}}) (auto advance mode)
*Use auto start mode to begin the slideshow the moment the tiddler is opened ({{{<<slideShow autostart>>>}}})
*You can disable overlays with {{{<<slideShow noOverlays>>}}}
*These parameters can be mixed and matched in any order: {{{<<slideShow slidePause:1000 repeat>>}}} is the same as {{{<<slideShow repeat slidePause:1000>>}}}
!Slide show navigation
You can navigate through a slide show using the keyboard or the mouse. To quickly move to titled sections you can use the table of contents.
!!Mouse navigation
Left (right) clicking on a slide jumps to the next (previous) overlay. To move to the beginning of the next or previous slide you must use the navigation bar at the bottom of the browser's window. If there are no overlays defined both operations are equivalent.
!!Keyboard navigation
The following keys are defined:
*Left arrow - previous overlay
*Down arrow - previous slide
*Right arrow - next overlay
*Up arrow - next slide
*Home - first slide
*End - last slide
*Escape - exit slide show
*Spacebar - pause/resume slide show in auto advance mode
!Revision history
*1.5.1 10/11/2006
**added SlideShowPageTemplate and SlideShowViewTemplate. This way, the plugin no longer requires a standard TW layout. Thanks to Andrew Lister for the idea.
*1.5.0 18/09/2006
**fixed restoring stylesheet on exit
**changed (again!) the way how slides are separated (slide shows prepared for previous versions must be fixed)
*1.4.0 20/04/2006
**changed the way how slides are separated (slide shows prepared for previous versions must be fixed)
**now works with content included with the {{{<<tiddler>>}}} macro
**added incremental display (overlays)
**improved documentation
**assorted small fixes
*1.3.1 10/03/2006
**removed empty slide titles
**fixed wrong numberSlides when slides have div's
**fixed wrong time in Windows
*1.3.0 26/02/2006
**restore open tiddlers on exit
**fixed problem with markup in headers (should work with NestedSlidersPlugin)
**added slide comments (blocks of text in the tiddler that don't show up in the presentation)
*1.2.1 28/01/2006
**pause timed slideshow with spacebar
**added clock with 3 different modes
**fixed bugs with style and abbreviation options
**general cleanup
*1.2.0 07/01/2006
**added a resume feature
**added themes support
*1.1.5 14/12/2005
**added mouse support
**cleaned up navbar generation
*1.1.0 12/12/2005
**added support for IE
**added key listeners
*1.0.0 11/12/2005
**initial release
!Todo
*Time code is still very hackerish and unreliable.
<!--{{{-->
<div class='title' macro='view title' style='font-size: 1em;'></div>
<div class='viewer' macro='view text wikified'></div>
<!--}}}-->
!Term Paper Timeline
*By September 26, turn in a typed summary of the historical context of your chosen subject, problem or issue. This should essentially be the introduction of your paper and should be 1 to 2 pages long. Include all references used, and cite them appropriately in your writing.
*By October 10, turn in a typed outline of your entire paper, including plans for solution of a related problem and the anticipated conclusion.
*By November 14, turn in a typed, double-spaced rough draft of your final paper, which should be 6 to 8 pages long.
*By December 5, turn in your final draft.
!Term Paper Requirements
#The term paper will be graded using the [[Term Paper Rubric]].
#The paper should be 6 to 8 pages in length (typed, double-spaced, with 1 in. margins and 12 point font).
#The paper topic may be chosen from the provided [[Paper Topic List]] or may be chosen in consultation with the instructor.
#The paper is to focus on a subject, problem or issue that spans more than one generation of mathematicians.
#The paper should include all of the following: statement of problem or issue, description of historical origin of the topic, explanation of relevance of the topic, and solution of a related problem.
#The paper should have good structure, correct spelling and grammar, correct mathematical terminology and notation, and proper quoting/paraphrasing practices.
#The paper should be written so that it can be understood by your peers in the class. In particular, your paper should exhibit clear exposition and correct mathematical reasoning.
#The paper should cite a trustworthy internet source, a periodical article, and at least one book other than our textbooks.
[[Term Paper Rubric|mat346TermPaperRubric.pdf]]
/***
|Name|ToggleSideBarMacro|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#ToggleSideBarMacro|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.
!Demo
<<toggleSideBar "Toggle Sidebar">>
!Usage:
{{{<<toggleSideBar>>}}} <<toggleSideBar>>
additional options:
{{{<<toggleSideBar label tooltip show/hide>>}}} where:
label = custom label for the button,
tooltip = custom tooltip for the button,
show/hide = use one or the other, determines whether the sidebar is shown at first or not.
(default is to show the sidebar)
You can add it to your tiddler toolbar, your MainMenu, or where you like really.
If you are using a horizontal MainMenu and want the button to be right aligned, put the following in your StyleSheet:
{{{ .HideSideBarButton {float:right;} }}}
!History
*23-07-06: version 1.0: completely rewritten, now works with custom stylesheets too, and easier to customize start behaviour.
*20-07-06: version 0.11
*27-04-06: version 0.1: working.
!Code
***/
//{{{
config.macros.toggleSideBar={};
config.macros.toggleSideBar.settings={
styleHide : "#sidebar { display: none;}\n"+"#contentWrapper #displayArea { margin-right: 1em;}\n"+"",
styleShow : " ",
arrow1: "«",
arrow2: "»"
};
config.macros.toggleSideBar.handler=function (place,macroName,params,wikifier,paramString,tiddler)
{
var tooltip= params[1]||'toggle sidebar';
var mode = (params[2] && params[2]=="hide")? "hide":"show";
var arrow = (mode == "hide")? this.settings.arrow1:this.settings.arrow2;
var label= (params[0]&¶ms[0]!='.')?params[0]+" "+arrow:arrow;
var theBtn = createTiddlyButton(place,label,tooltip,this.onToggleSideBar,"button HideSideBarButton");
if (mode == "hide")
{
(document.getElementById("sidebar")).setAttribute("toggle","hide");
setStylesheet(this.settings.styleHide,"ToggleSideBarStyles");
}
};
config.macros.toggleSideBar.onToggleSideBar = function(){
var sidebar = document.getElementById("sidebar");
var settings = config.macros.toggleSideBar.settings;
if (sidebar.getAttribute("toggle")=='hide')
{
setStylesheet(settings.styleShow,"ToggleSideBarStyles");
sidebar.setAttribute("toggle","show");
this.firstChild.data= (this.firstChild.data).replace(settings.arrow1,settings.arrow2);
}
else
{
setStylesheet(settings.styleHide,"ToggleSideBarStyles");
sidebar.setAttribute("toggle","hide");
this.firstChild.data= (this.firstChild.data).replace(settings.arrow2,settings.arrow1);
}
return false;
}
setStylesheet(".HideSideBarButton .button {font-weight:bold; padding: 0 5px;}\n","ToggleSideBarButtonStyles");
//}}}
Tamara Kolda's [[How to Give a Talk: Advice on Preparing and Presenting Technical Talks in the Mathematical Sciences (ppt)|VisualCommunication/Kolda-HowToGiveaTalk-July2007.ppt]]
Michael Alley's [[Assertion-Evidence Design of Presentation Slides (ppt)|VisualCommunication/Alley-slide_template.ppt]] and [[Exercises (pdf)|VisualCommunication/Alley-exercises.pdf]]
David Messerschmitt's [[How to Give a Bad Talk|http://www.eecs.berkeley.edu/~messer/Bad_talk.html]]
/%
Mike Seppala's Single Variable Calculus Slides: [[Fundamental Theorem of Calculus|VisualCommunication/Seppala-FundamentalTheoremOfCalculus.pdf]] and [[Improper Integrals|VisualCommunication/Seppala-ComputeImproperIntegrals.pdf]]
%/
*[[Written Communication Workshop (pdf)|lectures/writingWorkshop.pdf]]
*[[Writing Mathematics|lectures/WritingMathematics.pdf]]