.. ==================== .. Presentation Slides .. ==================== Self-Directed Learning with Online Resources ++++++++++++++++++++++++++++++++++++++++++++++ An independent study of challenges, opportunities and strategies for encouraging feedback between tools and resources in online learning systems :: aquariums and cave diving .. note:: might as well be a request for proposal Objectives ------------ Self Directed Learning ======================== :term:`Autodidactism`: Self-Directed Learning * Time * Skills * Discipline * Rhetoric * :term:`Resources ` And tools that :term:`augment` learning in application to: * Theory * Knowledge * Wisdom Aquariums and Cave Diving ~~~~~~~~~~~~~~~~~~~~~~~~~ :: Aquariums and Cave Diving * Jacques Cousteau * Edutainment/Infotainment * Documentary :: Reality * Information Chunking * Market Study Confidence * Attention Retention Undergradate STEM Graduates ============================= "We need one million more :term:`STEM` trained:" * Qualified, Knowledgeable Consumers * Efficient, Sustainable, Creative Producers * Data Science Influencers Background ------------ Learning Resource Timeline ============================ :: Printing Newspaper Press Telegraph Magazines Radio Television Internet: URLs Wireless Internet Mobile Internet Tablets Wireless Stone Papyrus Copper Fiber BC CE 1800 1900 2000 2100 [TODO:cite][TODO:correct] Knowledge Economy Roles ========================= *Producer* * Creating * Synthesizing * Distilling * Adding Value *Consumer* * "Smart Consumer" * Searching for Value *Influencer* * Continually learning the market .. epigraph:: When are the dances? Yearly Knowledge/Data Graph ============================ :: Stream/stacked graph by source with rough yearly data transfer [TODO:cite] Challenges +++++++++++ * Room to Grow * Resource Efficacy * Cost/Return Curve * Creativity & Process Control * Tool Frustration -> Resistance to Change * Taking a step back Reaching People with Busy Schedules * Data * Charts * Analyses * Opportunities * URLS * Bookmarkable * Shareable * Referenceable * Archivable Resource Constraints ---------------------- Learning Materials ==================== Learning :term:`Resources` Course Artifacts and Components ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. epigraph:: "I want to download all of this as a zip file" * Syllabus * Lectures * Slides * Quizzes * Assignments / :term:`Activities ` * Expected Assignment Durations * Documents: :term:`PDF`, :term:`HTML` * Audio * Photo * Video * Books * Web Pages * Datasets * :term:`Linked Data` * Knowledge Triple Repositories * :term:`URLs ` * Notes * Questions * Answers Resources: Course Lifecycle ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. epigraph:: "Why do we do it this way?" **Answer** | We used to ___________, but __________, | so we tried __________, but __________, | and now ______________________________, | so what we're looking to do is | ______________________________________ | on the :term:`web` | | with :term:`revision controls ` :: Topics -> Requirements -> Research -> Expertise (Reivew) -> Chunking Wisdom -> Formatting -> Publishing Publishing: PDF Books Slides Tapes CDs WebPages Knowledge Repositories Databases Employer Acceptance --------------------- Verification ============== Incentivization ----------------- Human Motivation ================= Why? ==== Learning Assessments ---------------------- Self Evaluation ================= Standard-Normal Testing ========================= Voting Choice Theory ====================== Essay Qualification & Quantification ====================================== Sharing Resources ------------------- Creating and Updating Resources ================================ What does it mean to produce a *hyperlinked* document? * Why HTTP? * Why HTML? * Why Javascript? Information Access Optimizations ================================= * *Table of Contents* * *Index*: Terminological Lexicon * `Glossary`: Compendium of Definitions * *Search* Bibliographic Citations ======================== Maintaining structured links to reference and documentation sources * Document title * Page Number * #URL Fragment * Attachment Revisions Sharing Data Resources ======================== .. epigraph:: *Neat*, **Awesome** Study, but * What is this :term:`named ` * How easily can our tools share data? * Where can I download the checksums? * How do I download it? * What do you want to do with it? * What concepts and keywords does it reference? * Which part of this should I translate? .. epigraph:: "One of them is 'Naming Things'" -- TODO Resources: Bookmarks ====================== * Bookmarks are great * Bookmarks are resources * I need to consolidate my bookmarks * I need to manage my bookmarks * I need a bookmark manager * I want a bookmark management system * I want to upload my bookmarks * And search them * And paste them to you * At opportune moments .. epigraph:: Check this out. Document Capturing Process ============================ .. epigraph:: Wait? What? You want to scan this? Awesome. *Artifacts* * Why tag things? * Why name them? * Why label them? Workflow: Sharing Documents as Email Attachments ================================================== I want to email a document that would be better if we were to revise collaboratively. Why would it be inefficient to email variously named and occasionally versioned versions of a document resource? When do we file this? Designing URIs for Resource Collections ========================================= .. epigraph:: What page number was that? If this was a web page, I could just __________? * Which page is it on? * What is the :term:`URL` ? * Why doesn't this :term:`PDF` :term:`Bookmark` include the document title? * This page does not include content mentioning these keywords. * Can I link to a document subsection with a :term:`URL Fragment`? * How should I organize course files for a zip archive? * How should I organize course files for packaging? * How do I watch/listen to course lectures on a phone, tablet, TV, mac, pc? * How can I adjust the font? * Where should the :term:`presentation` mix with the :term:`Content`? * "Data not available" * How do I search based on :term:`metadata`? * Can I facet the search query with certain criteria? * Can I share this link? Versioning Project Resources ============================== Managing a **Project** as a :term:`Resource` with versioned links to additional :term:`Resources` Comparing wikis and version control Wiki * Revision Trail: "History" * Talk Page: Commentary, Feedback Version Control * Revision Trail: "Commit Log" Interface Usability and Accessibility --------------------------------------- Interfaces for Online Learning ================================ .. epigraph:: "Really what I want is..." * Focused learning activities * search * animated * four-dimensional * through my phone/tablet Managing and encouraging feedback at scale Designing flexibly linked data models to support cool :term:`UIs `. Interface Criteria ====================== * Where is the table of contents? * What do ``Page Up`` and ``Page Down`` do? * What about ``Tab``? * Why do I have to **click** next and previous? * Can I ``Ctrl-F`` to search within the resource? * Can I tab through these? * What can I link to? * Can I link to a URL fragment in a new tab? * Can I scroll with the mouse wheel? Interface Questions ===================== * Can I download a list of my assignment due dates? * To my iCal * As a list of tasks with duration * As an RSS feed * What does it mean that a course is worth N credit hours? * How many hours a week is that? Separating Content and Presentation ==================================== .. epigraph:: Which page number is it on my device? :: ________________________ | ________________| | | _____________| | | | _________| | | | | ____| | | | | | | |_____|___|___|___|____| I want to review this course on my * Laptop * TV * Tablet * Phone * Screen Size * Bandwidth * External Media * USB Drive * SD Card * MicroSD Card **Web Standards** Cascading Style Sheets * Text Reflow * Fluid Layouts Privacy and Security -------------------- Privacy ========= .. epigraph:: "How do we verify this curriculum vitae?" Status Quo * Limited Records * Access Logs * Retention Policies Standards * FOAF (Friend of a Friend) * OAUTH API Controls * OpenID .. note:: *Health Photo Journal* Balancing Act * Personal student health information? * Privacy Controls for remotely hosted resources * Difficulties of data scrubbing Security ============ .. epigraph:: Which email is this linked to? Assurances Necessary for Measuring Learning * Confidentiality * Integrity * Availability Opportunities +++++++++++++++ Direct Returns ---------------- Teacher Salaries ================== Indirect Returns / Externalities ---------------------------------- Network Effects ================ Goodwill ========= Knowledge Economy =================== STEM Theory, Process, and Knowledge ==================================== Learning STEM *Theory*, *Process*, and *Knowledge* through applied data science. * **Linking things together** * Feedback and Collaboration * Communication Channels * Q&A Goal: Maximize Collaborative Output ==================================== Criteria for evaluating collaborative learning products Network Effects n^2 * Jointly Authored Pages * Information Access * Streaming [TODO:cite] Generalizing Educational Momentum =================================== * Stratified skills objectives * Measuring for * :term:`Ability` * :term:`Aptitude` * :term:`Proficiency` * Serial Order Effect Knowledge Graph ================== :term:`Ontologically ` related fields :term:`Graphs ` of :term:`Knowledge`, :term:`Skills`, :term:`Competencies` Overlaid onto a *knowledge graph* of :term:`resources ` and their :term:`artifacts ` Subgraphs * People * Citations * :term:`Learning Objects ` * :term:`Curriculum` :term:`Sequences` * Degree Requirements * Progress Flows Media * :term:`Documents ` * Photos * Recordings * Videos * :term:`URL` * :term:`Datasets ` Linking Between Things with URLs and Metadata =============================================== * Bibliography Lists: :term:`BibTeX`, :term:`APIs ` * :term:`Document` :term:`Repositories `: Document Identifiers * Document Authoring: naming URLs * :term:`Bookmarks `: Adding tags and attributes * :term:`Learning Objects ` * Utilizing :term:`Web Standards` Tools: Pushing for Better Calculators ====================================== .. epigraph:: "Where do I set the calculator?" Why is it that we would be interested in pushing for: * Better Personal Calculators * Computers, Notebooks, and Tablets Publishing, Storage, and Presentation ====================================== .. epigraph:: Where should I put my slides? *Answer* * The Shared Drive * Your USB drive * Your Cloud Drive * Cloud Presentation Services * Commenting Strategies ++++++++++++ .. epigraph:: "How do we make this better?" .. epigraph:: "There has to be a better way of doing this" Working with lots of things ============================= * I need to write this down * Can I just lay it all out? * Can we list it in a table? * Can I add columns? * Which columns can I add? * Which columns are already there? * Which columns should I add? * What did they call a ``Widget``? Channels --------- Publishing Static Documents ============================= Video ======= * Growth Metrics * Bandwidth minimzation * Broadband availability * Replicated hosting * Metadata API * Subtitles API * Referencability [TODO:cite] Q&A ======== .. epigraph:: "But they are sharing the answers!" Asking for answers. .. epigraph:: "You want to answer questions?" Q&A Web Sites ~~~~~~~~~~~~~~~ * http://stackoverflow.com * http://quora.com * :term:`askbot` Social Media ============= * Whiteboarding * Games with friends * Video, Audio, Text Chat * Linked Personal Profiles Implementations ----------------- OpenCourseWare =============== MOOC: OpenCourseware, Coursera, EdX ===================================== :term:`MOOCs `: Massive Open Online Course Foregoing the unused 80% of :term:`LMS` and :term:`LCMS` features for :term:`scalability` * http://opencourseware.mit.edu * http://coursera.edu * http://edx.edu * http://udacity TODO MOOC Online Course Features ============================= * Web Hosting * Video Hosting * Linking with readings * Optional Books * Relevant papers * Device/Browser Support: Mac, PC, Android, iOS Online Course Experience =========================== .. epigraph:: I was listening to Andrew Ng's 2012 Machine Learning course and glancing at the subtitles streaming over a wireless laptop, and thoroughly appreciated the ability to rewind. [TODO:cite] Software Programming: CodeCademy ================================== Math-based web game design =========================== University Online Offerings ============================ # TODO -> LCMS Learning Dashboard ==================== :: Annotated countour/heat maps * Activity/Objectives * Student/Objectives Charting Competencies ~~~~~~~~~~~~~~~~~~~~~~ * Signing Authority * :term:`Activity Metrics ` [TODO:cite] Authoring Tools ---------------- TODO Authoring Tool Features ========================= Standard Output Formats * :term:`HTML` * :term:`linking` * :term:`bookmarks ` * :term:`metadata` * :term:`PDF` * :term:`documents ` * :term:`SCORM` :term:`XML` * :term:`Zip` * :term:`archive ` * Mobile Support * What is the page number on my device? * How deep are these links? Format Support =============== * :term:`Artifacts` * :term:`Document` :term:`Authoring Tools` * :term:`Web Standards ` * :term:`Browser` standards benchmarks * :term:`SCORM` Sequences -> :term:`TinCan` * :term:`TinCan API ` * :term:`Activity Metrics ` Standards: Web =============== .. epigraph:: What is the :term:`link `? Links, URLs, and URIs ~~~~~~~~~~~~~~~~~~~~~~~~ Describing :term:`resources ` with :term:`URIs ` :: http:// example /pages/page ?query # contents scheme hostname path query fragment http://example.com HTTP ~~~~~ :term:`HTTP` :term:`request ` :term:`response ` HTML ~~~~~~ :term:`HTML` * Storage * Archival * Versioning :term:`Metadata`: Searching & Indexing * RDFa * Microdata * GIFT Web Video TODO:cite Standards: Education ===================== Means for :term:`linking` between :term:`learning objects ` :term:`SCORM` :term:`TinCan API` SCORM ~~~~~~~ :term:`SCORM` * Glossary Vocabulary Model TinCan API ~~~~~~~~~~ :term:`TinCan API ` :term:`Activity Metrics` * Verbs * Scores * Times TODO:cite USA ADL Standards: Markup Languages ============================ :term:`Markup Languages` * :term:`SGML` * :term:`XML` * :term:`HTML` * :term:`HTML5` .. code:: Standards Graph SGML -> HTML SGML -> XML SGML -> SCORM XML -> SCORM HTML -> PDF RST -> PDF RST -> Latex RST -> JSON TODO: dot rendering Standards: TinCan API ====================== Recording :term:`Activity Metrics ` into a :term:`LRS`. Web :term:`API` * :term:`JSON` * :term:`XML` JSON :: { TODO } TODO:cite Signing Authority ~~~~~~~~~~~~~~~~~~ .. note:: The subjectivity of activity pings SCORM in HTML5: TinCan Activities =================================== :term:`SCORM` containers + :term:`Web Hooks` + :term:`Activity Metrics` + :term:`TinCan API ` :term:`TinCan API `:: SUBJECT_X ACTION_VERB RESOURCE SCORE DURATION Lightweight Markup Languages ========================================= Simple Plaintext :term:`Markup Language` for generating Multiple Output Formats: * Books * Web Sites * Documentation Sets *Features* * Bold, Italic * Inter/Intra- document linking * Footnotes * Citations * Figures * Tool Chain * Language Portability * Web Editor Support * Syntax Feedback Loop Transformed between various :term:`Markup Languages ` at *build/compile* time: * :term:`ReStructuredText` * :term:`HTML` * :term:`PDF` * :term:`EPUB` * :term:`TXT` Stored in a changeset of a :term:`DVCS` repository. Organizing a Sphinx Documentation Project ========================================== Folder of files with: * an index manifest * intra-document links * citations * glossary terms The root index.html is expected to branch (and link) into the :term:`document` :term:`graph`. To write a paper, which may later be a book: * :term:`HTML` * :term:`PDF` * :term:`EPUB` * :term:`JSON` Examples: * http://docs.python.org * http://hgbook TODO * http://python-guide.org * http://scipy-lectures.github.com * http://readthedocs.org Knowledge Resource Criteria ============================ * Does it have :term:`permalinks `? * Is it possible to reference :term:`media repository` and external URL resources in an :term:`authored ` :term:`SCORM` course? * What is the best way to represent a sequence of graph constraints as rules? (:term:`RIF`?) * Can I :term:`bookmark` this part? Authoring: Sequencing Learning Objects ======================================== For & Against Task/Skill Dependency Models **Cost** / **Complexity** / **Waste** * Organic Model -> Choose your own adventure * Cost/Path Routing: :term:`Sequence ` :term:`Optimization ` Wisdom **UI** / **UX** * Browser * Game Console * PC Game * Virtual Learning Environments * MOOCs Learning Sequences and Curricula --------------------------------- Sequencing Exercise: Pen and Paper =================================== 1. Generate: Brainstorm 50-100 sheets of paper 2. Reduce: 3. Clarify: 4. Organize: 5. Evaluate: 6. Build Consensus .. topic: "How do we learn what faster? * Efficiently, sustainably * With less resources TODO:cite: Process: Six Patterns of Collaboration Curriculum Interfaces ======================= .. epigraph:: would be great if I could schedule sliding windows of content sequences with expected exercise durations. A Curriculum Sequence ===================== 1. Read **A1 Reading** Consume :term:`document` :term:`resource` 2. Watch **A1 Video: Lecture 1** Consume :term:`resource` 3. Answer **A1 Quiz Questions** Check for comprehension. 4. Apply **A1 Project** Apply and synthesize. *Comprehension testing*, *Peer-reviewed annotations* Sequencing Tagged Resources ============================ .. epigraph:: "Twist until it feels correct." :term:`Learning Objects` and :term:`Learning Resources` into :term:`sequences `. Paths of :term:`Learning Objects ` Paths build upon themselves Encoding domain wisdom into :term:`sequences ` Authoring: Generating Curricula Activity Graphs ================================================= As knowledge graph traversals that fit degree and resource constraints. Sequenced graph traversals with boundary-contextual transitions Process Component Competency Graph Curriculum/Degree Sequence Requirements ========================================= .. epigraph:: What is the path to the file? Describing learning areas * Goals * Modules * Assessments * Prerequisites as implied paths/sequences Describing **Learning Momentum** with stratified **skills objectives** Measuring for :term:`Ability`, :term:`Proficiency`, and :term:`Aptitude` URI-linked resources and reasonable concepts in a linked open data cloud. Modular interface specifications with prerequisite knowledge linked as part of a traversal through a greater knowledge graph. :term:`Graphs ` and subgraphs of :term:`Learning Resources ` with :term:`URIs ` according to domain-relevant :term:`ontologies `. Reviewing Curriculum Sequences =============================== .. epigraph:: Is there a book? Sharing Revisions and Annotations * Revisions: Corrections, Extensions * Notes/Comments * Feature presence and fitness ratings * Comparing Citations .. note:: :term:`ReStructuredText` + :term:`GIFT` + :term:`OEMBED` Authoring: Curricula Management ================================= So we have standardized curricula which can be delivered through multiple channels. * How do I add/modify this? * How do we share challenges & opportunities? * How can we compare similarities and differences? Distributed Revision Control * Peer Revision Control * Local Forks, Branches * Pull Requests, Patches Learning Metrics ================= .. epigraph:: "Is it the course or the student?" * Curriculum Goal Sets * :term:`Optmization ` * Conceptual Routing Algorithms Software R&D and Learning -------------------------- .. note:: clearly, what is being learned is that analysis of structured data interchange in regards to optimizing for outcomes Learning Comes from a diverse background .. note:: it would follow that software development learning best practices are inherent and implicit to best practices for software development process control **Process Wisdom** the software is the person is not the curriculum Project Based Learning ======================== .. note:: So, okay, well these assignments look great but we're going to work on developing projects so that we can focus on specialization and synthesis of TODO * How should we measure success? * Which feature scores correlate with success? * Learning Scientific, Creative and Collaborative Processes Augmenting Learning ===================== .. epigraph:: "Here's a library, knock yourself out" Simplest, least complex approach Accelerating and Augmenting Learning :ref:`Englebart 1964` Standard Project Documents ============================ * README: Project Goals, Objectives, URLs * TODO: Task Lists * CHANGELOG: Project Change Log Revision Control ================= * Commit changes to files * Commit Log * Manifest * Link to TODO/Issue/Ticket item numbers * ``working on #123: this, this, and this`` * ``working on #123`` * ``task:course/project/n: this, this, and this``` Open Source Software Development Community ============================================ Healthy Online Communities * Documentation: Sphinx/ReStructuredText * Issue and resolution tracking * Proposal Review Workflow * Learning Community * Wikis, Blogs * Books: Paper, Digital, Web * Distributed Version Control [TODO:cite] Version Control Workflow Development ===================================== :: 1. edit, edit, commit 2. edit, commit 3. todo, edit, commit 4. todo, edit, test, commit 5. todo, test, edit, test, commit 6. todo, test, edit, test, commit, tag 7. todo, branch, test, edit, test, commit, tag, push 8. todo, branch, test, edit, test, commit, tag, send patch Collaborative Review ===================== TODO Reviewboard ~~~~~~~~~~~~~ * Patches & Comments * Review & Approval Workflows * Changesets as versioned patch queues Compile a Course ================= * Choose :term:`Sequence ` Representation :term:`Standard` * Check/Verify Content Links * Flatten Metadata to Bibliography * Link References, Footnotes, Citations, Glossary Terms * Generate Sequence Manifest * Link :term:`Activities ` to a :term:`LRS` * Generate Indices * Template Packaging * Schedule Course Dates * Calendaring Continuous Regression Testing for Learning ============================================ * Testing Linked, :term:`namespaced ` :term:`components ` * Test Cases * Build & Test Metrics * Test *Coverage* Sequences =========== * Linear * Goal Objective * Path-Based Routing * Serious Games Spaced Repetitions ============================ :term:`Mnemosyne` :: spaced repetition chart Optimization: Machine Learning for Sequence Optimization ========================================================= Optimizing yields from :term:`activity` :term:`graphs ` and :term:`Activity Metrics` * Variance * Confidence * A/B Split Testing * Cost/Flow algorithms * Rotation, Mutation, Mutability * Logarithmic Logistic Crossover * Mutual Information Coefficient * Learning Perceptron Weights * Perceptron Graph Serialization * Vertex Messaging * Event Queues Optimization: A/B Testing ~~~~~~~~~~~~~~~~~~~~~~~~~~~ This document modification yielded this increase/decrease. :: TODO: Content Branch Crossover Optimization: Cost/Flow ~~~~~~~~~~~~~~~~~~~~~~~~ Cost flow calculation of a path toward subgraph objectives. :: TODO: a river Optimization: Receiver Operating Characteristics ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Learning Process Knowledge * Identifying Productive Personal Behaviors * Identifying Productive Organizational Behaviors .. note:: similar to optimizing for conversions :: TODO: ROC quadrants :: TODO: ROC Curve Optimization: Streamgraph Conversion Funnel ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ :: TODO:chart STEM Specialization General Education Undergrad Grad Doctorate stacked/stream graph Searching and Indexing ======================= * Index * Cluster * Archive * Share * Normalizing * Eventual Consistency * Document Checksums * Computed Attribute Indexing .. epigraph:: which part do I copy to the search service? Namespacing ============= TODO * Namespace: * URL: * Query: Finding and Disambiguating Concept & Instance Identifiers ========================================================= .. epigraph:: How do our fields link together? What do they call a _____ ? * *Concept*: ``Bookmark`` * *Instance*: ``bookmarks/{id}``:: { 'ID': ID, 'isA': Bookmark, 'url':URL, 'title': TITLE } * *User Instance*: ``bookmarks/{username}/{id}`` .. note:: Nodes and edges with activities whereupon potentiation potentiates with behaviors determined by namespaced attributes Collaboratively linked ontologies for augmenting sequence authors Cognitive Ontological Knowledge Graph * Concept Trees * Concept Vines * Namespace Prefixes * Typed Links/Edges * :term:`RDF` / :term:`OWL` / :term:`SPARQL` / :term:`JSON` Linked Open Data: Wikipedia and DBPedia ======================================== **Value** Shared, Multi-Lingual Concept Identifiers * Translate Terminological References * http://en.wikipedia.org/wiki/Wikipedia * http://jp.wikipedia.org/wiki/Wikipedia :: TODO: SPARQL SELECT query .. note:: Wikipedia is written in :term:`MediaWiki` syntax STEM Labs ---------- STEM Labs: Laboratory Based Learning ===================================== * Learning process knowledge * Team Collaboration * Experimental Design * Null Hypothesis testing * Drawing conclusions about correlation and causation STEM Labs: Data Science Laboratory =================================== Skills * Data Science * Sequence Modeling * Software Development * Process Modeling * Process Controls "Development Lab" of virtual :term:`services ` and :term:`resources `, per-course and/or per-student. * Objectives * Processes * Tools * Data :: Processes Theory Procedures Tools Knowledge Books Repeatability Spreadsheet Wisdom Libraries Notebook Metaheuristics TODO STEM Labs: Services =================== * Q&A * Apps Accounts * Web Hosting * Repository Hosting * Project Hosting * :term:`GitLib` * :term:`Fossil` * :term:`Trac` * :term:`Cloud` Service STEM Labs: Student API ======================= * Name * Courses * Skills * :term:`Activity Metrics` * Tasks / Activities / Implemented Services * Completions / Activity Logs * :term:`Badges` * Implemented Services * Grid Resources * Capabilities :term:`Access Controls` * Virtual Server :term:`URLs ` * :term:`Resources` * :term:`Document` :term:`resources ` * Project :term:`URLs ` * Structured Bibliographies * Portfolio / Curriculum Vitae STEM Labs: Student Assignment API ================================== .. epigraph:: What is a continuous learning ensemble? :term:`Activity` Objectives: * Complete an :term:`ipython notebook` worksheet * Run functional tests * Store changes in a :term:`repository ` * Integrate the worksheet with an API interface for grading 1. Create a POST :term:`HTTP Request` to an :term:`API`. 2. :term:`API` returns :term:`HTTP Response` with evaluation .. epigraph:: "Make yours like mine." :: Code Repository Code Repository Local Workspace Activity Tests Books Lectures API <---------> Build Server Student Course Testing Components of a Learning Ensemble .. note:: Increasing test coverage. Repository Event Hooks .. code-block:: python def on_commit(repository): # check syntax # strip answers URL Schema:: http://hostname.edu/{coursename}/{courseunit}/{taskname}#{task_link} Grading Criteria: * Does it match tolerances? * Is it repeatable? STEM Labs: Setup Python Application Framework ============================================= Objective: Continuously test submitted problem/test solutions with a controlled build server that :term:`requests ` answers from a student-implemented :term:`API`. * Application Framework Scaffold/Skeleton * With a build script * And documented extension points Relevant Courses: * Software Development * Web Development * Agile Project Mangement STEM Labs: Python Tools ========================= Tools for Developing :term:`STEM` :term:`Python` Applications * :term:`ipython` notebook * visual charting * repeatable processes * procedural spreadsheets * testable spreadsheets * Science Libraries * :term:`scipy` * :term:`numpy` * :term:`pandas` * :term:`scikits` * :term:`statsmodels` * Version Control * :term:`Mercurial` * :term:`Bazaar` * Issue Tracking * :term:`Trac` * :term:`Python(X,Y)` TODO:cite STEM Labs: Cloud Services ========================= Primary Services * Deploy Applications * Perform Load Balancing * Allocate Identity Service Credentials * Allocate Grid/Cloud/Stack Resources * Alloccate IP Adresses * Allocate Service API Keys * Allocate Grid Credentials Configuration Management * Bootstrap Server * Freeze/Save/Snapshot Server * Generate new home directories STEM Labs: Open Learning Stacks ================================ * :term:`OpenCourseWare` * :term:`Open Stack` * :term:`Open Source` * :term:`Open Access` * :term:`Linked Open Data` STEM Labs: Media Repository ============================= Storing versioned media :term:`resources ` Resource Repository Standards * OAI * REST API * :term:`Metadata` Build a Bookstore API ~~~~~~~~~~~~~~~~~~~~~~~ * Citations, References * Books * Films API Lookup * Bookstores: AMZN, APPL, GOOG * Social Web: GoodReads, LibraryThing * WorldCat API Identifying Tools Gaps as Opportunities ---------------------------------------- # TODO -> Feature Requests Communicating Feature Requests =============================== Sample Templated Use Case:: As a _________ , when I ______________, it ________________, but it/I ________ _________________, which would save __________ . .. note:: Eliciting Value Criteria Matrices Achieving Feature Decision Consensus ====================================== * Feature Value Elicitation * Solution Evaluation * How important is this feature to you? 1-10 * How many _____ is this feature worth? * How many ______ do we have? Learning Content Management Systems ===================================== Examples of :term:`Learning Content Management Systems ` * Sakai * Moodle * Blackboard Someone has a LMS/LRS :term:`Feature Matrix` Rubrics and Feature Matrices ============================= Grading :term:`Rubric` :: :term:`Feature Matrix` Document Publishing Feature Comparison Matrix ================================================ A :term:`feature matrix` for comparing :term:`components` of a :term:`document` :term:`publshing` system * :term:`Authoring Tools` * :term:`Learning Content Management Systems ` :: Feature Choice-0 Choice-1 Choice-n Category1. .Feature A Interfaces .HTTP .HTML .Javascript .JSON .XML .CSV Hosting .Standard Web Hosting .Local Application .Hosted Application Code .Open Source .Proprietary Support .Agreement .Yearly .Monthly Gap: Freemind to ReStructuredText ================================= Objective: Transform between a :term:`ReStructuredText` document set and a :term:`Freemind` mind map Value: Generate document outlines from mindmaps :: MindMap to Paper If I am creating a linearly sequenced book, I am essentially creating a depth first search/walk of an ordered graph of document sections with hopefully compile-time checking for links and references hyperlinked within and between documents with markup. Gap: sphinxcontrib-courses =========================== * Language to describe questions, answers, and sources * Roles and directives for referencing Q&A with learning object resources * Check and cite links to learning resources * :term:`Metadata` :term:`attributes ` with :term:`URIs ` Docutils * Roles * Directives * Publishers Language to describe the course curricula * Processes * Content * Questions * Answers Q&A Authoring ~~~~~~~~~~~~~~ Syntax for expressing Questions and Answers in :term:`ReStructuredText` Re-:term:`sequencable` tests for comprehension:: 1,2,3,4 ; 4,3,2,1 ; 2,1,3,4 Similar to web commenting services, but with questions and various categories of answers * Q&A :term:`Authoring ` :term:`Markup Language` Objective: Embed tests for reading & skills comprehension intro a content authoring markup. * :term:`Link ` Q&A :term:`activities ` to a :term:`TinCan` :term:`LRS` and an :term:`LMS` with a :term:`Learning Dashboard` for identifying opportunities to improve. Allow for question/label randomization and :term:`optmization ` * If 85% answer correctly with sequence 0 and wording 1 * If 95% answer correctly with sequence 1 and wording 0 .. note:: Audience testing .. epigraph:: "But they are sharing the answers!" Branch Commit Preprocessing Hooks TODO:cite Gap: Per-Course Sidewiki ========================= * Per-course sidewiki * with scholarly overlays * and an answers tab, for teachers Process: Citations ==================== Tools: Managing Bibliographic Sources ========================================= How best should I reference source materials? * How should I link to a table? * Can we archive these links at compile time? * Would we draw the same conclusions? * Repeatability * DOI, ISBN, URL Publishing Research Metadata ============================== So, I have now prepared roughly 100 slides with pen and paper, and now need to lookup which references I browsed, bookmarked, and slept on. * Tagged Bookmarks (Per Browser) * Zotero References * Archived Resources * ISBN, DOI * URLs * Mendeley References * Course Syllabi * Course Readings * Research Journal Databases * OpenCyc Concept Identifiers * Wiki Resource Identifiers * Video URLs * Media Repositories That I would like to reference, and draw from * As footnotes * As links in blogs & wikis * As project and career relevant knowledge * As stable, permalink URLs Which textual citation serialization? * Zotero Styles [TODO:cite] Tools: Managing Bibliographic Sources ======================================= :: Artifacts -> Repository Metadata -> Citation Knowledge Graph Groups -> Citation Knowledge Graph Bookmarks Bookmarklet API Storing Media Logical Filesystem Naming Interfaces: HTTP GET/PUT/POST, WebDAV, API, JSON, XML RDFa [TODO:cite] Gap: Managing Structured Citations ====================================== Preprocessing and Serializing Structured Data in ReStructuredText Data: * Journals extract and compile bibliography citations in various formats. * Academia demands citation tracking Use Cases * Sort, name, and link to structured citations * Reference and link to a collection of bibliographic references within :term:`ReStructuredText` documentation. * Extract structured data from abstract and fulltext :term:`HTML` pages in various databases aggregate and feed journals * Store research snapshots and research logs * Store local cache of bibliographical references and citations that can be synchronized, read from, and shared with groups. * Create a footnote with links to more information * Create a Zotero Object in a :term:`Zotero` Repository * Drag and drop a ReStructuredText Citation selection from :term:`Zotero` into a :term:`text editor`, as a bibliography list * Link to a global citation identifier in :term:`ReStructuredText` inline and within footnotes and citations * Link to :term:`DOI`, :term:`ISBN`, and :term:`WorldCat` * Sort and format bibliograpy entries for a given :term:`citation` format * Archive bibliographical reference repository snapshots in a * :term:`Curriculum Vitae` * :term:`Paper` * :term:`Blog` * :term:`Wiki` * :term:`Phone` * :term:`Tablet` Standards * :term:`Microdata` * :term:`Permalink ` * :term:`RDFa` Zotero ~~~~~~~~~~ * http://github.com/zotero * transactions * translation server * pyzotero collection API TODO:cite .. note:: :term:`Zotero` will export a resource collection to :term:`BibTeX` ReStructuredText Citations ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Managing structured citation references * :term:`ReStructuredText` Syntax * Citation * Reference * Footnote * :term:`sphinxcontrib-bibtex` * Reference :term:`BibTeX` citations in :term:`Sphinx`-flavored :term:`ReStructuredText` * TODO: .. pypi: sphinxcontrib-bibtex Convenient globally non-unique hashed identifiers. Maintaining Bibliographic citations with BibTeX Managing citations as structured data with a plain text lightweight markup format. Interface .. code-block:: restructuredtext .. reference a citation from sphinx .. bib_identifier = {user}/{collection}/{docid} .. {group}/{collection}/{docid} :bibref:`bibliographical reference ` .. format(get_metadata(id) for id in bib_identifiers) .. bibligraphy:: :format: :sources: [ Reference Collection URLS ] :namespaces: [ Reference Collection Namespaces ] .. note:: :pypi:`sphinxcontrib-bibtex` solves for part of these requirements .. note:: Footnote :term:`naming` simplifies reference lookup. [TODO:cite] Gap: Sphinx Widont ==================== Jinja2 Typography extensions Gap: TinCan Server Python Reference Implementation ================================================== Objective: Record structured data from event-based :term:`Web Hooks` * :term:`Python` * :term:`WSGI` * Store, verify, and forward :term:`upstream ` :term:`activity metrics ` * Design Q&A Quiz :term:`UI` * Draw heat map Python API Tools * :pypi:`Cornice` * :pypi:`Tasty` Javascript Activity Metrics * TODO TODO:code Gap: Security: Student API Access Control ========================================== How do I share this :term:`API` with a limited set of people? :term:`Access Control` * Reverse Proxy * :term:`API Token` * :term:`OAUTH` Gap: ReStructuredText Outlines and S5 Presentations ===================================================== Chunking for Presentation and Delivery Point outlines which map into *slides* of a *document* in *serial order* containing *references* to sources of information regarding the *contextual subject* being discussed. Slides have a *next* and *previous* and can follow a *question* & *answer* format .. note:: presentation timing with sliding windows Gap: Sphinx Glossary Thesarus ================================= Linking words together. .. TODO:: Categories License +++++++++ .. include:: COPYING.rst