Archive for the ‘Institution-is-Loyola-University-Maryland’ Category

Paper @ IALLT 2013: Driving Tutorial Call Into The Face-To-Face Classroom, and What It Took…

…has been accepted for inclusion in the program for IALLT 2013, June 11-15 at the Pinecrest School (Fort Lauderdale, FL)/Florida International University (Boca Raton, FL) and was presented on June 14: Here are abstract and slide deck:

[office src=”″ width=”650″ height=”528″ frameborder=”0″ scrolling=”no”]

MS-SharePoint and the LLC

The LLC has a SharePoint team-site (Yay! ). About the first thing asked for in September when I found out searching the company website that Inside Loyola – the locally branded version of DataTEL’s ActiveCampus  – is built on MS-SharePoint.

This means MS-SharePoint’s features are available to the LLC. This has benefits which come with groupware applications (aka “What’s Wrong with Email?”) that sit on top of an account management system likes AD.

On the basis of the MS-SharePoint/MS-Exchange/MS-Active directory stack, you can build, with much less effort, a much better calendaring/scheduling solution than CGI’s from the 90s provide.

Calendaring/Scheduling is a productivity task common to most businesses. Learning resource catalogues are much more vertical market specific. But if you cannot even manage the character input issues in foreign language video catalogue in your pre-.Net ASP solution, you might still find a generic solution based on SharePoint lists better.

And once you outsourced common productivity software development to MS, you can get implementing e-learning beyond watching TV.

LLC Catalogue: Video-Reserves.xlsm, Reserve desk, Schedule, using Blackboard Content System WebDAV

For a LLC video schedule, we came up with the following repurposing of existing infrastructure:

  1. MS-Excel: still the “Swiss army knife” of choice for the middle manager. Allows for: semi-automatic creation of reserve date sequences (insert series), given a start and end date; data validation during data entry, and, based on that, sorting and filtering and, based on that, finding.
  2. Blackboard Content management system (WebDAV) to manage reading and writing (editing) permissions.
  3. Staff can use MS-Excel to request videos – preferably at start of term – to be put on reserve within a start and end date, during which they will be periodically shown, by opening the spreadsheet from MS-Excel and filling in the green cells in the first empty row at the bottom.
  4. Lab Staff can use MS-Excel to periodically transfer video reserve requests into video showings.
  5. Lab Assistants can use MS-Excel to daily maintain video reserve desk and video showings.
  6. Students can use a web browser to preview video showing times during the remainder of the term. 
  7. To open the video schedule for read-only, Loyola students and staff can  simply click this link in their browser: Even read-only access includes the capability to search, sort and filter the schedule data, but you cannot save back.
  8. To open the video schedule for editing, LLC and Modern Languages staff  can start MS-Excel, click menu: File / Open, and copy/paste this link:, then click open.
  9. All users will have to authenticate with their institutional account info:



Network shares for collaboration: Applications and Files

As explained earlier here, we have set up network shares for collaboration which you can access from your office computers.


Overview of shares:

If you still have textbook media files in the LLC (talk to me on how to move them into the Blackboard content system and recycle them between terms by doing a course rollover in Blackboard ), access them on drive M: (for “media”).

If you have students making audio recordings in the LLC, access them on drive S: (for “students”). A better way for doing recordings during self-access/homework is TBA.

Some useful files for management are on drive H:, in the LLC folder. Some background info is here.

Overview of files:

To access these files quickly, you can click , click , paste the path to the file, click :


H:\LLC\people\Sign_In_Sheet.xls   –  Attendance Meter

H:\LLC\scheduling\channel55-presenter\channel55.ppt – the PowerPoint displayed on the Campus TV Network channel; for the LLC (TBA: as of March 2010, computer is being swapped out, and I have to migrate my application again – stay tuned).

H:\LLC\scheduling\hallway-presenter\hallway.ppt – the PowerPoint displayed on the hallway screen outside of the LLC on MH, 4th floor.


The PowerPoint files – one being displayed on the 4th floor hallway computer, the other on Channel 55 Campus TV – contain sections for announcements/advertisements which you may want to edit, update and/or add to.


Open these files like files on your computer. Overwrite the text in the files with current information. It is strongly recommended that you add slides by copy/pasting existing slides.


If you need help with the PowerPoints, I trained and assessed the lab assistants through Language Learning Center Blackboard site. There should always be an assistant at the LLC desk that can help you with basic PowerPoint tasks. 


