Difference between revisions of "CSC220 Schedule 2010"

From dftwiki3
Jump to: navigation, search
(Weekly Schedule)
(Weekly Schedule)
 
(101 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
----
 
----
 
__TOC__
 
__TOC__
 +
 +
=<font color="Magenta">Main Project</font>=
 +
 +
* [http://cs.smith.edu/classwiki/index.php/CSC220_Page_(2010) Main Page] for the Project
  
 
=Weekly Schedule=
 
=Weekly Schedule=
Line 145: Line 149:
 
* [[CSC220 Database Management Systems | Notes on DBMS]]
 
* [[CSC220 Database Management Systems | Notes on DBMS]]
 
----
 
----
*  [[CSC220 Homework 4 2010| Homework #4]] <-- due Thursday Oct 14th
+
*  [[CSC220 Homework 4 2010| Homework #4]] and  [[CSC220 Homework 4 solutions 2010|Solutions]]
 
||  
 
||  
 
* [http://php.net/manual/en/function.htmlspecialchars.php Php htmlspecialchars() function]
 
* [http://php.net/manual/en/function.htmlspecialchars.php Php htmlspecialchars() function]
Line 167: Line 171:
 
----
 
----
 
* [[CSC220_Lab_5_MySQL | Lab 5]] on MySQL
 
* [[CSC220_Lab_5_MySQL | Lab 5]] on MySQL
* [[CSC220 Homework 5 2010 | Homework 5]] <--- due 10/23/10
+
* [[CSC220 Homework 5 2010 | Homework 5]] and [[CSC220 Homework 5 Solution 2010 | Solutions]]
 
||  
 
||  
 
* [http://club-d.org/ebooks/MySQL/MySQL%20Tutorial.pdf  MySQL Tutorial]: an e-book with some good information.  Check it out.  
 
* [http://club-d.org/ebooks/MySQL/MySQL%20Tutorial.pdf  MySQL Tutorial]: an e-book with some good information.  Check it out.  
Line 185: Line 189:
 
* Views
 
* Views
 
* Indexes
 
* Indexes
* <font color="magenta">'''Lab 6'''</font>
 
 
* Feedback on Homework #4
 
* Feedback on Homework #4
 
<br />
 
<br />
 
<tanbox>
 
<tanbox>
;Thursday -- Take-home Midterm Exam
+
;Thursday -- Take-home Midterm Exam, available [[CSC220 Midterm 2010 | here]]!
 
</tanbox>
 
</tanbox>
  
 
----
 
----
* [[CSC220 Lab 6 MySQL -- 2010 | Lab 6]]
+
*
 
||  
 
||  
 
*  [http://www.faqs.org/docs/ppbook/x1428.htm Anatomy of a SQL query]
 
*  [http://www.faqs.org/docs/ppbook/x1428.htm Anatomy of a SQL query]
* [http://dev.mysql.com/doc/refman/5.0/en/join.html Joining tables]
+
* Joins
* [http://dev.mysql.com/doc/refman/5.0/en/create-index.html Creating an '''Index''']
+
** [http://dev.mysql.com/doc/refman/5.0/en/join.html Joining tables]
* [http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html How MySQL uses '''Indexes''']
+
* Indexes
* [http://dev.mysql.com/doc/refman/5.0/en/create-view.html '''Creating''' a ''View''] and [http://dev.mysql.com/doc/refman/5.0/en/views.html '''Using''' a ''View'']
+
** [http://dev.mysql.com/doc/refman/5.0/en/create-index.html Creating an '''Index''']
 +
** [http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html How MySQL uses '''Indexes''']
 +
** [http://www.bluerwhite.org/btree/ B-Trees] (used for indexes)
 +
* Views
 +
** [http://dev.mysql.com/doc/refman/5.0/en/create-view.html '''Creating''' a ''View'']
 +
** [http://dev.mysql.com/doc/refman/5.0/en/views.html '''Using''' a ''View'']
  
 
|- style="background:#eeeeff" valign="top"
 
|- style="background:#eeeeff" valign="top"
 
| Week 8 <br /> 10/25  
 
| Week 8 <br /> 10/25  
 
||
 
||
*  
+
; Monday 10/25
 +
* A word about the Solution for [[CSC220 Homework 5 Solution 2010 | Homework 5]]
 +
* Indexes
 +
** [http://en.wikipedia.org/wiki/B-tree B-Trees]
 +
** PRIMARY INDEX
 +
** INDEX
 +
** UNIQUE
 +
** FULL TEXT
 +
* <font color="magenta">'''Lab 6'''</font>
 +
; Wednesday 10/27
 +
* Php + MySql
 +
** [http://php.net/manual/en/function.mysql-connect.php mysql_connect()]
 +
** [http://us3.php.net/manual/en/function.mysql-select-db.php mysql_select_db()]
 +
** [http://us3.php.net/manual/en/function.mysql-query.php mysql_query()]
 +
** [http://us3.php.net/manual/en/function.mysql-fetch-array.php mysql_fetch_array()]
 +
** [http://us3.php.net/manual/en/function.mysql-close.php mysql_close()]
 +
* [[CSC220 mysqlSkel.php | mysqlSkel.php]] A simple php program that interacts with a mysql database. ''Warning: this program is not robust!''
 +
* [[CSC220 formSkel.php | formSkel.php]] A self-reloading form that interacts with a mysql database.  ''Warning: this code is not robust!''
 +
* <font color="magenta">''' Lab 7'''</font>
 
----
 
----
*  
+
* [[CSC220 Lab 6 MySQL -- 2010 | Lab 6]]
 +
* [[CSC220 Lab 7 MySQL -- 2010 | Lab 7]]
 +
* [[CSC220 Homework 6 2010 | Homework 6]] and a [[CSC220 Homework 6 Solution 2010 | Solution Programs]]
  
 
||  
 
||  
Line 214: Line 242:
 
| Week 9 <br /> 11/01  
 
| Week 9 <br /> 11/01  
 
||
 
||
*  
+
[[Image:SQLInjection_XKCD.png |200px|right]]
 +
;Monday 11/01
 +
* Mysql Injection Examples http://unixwiz.net/techtips/sql-injection.html
 +
* [[CSC220 Preventing SQL Injections in Php | mysql_real_escape_string]] to the rescue!
 +
* <font color="magenta">'''Final Project: Discussion'''</font>
 +
[[Image:CSC220ProjectDiagram2.jpg | right|150px]]
 +
* Uploading/Downloading text files
 +
** [[CSC220_uploadFile_Form_and_Php_Code#UploadFile0.htm | uploadFile0.htm]]: the form
 +
** [[CSC220_uploadFile_Form_and_Php_Code#UploadFile1.php | uploadFile1.php ]]: the php that processes the form
 +
<!--
 +
** [[CSC220 downloadFile0 php | downloadFile0.php]]: a program display simple html and calling upon downloadFile1.php
 +
** [[CSC220 downloadFile1.php | downloadFile1.php]]: a php program dumping the contents of the saved text file.
 +
** [[CSC220 UploadImages.php | uploadImages.php]]: example program
 +
** [http://www.tizag.com/phpT/phpsessions.php Php Sessions] ($_SESSION array)
 +
-->
 +
 
 +
;Wednesday 11/03
 +
* GPS demo by Jon Caris
 +
 
 
----
 
----
*
+
* [[CSC220 Homework 7 2010| Homework 7]] and [[CSC220 Homework 7 Solutions | a solution]]
  
 
||  
 
||  
Line 224: Line 270:
 
| Week 10 <br /> 11/08
 
| Week 10 <br /> 11/08
 
||
 
||
*
+
; Monday 11/08
 +
* Presentation on GIS file formats by Jon Caris.  Main reference is [http://smithgisclasses.pbworks.com/w/page/32286115/CSC220 here]
 +
* File uploads:
 +
** [[CSC220 uploadFile1.htm| uploadFile1.htm]] and [[CSC220_uploadFile1.htm#FileUpload1.php | uploadFile1.php]]
 +
** [[CSC220 uploadFile2.htm| uploadFile2.htm]] and [[CSC220_uploadFile2.htm#FileUpload2.php | uploadFile2.php]]
 +
** [[CSC220 uploadFile3.htm| uploadFile3.htm]] and [[CSC220_uploadFile3.htm#FileUpload3.php | uploadFile3.php]]
 +
** [http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html  Blobs]: storage for binary data
 +
 
 +
 
 +
; Wednesday 11/10
 +
:[[Image:FlightPatternsInProcessing.jpg|right|300px|link=http://www.aaronkoblin.com/work/flightpatterns/]]
 +
* Presentation on '''Processing''' and data visualization by '''Eitan Mendelowitz'''
 +
** [[CSC220 Processing Sketch Examples | Eitan's sketches]]
 +
* Some examples with potential usefulness for our project:
 +
** [http://processing.org/learning/topics/pattern.html patterns...]
 +
** [http://processing.org/learning/topics/follow3.html follow...]
 +
** [http://processing.org/learning/topics/pulses.html pulses...]
 +
** [http://processing.org/learning/topics/animator.html animator...]
 +
** [http://processing.org/learning/topics/puff.html puff...]
 +
** [http://processing.org/learning/topics/reflection2.html reflection...]
 +
* [[CSC220 Processing and Web Access Examples | Web Access from a Processing Sketch]]
 +
----
 +
* Additional Information from Jon:
 +
** Jon's wiki: http://smithgisclasses.pbworks.com/w/page/32286115/CSC220
 +
** Example of GoogleMap Animations
 +
*** GPX to Google Maps animation (very, very cool!) : http://www.chrislacy.net/map/current/index.html
 +
*** uTrack- online GPX track report generator (very cool):  http://utrack.crempa.net/
 +
*** Mike Williams - Google Maps API Tutorial: http://econym.org.uk/gmap/example_cartrip.htm
 +
*** London Tube (looks promising) Website: http://traintimes.org.uk:81/map/tube/?from=map;to=tube
 +
*** Code at github: https://github.com/dracos/underground-live-map
 +
*** Christchurch Earthquake Map: http://www.christchurchquakemap.co.nz/
 
----
 
----
*
+
* [[CSC220 Homework 8 2010 | Homework 8]] <--- due 11/19
  
 +
||
 +
* [http://processing.org/ Processing.org]: the main reference and point of entry!
  
||
 
*
 
 
    
 
    
 
|- valign="top"
 
|- valign="top"
 
| Week 11 <br /> 11/15  
 
| Week 11 <br /> 11/15  
 
||
 
||
*
+
; Monday 11/15
 +
* Food for thought:
 +
<br />
 +
<center><videoflash type="vimeo">14200191</videoflash></center>
 +
<br />
 +
Visualization of Wikileaks '''in Processing''' by Mike Dewar.  Mike says ''This is a visualisation of activity in Afghanistan from 2004 to 2009 based on the Wikileaks data set. Here we’re thinking of activity as the number of events logged in a small region of the map over a 1 month window. These events consist of all the different types of activity going on in Afghanistan. <br /><br />The intensity of the heatmap represents the number of events logged. The colour range is from 0 to 60+ events over a one month window. We cap the colour range at 60 events so that low intensity activity involving just a handful of events can be seen – in lots of cases there are many more than 60 events in one particular region. The heatmap is constructed for every day in the period from 2004-2009, and the movie runs at 10 days per second.''
 +
 
 +
* Storing uploaded files on server: in database or in subdirectories?
 +
** Random subdirectories, [http://en.wikipedia.org/wiki/MD5 md5] hashing, in general, and with [http://php.net/manual/en/function.md5.php md5].
 +
* [http://php.net/manual/en/reserved.variables.session.php Php $_SESSION], and [http://www.tizag.com/phpT/phpsessions.php Php examples]
 +
* [[CSC220 Cookie Example | Cookie Example]] and [http://maven.smith.edu/~220a/cookie.php link]
 +
* [http://www.cafeaulait.org/course/week5/16.html Passing parameters to applets]
 +
* [[CSC220 Project Time Diagram | Snapshots from Today's Class]]
 +
; Wednesday 11/17
 +
* '''Team work + contract'''
 +
# Name of individual team partners (does your team have a name?)
 +
# Description of the tasks you want to work on for the final project
 +
# Your plan of attack:
 +
## Where are you starting from?
 +
## What do you want to have accomplished by the time of the presentation on the last day of class?
 +
## What do you want to have accomplished by the last day of exams, which is when the project is due?
 +
## What is missing for you to accomplish your goal(s)?
 +
## Do you have all the data?  Part of the data?
 +
## Do you have all the programs?  Some of the programs?  Is there anybody else in class who is generating something you need?  Which team is it?
 +
## How do you plan on addressing Items 5 and 6?
 +
# If your plan of attack fails for some reason, is there an easy way to change direction?
 +
 
 +
* More food for thought (from http://www.digitalurban.org/2010/11/swinglet-cam-diy-drone-aerial.html)
 +
<videoflash>B-xVy2E1sT4</videoflash>
 +
 
 
----
 
----
*
+
* No homework this week; Work on your project!
  
 
||  
 
||  
*
+
* [http://php.net/manual/en/function.setcookie.php  setcookie()] function
 +
* [http://www.tizag.com/phpT/phpcookies.php Tutorial] on cookies
  
 
|- style="background:#eeeeff" valign="top"
 
|- style="background:#eeeeff" valign="top"
 
| Week 12 <br /> 11/22  
 
| Week 12 <br /> 11/22  
 
||
 
||
*
+
;  Monday 11/22
* Wednesday: '''Thanksgiving Break'''
+
* <font color="magenta">'''Lab 8'''</font> on mail redirection
* Friday: '''Thanksgiving Break'''
+
* <font color="magenta">'''Lab 9'''</font> on backing up mysql databases
 +
; Wednesday 11/24
 +
<tanbox>
 +
<!--[[Image:DancingTurkey.gif | 150px| right]]-->
 +
[[Image:TurkeyCarcass.jpg | 200px | right]]
 +
<center>'''Thanksgiving<br />Break'''</center>
 +
</tanbox>
 
----
 
----
*
+
* No homework this week; Work on your project!
 +
*  [[CSC220 Lab 8: Redirecting Email to Database | Lab 8]]
 +
* [[CSC220 Lab 9: Automatic MySql Database Backup | Lab 9]]
 
||  
 
||  
 
*
 
*
Line 257: Line 371:
 
| Week 13 <br /> 11/29  
 
| Week 13 <br /> 11/29  
 
||
 
||
*
+
; Monday 11/29
 +
* [http://cs.smith.edu/~thiebaut/classes/220/CppCrashCourse_220_2010.pdf  C++ Crash Course].  There are no solutions to the labs/exercises in the presentation: you have to work them out on your own to learn C++!!!
 +
; Wednesday 12/1
 +
* Group work on project ([http://www.facebook.com/album.php?aid=259348&id=264041891883 photos])
 +
<br />
 +
[[Image:CSC220Board_1_1201.jpg |200px]]
 +
[[Image:CSC220Board_2_1201.jpg|200px]] <br />
 +
<br />
 +
[[Image:CSC220Board_3_1201.jpg|200px]]
 +
[[Image:CSC220Board_4_1201.jpg|200px]]
 +
<br />
 +
* Food for thought:
 +
<videoflash>4cEQZreQ2zQ</videoflash>
 +
<br />
 +
* New development for processing: processing/javascript: program in Processing, save as a javascript library.  No java involved!
 +
<center>[[Image:ProcessingJS_org.png|300px|link=http://processingjs.org/]]<br />http://processingjs.org/</center>
 +
 
 +
----
 +
* No homework this week; Work on your project!
 
||
 
||
*
+
* [http://cplusplus.com/doc/tutorial/ C++ Tutorial]: Very good coverage of C++!
  
 
|- style="background:#eeeeff" valign="top"
 
|- style="background:#eeeeff" valign="top"
 
| Week 14 <br /> 12/06  
 
| Week 14 <br /> 12/06  
 
||
 
||
*  
+
; Monday 12/06
 +
* [[CSC220 C++Qt Crash Course | C++ Crash Course: GUI Programming with Qt]]
 +
; Wednesday 12/08
 +
* [http://cs.smith.edu/classwiki/index.php/CSC220_Assignments_2010 Assignments from last meeting on 12/1]
 +
* Group work
 +
* Board Capture:
 +
[[Image:CSC220ProjectPresPrepa1.jpg|140px]]
 +
[[Image:CSC220ProjectPresPrepa2.jpg|140px]] 
 +
[[Image:CSC220ProjectPresPrepa3.jpg|140px]]
 +
<br />
 +
[[Image:CSC220ProjectPresPrepa4.jpg|140px]]
 +
[[Image:CSC220ProjectPresPrepa5.jpg|140px]]
 +
[[Image:CSC220ProjectPresPrepa6.jpg|140px]]
 
----
 
----
*
+
* No homework this week; Work on your project!
 
||  
 
||  
 
*
 
*
Line 274: Line 418:
 
| Week 15 <br /> 12/13  
 
| Week 15 <br /> 12/13  
 
||
 
||
* '''Monday''': '''Last Class'''
+
; '''Monday''' -- '''Project Presentation'''
 +
<center>
 +
[[Image:ProjectPresentation1.gif]]
 +
</center>
 +
;Food for thought
 +
* Below, Facebook friendship graph, from http://chartporn.org/2010/12/14/facebook-friends/
 +
<center>[[Image:FacebookFriendships.png|450px]]</center>
 +
 
 
----
 
----
*
+
* [[CSC220 Final Assignment 2010 | Final Assignment]] regarding project with details of submission.
 
||  
 
||  
 
*
 
*
Line 304: Line 455:
  
 
* [http://radar.oreilly.com/2010/09/the-state-of-mapping-apis-five.html The State of Mapping APIs], Adam DuVander, [http://radar.oreilly.com/ O'Reilly Radar], 7 Sept. 2010.
 
* [http://radar.oreilly.com/2010/09/the-state-of-mapping-apis-five.html The State of Mapping APIs], Adam DuVander, [http://radar.oreilly.com/ O'Reilly Radar], 7 Sept. 2010.
 +
 +
* [http://blog.ask4itsolutions.com/2009/03/18/install-uninstall-google-earth-on-fedora10/ Directions for installing Google Earth] under Fedora.
  
 
==Tips &amp; Tricks==
 
==Tips &amp; Tricks==
Line 310: Line 463:
 
=List of Programs=
 
=List of Programs=
 
   
 
   
*
+
* [[:Category:Php| Php]] programs
 
+
* [[:Category:MySql |MySql]] programs
=Miscellaneous Information=
+
* [[:Category:Bash | Bash ]] programs
 
+
* [[:Category:Processing |Processing]] programs
* [[Image:amsterdam.png|10px|right]]
 
 
 
  
  
Line 331: Line 482:
  
 
<br />
 
<br />
[[Category:CSC220]]
+
[[Category:CSC220]][[Category:Processing]][[Category:Php]][[Category:MySql]][[Category:Bash]]

Latest revision as of 15:38, 14 December 2010

Back to Main Page


Main Project

Weekly Schedule

Week Topics Reading
Week 1
9/08
Wednesday 9/08
  • Introduction and syllabus
  • Overview of the project
  • What we'll use this semester
  • Sources of information
  • Linux shells
    • what is a shell (see wikipedia)?
    • different choices: Bourne shell, C shell, Z shell, Korn shell, Bash (Bourne Again) shell
  • The Bash shell
    • default shell for Mac, GNU operation system, and many Linux variants
    • has been ported to MS-DOS
    • configuration files: .bash_profile, .bashrc
    • important commands:
      • ls
      • rm
      • cat
      • cd
      • pwd
      • grep, -i, -l, -v, -A, -B
      • wc
      • chmod
      • chown
      • head & tail
      • tail -f
      • history
      • watch

  •  
Week 2
9/13
LearningTheBashShell.gif
Mon 9/13
  • Lab 1: playing with bash
  • pipes and redirection, stdout, stderr
    • sort
Wed 9/15

Week 3
9/20
Monday 9/20
Wednesday 9/22
  • phpinfo() test
  • using Php as interpreter (on hadoop110)
  • Arrays in php: sample programs
  • Lab 3

Week 4
9/27
Monday 9/27

  • Lab #4 on Forms
  • Mini assignment for Wed 9/29: create an organizational chart for the project. What needs to happen? What tools will be needed? How/where is the data stored? How is the data observed?
  • Homework #3 and Solution programs
Week 5
10/04
Monday 10/04
  • Project overview. See pictures here.
  • Below, a video created by Jon for the class. Thanks Jon!

Wednesday 10/06



Week 6
10/11
Monday

Fall Break

Wednesday
Lab 5
Food for thought...


Week 7
10/18
Monday 10/18
MysqlLogo.png
Wednesday
  • Difference between joins (inner and outer)
  • Views
  • Indexes
  • Feedback on Homework #4


Thursday -- Take-home Midterm Exam, available here!

Week 8
10/25
Monday 10/25
  • A word about the Solution for Homework 5
  • Indexes
    • B-Trees
    • PRIMARY INDEX
    • INDEX
    • UNIQUE
    • FULL TEXT
  • Lab 6
Wednesday 10/27

Week 9
11/01
SQLInjection XKCD.png
Monday 11/01
CSC220ProjectDiagram2.jpg
Wednesday 11/03
  • GPS demo by Jon Caris

Week 10
11/08
Monday 11/08


Wednesday 11/10
FlightPatternsInProcessing.jpg



Week 11
11/15
Monday 11/15
  • Food for thought:



Visualization of Wikileaks in Processing by Mike Dewar. Mike says This is a visualisation of activity in Afghanistan from 2004 to 2009 based on the Wikileaks data set. Here we’re thinking of activity as the number of events logged in a small region of the map over a 1 month window. These events consist of all the different types of activity going on in Afghanistan.

The intensity of the heatmap represents the number of events logged. The colour range is from 0 to 60+ events over a one month window. We cap the colour range at 60 events so that low intensity activity involving just a handful of events can be seen – in lots of cases there are many more than 60 events in one particular region. The heatmap is constructed for every day in the period from 2004-2009, and the movie runs at 10 days per second.

Wednesday 11/17
  • Team work + contract
  1. Name of individual team partners (does your team have a name?)
  2. Description of the tasks you want to work on for the final project
  3. Your plan of attack:
    1. Where are you starting from?
    2. What do you want to have accomplished by the time of the presentation on the last day of class?
    3. What do you want to have accomplished by the last day of exams, which is when the project is due?
    4. What is missing for you to accomplish your goal(s)?
    5. Do you have all the data? Part of the data?
    6. Do you have all the programs? Some of the programs? Is there anybody else in class who is generating something you need? Which team is it?
    7. How do you plan on addressing Items 5 and 6?
  4. If your plan of attack fails for some reason, is there an easy way to change direction?


  • No homework this week; Work on your project!
Week 12
11/22
Monday 11/22
  • Lab 8 on mail redirection
  • Lab 9 on backing up mysql databases
Wednesday 11/24
TurkeyCarcass.jpg
Thanksgiving
Break


Week 13
11/29
Monday 11/29
  • C++ Crash Course. There are no solutions to the labs/exercises in the presentation: you have to work them out on your own to learn C++!!!
Wednesday 12/1
  • Group work on project (photos)


CSC220Board 1 1201.jpg CSC220Board 2 1201.jpg

CSC220Board 3 1201.jpg CSC220Board 4 1201.jpg

  • Food for thought:


  • New development for processing: processing/javascript: program in Processing, save as a javascript library. No java involved!
ProcessingJS org.png
http://processingjs.org/

  • No homework this week; Work on your project!
Week 14
12/06
Monday 12/06
Wednesday 12/08

CSC220ProjectPresPrepa1.jpg CSC220ProjectPresPrepa2.jpg CSC220ProjectPresPrepa3.jpg
CSC220ProjectPresPrepa4.jpg CSC220ProjectPresPrepa5.jpg CSC220ProjectPresPrepa6.jpg


  • No homework this week; Work on your project!


Week 15
12/13
Monday -- Project Presentation

ProjectPresentation1.gif

Food for thought
FacebookFriendships.png



Links and Resources

Bash Shell

Linux Utilities

MySQL

Maps/GIS

Tips & Tricks

List of Programs












(c) D. Thiebaut 2010, Dept. Computer Science, Smith College.