Fall 2008 LPT730 Weekly Schedule

From CDOT Wiki
Jump to: navigation, search

Weekly schedule remarks

  • This schedule is tentative and is subject to change
  • The instructional portion of the course will consist of 10 weekly sessions
  • A "Session", unless announced otherwise, starts on Thursday starting with a lecture followed by a lab on Tuesday for this course

General rules about LPT730 labs

  • All labs are due on Wednesdays 11:59 p.m. at the end of their respective sessions
  • Please make an effort to complete labs on time - habitual lateness will mean mark reductions
  • Make sure to reference your work - anything that you did not know and had to find out, even if not quoted directly must be referenced
  • A research article with less than two references will generally not be accepted
  • Each research article/topic entry should be at least 350 words in length
  • Email your professor with the blog URL (if applicable) once posted
  • These rules apply to all labs unless noted otherwise

Meet and Greet (Sept 2)

  • If possible, come and introduce yourself in person

Lab #0

  • Open a blog account if you do not have one
  • Create a blog section devoted to the LPT730 course
  • In the first blog entry tell about yourself
    • Education and/or professional background
    • Your interests in computers (other than playing games)
    • Hobbies away from computers
    • Anything else you wish to share with the world
  • In another entry write an article about two desktop software applications that you use often.
    • Your choices do not have to be Linux-based or open source, but please make an effort to show us something unusual - MS Office, Firefox etc. are not the best choices
    • What do you use it for and why
    • Highlight strengths and weaknesses of the software
    • For each of your choices provide at least one screenshot

Note: this lab is not graded, however mandatory. This lab is exempted from the length and referencing requirements unless something is copied or quoted directly.

Session 01 (Sept 4 - Sept 10) - Course Introduction, Software Licensing


  • Course Introduction
  • Software Licensing Modes
  • Open Source Licensing
  • Fedora Linux
    • General Overview
    • GNOME Desktop

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_01.odp

Lab #1

  • Research and blog about the following topics:
    • Topic 1: Software Patents - good or bad?
    • Topic 2: Proposed Federal Bill C-61 and its potential impact on open source software


Open Source%40Seneca Planet List
Fedora Project: http://fedoraproject.org/
Open Source Initiative: http://opensource.org/
GNU OS: http://www.gnu.org/
Happy Birthday GNU by Stephen Fry: http://www.gnu.org/fry/happy-birthday-to-gnu.html
Open Source As Alternative: http://www.osalt.com
CNN on Software Patents: http://www.cnn.com
Wikipedia article on Software Patents
List of software patents

  • Some interesting and funny links...
The free software song:
Some interviews, conferences, etc... about free software...
(About Richard Stallman...)

Session 02 (Sept 11 - Sept 17) - Electronic Communication


  • Package Management
  • Software Integrity
  • Electronic Communication
  • Electronic Communication Security
  • Public Key Encryption
  • Communication Protocols
  • Electronic Mail
  • Secure E-Mail
  • IRC
  • Instant Messaging
  • VOIP
  • Software Covered
    • rpm
    • yum
    • PackageKit/pkcon
    • md5sum
    • Evolution
    • Mozilla Thunderbird
    • Alpine
    • gpg2
    • Chatzilla
    • XChat
    • Irssi
    • Pidgin
    • Ekiga
    • Twinkle

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_02.odp

Lab #2

Complete the following using Thunderbird with the Enigmail add-on.

  1. Using gpg2 create an OpenPGP key pair for yourself. Make sure to create a proper and secure backup of your keys.
  2. Configure your email client for OpenPGP support.
  3. Post your public key in ASCII format on your blog. Also, upload your key to a keyserver (pool.sks-keyservers.net).
  4. Send a PGP-signed message to your LPT730 professor.
  5. Assuming that you completed all above steps correctly, you will receive a digitally signed and encrypted reply.
  6. Reply with an encrypted and signed message, making sure to quote the conversation in-line.

Optional work: Obtain public keys from your classmates, install them in your email client and start communicating using secure email.


Thawte Inc. Personal Email Certificates: http://www.thawte.com/secure-email/personal-email-certificates/index.html
Enigmail Project: http://enigmail.mozdev.org/home/index.php
IRC Tutorial
IRSSI Tutorial
Leet: http://en.wikipedia.org/wiki/Leet
Ekiga Behind a NAT Router: http://wiki.ekiga.org/index.php/Ekiga_behind_a_NAT_router

