1 / 20

Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grea

Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grease. Ron Santos Simon Fraser University. What will you learn in this session?.

HarrisCezar
Télécharger la présentation

Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grea

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight Module and a little elbow grease Ron Santos Simon Fraser University

  2. What will you learn in this session? • Sample Graphs using the Powersight tables (e.g. course growth, student distribution, tool distribution) • Sample SQL used to generate the reports • Other uses (beyond graphs and stats) • Perl modules • Google Analytics Presentation available at http://get.sfu.ca/bbworld09

  3. Simon Fraser University • Named after famous explorer • Opened on September 9, 1965 • Located on British Columbia, Canada • One University - Three campuses • Burnaby • Vancouver • Surrey • 900 faculty • 1600 staff • 100,000 alumni Simon Fraser 1776 -1862

  4. Simon Fraser University • Student Enrollments (Fall2008) • Products used: Peoplesoft, LDAP/CAS3, Blackboard Vista 8.0.2 • Blackboard/WebCT history CE3 CE4 CE6 Vista4 Vista8 2000 2003 2006 2007 2008 • Blackboard Vista setup • 6 Managed nodes (1 protected JMS server) • Oracle 10g (~500GB) • Sun Sparc Solaris 10

  5. Course Growth Graph SELECT source_name, source_id FROM rpt_learning_context WHERE ims_value = 'SECTION' AND source_id LIKE '<semCode>-%' sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)

  6. Number of Unique Students SELECT COUNT (DISTINCT p.person_id) FROM rpt_learning_context lc, rpt_member m, rpt_person p WHERE lc.learning_context_id = m.learning_context_id AND p.person_id = m.person_id AND m.active = 1 AND m.role = 'SSTU' AND p.demo_user = 0 AND lc.source_id LIKE '$semCode-%' sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)

  7. Course Levels Graph SELECT COUNT(*) FROM rpt_learning_context WHERE ims_value = 'SECTION' AND source_id LIKE '$semCode-%-d1%' sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)

  8. Student Levels Graph SELECT COUNT(DISTINCT p.person_id) FROM rpt_learning_context lc, rpt_member m, rpt_person p WHERE lc.learning_context_id = m.learning_context_id AND p.person_id = m.person_id AND m.active = 1 AND p.demo_user = 0 AND m.role = 'SSTU' AND lc.source_id LIKE '$semCode-%-d1%' sourced.id = <semCode>-<courseName>-<courseNumber>-<courseSection> (e.g. 1094-math-100-d100)

  9. Tool Distribution (RPT_TRACKING)

  10. Other uses SELECT (SELECT lc2.name FROM rpt_learning_context lc2 WHERE b.learning_context_id = lc.parent_learning_context_id) as Parent, lc.name, lc.source_name, lc.source_id FROM rpt_learning_context lc, rpt_member m, rpt_person p WHERE lc.learning_context_id = m.learning_context_id AND p.person_id = m.person_id AND m.role = 'SDES' AND lc.ims_value = 'SECTION' AND m.active = 1 AND p.source_name = '<sourced.id_source>' AND p.source_id = ’<sourced.id_id>'

  11. Perl modules • Application level • DBI - http://dbi.perl.org/ • DBI stands for database interface • Allows Perl of running SQL queries • Text::CSV::Simple - http://search.cpan.org/~tmtm/Text-CSV-Simple-1.00/lib/Text/CSV/Simple.pm • Parser for CSV files • GD::Graph - http://search.cpan.org/~bwarfield/GDGraph-1.44/Graph.pm • Graphing module for Perl5

  12. Perl modules • Database level • DBD::Proxy driver -http://search.cpan.org/~timb/DBI-1.609/lib/DBI/ProxyServer.pmhttp://docstore.mik.ua/orelly/linux/dbi/ch08_02.htm • Module for implementing a proxy for the DBI proxy driver • Allows PERL access to a database over the network • DBI proxy architecture allows for on-the-fly compression of query and result data, and also encryption of that data. These two facilities make DBI a powerful tool for pulling large results sets of data over the network • dbiproxy • A proxy server for the DBD::Proxy driver • This tool is just a front end for the DBI::ProxyServer package • /usr/local/bin/dbiproxy --configfile /etc/dbiproxy.cfg • Perl DBD::Oracle - http://search.cpan.org/~pythian/DBD-Oracle-1.23/Oracle.pm • Oracle database driver for the DBI module

  13. Perl modules • Sample access configuration for the DBI proxy server (/etc/dbiproxy.cfg) { facility => 'daemon', pidfile => '/var/dbiproxy/dbiproxy.pid', user => 'nobody', group => 'nobody', localport => '3333', mode => 'fork', user => 'nobody', group => 'nobody', # Access control clients => [ # Accept the local LAN ( 192.168.1.* ) { mask => '^192\.168\.1\.\d+$', accept => 1, users => [ 'wctsupport' ], }, • # Accept our off-site machines ( 192.168.2.* ) but with a cipher • { • mask => '^192\.168\.2\.\d+$', • accept => 1, • users => [ 'wctsupport' ],, • cipher => Crypt::IDEA->new( 'be39893df23f98a2' ) • }, • # Deny everything else • { • # any IP-address is meant here • mask => '^(\d+)\.(\d+)\.(\d+)\.(\d+)$', • accept => 0, • } • ] • }

  14. Perl modules • Basic Perl script • Connect to DB (via DBI Proxy) $dsn = "DBI:Proxy:hostname=$hostname;port=$port;dsn=DBI:Oracle:$sid"; $dbh = DBI -> connect($dsn, $user, $passwd) || die ("Database connection failed."); • Run SQL my $sth = $dbh -> prepare( $sql); $sth -> execute(); while ( @row = $sth -> fetchrow_array ) { push ( @return, @row); } • Store SQL results into a CSV file • Parse CSV file using Text::CSV::Simple my $parser = Text::CSV::Simple->new(); my @data = $parser->read_file($file);

  15. Perl modules 5. Graph CSV using GD::Graph my $graph = GD::Graph::linespoints->new(600, 500); $graph->set( x_label => 'Year', x_label_position => 0.5, y_label => 'Course Per Semester', title => 'WebCT Course Growth', y_max_value => 700, y_tick_number => 7, zero_axis_only => 0, zero_axis => 0, show_values => 1, markers => [1, 5, 8], marker_size => 3, skip_undef => 1, transparent => 0, ) or die $graph->error; my $format = $graph->export_format; open (IMG, ">$image") or die ("Error creating $image\n");; binmode IMG; print IMG $graph->plot(\@data)->$format(); close IMG;

  16. Google Analytics • Require Google account • Need custom entry page for Blackboard • Simply put the tracking code (JavaScript) immediately before the </body> tag of each page you want to track (entry page, login, logout) • Example tracking code  <script type="text/javascript"> var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); </script> <script type="text/javascript"> try{  var pageTracker = _gat._getTracker("UA-xxxxxx-x"); pageTracker._trackPageview(); } catch(err) {}  </script> • Does not track SSO logins (e.g. logins from portals) • Personally identifiable info are not tracked (username and IP address) • Provides nice graphs and reports that can be exported & emailed

  17. Google Analytics • Browser information & usage (monthly view)

  18. Google Analytics • OS information & usage (monthly view)

  19. Google Analytics • Many other “useful” information

  20. Questions? • Email: santos@sfu.ca • Who wants to print out a handout? Instead, check out my presentation on http://get.sfu.ca/bbworld09

More Related