Difference between revisions of "Tutorials"
(→Moodle Virtual-Programming-Lab (VPL)) |
|||
Line 93: | Line 93: | ||
| | | | ||
This tutorial illustrates how to setup a VPL activity that tests a student program that asks the user for an integer and then prints a 2D chessboard (alternating black & white cells) with that dimension. The size of a cell is a 3x3 character on the screen. | This tutorial illustrates how to setup a VPL activity that tests a student program that asks the user for an integer and then prints a 2D chessboard (alternating black & white cells) with that dimension. The size of a cell is a 3x3 character on the screen. | ||
+ | |- style="background:#eeeeff" valign="top" | ||
+ | | | ||
+ | [[Tutorial Moodle VPL Tips & Tricks| Tips & Tricks]]<br />(Python) | ||
+ | | | ||
+ | A collection of notes, recommendations, tips, tricks, and modifications. | ||
|} | |} | ||
<br /> | <br /> |
Revision as of 19:26, 11 June 2014
--D. Thiebaut 16:02, 18 April 2010 (UTC)
<meta name="keywords" content="computer science, Processing, iBooks Author, Google DSPL, MatPlotLib, Arduino, Raspberry Pi, Xgrid, Trolltech, Qt, Hadoop, MapReduce, C++, Qt Creator, PyQt3, PyQt4, mysql, php, phprunner, bioinformatics, i386 assembly language, mpi, cloud, Amazon, EC2, S3, Xilinx ISE, Coolrunner, SQLite, Proce55ing, Raspberry Pi " /> <meta name="description" content="Dominique Thiebaut's Tutorial Page" /> <meta name="title" content="Tutorials on various programming techniques" /> <meta name="abstract" content="Dominique Thiebaut's tutorial pages covering various topics including computer science, Processing, iBooks Author, Google DSPL, MatPlotLib, Arduino, Xgrid, Trolltech, Qt, Hadoop, MapReduce, C++, Qt Creator, PyQt3, PyQt4, mysql, php, phprunner, bioinformatics, i386 assembly language, cloud, Amazon, EC2, S3, Xilinx ISE, Coolrunner, SQLite, and Proce55ing." /> <meta name="author" content="dthiebaut@smith.edu" /> <meta name="distribution" content="Global" /> <meta name="revisit-after" content="10 days" /> <meta name="copyright" content="(c) D. Thiebaut 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,2008,2009,2010,2011,2012,2013" /> <meta name="robots" content="FOLLOW,INDEX" />
This page contains various tutorials for getting things done with different software tools. Whenever I need to learn something, I teach myself how to use the new tool, but quickly forget it, unfortunately. From this experience I have learned that it requires less time for me to write a tutorial as I go along the first time, so that the second time I don't have to reinvent the wheel again. I try to make the tutorials informative and helpful so that others can benefit from them as well. Enjoy!
Moodle Virtual-Programming-Lab (VPL)
Tutorial | Comments |
---|---|
Moodle/VPL Server Setup |
This tutorial provides rough directions for setting up two virtual servers that will host Moodle on one of them, and the VPL jail server on the other. This setup is used by the tutorials below on the use of VPL to test student programs. |
This tutorial illustrates how to setup VPL to test a simple Python 3 program that prints the string "Hello World!" to the console. | |
This tutorial illustrates how to setup VPL to test a simple Python 3 program that receives 3 numbers from the console and prints the smallest of the 3. The program is tested 3 times, with 3 different sets of input numbers. | |
This tutorial shows the settings for a VPL activity that would test a Python program that plays the game of Rock-Paper-Scissors. The program tested is expected to get its input as pairs of letters (PP, RS, PS, etc), indicates the winner of each round, and stops when one player is 3 points above the other. | |
This tutorial illustrates how to setup a VPL activity that tests a student program that reads a text file, modifies it, and stores the new content back in the original file. This requires an additional python program that sets up the environment for the first one to run, provides it the information it needs, and captures its output. | |
This tutorial illustrates how to setup a VPL activity that tests a student program that asks the user for an integer and then prints a 2D chessboard (alternating black & white cells) with that dimension. The size of a cell is a 3x3 character on the screen. | |
Tips & Tricks |
A collection of notes, recommendations, tips, tricks, and modifications. |
Dropbox/Server
Tutorial | Comments |
---|---|
Use the instantaneous sync-ing ability of Dropbox to build a simple private server for a mobile device. An iOS iPad is used in this example but all mobile platforms supporting Dropbox will work. |
Amazon Web Services (AWS)
Tutorial | Comments |
---|---|
A minimalist tutorial showing the different steps required to run a java application on an Amazon EC2 instance. It should take you 10 minutes or so to launch an instance, upload your code, and start running it. |
Hadoop, StarCluster, and Amazon's AWS
Tutorial | Comments |
---|---|
This tutorial shows how to run the WordCount java program (from the Hadoop distribution, or user-provided) on a cluster of AWS instances organized by MIT's StarCluster. | |
This tutorial is similar to the previous tutorial, and uses Hadoop's streaming facility to run python mappers and reducers |
Hadoop/MapReduce Computation at Smith College
See the Hadoop/MapReduce Tutorials page for up-to-date information.
Tutorial | Comments |
---|---|
Running WordCount written in Java on the Smith College Hadoop/MapReduce Cluster | |
Creating timelines of the execution of tasks during the execution of a MapReduce program. | |
Running WordCount in Python on the Smith College Hadoop/MapReduce Cluster | |
Running a streaming Python MapReduce program on XML files | |
Running C++ programs under Hadoop Pipes | |
Running Hadoop jobs on Amazon AWS | |
Uploading text to S3 and running Amazon's WordCount Java program on our own data. | |
Uploading and Running our own streaming version of the WordCount program on AWS. | |
Computing the cost of maintaining a cluster of 6 MapReduce instances on Amazon's AWS | |
Start a server on Amazon's EC2 infrastructure | |
This tutorial is a list of steps taken to create a working Hadoop Cluster. The system is setup on an Ubuntu desktop with an 8-core processor running Ubuntu. The virtual servers are setup using VirtualBox |
MPI and C Programming with StarCluster on Amazon AWS
Tutorial | Comments |
---|---|
A tutorial showing how to run an MPI program written in C that walks directories , grab image files, identify them with ImageMagick to get their width and height, and enters the information in a MySQL database. | |
This tutorial presents the series of steps necessary to setup a simple MPI cluster on Amazon EC2. This setup is used for the CSC352 seminar on Distributed and Parallel Computing taught at Smith College. | |
This tutorial presents the steps necessary for creating a 10-node AWS cluster with the MIT utility starcluster, and then running a parallel version of the Pi-computing program. |
XGrid Programming at Smith College
These tutorials and examples are taken from the pages I maintain for the XGrid working group at Smith College. More information can be found in the Smith XGrid page.
Title | Environment/Language |
|
Command Line |
XCode | |
Python | |
Python | |
Python | |
|
Perl |
|
Perl |
|
C |
|
Perl |
|
Perl |
|
Perl |
|
Perl |
PList Format | |
Python | |
Qt C++ | |
XGrid |
Geo-Mapping Data
Title | Description |
|
A very simple set of steps taken to convert a somewhat buggy CSV-formatted list of locations containing city and country names into an interactive Geographical Map showing the number of entries in the list corresponding to a given city. |
Another simple set of steps needed to convert the same CSV-formatted lit of locations with city and country names into a Tableau map. |
Processing and Eclipse
Title | Description |
A simple installation tutorial to get Eclipse all set up to run Shiffman's Kinect demo Daniel Shiffman's demos. | |
This tutorial assumes some basic Java programming skills. Start with the basic: create a new Processing project in Eclipse with simple animation. | |
A page presenting several options for creating a path behind animated objects. | |
This tutorial quickly introduces VisualVM (which is included in Sun's JDK) for profiling a Processing application running on Eclipse (or in its default IDE). | |
This tutorial shows how to create a separate thread to play sounds when various events are detected. |
SQLite and Processing
Title | Description |
---|---|
Tutorial #1 | A simple tutorial for accessing an SQLite database from Processing. This tutorial uses the Processing native IDE |
Tutorial #2 | This tutorial is similar in its goal to Tutorial #1, but it uses Eclipse as the IDE, requiring the setup of the SQLite libraries and class files in the Eclipse project. |
Introduction to Processing | A quick introduction to the language Processing, with some references and links.
|
Title | Description |
|
This is a short tutorial that will get you to create a skeleton Latex document formatted for the ACM publication standard |
This skeleton is simply the v2-acmsmall package stripped of most extraneous information. The full template can be found on the ACM Latex Styles page. |
iBook Author Animations
Title | Description |
This is not really a tutorial, but rather a minimal series of files one can start with to create a new widget by hand. | |
A short tutorial illustrating how to create a 2-image animation with buttons allowing the user to go from one image to the other. . | |
This tutorial takes the excellent article for creating a javascript calculator by Simon Southwell and inserts it into the skeleton widget of this section. | |
A quick and tiny tutorial illustrating how to take a Google WebKit (GWT) project and convert it into a Dashboard widget ready for export into an iBook. |
Google's DSPL (DataSet Publishing Language)
Title | Description |
A first look at DSPL with a simple example showing how to plot two columns of numbers as a function of time (years) |
MatPlotLib for Python
Title | Description |
An introduction to the MatPlotLib Python library allowing you to generate MatLab-style graphs in Python. |
Raspberry Pi
Title | Description |
|
A simple client-server example illustrating how to control a simple data exchange between a laptop (a mac in this instance) and a Raspberry Pi. |
This example shows how to count events with a Raspberry Pi using user-level interrupts. The tutorial ends with suggestions to further increase the resolution and accuracy of this setup. | |
This example simply takes the client of the client-server tutorial of this section and replaces it with a client written in Processing 2, using communication over sockets. |
Arduino
Title | Description |
|
An in-class introduction to the Arduino. Not useful if not accompanied by in-class presentation. Refer to the Arduino Web site if working on your own. |
A quick presentation of communication between an Arduino sending characters of the alphabet via an XBee to another XBee connected to a Windows PC. |
C++ with Qt 4
Title | Description |
---|---|
: Creating a simple application with VC++ 2003. | |
: Simple signal/slot experiment with VC++ 2003. | |
: Creating an application from the console (without IDE). | |
: Using a Python script to generate the project around a .ui file. | |
: Adding a debug window and facility to a form. | |
: The implementation of a memory module for a computer simulator. | |
: Using a QTableWidget to show data in a tabular form. | |
: A simple listView model/view example (taken from Qt's doc) | |
: A model/view implementation of a 2 dimensional array | |
: Launching a subprocess... |
C++ with Qt4 and Qt4 Creator
Title | Description |
---|---|
: Creating a simple console Qt4 application with Qt Creator. | |
: Access a MySql database and read the contents of a table. |
C++ with Qt5 and Qt5 Creator
Title | Description |
---|---|
: This tutorial introduces the Qt5 environment and the Qt Creator. It demonstrates how to create a simple application with 3 widgets, two push-buttons and one text-edit to display "Hello World!" | |
: This tutorial introduces the Qt5 environment and the Qt Creator. It demonstrates how to create a simple console application which runs in the Terminal and outputs a simple "Hello World" message. | |
: This tutorial uses Qt5 environment and the Qt Creator. It demonstrates how to add a debugging window in a text-browser widget at the bottom of the App GUI. The text-browser can be open or closed depending on whether debugging information is needed or not. | |
: This tutorial shows how to create a simple 2-button GUI Qt5 app that opens up a QDialog to get a file name, opens the file, reads it, and displays it in a fixed-size font QTextEdit. |
iOS Development in C++ with Qt5 and Qt5 Creator
Title | Description |
---|---|
: This video tutorial illustrates how to bypass Qt-Creator when this one is reluctant to push to your iOS device. | |
: Two video tutorials illlustrating the steps required to push Qt example apps to an iOS device or the iOS simulator. |
PyQt3
Title | Description |
---|---|
Tutorial #1 | : Creating a simple form with PyQt. |
PyQt4
Title | Description |
---|---|
Creating a simple editor window in Qt 4. |
PhPRunner MySql tutorials
Title | Description |
---|---|
: A quick intro to PhpRunner and MySql. | |
: Playing with SQL queries. |
MySql tutorials
Tutorial | Comments |
---|---|
Tutorial #1 and exercises |
Creating tables, generating SELECT queries. |
Tutorial #2 and exercises |
Update queries, and left join operations. |
A tutorial showing how to run an MPI program written in C' that walks directories, grab image files, identify them with ImageMagick to get their width and height, and enters the information in a MySQL database. |
BioInformatics Labs in Proce55ing
These labs were created as an introduction to Bioinformatics using the language Processing. Some of them are very short. Others require some amount of programming.
- Lab #0: Introduction to Proce55ing
- Lab #1: Retrieving DNA sequence from database
- Lab #2: Retrieving protein sequence from database
- Lab #3: Aligning sequences in Proce55ing
- Lab #4: Finding repeats in DNA sequences with Proce55ing
- Lab #5: Finding repeats in DNA sequences using a Web-server
- Lab #6: Playing with FoldIt!
- Lab #7: Sequence Logos with Proce55ing
- Lab #8: Sequence Logos on the Web
- Lab #9: Where/How do I get proteins?
- Lab #10: Finding the secondary structure of a protein
- Miscellaneous Links and Resources
Assembly Crash Course
This is a one-evening crash-lab on assembly language. This is a good introduction to the 80X86-family assembly for students with no background in assembly, and taking a microprocessor-based course.
Creating Printed-Circuit Boards
Title | Description |
---|---|
Tutorial: Printed-Circuit Boards | With thanks to Paul Voss for sharing his tools and secrets! |
Xilinx ISE and The CoolRunner II CPLD
Title | Description |
---|---|
Lab #1: Schematics: Simple gates | A first lab/tutorial illustrating how to create a digital circuit from schematics and testing its behavior with the ISim simulator. |
Lab #2: Verilog | Lab 2 in the series. The same 2-bit adder, but this time in Verilog. |
Lab #3: Sequential Circuit Schematics | A 3-flip-flop sequential circuit activating two blinking lights and behavior simulator. |
Lab #4: 4-Bit Adder in Verilog | Lab 4 in the series. We use two modules to build a 4-bit adder made of four full-adders. |
Xilinx ISE 13.4 Installation Guide | Extensive installation guide for ISE 13.4 on Windows 7 PCs |
Bash Scripts
Title | Description |
---|---|
Building a self-refreshing Kiosk on a Mac Powerbook | A Bash script that watches when a new movie has been updated on a server, and automatically downloads it and plays it in a continuous loop, in full-screen mode on a Mac Powerbook |
A bit of Bash | A short collection of useful Bash constructs. |
Download many movies from YouTube and Number them | A Bash script that downloads a series of YouTube movies and renames them on the local disk using a counter. |
PySerial
Title | Description |
---|---|
PySerial Simulator for Developing Python-to-Arduino Programs | This tutorial briefly illustrates the process of putting together a low-key Arduino PySerial simulator that can be used to develop complex Python apps that will eventually interface with Arduinos. |