Session 03 (Sept 18 - Sept 24) - Browsers, WWW Downloaders


  • Browser Overview
  • File System Browsers
  • The HTTP Protocol
  • Web Browsers
  • Plug-ins and Add-ons
  • Privacy and Security
  • XML Feeds
  • Text-Only Browsers
  • WWW Downloaders

Software Covered

  • Mozilla Firefox
  • Konqueror
  • Epiphany
  • Opera
  • Lynx/Elinks
  • wget
  • httrack
  • Downloader

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_03.odp

Lab #3

Research and blog about the following topics:

  • Phishing - what is it and what tools do we have to defend ourselves?
  • Robot Exclusion Standard - what is it, weaknesses, example robot.txt configurations.

Try to make your posts at least 350 words each, properly referencing your sources. Provide examples whenever possible. There is no need to title the post with the course code or lab number - simply title them according to the topic.



Session 04 (Sept 25 - Oct 1) - Productivity Tools


  • Productivity Software Overview
  • OpenOffice and KOffice
  • Other free alternatives
  • Desktop Publishing
  • Specialized Editors
  • Linux Man Pages
  • Project Management Software
  • Financial Software
  • Revision Control

Software Covered:

  • OpenOffice
  • KOffice
  • AbiWord
  • Ted
  • Scribus
  • LyX
  • gLabels
  • ManEdit
  • dia
  • vi
  • Screem
  • OpenProj
  • TaskJuggler
  • jGnash
  • GnuCash
  • RCS
  • man
  • apropos

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_04.odp

Lab #4