Your updates will not show instantaneously, but next day. I’ll check for changes in either PowerPoint file, backup the original and upload the new version over night to their respective computers.

How to automate nightly updates of a Kiosk PowerPoint

This copies nightly a ppt file from a network share where it is collaboratively edite to a network computer where it is displayed for announcement and marketing. The ppt file should already be set to kiosk, manual timings, loop mode.

#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
; revision after hardware upgrade from hallway.au3, "hallway"->"channel55" not in variable names, only in strings , except for encryption password
; includes debugging
; connect to channel55-presenter using tightvnc
; adapt at [TBA]
#include <ie.au3>; put the compiled executable of this in channel55Presenter c:\temp and run it as a scheduled task  late-nightly
#include <debug.au3>
#include <File.au3>
#include <Screencapture.au3>
#include <String.au3>
#include <Date.au3>
Global $filename = "[TBA]"; "channel55"
Global $filenamelog = "[TBA]"; "channel55"
Global $fileextremote = ".pps"
Global $fileextlocal = ".pps"
Global $fileextlog = ".log"
Global $pathfilelog
Global $filepathlocal = "[TBA]"; "c:\temp\"
Global $fileshareordriveremote = "[TBA]"; "\\resman\Student Saved Work\"
Global $filepathremote = "[TBA]"; "Admin\conf\scheduling\channel55-presenter\"
Global $filepathremotebackup = "tmp\"
Global $usernameinstructor = "[TBA]" ; "trplagwitz"
Global $passwordinstructor = "[TBA]" ; hashed password
Global $passworddecrypt = "hallway"
Global $LogonDomain = "[TBA]" ; ""
Global $timelocal
Global $timeremote
Global $debugtype = "debugconsole"
$logfilehandle = FileOpen($fileshareordriveremote & $filepathremote & $filepathremotebackup & $filename & $fileextlog, 1)
If Not FileExists($fileshareordriveremote & $filepathremote & $filename & $fileextremote) Then
	$ret = FileWriteLine($logfilehandle, "cannot open file: " & $fileshareordriveremote & $filepathremote & $filename & $fileextremote)
	If ProcessExists("powerpnt.exe") Then
	If ProcessExists("powerpnt.exe") Then
		$ret3 = RunWait('taskkill /F /fi "imagename eq powerpnt*"  /im *')
	$ret = FileCopy($fileshareordriveremote & $filepathremote & $filename & $fileextremote, $filepathlocal & $filename & $fileextlocal, 1)
	$ret = FileWriteLine($logfilehandle, "result:" & $ret & " filemove from: " & $fileshareordriveremote & $filepathremote & $filepathremotebackup & $filename & "_" & today() & $fileextlocal & "t: " & $filepathlocal & $filename & $fileextlocal)
	If FileExists($fileshareordriveremote & $filepathremote & $filename & $fileextremote) Then
		FileDelete($fileshareordriveremote & $filepathremote & $filename & $fileextremote)
	ShellExecute($filepathlocal & $filename & $fileextlocal)
Func today()
	Return (@YEAR & @MDAY & @MON)
