Department of Engineering

IT Services

TO/tl136 matters

jump to end

2017

  • June 23rd - 2Aprocessingtidemarks improved (weak lecturers now named)
  • June 27th - added more online Python support material
  • June 28th - Demonstrator/Supervisor Marketplace improved (users can edit their entries)
  • July 18th - Supervisor marketplace fixed ("Any" term entries weren't shown)
  • July 20th - Meeting with Alex. Here's a TODO list
    • tl136setyear, ajk61setyear broken
    • replace "CamTools" by "Moodle" in Sustainable Engg and IEP surveys
    • 2Asurvey: Check to see if links directly to URL like http://to.eng.cam.ac.uk/teaching/apps/survey/papers2A.php?paper=3E2 are ok
    • 2Asurvey: allow comments on course as a whole
    • 2Bsurvey coursework: ask about Interest; Handouts; Feedback quality; Feedback timeliness (a grid of questions and radiobox answers, as for lectures)
    • Shortlab each have the questions in the IEP Overall section?
    • Surveys: See if support for mobiles can be improved
    • Surveys: Improve reporting of results. Have a version for staff and another for students
    • Moodle: UCL use Mahara so that students can build up online portfolios
    • Friday Computing seminars: Add a talk on basic git? Think about certification.
  • July 21st
    I've started a new version of the survey on http://to.eng.cam.ac.uk/teaching/apps/survey2017
    • tl136setyear, ajk61setyear should be better, though may need running twice if the survey's been run
    • "CamTools" has been replaced by "Moodle" in 2 surveys
    • An URL like http://to.eng.cam.ac.uk/teaching/apps/survey/papers2A.php?paper=3E2 will lead students to the right page. 2 little issues -
      • Their previous replies won't be shown (currently the front page of the survey loads in previous replies)
      • They'll have to remember to click on the Save button. If they do that, then next time they run the full survey, they'll be able to see their replies.
    • 2Bsurvey: The coursework title and legends used to be printed even if the paper had no coursework. That's been fixed.
    • This screenshot shows the old and draft new versions of the 2B coursework question.
  • July 24th
    • The new version of the 2B survey on http://to.eng.cam.ac.uk/teaching/apps/survey2017 has the new format for coursework questions. Load/Save seems ok both with the full survey and when only the single course page is loaded in.
    • Re: "2Asurvey: allow comments on course as a whole" - the 2A survey already has this on the general page, which is where the 2B survey has it.
  • July 26th

    Alex explained his new design for the survey, which aims to give PartII coursework more emphasis and ease the transition to a more mobile-friendly version. We're planning to display the results in various ways - some ways aimed at students. We may offer students the chance to leave comments for future students as well as for the Teaching Office.

  • July 27th
    • New Design: General page: Remove examples classes ... start with course as a whole ... Supervision - remove overall - all this can be done in the config file (the order of general questions/sections in the config file controls the order on the survey)
    • New Design: Coursework - below is http://to.eng.cam.ac.uk/teaching/apps/survey2017/papers2B.php?paper=4B7. There are new questions about demonstrators, comments for TO and for future students, and the links just under the paper/module title point to further down the page (useful for small screens). The "Exams" question only appears after the exam date.
  • July 28th
    New Design: Lectures - below is the "lectures" part of http://to.eng.cam.ac.uk/teaching/apps/survey2017/papers2B.php?paper=4B7 which now has "Examples papers" and "Comments on paper" sections. In the lecture questions the "Examples" subquestion has been replaced by an Interest question. Load/Save seems ok from the full survey. I've not yet made it work when the per-module page is directly called.
  • July 31st
    I've modularised things more, so that there's an URL for each paper's coursework-related questions and another for the other aspects of the paper. E.g. for 4B7 I think that essentially covers Alex's requests. I'll wait to see what he says before making the same changes to the IIA survey (which also needs supervisor-related questions) and changing the processing pages.
  • August 3rd
    I've created a per-paper processing page that display all the feedback (including the new fields) about a single paper - see http://to.eng.cam.ac.uk/teaching/apps/surveyprocessingwithgraphics/2Bonepaper.php (not pretty, but the info's there).
  • August 4th
    I've tidied the code of the per-paper processing page, and I've started adding year-averages -
  • August 8th
    The IIA survey's nearly ready now.
  • August 9th
    The new IIA survey works ok for me, loading and saving both when the whole survey is run or just one page. E.g. these work for IIA people
  • August 17th
    Here are the tests that could be used to justify a certificate of competence for people having attended talks -
  • September 20th
    • Still gathering Python helpers. So far I've got 50% of what we need.
    • Trying out 1BPython
  • September 21st
    • IIASupervisionfeedback and IIASupervisionfeedbackprocessing have been updated for 2017-18. I've rewritten the program that processes the spreadsheet data that the TO gives me (it's now a Python script)
    • Trying out 1BPython
  • September 26th
    Some notes about archiving - When you use "Archive" on http://to.eng.cam.ac.uk/teaching/apps/controlpanel.php a copy is taken of all the stored data tables of the facility being archived, the year being appended to the table name to create a new table. For example, the "best lecturer" facility uses a database table called "bestlecturer". Archiving it now will produce a table called "bestlecturer2016".
    At the moment the "bestlecturerprocessing" program only reads the data from the bestlecturer table, but I've already started writing a program that lets you get data from an archived table of your choice instead of the current year's table (http://to.eng.cam.ac.uk/teaching/apps/surveyprocessingwithgraphics/archiveaccess1A.php already does a similar thing for 1A surveys) We've so little archived that this archive access isn't yet very useful, but in future years it should become ever more useful.
    So if you archive using the controlpanel, you'll soon be able to retrieve the data for 2016-17 on demand.
    controlpanel.php shouldn't let you delete data until you've archived it, so it should be safe enough.
    The survey's a much bigger problem with many tables of data involved. Archiving it's easy enough (just use the "Archive" button), but getting the data out of the archive in a useful form is trickier. I'm hoping that the archiveaccess1A.php program mentioned above will suffice, though I can easily churn out non-graphical data too.
  • September 29th
  • October 11th
    So far this term various start-of-term jobs done - 1AStatics; IDP Forums, IIAProjectSelection, FFF and BestLecturer all set up; Lego and IDP demonstrating done; Python demonstrators procured. I've written webpages/programs to show when each 1A Python team and 1B Python team is going to be marked.
  • October 17th
    http://to.eng.cam.ac.uk/teaching/apps/surveyprocessingwithgraphics/2Aprocessing.php fixed so that it matches the changed survey. This page only shows a few selected statistics from the survey - in practise all the useful statistics
  • November 6th
    I did about 52 hours of week last week, most of it teaching-related.
    • Python marking: 1A - 33 unmarked. 4 finished all the term's work. 1B - 19 unmarked. 15 finished all the term's work
    • IDP: In response to end-of-course feedback I've redrafted the intro talk that I give to the software teams
    • IIA Projects: already it's time to calculate a project allocation
    • Friday talks: about 20 people turned up to the LaTeX talks (better than usual). On Friday I'm trying a git talk for the first time.
  • November 13th
    Wrote some code for IIAproject allocation to deal better with per-project special cases. Chased Python marks.
  • December 8th
    In the last few weeks I've
    • done more on the 2-stage IIAProject selection process
    • updated the IDP documentation again, filling in new gaps in students' C++ knowledge
    • filled in about 17 demonstrator expenses forms
    • improved the online Python-marking timetables
    • moved office
  • December 11th
    • Installed the updated "best lecturer" program that lets students choose 1st, 2nd and 3rd preferences. Installed the updated processing pages.
    • Calculated the cost of Part1 computing support. Roughly -
      • Mich 2017 1A+1B Computing (both Python) -
        364 paid hours
        127 free hours (TAs and COs)
      • Mich 2015 1A+1B Computing (C++ and Matlab) -
        240 paid hours
        200 free hours (TAs and COs)
      n.b. The C++ sessions were sometimes rather understaffed, and there weren't any extra sessions for marking.
  • December 13th
    • Tried out some of the 1B Lent computing course
    • Fixed 2 buglettes in the survey processing code
    • Met with Alex
  • December 19th
    • Tried out more of the 1B Lent computing course. screen and udev config now installed on our Linux.
  • December 21st
    • The 1ALent Computing marking timetables are ready
    • In the last 2 days I've converted the ancient 1200-line datamaker.c program into the 750-line datamaker.py program. It's used in the IIAProject allocation process. The old version was hard to maintain and in any case I needed the Python practice

2018

  • January 10th
    In the last fortnight I've
    • tried more of the 1B Lent course at home
    • got demoers and markers for Lent's 1A Python
  • January 26th
    In the last fortnight I've started demonstrating the Lent 1A and 1B computing courses, and IDP. This week I think I'll have about 25 hours of contact time with students. Most weeks this term I suspect I'll have about 20 hours of contact time.
    I've updated the FFF documentation (PDF to HTML conversion; decommissioning of the TCL/TK option, etc) and the Best lecturer documentation (PDF to HTML conversion; details of configuring etc). I've also added the missing archive and delete support for the best lecturer facility on the Control Panel
  • Feb 2nd
    This week I've been
    • Getting ready for next week's Python marking
    • Preparing a Python 1A bonus talk
    • Thinking about the processing of 1B Quiz results
  • Feb 12th
    This week I've
    • Been chasing Python marks
    • Added a feature to CUEDle to auto-delete some entries
    • Finished program to process 1B Quiz results
  • Mar 12th
    • Still chasing a few Python marks.
    • Converted wwwphpmaker into Python from C+++ (it's used to created the FastFeedback programs from the config files)
  • Mar 20th
    • Suddenly remembered I hadn't finished updating the 2Bsurvey processing code. 2Bsurvey processing should now be better.
  • Apr 4th
  • Apr 23rd
    • I've been working on a non-teaching program
    • I've been doing a little preparation for GF2
    • I've set up the 2A project feedback form
    • I discussed with David Cole his new 1st year lab - it uses Python and Arduino but doesn't really link up with other Python courses (which may well not be a bad thing). We might need to add Arduino support, but otherwise it's not going to add workload.
    • Automated Program Assessment - Southampton University use Python and Moodle. They support roughly the same number of students as we do.
      They have weekly lectures and labs, drop-in help sessions, weekly assessed programming exercises (automatically marked - 10% of the total marks for the course), and a final exam at the end where students write code without Internet access. They claim that automated demoing/marking has halved their support expenses and improved students' learning.
      Here are some extracts that I've pulled from their 26-page report, sorted into topics
  • May 1st
    • Some little start-of-term issues resolved for courses.
    • Helped with judging the 1st year programming competition.
  • May 8th - Helped a little with the 1B programming help desk.
  • May 11th - Started helping with GF2. I'll be helping for 4 weeks.
  • June 4th
  • June 19th
    • Updated IIAproject-feedback hardcopy production, so the program (~teachoff/bin/IIAprojectfeedbackhardcopy) shouldn't need changing each year
    • Tightened up the supervisor/demonstrator marketplace programs. I had aimed to factorize them too but although they're similar, little differences are widespread. Pro tem I've reduced differences to a minimum (by regularising indenting, etc)
  • June 22nd
    • Converted my psout library from C to Python. I use it to produce the end-of-year hardcopy for the Survey and IIAProject feedback. I can now proceed with the delayed task of converting the dependent programs to Python - they may be the last programs to convert. Once converted, I (and others) can much more confidently update them.
    • Converted IIAprojectfeedbackhardcopy to Python.
  • June 25-29th
  • July 9th
    • I can create the 1A online surveys from configuration files with a Python program. The following runs all my new code
      cd ~/SRC/TeachingOffice/wwwgenpython1adone/
      ./parser1a.py 1areplies.txt ~teachoff/configfiles/survey1A> graphics1a.ps ; ps2pdf  graphics1a.ps
      
      cd ~/SRC/TeachingOffice/wwwgenpython1bdone/
      ./parser1b.py 1breplies.txt ~teachoff/configfiles/survey1A> graphics1b.ps ; ps2pdf  graphics1b.ps
      
      cd ~/SRC/TeachingOffice/wwwgenpython2adone/
      ./parser2a.py 2areplies.txt survey2A > graphics2a.ps ; ps2pdf graphics2a.ps
      
      cd ~/SRC/TeachingOffice/wwwgenpython2bdone/
      ./parser2b.py 2breplies.txt ~teachoff/configfiles/survey2B> graphics2b.ps ; ps2pdf  graphics2b.ps
      
      cd ~/SRC/TeachingOffice/wwwgenpython1a
      ./createconfigs1a.py 1A ~teachoff/configfiles/survey1A
      
  • July 10th
    • Now all this pretty much works
      cd ~/SRC/TeachingOffice/wwwgenpython1adone/
      ./parser1a.py 1areplies.txt ~teachoff/configfiles/survey1A> graphics1a.ps ; ps2pdf  graphics1a.ps
      
      cd ~/SRC/TeachingOffice/wwwgenpython1bdone/
      ./parser1b.py 1breplies.txt ~teachoff/configfiles/survey1A> graphics1b.ps ; ps2pdf  graphics1b.ps
      
      cd ~/SRC/TeachingOffice/wwwgenpython2adone/
      ./parser2a.py 2areplies.txt survey2A > graphics2a.ps ; ps2pdf graphics2a.ps
      
      cd ~/SRC/TeachingOffice/wwwgenpython2bdone/
      ./parser2b.py 2breplies.txt ~teachoff/configfiles/survey2B> graphics2b.ps ; ps2pdf  graphics2b.ps
      
      cd ~/SRC/TeachingOffice/createconfigs1adone
      ./createconfigs1a.py 1A ~teachoff/configfiles/survey1A
      
      cd ~/SRC/TeachingOffice/createconfigs1bdone
      ./createconfigs1b.py 1B ~teachoff/configfiles/survey1B
      
      cd ~/SRC/TeachingOffice/createconfigs2adone
      ./createconfigs2a.py 2A ~teachoff/configfiles/survey2A
      
      cd ~/SRC/TeachingOffice/createconfigs2bdone
      ./createconfigs2b.py 2B ~teachoff/configfiles/survey2B
      
      Next I'll check the new config files against the old, remove unwanted files, factorize, and document!
  • July 11th
    • Tidier, factorised versions -
      cd ~/SRC/TeachingOffice/finalprocesssurveys
      ./parser1a.py test1areplies.txt ~teachoff/configfiles/survey1A> graphics1a.ps ; ps2pdf  graphics1a.ps
      ./parser1b.py test1breplies.txt ~teachoff/configfiles/survey1B> graphics1b.ps ; ps2pdf  graphics1b.ps
      ./parser2a.py test2areplies.txt ~teachoff/configfiles/survey2A> graphics2a.ps ; ps2pdf  graphics2a.ps
      ./parser2b.py test2breplies.txt ~teachoff/configfiles/survey2B> graphics2b.ps ; ps2pdf  graphics2b.ps
      
      cd ~/SRC/TeachingOffice/finalcreateconfigs
      ./createconfigs1a.py 1A ~teachoff/configfiles/survey1A
      ./createconfigs1b.py 1B ~teachoff/configfiles/survey1B
      ./createconfigs2a.py 2A ~teachoff/configfiles/survey2A
      ./createconfigs2b.py 2B ~teachoff/configfiles/survey2B
      
  • July 12th
    I checked the above code (4,600 lines of Python) to see that it produces the same config files and hardcopy as the old C code. I'll update the documentation so that we'll use this new code in future.
  • Aug 16th
    Added more error checking to the above code, and updated the documentation.
    Starting adding sjs1001 to access lists etc.
  • Aug 28th
    Added IDP workflow to teaching/apps.
  • Sep 7th
    • Python helpdesk rota organised
    • IIAProject selection updated
  • Oct 17th
    • Python helpdesk running - more early marking than last year
    • IIAProject selection and allocation code updated and, I hope, ready to run
    • Surveys, FFF, and best-lecturer programs updated
  • Nov 8th
    • Python 1A/1B milestone 1 marking nearly all done.
    • IIAProject selection done for now.
    • IDP has involved some background reading. Once term's over I may experiment more with the hardware.

2019

  • Jan 4th
    • New 1Asurvey results processed. Other processing in hand.
    • More IIAProject selection work done. This year's more complicated 2-stage process (with students given 0, 1, or 2 projects after the first stage) has meant more work than anticipated.
    • 1APython staffing sorted out.
  • Jan 17th
    • New 1Asurvey results processed. Other processing in hand.
    • More IIAProject selection work done.
    • I'll be involved with IDP after all.
    • The 1APython course has been tweaked. Adjustments to documentation made.
  • Feb 20th
    • IDP, 1APython and IIAProject-selection continuing ok
    • More survey processing code being written. Automated Survey production started
  • Mar 7th
    • 1APython over. Compared with last year an order of magnitude fewer people were late.
    • IIAProject-selection over
    • IDP continuing. This half-term's task is harder and teams are behind.
    • Demonstrator/Supervisor Marketplace fixed (2019-20 dates wrong).
    • More survey processing code being written. Automated Survey production continuing. Details are on my Qualtrics page.
    • The python helpdesk extended to include help for IDP and a IB Mechanics examples paper.
  • Mar 25th
    • Had a meeting with mjm61 and mewl2 about surveys where we tried to manage our workloads. Amongst the admin chores are
      • Letting staff customise their parts of the survey - sounds like too much extra work for me
      • Creating QR codes that work with all cameras and tinyURLs that work with Safari - rather than tinyURLs, URLs like http://www3.eng.cam.ac.uk/survey?COURSE=3F5A might be just as manageable.
      • Mailing reminders to staff, including the QR code.
      These 2 latter items I've made progress on - ~tl136/qualtricsmisc/prog1.py can list the lecturers of 1st year courses in any term, and mail them an appropriate QR code.
      The main priority however will be to replicate the output produced by mjm61's processing.
  • Apr 11th
    • Version 1 of the survey processing code is now in ~tl136/QualtricsReporting/ on the linux system. I hope it's close to what's needed in June.
    • Some preparation for GF2 done.
  • Apr 16th - More survey processing work
    • Output formats tidied up
    • HTML output option offered - TOIAsummary.html is a page that might help the TO to detect problems - it has coursework/lecture summary graphs, and comments. sjs1001pie.html is a page that has info for one lecturer. It has an interactive pie chart showing presentation scores, comments on the course, and a summary graph
    • Multi-page or single-page PDF output options offered
    • per-module student numbers added to output
    • ~tl136/QualtricsReporting/mailstaff.py can mail staff about the survey (by year and/or by term)
    • Programs to Download qualtrics files using the API and Inspect Qualtrics QSF files put on the WWW
  • Aug 14th
    • GF2 done
    • IIAproject selection/processing data-structures changed, more programs converted to python, and two-stage selection tidied up.
    • Qualtrics surveys processed
    • Qualtrics survey production ready to test
    • Staffing for Python dealt with
    • Python marking timetables updated
    • demonstratormarket and supervisormarket programs allow easier sorting of entries.
    • IB programming contact established
    • CUEDle option added to let more rows appear when table full
    • IDP software talk updated
  • Sep 19th
    • New IIAProject selection/processing programs updated, and selection prepared for October use.
    • Qualtrics surveys produced
    • IB marking (M3 and Python Lent) being sorted out. Programs for marksheets produced.
  • Oct 3rd
    • Pythonised the programs that produce FFF and best-lecturer webpage code from config files
    • Attempted to automatically generate the above config files from the TOBD. Problems are - specifying order; shortening course names for menu items; specifying which lectures/coursework should be asked about (some lectures in the TODB are just introductions to coursework, etc)
  • Nov 13th
    • IDP programming notes updated to include WiFi
    • Python stage 1 marked.
    • 1B Materials M3 part-marked
    • Online marksheets for 1A Python and M3 coursework being trialed. EIETL marking demo is a demo showing other features.
  • Dec 24th
    • Marking schedules for IA Python, IB Materials ad IB Data Science prepared. Helpers being sought.
    • IIA project selection front-end done?
    • Much work done on Qualtric Project Reports. This is the first time that the automatically produced surveys have been processed, and the first time that processing has been termly.

2020