Part A
1. Using freely accessible sources obtain historical prices for a major stock index (for example TSX - http://ca.finance.yahoo.com/q?s=^GSPTSE). Download the last 30 days as a csv file to your local computer.

2. Using OpenOffice Calc, use the downloaded data to generate two charts - one showing a daily open/high/low/close breakdown using a candlestick (or similar) approach and one showing daily volume using bars.

Please make sure that your charts are scaled properly, so they are easy to understand with labelled axis. Once completed, submit your spreadsheet via email to your professor.

Part B
Using tools of your choice, create a man page for the vicky game on matrix. Submit the file via email for grading.



Session 05 (Oct 2 - Oct 15) - XHTML and CSS


  • XHTML Fundamentals
  • The W3C Validator
  • Cascading Style Sheets
  • XHTML Editors
  • Automated HTML Generation Software
  • Content Management Software

Software Covered:

  • vi
  • Bluefish
  • Jalbum
  • tidy

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_05.odp

Lab #5

Using Linux editors, create an HTML pages on one of the following topics:

  • Your hobby
  • Your pet
  • An issue or cause you are passionate about
  • A memorable trip you have taken
  • A book you recently read

Your page must fulfil the following requirements:

  • It must validate as XHTML Strict
  • It must use CSS
  • It must have at least two paragraphs
  • It must include at least one picture and one hyperlink to a related Internet resource

Submit the completed page and its support files via email as a single zip/tar file by the due date. Make sure that the page renders correctly after uncompressing.


W3C Markup Validator: http://validator.w3.org/
XHTML 1.0 Strict Template: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/XHTMLTemplate.html
W3Schools HTML Tutorial: http://www.w3schools.com/HTML/

Session 06 (Oct 16 - October 29) - Web Forms, JavaScript and DOM


  • Web Forms
  • Client-Side Scripting using JavaScript
  • Document Object Model
  • JavaScript Tools for Linux

Software Covered

  • Aptana Studio
  • Firebug
  • Venkman JavaScript Debugger
  • Firefox DOM Inspector

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_06.odp
Class example: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/lpt.html

Lab #6

Using HTML, CSS and JavaScript create a unit conversion calculator. Your calculator will convert between the metric and imperial (British) systems in both directions and must be capable of handling at least two measure units. Additionally, your calculator page will have a dynamically-maintained log, recording each conversion for a given session. Please make sure that your page uses valid XHTML markup according to the W3C Validator.

Attempt to use some of the software tools introduced in class to complete this lab. Feel free to blog about your experience with them, regardless whether you are new to programming, or if you have experience with some other IDE software.

This lab can be completed individually or in teams of two students.

Assignment #1

Using XHTML, CSS, JavaScript and appropriate Linux tools, create a game of Blackjack. Although the implementation is largely up to you, your assignment needs to follow the guidelines below:

  • Your game should keep a score - give the player a credit at the beginning, where a portion will be wagered with each game. Winning a game should increase the score of the player.
  • Support one player only, playing against the dealer (computer)
  • Your game should reflect reality - cards should appear in a random fashion, each card can appear only once in a deck etc.
  • Your game must use card images. You can create your own, or use a deck created by someone else. Free images are available at: http://www.brushes.obsidiandawn.com/sets/playing-cards.htm
  • Attempt to make the game visually-appealing - use colours and lines/boxes at the very least.

This assignment is to be completed in a team of two students, it is worth 10% of your course grade and is due on November 5 at 11:59 p.m. Submit your completed work via email and feel free to blog about this assignment and post it for other to see.

An example to get you started is available: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/example.html


Aptana Studio: http://www.aptana.com/
W3Schools JavaScript Tutorial: http://www.w3schools.com/js/default.asp

FSOSS and Study Week (Oct 20 - Oct 24)

Assignment 1 Work (Oct 28)

Midterm Test - Part 1 (Oct 30)

Games (Nov 4)

Session 07 (Nov 6 - Nov 12) - Finding and Moving Files


  • Path Environment Variable
  • File System Searching
  • Copying Files Over Network
  • SFTP
  • Secure Backups
  • Internet File Searching
  • Peer-To-Peer Protocols
  • Peer-To-Peer File Sharing

Software Covered

  • find
  • locate
  • scp
  • sftp
  • gFTP
  • transmission
  • ktorrent
  • vuze
  • amule

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_07.odp

Lab #7

Part 1: Post a blog entry comparing peer-to-peer distribution using .torrent files and magnet links. Explain advantages and disadvantages of each approach.

Part 2: Create a BASH shell script called backup. This script will backup all files in user's home directory that were created or changed within the current day as a single compressed tar file in a ~/.backup/ directory. Each backup file name will be the current date. If a backup file exists already it will be overwritten without prompting.

Lab Submission: Submit the lab via email - include a URL to your blog entry and attach the shell script.



Session 08 (Nov 13 - Nov 19 ) - Graphics Software


  • Image File Formats
  • Digital Camera and Scanner Support
  • Image Editing
  • Image Conversion
  • Image Library Management
  • Dynamic Image Generation

Software Covered

  • Exiv2
  • Jhead
  • Exempi
  • Gphoto2
  • Xsane
  • gscan2pdf
  • GIMP
  • Inkscape
  • Skencil
  • ImageMagick
  • Hugin
  • Metapixel
  • Gifsicle
  • Blender
  • F-Spot
  • digiKam
  • GNUPlot

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_08.odp

Lab #8

Using Linux tools, create a mosaic portrait of yourself. Use a self-taken photo as a base and a set of tile images of your choice to complete the mosaic. Send the completed portrait for grading purposes to your teacher. The mark will not be based on artistic merit - the mosaic should be detailed enough so you are recognizable. For best results, use a high-resolution photo of your face only and have a tile library of at least 50 pictures, with varying colours and brightness. Do not forget to reference your sources if you use images not taken by yourself for tiles. Post your portrait on your blog if you like.

Tile libraries are available on-line - you might want to check out http://www.mazaika.com/mazdownload.html

Assignment #2

Your assignment objective is to use Linux tools to edit and convert/transcode DV footage in Quicktime format to OGG and MPEG2/4 formats.The footage is available on the Ireland server in /home/michal/mozilla/ directory.

There are 13 files in total, all recorded during the Mozilla Developer Days at Seneca earlier this semester. The following is the list of files, including their approximate size.

Day 1 - 1000 am_Rm. 1014 (8 GB) - SC
Day 1 - 100 pm_Rm. 1014 (8GB) - SC
Day 1 - 1044 am_Rm. 1014 (10GB) - TC
Day 1 - 1130 am_Rm. 1014 (5 GB) - TC
Day 1 - 144 pm_Rm. 1014 (12 GB) - PC
Day 1 - 155pm_Web Track (5 GB) - VJ
Day 1 - 300 pm_Rm. 1014 (10 GB) - VJ
Day 1 - 345pm_Multimedia (10 GB) - KL
Day 2 - 100 pm_Tel. Rm. 1009 (10 GB) - GM
Day 2 - 1030 am_Tel. Rm. 1009 (7 GB) - MP
Day 2 - 1115 am_Tel. Rm. 1009 (6 GB) - MP
Day 2 - 200 pm_Tel. Rm. 1009 (2 GB) - MV
Day 2 - 930 am_Tel. Rm. 1009 (10 GB) - MV

The initials at the end of each file name above, indicate the student that is in charge of converting a particular file. Please note that students that have only one file assigned will need to complete an additional conversion.

Please review each file assigned to you and perform any necessary editing to get rid of unnecessary footage at the beginning and the end of the clip. Also adjust brightness if necessary and clean up the audio.

Each file needs to be transcoded to the following formats:

  • OGG Best Quality (native size)
  • OGG Broadband Quality (564 Kbps)
  • OGG Low Quality (128 Kbps)
  • MPEG-4 AVI Medium Quality (564 Kbps)

Students with a single file assigned, must also provide the following:

  • H.264 in 3G Mobile Quality

Other students may complete this transcode optionally.
(Nes: I recommand to have around or less than 480x320 resolution, lower than video 1.5kbps and Audio 128kps, please see the link below for iPhone detail)
Apple iPhone/iPod Video Spec

For best result, please use a dual-pass conversion (if available). Also, please note that the disk space on Ireland is limited so you will need to use another system to complete your work. Please do not make copies of the original footage on the Ireland server

In addition to the conversion you are required to post a blog documenting the entire process including a list of used software and screen shots of your work.

This assignment is worth 10% of your course grade and is due on December 5 at 11:59 p.m. Please post your blog and send a submission email to your teacher by the due date. Converted files are to be copied to the /home/michal/upload/ directory on the Ireland server. Please use the following naming convention for your files:

If the original file name was: "Original_file"...
The maximum-quality OGG file name should be: "Original_file_max.ogg",
The broadband-quality OGG file name should be: "Original_file_broadband.ogg",
The low-quality OGG file name should be: "Original_file_low.ogg",
The MPEG-4 AVI file name should be: "Original_file.avi",
The H.268 AVI file name should be: "Original_file.mp4"


GNUPlot 4.0 Tutorial: http://www.duke.edu/~hpgavin/gnuplot.html

Midterm Test - Part 2 (Nov 20)

Assignment 2 Work (Nov 25)

Session 09 (Nov 27 - Dec 3) - Multimedia Software


  • Multimedia Players
  • Audio File Formats
  • CD Ripping
  • Audio Editing
  • Video File Formats
  • Multimedia Containers
  • Video Capture and Editing
  • Multimedia Transcoding
  • DVD Authoring

Software Covered

  • ffmpeg
  • ffmpeg2theora
  • transcode
  • Lame
  • oggdec/oggenc
  • x264
  • mplayer/mencode
  • xine
  • VLC Player
  • Kaffeine
  • Miro
  • Audacity
  • Ardour
  • Sweep
  • Rosegarden
  • cdparanoia
  • grip
  • Sound Juicer
  • dvbcut
  • Cinelerra
  • Kino
  • PiTiVi
  • dvdauthor/"Q" DVD-Author
  • DeVeBe
  • DVDStyler
  • dvd-slideshow
  • Thoggen
  • DVDRipOMatic

Class slides: http://cs.senecac.on.ca/~mheidenr/lpt730/notes/LPT730_Session_09.odp

Lab #9

Create a tutorial showing how to use free Linux tools to take images from a digital camera and save them on a CD or DVD as a slide show. Include a section (indicated as optional) in your tutorial about image cropping and removing red eyes. Your tutorial must include screen shots, illustrating the process, preferably made by you. If you use screen shots created by others they must be properly referenced in your article.

Post your tutorial on your blog and send the URL via email to your teacher for grading.



Session 10 (Dec 4) - Course Wrap-Up and Review

Lab 10

Review all labs you completed throughout the semester for the LPT730 course. Pick two - one that you liked the most and one that you liked the least. Send a personal email message to your teacher, indicating your choices. Include at least a paragraph for each, explaining why you made these selections. Constructive criticism is encouraged.

Exam Week (Dec 8 - Dec 12)