EndFunc   ;==>today
Func addHallwayPresenterNetworkshares($LogonDomain)
	If $LogonDomain = "" Then $LogonDomain = @LogonDomain
	If StringLen($passworddecrypt) > 0 Then
		$driveletterreplacementforhallwayread = DriveMapAdd("*", $fileshareordriveremote, 0, $LogonDomain & "\" & $usernameinstructor, _StringEncrypt(0, $passwordinstructor, $passworddecrypt))
		$driveletterreplacementforhallwayread = DriveMapAdd("*", $fileshareordriveremote, 0, $LogonDomain & "\" & $usernameinstructor, $passwordinstructor)
	myDebugOut(@ScriptLineNumber, "$driveletterreplacementforhallwayread is: " & $driveletterreplacementforhallwayread & ", $fileshareordriveremote is " & $fileshareordriveremote & ", $usernameinstructor, $passwordinstructor are " & $usernameinstructor & $passwordinstructor)
	If (($driveletterreplacementforhallwayread == "") Or $driveletterreplacementforhallwayread == 0) Then
		$driveletterreplacementforhallwayread = "H:"
	Return $driveletterreplacementforhallwayread
EndFunc   ;==>addHallwayPresenterNetworkshares
Func removeHallwayPresenterNetworkShares()
	$driveletterreplacementforhallwayread = $fileshareordriveremote
	If StringInStr($driveletterreplacementforhallwayread, ":") Then
		If StringInStr($driveletterreplacementforhallwayread, "\") Then
			StringTrimRight($driveletterreplacementforhallwayread, 1)
		$ret = DriveMapDel($driveletterreplacementforhallwayread)
		If $ret = 0 Then myDebugOut(@ScriptLineNumber, "failed to DriveMapDel for: " & $driveletterreplacementforhallwayread)
EndFunc   ;==>removeHallwayPresenterNetworkShares
Func myDebugOut($ScriptLineNumber = @ScriptLineNumber, $msg = "Error")
	Local $debugstring
	Local $debugfilename
	Local $tabhandle
	Local $tabmaxnumber
	Local $tempdir
	$tempdir = @TempDir
	If $tempdir == "" Then $tempdir = "c:\temp"
	$debugstring = $ScriptLineNumber & "~" & _Now() & "~" & $msg
	If $debugtype = "debug" Then
		Local $activewindowtitle = WinGetTitle("")
		MsgBox(0, "debug", $debugstring)
	ElseIf $debugtype = "debugconsole" Then
		ConsoleWrite($debugstring & Chr(13))
	ElseIf $debugtype = "run" Then
		If $tempdir == "" Then $tempdir = "c:\temp"
		$debugfilename = FileNameEscape($debugstring, $tempdir) & ".jpg"
	ElseIf $debugtype = "debugconsolescreen" Then
		ConsoleWrite($debugstring & Chr(13))
		$debugfilename = FileNameEscape($debugstring, $tempdir) & ".jpg"
	ElseIf $debugtype = "releasetextlog" Then
		If $pathfilelog == "" Then $pathfilelog = @TempDir & "\" & "autoitlogfile.log"
		$loghandle = FileOpen($pathfilelog, 1)
		If $ret = 0 Or @error Then Exit
		$ret = FileWriteLine($loghandle, $debugstring & Chr(13))
		If $ret = 0 Or @error Then Exit
		$ret = FileClose($loghandle)
	ElseIf $debugtype = "releasewordpad" Then
EndFunc   ;==>myDebugOut
Func FileNameEscape($filename, $tempdir)
	$filename = StringReplace($filename, ":", "_")
	$filename = StringReplace($filename, ">", "larger_than")
	$filename = StringReplace($filename, "<", "smaller_than")
	$filename = StringReplace($filename, " ", "_")
	$filename = StringReplace($filename, "/", "&")
	$filename = StringReplace($filename, "/", "+")
	$filename = StringReplace($filename, "&", "+")
	$filename = StringReplace($filename, Chr(9), "_")
	$filename = StringReplace($filename, "?", "questionmark")
	$filename = StringReplace($filename, "!", "exclamationmark")
	$filename = StringReplace($filename, "'", "quotationmark")
	$filename = StringReplace($filename, Chr(34), "doublequotationmark")
	$filename = StringReplace($filename, "__", "_")
	$filename = StringReplace($filename, "__", "_")
	$filename = StringReplace($filename, "__", "_")
	$filename = StringReplace($filename, "__", "_")
	$filename = $tempdir & "\" & $filename
	Return $filename
EndFunc   ;==>FileNameEscape
Func FileCopy2LocalTemp($filepath)
	Dim $arrfilepath, $filepathname, $arrfilepathname, $filepathnameext
	$blnValid = True
	If Not FileExists($filepath) Then
		If Not DriveMapAdd("", $filepath) Then
			$blnValid = False
	If $blnValid Then
		$arrfilepath = StringSplit($filepath, "\")
		If @error Then
			myDebugOut(@ScriptLineNumber, "error stringsplit filepath")
		$filepathname = $arrfilepath(UBound($arrfilepath) - 1)
		$ret = FileCopy($filepath, @TempDir & "\" & $filepathname)
EndFunc   ;==>FileCopy2LocalTemp

Student attendance metering: present signin.xls and perspectives


We are working on replacing the old attendance meter which is still down:

As you will remember, we have been recording attendance last term and made this data available to you on our new  network share: H:\llc\people\Sign_In_Sheet.xls. To summarize your students attendance, you can filter this data, using standard excel features.


New this term: To help you with this, we added an hard-coded MS-Excel auto-filter (see down-arrows in column headers): filter by course language, then number, then teacher, then the student in question , to summarize during assessment.


We expanded the data validation, so that we get the computer help us processing the data (sort, filter, search…).


Per your request, we added the course number, section and teacher columns to the sign-in sheet (to be manually updated at every term start – a poor man’s integration into the campus information system which had better not be done even by central services, but rather only purchased by them):

Individual teachers can use the built-in filters to drill down to their classes/students for advising/grading.

Individual student can be tracked, together with their time spent in the LLC:

Students enter in the green columns, mostly having to access only built-in shortcuts and selection boxes, while the other columns get updated completely automatically.

To enable students inputting their information directly, we have hacked together a dual screen system in the LLC entrance area. 


We will also use this dual screen system for improving other LLC services, by hooking  into central services. We will ask students with less than clear requests (“My professor wants me to do my homework here, where is it?”) to load their syllabus from blackboard and share their screen with the lab assistant, to assist with (not solve: that would need library resources, meaning professional library catalogue, library professional staff and library professional network and procedures) locating movies and other assigned learning materials.


For the attendance meter, this means: students can enter this information themselves; lab assistants still supervise, and collect the student ID to double check and prevent the cheating that I was approached about to fix with the prior system: signing in for friends, especially with passwords separate from university-wide passwords which there is no reason to keep secret.


Please note that this home-brew spreadsheet-based system is still severely limited in its functionality.


We could POSSIBLY (this would need setup and coordination with various central offices) automate this more, given time for the initial investment.


I have experimented with hooking into the swipe card system. However, students would have to be asked to swipe out also. For other reporting purposes, I have already managed to retrieve this data in this form:


I have experimented with recording log-in (but no log-off) data on the LLC computers (another hack) in a centrally available spreadsheet, in this format:

I have inquired about using Microsoft’s SCCM (a generic software management application not meant for monitoring learning or language learning): We could gather statistics on two LLC-specific programs: the SANAKO media player and the webbrowser.exe (both, however, are likely, but not required to be used for language learning if a student prefers to do the learning in other applications). Neither would record actual files being opened.

All of these approaches, while preventing the most blatant cheating, still would not record actual language learning activity. They do not prevent students from spending their time in the LLC doing unrelated activities (like browsing sports news or playing online games)
while they can do their assigned Blackboard and Quia homework from the convenience of their residence.

It is the professional systems that have been programmed with the resources from of revenue of literally thousands of campus-wide installations that can record these language learning activities.

The Sanako language lab software contains a webbrowser.exe which can not only be remote controlled by the teacher, but also be configured to allow only browsing certain (partial) urls or disallow browsing certain urls. it is also possible to apply different policies in different situations. this facility, while part of the package your purchased with the lab, has not been set up as of yet.


It would require developing policies and implementing them. E.g. one could during non-class use of the LLC only allow browsing publisher websites, including, and  and (a radical approach).


One could also explicitly preventing certain websites, like Facebook (this would be more effective during face-to-face session in the LLC).

Then there are the facilities within your textbook websites (Quia) and within your course management (Blackboard, keywords for free tools being: Course Statistics, Statistics Tracking with activity_accumulator, Performance Dashboard, Early Warning System Rules, Adaptive Release rules for content, project ASTRO which is an acronym for Advanced System Tracking and Reporting Online), or as an add-on (Provost Pulse).

With the impetus being on ubiquity these days, it will have to be seen whether there are tools for Blackboard or Quia that can help enforcing that students use specific computers (maybe via IP address of computer?).

Beyond these solutions, there is an entire research area for, and software market revolving around, student retention management which also covers attendance tracking. Notable players include Hobsons EMT® Retain and Starfish Early-alert (which is run by a former Blackboard VP and can be integrated with Blackboard student data system as a building block).


I suggest we invest our limited local resources into finding better ways to integrate and train on these existing central facilities that provide information on learning (which we then can use to refine our teaching). Given current circumstances, I would recommend exploring the tracking systems in Quia and Blackboard (not restricted to being used on the LLC computers) and tracking learning outcomes (like student language recordings which the LLC can help with – not as much with the digital recording technology which is being commoditized, but rather with providing a language learning shared/collaborative/meeintg space).


Video Library: Scheduling for Reserve Desk and Viewings

Lab staff instruction for editing the video-reserves spreadsheet H:\LLC\scheduling\video-reserves&mh441b-showing\video-reserves.xls:

  1. Lab supervisors build the spreadsheet for the reserve desk and viewing: video-reserves-reservedonthisday-unfold-schedule-viewing.wmv, video-reserves-viewing-selecting-timeslots&venues.wmv
  2. Lab assistants read the spreadsheet and handle the actual media (i.e. update the reserve desk and show the videos): video-reserves-reservedonthisday-filter-viewing-or-reserve.wmv