Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ron Santos Simon Fraser University Ron Santos Simon Fraser University Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight.

Similar presentations


Presentation on theme: "Ron Santos Simon Fraser University Ron Santos Simon Fraser University Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight."— Presentation transcript:

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

2 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/bbworld09http://get.sfu.ca/bbworld09 What will you learn in this session?

3 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 Simon Fraser University

4 Student Enrollments (Fall2008) Products used: Peoplesoft, LDAP/CAS3, Blackboard Vista 8.0.2 Blackboard/WebCT history CE3CE4CE6Vista4Vista8 20002003200620072008 Blackboard Vista setup –6 Managed nodes (1 protected JMS server) –Oracle 10g (~500GB) –Sun Sparc Solaris 10 Simon Fraser University Unique students in at least 1 class Total student enrollments in courses Undergraduates22,82273,535 Graduates4,2587,726

5 Course Growth Graph SELECT source_name, source_id FROM rpt_learning_context WHERE ims_value = 'SECTION' AND source_id LIKE ' -%' sourced.id = - - - (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 = - - - (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 = - - - (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 = - - - (e.g. 1094-math-100-d100)

9 Tool Distribution (RPT_TRACKING)

10 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 = ' ' AND p.source_id = ’ ' Other uses

11 Application level –DBI - http://dbi.perl.org/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.pmhttp://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.pmhttp://search.cpan.org/~bwarfield/GDGraph- 1.44/Graph.pm Graphing module for Perl5 Perl modules

12 Database level –DBD::Proxy driver -http://search.cpan.org/~timb/DBI- 1.609/lib/DBI/ProxyServer.pm http://docstore.mik.ua/orelly/linux/dbi/ch08_02.htmhttp://search.cpan.org/~timb/DBI- 1.609/lib/DBI/ProxyServer.pm http://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.pmhttp://search.cpan.org/~pythian/DBD-Oracle- 1.23/Oracle.pm Oracle database driver for the DBI module Perl modules

13 { 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' ], }, Perl modules # 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, } ] } Sample access configuration for the DBI proxy server (/etc/dbiproxy.cfg)

14 Basic Perl script 1.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."); 2.Run SQL my $sth = $dbh -> prepare( $sql); $sth -> execute(); while ( @row = $sth -> fetchrow_array ) { push ( @return, @row); } 3.Store SQL results into a CSV file 4.Parse CSV file using Text::CSV::Simple my $parser = Text::CSV::Simple->new(); my @data = $parser->read_file($file); Perl modules

15 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; Perl modules

16 Require Google account Need custom entry page for Blackboard Simply put the tracking code (JavaScript) immediately before the tag of each page you want to track (entry page, login, logout) –Example tracking code 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")); try{ var pageTracker = _gat._getTracker("UA-xxxxxx-x"); pageTracker._trackPageview(); } catch(err) {} 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 Google Analytics

17 Browser information & usage (monthly view)

18 Google Analytics OS information & usage (monthly view)

19 Google Analytics Many other “useful” information

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


Download ppt "Ron Santos Simon Fraser University Ron Santos Simon Fraser University Stats all folks! Extracting usable statistics from Blackboard Vista using the Powersight."

Similar presentations


Ads by Google