From b065f7f8cc0fa98c10bdda5aad11444dbb3b5996 Mon Sep 17 00:00:00 2001 From: spearce Date: Tue, 10 Dec 2013 17:01:33 -0500 Subject: [PATCH 1/6] Draft of LTI documentation First attempt at writing LTI documentation. Several questions for tech reviewers. --- .../source/Images/LTI_policy_key.gif | Bin 0 -> 5585 bytes .../source/advanced_problems.rst | 118 +++++++++- .../source/create_html_component.rst | 4 +- docs/course_authors/source/create_lti.rst | 203 ++++++++++++------ .../source/specialized_problems.rst | 1 + 5 files changed, 257 insertions(+), 69 deletions(-) create mode 100644 docs/course_authors/source/Images/LTI_policy_key.gif diff --git a/docs/course_authors/source/Images/LTI_policy_key.gif b/docs/course_authors/source/Images/LTI_policy_key.gif new file mode 100644 index 0000000000000000000000000000000000000000..e485fc388859ab80dc119b84446e0a74d856bda1 GIT binary patch literal 5585 zcmaJ>dpuNI``@$8&3%;It3gMU7=_$KzF3Rn_-!Ns0M|X>pU&yrIvt0^#b4VD(i; zE$wFJ+#-KzX({hv-^|R+z>DD^QqIuOkZ_KBIWpu~&kH`E|MmSdfk5zSu$fs(yK(;! z^;XU7!ZL4usWva+c`<%fF#qAhhxPUK-?<+}>q`Q`>gwA1)YKG<#hRNL=ko;%3ky?U zr~CT)hI`pvU0u`D(@QI>E6cN!LpR>Ne#T$;HX~S{Us_%gi9Rg|g(A@~hr7JAFe_Le ze*H=$5`JCeuL<~LqeC24+St@A_w(23nX&n~+2P^0v&-M6K7UwUU4HY9`)z7sZb`7V zw)S=U`?7F-RwSBRS{r@&UMS!%3j}j~!P4Bq(!%`8%F5!>GH+%&gM1+-?&8AY^4j|P z@`~{L694Sjql7S8tCAF zy&A_%Tre&K+rXe;hnR@KBQb|O{A14eTLftA--os$VM(Ec&_JReniP6AED}rFtKkTYsJqE^D6H~0A8Tvm%V?!+>;1t%~&i+4I8>_tTHnCJ z!r}*qq2Znlk3EqW!iavPJzeka4v6ZdLtMEdU(LJ5D< zhDGZAnU0=+c&I+fkDza$hxw7xUyd#=|G#T!=-=LvMEAh|#`}-NkscQaf%@)&k>Tef z`~x@KHGfDEu(lC_e#GzykMQubf1RRRP&hF>GANvYwmo8s)^_pp4-Wfb(D@VL;(~Py zizNDm`3E}M?bX=e&Vs2rCm+El9HTsIgy$`AzzBW7#ACJffOBeo){T%ju0LediG36aM0;f zfdT#}{qVn@IPUA??d5sw=r0~e+z-3C9&&O1*~!u2p#1?mTN`WK{(XC`EU^~mW~L^_ zMur9$eZ4)pyLahm@6`Hfho*))di%DmYN{&AN{R|wIR1Aaw zfcgp)_%U>Uynb|S03jk1Fx14$Ny#Z!Qm>|6yMBX~elsKUR#tY-?cBUOckkuX%%h8n zOG?YiD=Mq1Yib|R>*^miG&VhIZecK6AGbZJzNCXuxYXIz-P7CGKk)pw!52d>U%h_w zcKF>0XY~Dtjeb1#+r^G&pC%?Z`tQuQ@4VT$nLnP+FY{M6+W*?R=+e|(F$a19n~L1L z>y;Lvup=3z>2wEKtN!e&l2OPg|2K`U8)(~9HH!hwo(%0Hm2p84C4Jc#{~@ED4@(E~ z%qtqLjvh?Qk+sVl;2NFkG?KWuo;FE~997DX;_vumR3vkG=W}i7nh{#ZwaBI8=BTop zQ^G^%q@~G@GQ`HAh(@||UYv#xW8JU3Di}N92=2fS&!r1aYkSrWEexCYo$AlWo_{>7 z^ii=VqtRC67Ao0cEh}NFN4)z&Jpn0p-gxtg-HVv9w-P;3bak|~vXld{I%o*utPGPY zw?b!}l)d&UfX=J)zn=hyXw;(+xN({Mo#upA@>Z9Fw_)N?kLFF9u)DkE6dWkj#O`}r z^ijUQUr%7C=N%7bc(W4cltf~P33-t zSIcJUfM~NJ8E=m|)XOF-YrxS7!8T+xTMgpY14n}0AGcf&n6g!X;@b~*A{%->QUICE za}@Ej7_^PJLMDlvVn^~z06^%uL~*58bT;x-w_H2Y#n;W|b}teCD^gV(zf(dh1>XV2 z&H+1>O>-#F8z)xNe^tGD$S<*Qi>^ATrWtUBvT4j~*bYua!6$2Ht&pWiaXyL#;^;h1 zxH@ZA0To0hv+u)J&y9g+wy^>DCWk@$D^IqbgFWbeg*c(==rM&rN}k2~LpKG@QtGy3 zTI1Y~>oOpaZOzTruu?B^Cb*`JI)#kTuUv^Q!xX@ap3~CR; zwv&vPePQalgf0mp`HHoi6FohbZMQm}tmHU+I{EHY?nfPn`=A^JkSwSCg3wa*YX=Wc zp9zF2DOr4lhoT1)i zsM`Lc++s1G!+Qi~0l`P<2AcyY2gIVt)^@+RPRu@)bbSh}$Xk^t*vp?sS=-j)u{a2T zbaMd>@e@3o?{O1{L7$Tzg}%JP{V%ND_oKic~#MUCazwj7B(i+o;UZ zQk;u56nnbuv2*Fk)esqZevTr6do!oMSj()Z=TOX?D5F5CMEjs)uY2xXX1R08u46sD zM?>adwd#^!7!Q;lnagVKFVTzc={q5q%VtTHVv;NREMMVaiW{2 z90>8A&mHbBHGR}G5Ee6^$CWBG?{a(|VM>-!RI-@>Z8irgJ;XSsm05kcVk;2<-0t(# z+M)%J;|25ifOI(y;WU__vQU6@DYsGV9ZbS56r!$`+wGJfi@W(DnQF zw2s5f71zLtjC^^Q3a4YeLs^W463jInTn*tx+BT|g=V#mF)9o+s2^Pw5(v@z>POt8( zES5XCRJuCmI{Qz&l=vy7(xc4jb*1-WrKf11^5~=9*R?T=Re0$t&n~Ao^|_1HKNaZM zn}o;)5{YmJudBXaoZd1<7HdfZRVS8v-?j-B9}s6)d-DW{i|as5ic9rL#lGQA>{1=A zCIk}F`-X!4RC5kieafuw-Se0?4-@tT8)jJ~f;4VJxl2vRvA&TvjHO2UwVJc1f98yg zEHyO`)PzO%aX#F{*PnSjX|L}?-RH(_?sln-$nF~*$1b-FUaKXR{rrAP@0b*I;0r2= zmn2SFW^$z;kh*^UFqgaBI^psl=561HCC2h&-n9pDUw-~wTnf)LHA&LFYWZG<$Y#7; z!y$m`QJEA<3rYz?QFP|Y2D~liY-Nc^zjHycR*P_H z0?LbHd|dJ3G-8XCC!G9k6Uu|YMewb~1hdqtU+pPgKHfc!rY!0~=6k)^cYQ}O=5!-)pTn!0Q_!W@DG@r4;{f|23pO-+vmX2N2H9Inix<}R0S5qZMVi9=?L zNR|B&JojD0H7I-#qV~L=tYVH9hnKTacL)jyH8#>7_w%+vZZ;G{feE!( zTRgam<{o;o3ktTfM{fZ#9v^ibg4l8j9Z9-Y1qh)j1)Azcg*W3Q6iI5TtN1MZ@xpOM zR!8gP!2CVo>KB|WW6%;0Xc~Ln<_y?0U3M!{u;NJXc8F@wEJzfa{s^c$M5%GfknK{q z_jp<6aMz)w`n!P~o znOD#^RMBXu(YhLwa}gSEZbkG2_$~VA{ZOQ_K!&_6I$SZy}y_5hYOw6aWbZAU$ws*dX+R+gUGGf(04w@JV$3%_FMSFm)fF zic?ConV_O*7lj8PzbnQc*MMYvf+%4S@nqw8y8ch#8A&o}U^e6wPHbEw7JYLM#~pI} zsKr6<=5t)l+lt`%d9B!pcmp&*Km+@@h@S};mQR{V^2|edJKq_C&RmGn5y(0sA<;7> zNgJ+*Nm#Li?Zzi`>=dIv0&LJ?HOYvcC76K{;u#!Ti-5AT;kHVt_svs_JyT1&sTc5x z=TAv({o~?32&B{9EU`YCngBVB)Q+G-PjSU$GcGG`hT3L`xnk6f-ioy+LA-fd5||V~ z8&ITcrfUK|G>u0&;JD#_dMWTG0pjQe4<(p65TLFFA~9*aS%f((Ip_M6QhX}X&z76g zk(?m?GRBLS&;_T;(O|WTmyaV-%lJ0{Wg2KfdzqaYS$Z++*~ODQVEZ8LAYq5q<_n4u z(Yib}Niux1%}<1}tFAZGQy&_g!cgd?=@LNDa&&SCN$)s9OWo@xss*4LreENz-iTC} z99ztEuZba=reC`*9t24Hv|G>8V(!9XYd0RtZN7#Y+7VC#oZ zxzIDVle7EZ-Fd!pXHfa>P|uxs09J9#)0UQbTqj+P4)duHJ5Phz5r9J|IG%p%cmee7 zn3yat>)Xmbo^t-2MgD?U{_G_9`1Y?z3;**Mviq+D#}i=3cmSM!dKVckRRM|#AhAhs zrcME=0)*p%%%i~%j|Rh0h!WFF;%LloLBMgKP+q05BrBU-TF`jm{w^MnpLHK105YSX z>lSy7y^BnzL?Le+6VfKY-NQwQ;aQck2yB_D_uaQG z&bwJf?kWfg0c1}>i5?k#4p;2&U7i$Eo|0Rh$|z4uEkB1ZH5@-`;+D7ByCN&5A}6;Z zmr-$Nq~e~SqClnceriROQ^LE71ozxx-^$8sBbBv+O1er_eN1^^3{7~T5X`M&FsfQd zs@eoqES2hZZ1q#`>dxM(*SEn^2Dpn>{9I5ys8Tb8t$F2L^CqTdIJahmQ8PMH^FdI< zRT0&WO;zs#D!ygWh*zq*7`4+QwciA_yxi)()WRa~2TL&z__+@Rj0dYD57q?_fUk)0 z-lz!yV(YV@T{OA`lP<-f%LwTx)w)fVb@D!S3bA!kK9wVl;DQ8wo3IY8TCZVQzr&|K z$CNJAsX$(>)8*9b3F|Sc59b(Cb~u;|7okUch-E&s;ym0Ze27zRu(52g^J%b;ZE(nI zaAGz%a~ci_8)!-O=D&z(c{Lu5ZS>4*^kz2tavDzv8}X`5zIjDgyX#KIHU;H1g)p1W za+<<~O$60P5od0?GgIL{VzUsb80Momj)XEDQF~4*4kxDQ)|?dEoRZg^$`m!Hahk6S zn`x>oH!WK-eOj_&TXOPRa+xhDmX7JzEwMDneM?5M52G}eQJ%-BWHPEbj9MXsewCra zm2#&5O|i`8JSKz5Y~?W9giMxdYrAFZQ=it(*w*g6)?Q|7e=IXMU8+RvShMNlS3Zy5 zaC{SQ*^H>FMlm0M5I)v~*l;b|KJS(r^J$yNYm*szJjH4I_Eq+aux-xriIG9}LhKVh zQ)V{r$tvfG^wYL=RTii#Ewp68&$1TDKz<`jYLq3j%0j8JH(9aeec1|eY^71wNjiwZ zKy`R*v|77{Rr?O#cCEN}?K|zeTHAF;+x1r4F=`!#RvpH^s1DP(4)Z%5*wzm1R!|v* H1T6mrKJqUG literal 0 HcmV?d00001 diff --git a/docs/course_authors/source/advanced_problems.rst b/docs/course_authors/source/advanced_problems.rst index 0095e1415d..f327ce0444 100644 --- a/docs/course_authors/source/advanced_problems.rst +++ b/docs/course_authors/source/advanced_problems.rst @@ -17,10 +17,10 @@ templates for these problems, but the problems open directly in the create. These problems can be any type. - :ref:`Drag and Drop` Drag and drop problems require students to drag text or objects to a specific location on an image. -- :ref:`JavaScript Input` JavaScript input problems allow you to incorporate - problem types that you've created in HTML into Studio via an IFrame. - :ref:`Image Mapped Input` Image mapped input problems require students to click a specific location on an image. +- :ref:`JavaScript Input` JavaScript input problems allow you to incorporate + problem types that you've created in HTML into Studio via an IFrame. - :ref:`Math Expression Input` Math expression input problems require students to enter a mathematical expression as text, such as e=m\*c^2. @@ -136,6 +136,120 @@ To create a image mapped input problem: #. In the component editor, replace the example code with your own code. #. Click **Save**. +.. _JavaScript Input: + +JavaScript Input +---------------- + +The JavaScript Input problem type allows you to create your own learning tool +using HTML and other standard Internet languages and then add the tool directly +into Studio. When you use this problem type, Studio embeds your tool in an +IFrame so that your students can interact with it in the LMS. You can grade +your students' work using JavaScript and some basic Python, and the grading +is integrated into the edX grading system. + +This problem type doesn't appear in the menu of advanced problems in Studio. To +create a JavaScript input problem type, you'll create a blank advanced problem, +and then enter your code into the component editor. + +.. image:: /Images/JavaScriptInputExample.gif + +Create a JavaScript Input Problem +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. Create your JavaScript application, and then upload all files associated with + that application to the **Files & Uploads** page. +#. In the unit where you want to create the problem, click **Problem** + under **Add New Component**, and then click the **Advanced** tab. +#. Click **Blank Advanced Problem**. +#. In the component that appears, click **Edit**. +#. Click the **Settings** tab. +#. Set **Maximum Attempts** to a number larger than zero. +#. In the component editor, enter your code. +#. Click **Save**. + +To re-create the example problem above, follow these steps. + +#. Go to :ref:`Appendix F` and use the code samples to create the following files: + + - webGLDemo.html + - webGLDemo.js + - webGLDemo.css + - three.min.js + +#. On the **Files & Uploads** page, upload the four files you just created. +#. Create a new blank advanced problem component. +#. On the **Settings** tab, set **Maximum Attempts** to a number larger than + zero. +#. In the problem component editor, paste the code below. +#. Click **Save.** + + + +JavaScript Input Problem Code +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +:: + + + In the image below, click the cone. + + + + + + + + +.. notes:: When you create a JavaScript Input problem, keep the following in mind. + + - The webGLDemo.js file defines the three JavaScript functions (**WebGLDemo.getGrade**, + **WebGLDemo.getState**, and **WebGLDemo.setState**). + + - The JavaScript input problem code uses **WebGLDemo.getGrade**, **WebGLDemo.getState**, + and **WebGLDemo.setState** to grade, save, or restore a problem. These functions must + be global in scope. + + - **WebGLDemo.getState** and **WebGLDemo.setState** are optional. You only have to define + these functions if you want to conserve the state of the problem. + + - **Width** and **height** represent the dimensions of the IFrame that holds the + application. + + - When the problem opens, the cone and the cube are both blue, or "unselected." When + you click either shape once, the shape becomes yellow, or "selected." To unselect + the shape, click it again. Continue clicking the shape to select and unselect it. + + - The response is graded as correct if the cone is selected (yellow) when the user + clicks **Check**. + + - Clicking **Check** or **Save** registers the problem's current state. + .. _Math Expression Input: Math Expression Input diff --git a/docs/course_authors/source/create_html_component.rst b/docs/course_authors/source/create_html_component.rst index 7b01b26e7f..246bde267c 100644 --- a/docs/course_authors/source/create_html_component.rst +++ b/docs/course_authors/source/create_html_component.rst @@ -30,8 +30,8 @@ See the following topics: Create an HTML Component ***************************** -To create a new HTML component in an existing Unit, ensure the Unit is Private. -For more information on Public and Private Units, see :ref:`Public and Private Units`. +To create a new HTML component in an existing unit, ensure the unit is private. +For more information on public and private units, see :ref:`Public and Private Units`. #. Under **Add New Component**, click the **html** icon. diff --git a/docs/course_authors/source/create_lti.rst b/docs/course_authors/source/create_lti.rst index 00ccb71c67..300be6b12d 100644 --- a/docs/course_authors/source/create_lti.rst +++ b/docs/course_authors/source/create_lti.rst @@ -1,97 +1,170 @@ -********************** -Create a LTI Component -********************** +.. _Working with LTI Components: -Description -=========== +Working with LTI Components +============================ -The LTI XModule is based on the `IMS Global Learning Tools Interoperability `_ Version 1.1.1 specifications. +Overview +--------- -Enabling LTI -============ +You may have a digital copy of your textbook that uses a format other than PDF. If so, you +can add that textbook to Studio by using a Learning Tools Interoperability (LTI) XModule (**SP: OK +to say "component" instead of "XModule"? Our docs haven't talked about +XModules yet, so users may not know what they are.**). +The LTI XModule is based on the +`IMS Global Learning Tools Interoperability `_ +version 1.1.1 specifications. -It is not available from the list of general components. To turn it on, add -"lti" to the "advanced_modules" key on the Advanced Settings page. +You can use an LTI component in two ways. -The module supports 2 modes of operation. +- You can show external LTI content. This content is displayed only. +- You can show LTI content that will be graded by an external provider. -1. Simple display of external LTI content -2. Display of LTI content that will be graded by external provider +Before you create an LTI component from an external LTI provider in a unit, you must +have the following information so that you can register that provider. -In both cases, before an LTI component from an external provider can be -included in a unit, the following pieces of information must be known/decided -upon: +- The **LTI ID**. This value is an internal string that specifies the external LTI + provider that you want to add to the course. (**SP: How does the user obtain this ID? + Does it have to be a certain length?**) + + The LTI ID can contain uppercase and lowercase alphanumeric characters, + as well as underscore characters (_). For example, your LTI ID may be (**SP: Need + example**). -**LTI id** [string] - Internal string representing the external LTI provider. Can contain multi- - case alphanumeric characters, and underscore. +- The **client key**. This value is a string that is used for OAuth authentication. + You can obtain this value from the external LTI provider. (**SP: What is OAuth + authentication? Do end users need to know what it is, or can we just say "that + Studio uses to verify that the LTI provider is safe" [or similar]? Does the key have to + have a specific number of characters? Are all types of characters allowed?**) For + example, your client key may be (**SP: Need example**). -**Client key** [string] - Used for OAuth authentication. Issued by external LTI provider. +- The **client secret**. This value is a string that is used for OAuth authentication. + You can obtain this value from the external LTI provider. (**Does the key have to + have a specific number of characters? Are all types of characters allowed?** For + example, your client key may be (**SP: Need example**). -**Client secret** [string] - Used for OAuth authentication. Issued by external LTI provider. -LTI id is necessary to differentiate between multiple available external LTI -providers that are added to an edX course. +Create an LTI Component +----------------------- -The three fields above must be entered in "lti_passports" field in the format:: +Creating an LTI component in your course has three steps. + +#. Add LTI to the **advanced_modules** policy key. +#. Register the LTI provider. +#. Create the LTI component in an individual unit. - [ - "{lti_id}:{client_key}:{client_secret}" - ] +Add LTI to the Advanced Modules Policy Key +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#. On the **Settings** menu, click **Advanced Settings**. -Multiple external LTI providers are separated by commas:: +#. On the **Advanced Settings** page, locate the **Manual Policy + Definition** section, and then locate the **advanced_modules** + policy key (this key is at the top of the list). - [ - "{lti_id_1}:{client_key_1}:{client_secret_1}", - "{lti_id_2}:{client_key_2}:{client_secret_2}", - "{lti_id_3}:{client_key_3}:{client_secret_3}" - ] + .. image:: Images/AdvancedModulesEmpty.gif -Adding LTI to a unit -==================== +#. Under **Policy Value**, place your cursor between the brackets, and + then enter **"lti"**. Make sure to include the quotation marks, + but not the period. + + .. image:: Images/LTI_Policy_Key.gif -After LTI has been enabled, and an external provider has been registered, an -instance of it can be added to a unit. + **Note** *If the **Policy Value** field already contains text, place your cursor directly after the + closing quotation mark for the final item, and then enter a comma followed by **"lti"** (make sure that you + include the quotation marks).* -LTI will be available from the Advanced Component category. After adding an LTI -component to a unit, it can be configured by Editing it's settings (the Edit -dialog). The following settings are available: +#. At the bottom of the page, click **Save Changes**. -**Display Name** [string] - Title of the new LTI component instance + The page refreshes automatically. At the top of the page, you see a + notification that your changes have been saved. -**custom_parameters** [string] - With the "+ Add" button, multiple custom parameters can be +Register the External LTI Provider +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To regiser the external LTI provider, you'll add the LIT ID, the client key, and +the client secret in the **lti_passports** policy key. + +#. On the **Advanced Settings** page, locate the **lti_passports** + policy key. + +#. Under **Policy Value**, place your cursor between the brackets, and + then enter the LTI ID, client key, and client secret in the following format. + + "{lti_id}:{client_key}:{client_secret}" + + For example, the value in the lti_passports field may be the following. + + "(**SP: Need an example.**)" + + If you have multiple LTI providers, separate the values with a comma. + + :: + + "{lti_id_1}:{client_key_1}:{client_secret_1}", + "{lti_id_2}:{client_key_2}:{client_secret_2}", + "{lti_id_3}:{client_key_3}:{client_secret_3}" + +#. At the bottom of the page, click **Save Changes**. + + The page refreshes automatically. At the top of the page, you see a + notification that your changes have been saved. + +Add the LTI Component to a Unit +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +#. In the unit where you want to create the problem, click **Advanced** + under **Add New Component**. +#. In the list of problem types, click **LTI**. +#. In the component that appears, click **Edit**. +#. In the component editor, set the options that you want. +#. Click **Save**. + +(**SP: It would be great to clean up the text of the UI for this component. I'm happy +to suggest text.**) + +.. list-table:: + :widths: 10 80 + :header-rows: 1 + +* - **Display Name** + - Specifies the name of the problem. + +* - **custom_parameters** [string] + - With the "+ Add" button, multiple custom parameters can be added. Basically, each individual external LTI provider can have a separate format custom parameters. For example:: key=value + + (**SP: I'm not clear on what these are. What would a custom parameter be used for? + Can we provide a specific example?**) -**graded** [boolean] - Whether or not the grade for this particular LTI instance problem will be - counted towards student's total grade. +* - **graded** + - Indicates whether the grade for the problem counts towards student's total grade. By + default, this value is set to **False**. -**launch_url** [string] - If `rgaded` above is set to `true`, then this must be - the URL that will be passed to the external LTI provider for it to respond with - a grade. +* - **has_score** + - Specifies whether the problem has a numerical score. By default, this value + is set to **False**. -**lti_id** [string] - Internal string representing the external LTI provider that - will be used to display content. The same as was entered on the Advanced - Settings page. +* - **launch_url** + - Lists the URL that Studio sends to the external LTI provider so that the provider + can send back students' grades. This setting is only used if **graded** is set to + **True**. -**open_in_a_new_page** [boolean] - If set to `true`, a link will be present for the student - to click. When the link is clicked, a new window will open with the external - LTI content. If set to `false`, the external LTI content will be loaded in the - page in an iframe. +* - **lti_id** + - Specifies the LTI ID for the external LTI provider. This value must be one of the + LTI IDs that you entered on the **Advanced Settings** page. -**weight** [float] - If the problem will be graded by an external LTI provider, +* - **open_in_a_new_page** [boolean] + - Indicates whether the problem opens in a new page. If you set this value to True, + the student clicks a link that opens the LTI content in a new window. If you set + this value to False, the LTI content opens in an IFrame in the current page. + +* - **weight** [float] + - If the problem will be graded by an external LTI provider, the raw grade will be in the range [0.0, 1.0]. In order to change this range, - set the `weight`. The grade that will be stored is calculated by the formula:: + set the `weight`. The grade that will be stored is calculated by the formula: stored_grade = raw_grade * weight + + (**SP: Raw grade means points earned?**) diff --git a/docs/course_authors/source/specialized_problems.rst b/docs/course_authors/source/specialized_problems.rst index ee0bdf4235..81f1ef6271 100644 --- a/docs/course_authors/source/specialized_problems.rst +++ b/docs/course_authors/source/specialized_problems.rst @@ -20,6 +20,7 @@ unit. - :ref:`Word Cloud` Word cloud problems show a colorful graphic of the words that students enter as responses to a prompt. +.. _ Add Advanced Component: **Add the Advanced Component to Your Course** From 8fcc9ec55ec063f4a8da366c6390acd759018446 Mon Sep 17 00:00:00 2001 From: spearce Date: Wed, 11 Dec 2013 13:41:47 -0500 Subject: [PATCH 2/6] Draft of LTI documentation Another draft of LTI documentation, including a table of options available in the Studio UI --- .../course_authors/source/common_problems.rst | 4 +- docs/course_authors/source/create_lti.rst | 159 ++++++++++-------- .../source/create_problem_component.rst | 2 + 3 files changed, 94 insertions(+), 71 deletions(-) diff --git a/docs/course_authors/source/common_problems.rst b/docs/course_authors/source/common_problems.rst index ce9b9592c1..e946ad1c6f 100644 --- a/docs/course_authors/source/common_problems.rst +++ b/docs/course_authors/source/common_problems.rst @@ -376,9 +376,9 @@ To make the response case sensitive, change the value of the **type** attribute -========================================= +============================================ Response Field Length of Text Input Problems -========================================= +============================================ By default, the response field for text input problems is 20 characters long. diff --git a/docs/course_authors/source/create_lti.rst b/docs/course_authors/source/create_lti.rst index 300be6b12d..7433addd25 100644 --- a/docs/course_authors/source/create_lti.rst +++ b/docs/course_authors/source/create_lti.rst @@ -6,8 +6,10 @@ Working with LTI Components Overview --------- -You may have a digital copy of your textbook that uses a format other than PDF. If so, you -can add that textbook to Studio by using a Learning Tools Interoperability (LTI) XModule (**SP: OK +You may have discovered or developed an external learning application that you want to add +to your online course. Or, you may have a digital copy of your textbook that uses +a format other than PDF. You can add external learning applications or +textbooks to Studio by using a Learning Tools Interoperability (LTI) XModule (**SP: OK to say "component" instead of "XModule"? Our docs haven't talked about XModules yet, so users may not know what they are.**). The LTI XModule is based on the @@ -16,8 +18,10 @@ version 1.1.1 specifications. You can use an LTI component in two ways. -- You can show external LTI content. This content is displayed only. -- You can show LTI content that will be graded by an external provider. +- You can add external LTI content that is displayed only, such as textbook + content that doesn't require a student response. +- You can add external LTI content that requires a student response. An + external provider will grade student responses. Before you create an LTI component from an external LTI provider in a unit, you must have the following information so that you can register that provider. @@ -27,20 +31,18 @@ have the following information so that you can register that provider. Does it have to be a certain length?**) The LTI ID can contain uppercase and lowercase alphanumeric characters, - as well as underscore characters (_). For example, your LTI ID may be (**SP: Need - example**). + as well as underscore characters (_). For example, your LTI ID may be (**SP: Can + you provide an example LTI ID?**). - The **client key**. This value is a string that is used for OAuth authentication. - You can obtain this value from the external LTI provider. (**SP: What is OAuth - authentication? Do end users need to know what it is, or can we just say "that - Studio uses to verify that the LTI provider is safe" [or similar]? Does the key have to + You can obtain this value from the external LTI provider. (**SP: Does the key have to have a specific number of characters? Are all types of characters allowed?**) For - example, your client key may be (**SP: Need example**). + example, your client key may be (**SP: Can you provide an example?**). - The **client secret**. This value is a string that is used for OAuth authentication. - You can obtain this value from the external LTI provider. (**Does the key have to + You can obtain this value from the external LTI provider. (SP: **Does the secret have to have a specific number of characters? Are all types of characters allowed?** For - example, your client key may be (**SP: Need example**). + example, your client key may be (**SP: Can you provide an example?**). Create an LTI Component @@ -52,8 +54,8 @@ Creating an LTI component in your course has three steps. #. Register the LTI provider. #. Create the LTI component in an individual unit. -Add LTI to the Advanced Modules Policy Key -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Step 1. Add LTI to the Advanced Modules Policy Key +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. On the **Settings** menu, click **Advanced Settings**. #. On the **Advanced Settings** page, locate the **Manual Policy @@ -68,23 +70,22 @@ Add LTI to the Advanced Modules Policy Key .. image:: Images/LTI_Policy_Key.gif - **Note** *If the **Policy Value** field already contains text, place your cursor directly after the + **Note** If the **Policy Value** field already contains text, place your cursor directly after the closing quotation mark for the final item, and then enter a comma followed by **"lti"** (make sure that you - include the quotation marks).* + include the quotation marks). #. At the bottom of the page, click **Save Changes**. The page refreshes automatically. At the top of the page, you see a notification that your changes have been saved. -Register the External LTI Provider -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Step 2. Register the External LTI Provider +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ To regiser the external LTI provider, you'll add the LIT ID, the client key, and the client secret in the **lti_passports** policy key. -#. On the **Advanced Settings** page, locate the **lti_passports** - policy key. +#. On the **Advanced Settings** page, locate the **lti_passports** policy key. #. Under **Policy Value**, place your cursor between the brackets, and then enter the LTI ID, client key, and client secret in the following format. @@ -93,7 +94,7 @@ the client secret in the **lti_passports** policy key. For example, the value in the lti_passports field may be the following. - "(**SP: Need an example.**)" + "(**SP: Can you provide an example?**)" If you have multiple LTI providers, separate the values with a comma. @@ -108,63 +109,83 @@ the client secret in the **lti_passports** policy key. The page refreshes automatically. At the top of the page, you see a notification that your changes have been saved. -Add the LTI Component to a Unit -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Step 3. Add the LTI Component to a Unit +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. In the unit where you want to create the problem, click **Advanced** under **Add New Component**. #. In the list of problem types, click **LTI**. #. In the component that appears, click **Edit**. -#. In the component editor, set the options that you want. +#. In the component editor, set the options that you want. See the table below + for a description of each option. #. Click **Save**. -(**SP: It would be great to clean up the text of the UI for this component. I'm happy -to suggest text.**) -.. list-table:: - :widths: 10 80 - :header-rows: 1 + .. list-table:: + :widths: 10 80 + :header-rows: 1 -* - **Display Name** - - Specifies the name of the problem. - -* - **custom_parameters** [string] - - With the "+ Add" button, multiple custom parameters can be - added. Basically, each individual external LTI provider can have a separate - format custom parameters. For example:: - - key=value + * - `Setting` + - Description + * - `Display Name` + - Specifies the name of the problem. This name appears above the problem and in + the course ribbon at the top of the page in the courseware. + * - `custom_parameters` [string] + - Enables you to add one or more custom parameters. Basically, + each individual external LTI provider can have a separate format custom + parameters. For example: + key=value + To add a custom parameter, click **Add**. + * - `graded` + - Indicates whether the grade for the problem counts towards student's total grade. By + default, this value is set to **False**. + * - `has_score` + - Specifies whether the problem has a numerical score. By default, this value + is set to **False**. (**SP: Is this accurate?**) + * - `launch_url` + - Lists the URL that Studio sends to the external LTI provider so that the provider + can send back students' grades. This setting is only used if **graded** is set to + **True**. (**SP: Is this accurate? How does the user find the launch URL?**) + * - `lti_id` + - Specifies the LTI ID for the external LTI provider. This value must be the same + LTI ID that you entered on the **Advanced Settings** page. + * - `open_in_a_new_page` + - Indicates whether the problem opens in a new page. If you set this value to **True**, + the student clicks a link that opens the LTI content in a new window. If you set + this value to **False**, the LTI content opens in an IFrame in the current page. + * - `weight` [float] + - If the problem will be graded by an external LTI provider, + the raw grade will be in the range [0.0, 1.0]. In order to change this range, + set the `weight`. The grade that will be stored is calculated by the formula: + stored_grade = raw_grade * weight + +.. note:: **SP: I'm not clear on what a custom parameter would be used for. Based on + the Studio UI, I'm guessing that one example would be the location of an + e-book, but I'm not sure what "vbid" would be. What else can custom parameters + be used for? Can we provide a specific example?** + + **The following is an attempt at text for this description. Can you let + me know if it's accurate?** + + Enables you to add one or more custom parameters. For + example, a custom parameter may include the location (**SP: Would it be + correct to say "URL" instead of "location"?**) of your e-book. + + Every custom parameter has a key and a value. You must add the key and + value in the following format. + + key=value - (**SP: I'm not clear on what these are. What would a custom parameter be used for? - Can we provide a specific example?**) + For example, a custom parameter that specifies the location of your e-book may + resemble the following. + + **(SP: Can you provide a specific example of a custom parameter?)** -* - **graded** - - Indicates whether the grade for the problem counts towards student's total grade. By - default, this value is set to **False**. -* - **has_score** - - Specifies whether the problem has a numerical score. By default, this value - is set to **False**. - -* - **launch_url** - - Lists the URL that Studio sends to the external LTI provider so that the provider - can send back students' grades. This setting is only used if **graded** is set to - **True**. - -* - **lti_id** - - Specifies the LTI ID for the external LTI provider. This value must be one of the - LTI IDs that you entered on the **Advanced Settings** page. - -* - **open_in_a_new_page** [boolean] - - Indicates whether the problem opens in a new page. If you set this value to True, - the student clicks a link that opens the LTI content in a new window. If you set - this value to False, the LTI content opens in an IFrame in the current page. - -* - **weight** [float] - - If the problem will be graded by an external LTI provider, - the raw grade will be in the range [0.0, 1.0]. In order to change this range, - set the `weight`. The grade that will be stored is calculated by the formula: - - stored_grade = raw_grade * weight - - (**SP: Raw grade means points earned?**) +.. note:: **SP: Would it be correct to say the following?** + + Specifies the number of points possible for the problem. By default, if + an external LTI provider grades the problem, the problem is worth 1 point, + and a student's score can be 0 or 1. + + For more information about problem weights and computing point scores, see :ref:`Problem Weight`. \ No newline at end of file diff --git a/docs/course_authors/source/create_problem_component.rst b/docs/course_authors/source/create_problem_component.rst index f1750875ab..6c9fbee69e 100644 --- a/docs/course_authors/source/create_problem_component.rst +++ b/docs/course_authors/source/create_problem_component.rst @@ -204,6 +204,8 @@ Maximum Attempts This setting specifies the number of times a student can try to answer the problem. By default, a student has an unlimited number of attempts. +.. _Problem Weight: + ============================== Problem Weight ============================== From 05dac89481eec62cac6f4e56955f658809fbb1c1 Mon Sep 17 00:00:00 2001 From: spearce Date: Thu, 12 Dec 2013 15:19:10 -0500 Subject: [PATCH 3/6] Glossary revisions Extensive revisions to glossary and minor changes to Appendix E and a couple of other files (adding links) --- docs/course_authors/source/appendices/e.rst | 4 + .../source/create_problem_component.rst | 2 + docs/course_authors/source/glossary.rst | 604 ++++++++++++++++++ .../source/open_response_assessment.rst | 2 + 4 files changed, 612 insertions(+) create mode 100644 docs/course_authors/source/glossary.rst diff --git a/docs/course_authors/source/appendices/e.rst b/docs/course_authors/source/appendices/e.rst index 0dd05fd7dd..40865ce64f 100644 --- a/docs/course_authors/source/appendices/e.rst +++ b/docs/course_authors/source/appendices/e.rst @@ -529,6 +529,7 @@ We urge usage of . See the opening paragraphs of the .. image:: ../Images/numericalresponse5.png +.. _Math Expression Syntax: Math Expression Syntax ---------------------- @@ -788,6 +789,7 @@ XML Attribute Information \newpage % +.. _Custom Response: Custom Response =============== @@ -916,6 +918,8 @@ Sample Problem: \newpage % +.. _Chemical Equation Response: + Chemical Equation Response ========================== diff --git a/docs/course_authors/source/create_problem_component.rst b/docs/course_authors/source/create_problem_component.rst index 6c9fbee69e..696baf9fd6 100644 --- a/docs/course_authors/source/create_problem_component.rst +++ b/docs/course_authors/source/create_problem_component.rst @@ -114,6 +114,8 @@ visible. - **Weight.** Different problems in a particular problem set may be given different weights. +.. _Studio UI: + ============================== The Studio User Interface ============================== diff --git a/docs/course_authors/source/glossary.rst b/docs/course_authors/source/glossary.rst new file mode 100644 index 0000000000..ffa3b941a2 --- /dev/null +++ b/docs/course_authors/source/glossary.rst @@ -0,0 +1,604 @@ +.. _Glossary: + +################################################### +Glossary +################################################### + +.. _A: + +**** +A +**** + +.. _About Page: + +**About Page** + +The course page that provides potential students with a course summary, prerequisites, a course video and image, +and important dates. + +See :ref:`Setting up a New Course` for more information. + +.. _Advanced Editor-g: + +**Advanced Editor** + +An XML-only editor in a Problem component that allows you to can create and edit any type of problem. For more information, see :ref:`Advanced Editor`. + + + + +.. _Assignment Type: + +**Assignment Type** + +The category of graded student work, such as homework, exams, and exercises. + +For more information, see :ref:`Establish a Grading Policy`. + +.. _C: + +**** +C +**** + + +.. _Certificate: + +**Certificate** + +A document issued to a registered student who successfully completes a course. +Not all edX courses offer certificates, and not all students register as certificate candidates. + + + +.. _Checkbox Problem: + +**Checkbox Problem** + +A problem that prompts the student to select one or more options from a list of possible answers. For more information, see :ref:`Checkbox`. + + +.. _Chemical Equation Response Problem: + +**Chemical Equation Response Problem** + +A problem that allows the student to enter chemical equations as answers. For +more information, see :ref:`Chemical Equation Response`. + + +.. _Circuit Schematic Builder Problem: + +**Circuit Schematic Builder Problem** + +A problem that allows the student to construct a schematic answer +(such as an electronics circuit) on an interactive grid. + +See :ref:`Circuit Schematic Builder` for more information. + + +.. _Cohort: + +**Cohort** + +A group of students that participate in the class together. A cohort can have forum discussions apart from the rest of the students. + + +.. _Component_g: + +**Component** + +The part of a unit that contains your actual course content. A unit can contain one or more components. +For more information, see :ref:`Components`. + + +.. _Course Accordion: + +**Course Accordion** + +The left-hand navigation bar in the courseware that shows the sections and subsections for a course. +The word “accordion” is intended to evoke the folding and unfolding of an accordion, +because when you click a section, the section expands to show subsections. + + +.. _Course Catalog: + +**Course Catalog** + +The page that lists all courses offered in the edX learning management system. + + + +.. _Course Handouts: + +**Course Handouts** + +Course handouts are files you make available to students in the Course Info page. + +See :ref:`Add Course Handouts` for more information. + + +.. _Course Info Page: + +**Course Info Page** + +The page that opens first every time students access your course. You can post announcements on the Course Info page. +The Course Handouts sidebar appears in the right pane of this page. + + +.. _Run: + +**Course Run** + +The term in which your course takes place. You set the course run when you create your course. +For more information, see :ref:`Create a New Course`. + +.. _Courseware: + + +**Courseware** +The page where students access the primary instructional materials for your course. +Sections, subsections, units and components are all accessed from the Courseware page. + + +.. _Custom Response Problem: + +**Custom Response Problem** + +A custom response problem evaluates text responses from students using an embedded Python script. These +problems are also called "write-your-own-grader" problems. +For more information, see :ref:`Custom Response` and :ref:`Write-Your-Own-Grader`. + +.. _D: + +**** +D +**** + +.. _Discussion Forum: + +**Discussion Forum** + +The page where students can communicate with peers and staff by +typing in questions and responding to each other. + +See :ref:`Working with Discussion Components` for more information. + + +.. _Discussion Component: + +**Discussion Component** + +Forums that course staff can add directly to units. For example, a Video component can be followed by a Discussion component so that students can discuss the +video content without having to leave the page. + +See :ref:`Working with Discussion Components` for more information. + +.. _Dropdown Problem: + +**Dropdown Problem** + +A problem that asks students to choose from a collection of answer options, presented as a drop-down list. For +more information, see :ref:`Dropdown`. + + +.. _E: + +**** +E +**** + +.. _edX101_g: + +**edX101** + +edX’s online course about how to create online courses. The intended audience is faculty and university administrators +It is also the first course ever to have been developed entirely using edX Studio. + +.. _edX101: https://edge.edx.org/courses/edX/edX101/How_to_Create_an_edX_Course/about + + +.. _edX Edge: + +**edX Edge** + +A less restricted site than edX.org. While only consortium members can create and post +content on edX.org, any users with course creator permissions can create courses with Studio +on studio.edge.edx.org, then view the courses on the learning management system at edge.edx.org. + +.. _Edge: http://edge.edx.org + + + + +.. _edX Studio: + +**edX Studio** + +The edX tool you use to build your courses. + +See :ref:`What is Studio?` for more information. + + +.. _Exercises: + +**Exercises** + +Practice or practical problems interspersed in edX course content to keep the learner engaged. +Exercises are also an important measure of teaching effectiveness and learner comprehension. + + + +.. _G: + +**** +G +**** + +.. _grade: + +**Grade Range** + +Thresholds that specify how numerical scores are associated with grades, and the score required to pass a course. + +See :ref:`Set the Grade Range` for more information. + + + +.. _Grading Rubric: + +**Grading Rubric** + +List of the items that a student's response should cover in an open response assessment. + +See :ref:`Rubrics` for more information. + + +.. _H: + +**** +H +**** + +.. _HTML Component: + +**HTML Component** + +The component where you add and format text for your course. An HTML component can contain text, lists, links and images. + +See :ref:`Working with HTML Components` for more information. + + +.. _HTML View: + +**HTML View** + +The view in the HTML component editor allows you to enter HTML code directly. + +See :ref:`Work with the Visual and HTML Editors` for more information. + + +.. _I: + +**** +I +**** + + +.. _Image Mapped Input Problem: + +**Image Mapped Input Problem** + +A problem that presents an image and accepts clicks on the image as an answer. + +See :ref:`Image Mapped Input` for more information. + +.. _Import: + +**Import** + +A tool in edX Studio that loads a new course into your existing course. When you use the +Import tool, Studio replaces all of your existing course content +with the content from the imported course. + +See :ref:`Import a Course` for more information. + + + + +.. _L: + +**** +L +**** + + +.. _LaTeX: + +**LaTeX** + +A document markup language and document preparation system for the TeX typesetting program. + +In edX Studio, you can :ref:`Import Content from LaTex`. + +You can also create a :ref:`Problem Written in LaTeX`. + + + +.. _Learning Management System: + +**Learning Management System (LMS)** + +The platform that students use to view courses. + + + +.. _Live Mode: + +**Live Mode** + +A view that allows course staff to review all public units as students see them, +regardless of the release dates of the section and subsection that contain the units. + +See :ref:`View Your Live Course` for more information. + + +.. _M: + +**** +M +**** + +.. _Math Expression Input Problem: + +**Math Expression Input Problem** + +A problem that requires students to enter a mathematical expression as text, such as e=m*c^2. + +See :ref:`Math Expression Syntax` for more information. + + +.. _MathJax: + +**MathJax** + +A LaTeX-like language you use to write equations. Studio uses MathJax to render +text input such as x^2 and sqrt(x^2-4) as "beautiful math." + +See :ref:`MathJax in Studio` for more information. + + + + +.. _Multiple Choice Problem: + +**Multiple Choice Problem** + +A problem that asks students to select one answer from a list of options. + +See :ref:`Multiple Choice` for more information. + + +.. _N: + +**** +N +**** + +.. _Numerical Input Problem: + +**Numerical Input Problem** + +A problem that asks students to enter numbers or specific and relatively simple mathematical expressions. + +See :ref:`Numerical Input` for more information. + + + +.. _P: + +**** +P +**** + +.. _Preview Mode: + +**Preview Mode** + +A view that allows you to see all the units of your course as students see them, regardless of whether the +visibility of each unit is set to Public or Private and regardless of whether the release dates have passed. + +See :ref:`Preview Your Course` for more information. + + +.. _Private Unit: + +**Private Unit** + +A unit whose **Visibility** option is set to Private so that students cannot see the unit, even if it is located in a subsection that has been released. + +See :ref:`Public and Private Units` for more information. + + + + +.. _Problem Component: + +**Problem Component** + +A component that allows you to add interactive, automatically +graded exercises to your course content. You can create many different +types of problems. + +See :ref:`Working with Problem Components` for more information. + + + +.. _Progress Page: + +**Progress Page** + +The page in the learning management system that shows students their scores on graded assignments in the course. + + + +.. _Public Unit: + +**Public Unit** + +A unit whose **Visibility** option is set to Public so that the unit is visible to students, if +the subsection that contains the unit has been released. + +See :ref:`Public and Private Units` for more information. + +.. _R: + +**** +R +**** + +.. _Rubric: + +**Rubric** + +List of the items that a student's response should cover in an open response assessment. + +See :ref:`Rubrics` for more information. + + + +.. _S: + +**** +S +**** + + + + +.. _Section_g: + +**Section** +The topmost category in your course. A section can represent a time period in your course, or another organizing principle. + +See :ref:`Sections` for more information. + + + +.. _Simple Editor_g: + +**Simple Editor** + +The graphical user interface in a Problem component that contains formatting buttons and is available for some problem types. +For more information, see :ref:`Studio UI`. + + + +.. _Static Pages_g: + +**Static Pages** + +Pages that supplement the courseware for a course. Each static page appears in your course's navigation bar. + +See :ref:`Add Static Pages` for more information. + + + +.. _Subsection: + +**Subsection** + +A division that represents a topic in your course, or another organizing principle. Subsections are +found inside sections and contain units. Subsections can also be called "lessons." + +See :ref:`Subsections` for more information. + + + +.. _Short Course Description: + +**Short Course Description** + +The description of your course that appears on the edX `Course List `_ page. + +See :ref:`Describe Your Course` for more information. + + +.. _T: + +**** +T +**** + +.. _Text Input Problem: + +**Text Input Problem** + +A problem that asks the student to enter a line of text, which is then checked against a specified expected answer. + +See :ref:`Text Input` for more information. + + +.. _Transcript: + +**Transcript** + +A printed version of the content of a video. You can make video transcripts available to students. + +See :ref:`Working with Video Components` for more information. + + +.. _V: + +**** +V +**** + +.. _Video Component: + +**Video Component** + +A component that you can use to add recorded videos to your course. + +See :ref:`Working with Video Components` for more information. + + +.. _Visual View: + +**Visual View** + +The view in the HTML component editor that allows you format text without using HTML code. + +See :ref:`Work with the Visual and HTML Editors` for more information. + + +.. _W: + +**** +W +**** + +.. _Wiki: + +**Wiki** + +The page in each edX course that allows students as well as course staff to add, modify, or delete content. + +Students can use the wiki to share links, notes, and other helpful information with each other. + + +.. _X: + +**** +X +**** + +.. _XBlock: + +**XBlock** + +EdX’s component architecture for writing courseware components. + +Third parties can create components as web applications that can run within the edX learning management system. + + diff --git a/docs/course_authors/source/open_response_assessment.rst b/docs/course_authors/source/open_response_assessment.rst index f2863e87fa..034224adfe 100644 --- a/docs/course_authors/source/open_response_assessment.rst +++ b/docs/course_authors/source/open_response_assessment.rst @@ -103,6 +103,8 @@ upload and submit their files. You can let students know what to expect after they submit responses. You can also mention the number of times that a student will be able to submit a response for the problem. +.. _Rubrics: + Rubrics ~~~~~~~ From 9aa2e2a1d12d62c96a9df77126a38cbd7c1c1672 Mon Sep 17 00:00:00 2001 From: Mark Hoeber Date: Thu, 12 Dec 2013 16:39:45 -0500 Subject: [PATCH 4/6] Fixing conflicts didn't see conflicts noted --- docs/course_authors/source/common_problems.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/course_authors/source/common_problems.rst b/docs/course_authors/source/common_problems.rst index e946ad1c6f..0862bd9c22 100644 --- a/docs/course_authors/source/common_problems.rst +++ b/docs/course_authors/source/common_problems.rst @@ -1,8 +1,8 @@ .. _Common Problems: -############################# +############################ Common Problems -############################# +############################ *Common problems* are typical problems such as multiple choice problems and other problems whose answers are simple for students to select or From c40178557656194c8d4a828f8090b5f1bfb51149 Mon Sep 17 00:00:00 2001 From: spearce Date: Thu, 12 Dec 2013 17:29:31 -0500 Subject: [PATCH 5/6] LTI revisions Revisions to LTI information based on feedback from Valera --- .../source/Images/AdvancedModulesEmpty.gif | Bin 8915 -> 9362 bytes docs/course_authors/source/create_lti.rst | 223 +++++++++--------- 2 files changed, 110 insertions(+), 113 deletions(-) diff --git a/docs/course_authors/source/Images/AdvancedModulesEmpty.gif b/docs/course_authors/source/Images/AdvancedModulesEmpty.gif index b3919919dc725592351ac8c1867e9798e7fe307a..2b007e9b224c41d035dd60ce7d0ec79babe0e380 100644 GIT binary patch delta 8503 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 +Introduction to LTI Components +------------------------------ + +You may have discovered or developed an external learning application +that you want to add to your online course. Or, you may have a digital +copy of your textbook that uses a format other than PDF. You can add +external learning applications or textbooks to Studio by using a +Learning Tools Interoperability (LTI) component. The LTI component is +based on the `IMS Global Learning Tools +Interoperability `_ version 1.1.1 specifications. You can use an LTI component in two ways. -- You can add external LTI content that is displayed only, such as textbook - content that doesn't require a student response. -- You can add external LTI content that requires a student response. An - external provider will grade student responses. +- You can add external LTI content that is displayed only, such as + textbook content that doesn’t require a student response. +- You can add external LTI content that requires a student response. An + external provider will grade student responses. -Before you create an LTI component from an external LTI provider in a unit, you must -have the following information so that you can register that provider. +Before you create an LTI component from an external LTI provider in a +unit, you need the following information. -- The **LTI ID**. This value is an internal string that specifies the external LTI - provider that you want to add to the course. (**SP: How does the user obtain this ID? - Does it have to be a certain length?**) - - The LTI ID can contain uppercase and lowercase alphanumeric characters, - as well as underscore characters (_). For example, your LTI ID may be (**SP: Can - you provide an example LTI ID?**). +- The **LTI ID**. This is a value that you create to refer to the external LTI + provider. You should create an LTI ID that you can remember easily. -- The **client key**. This value is a string that is used for OAuth authentication. - You can obtain this value from the external LTI provider. (**SP: Does the key have to - have a specific number of characters? Are all types of characters allowed?**) For - example, your client key may be (**SP: Can you provide an example?**). + The LTI ID can contain uppercase and lowercase alphanumeric + characters, as well as underscore characters (_). It can contain any + number of characters. For example, you may create an LTI ID that is + as simple as **test_lti_id**, or your LTI ID may be a string of + numbers and letters such as **id_21441** or + **book_lti_provider_from_new_york**. +- The **client key**. This value is a sequence of characters that you + obtain from the LTI provider. The client key is used for + authentication and can contain any number of characters. For example, + your client key may be **b289378-f88d-2929-ctools.umich.edu**. +- The **client secret**. This value is a sequence of characters that + you obtain from the LTI provider. The client secret is used for + authentication and can contain any number of characters. For example, + your client secret may be something as simple as **secret**, or it + may be a string of numbers and letters such as **23746387264** or + **yt4984yr8**. +- The **launch URL** (if the LTI component requires a student response + that will be graded). You obtain the launch URL from the LTI + provider. The launch URL is the URL that Studio sends to the external + LTI provider so that the provider can send back students’ grades. -- The **client secret**. This value is a string that is used for OAuth authentication. - You can obtain this value from the external LTI provider. (SP: **Does the secret have to - have a specific number of characters? Are all types of characters allowed?** For - example, your client key may be (**SP: Can you provide an example?**). - - -Create an LTI Component +Create an LTI Component ----------------------- Creating an LTI component in your course has three steps. - -#. Add LTI to the **advanced_modules** policy key. + +#. Add LTI to the **advanced_modules** policy key. #. Register the LTI provider. #. Create the LTI component in an individual unit. Step 1. Add LTI to the Advanced Modules Policy Key -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#. On the **Settings** menu, click **Advanced Settings**. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#. On the **Settings** menu, click **Advanced Settings**. #. On the **Advanced Settings** page, locate the **Manual Policy Definition** section, and then locate the **advanced_modules** policy key (this key is at the top of the list). - + .. image:: Images/AdvancedModulesEmpty.gif - + #. Under **Policy Value**, place your cursor between the brackets, and - then enter **"lti"**. Make sure to include the quotation marks, - but not the period. + then enter **“lti”**. Make sure to include the quotation marks, but + not the period. .. image:: Images/LTI_Policy_Key.gif - **Note** If the **Policy Value** field already contains text, place your cursor directly after the - closing quotation mark for the final item, and then enter a comma followed by **"lti"** (make sure that you - include the quotation marks). + **Note** If the **Policy Value** field already contains text, place your + cursor directly after the closing quotation mark for the final item, and + then enter a comma followed by **“lti”** (make sure that you include the + quotation marks). #. At the bottom of the page, click **Save Changes**. - The page refreshes automatically. At the top of the page, you see a - notification that your changes have been saved. +The page refreshes automatically. At the top of the page, +you see a notification that your changes have been saved. Step 2. Register the External LTI Provider -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To regiser the external LTI provider, you'll add the LIT ID, the client key, and -the client secret in the **lti_passports** policy key. - -#. On the **Advanced Settings** page, locate the **lti_passports** policy key. +To regiser the external LTI provider, you’ll add the LIT ID, the client +key, and the client secret in the **lti_passports** policy key. +#. On the **Advanced Settings** page, locate the **lti_passports** + policy key. + #. Under **Policy Value**, place your cursor between the brackets, and - then enter the LTI ID, client key, and client secret in the following format. + then enter the LTI ID, client key, and client secret in the following + format (make sure to include the quotation marks and the colons). + + :: + + “lti_id:client_key:client_secret” - "{lti_id}:{client_key}:{client_secret}" - - For example, the value in the lti_passports field may be the following. - - "(**SP: Can you provide an example?**)" + For example, the value in the **lti_passports** field may be the following. + + :: + “test_lti_id:b289378-f88d-2929-ctools.umich.edu:secret” + If you have multiple LTI providers, separate the values with a comma. + Make sure to surround each entry with quotation marks. :: - - "{lti_id_1}:{client_key_1}:{client_secret_1}", - "{lti_id_2}:{client_key_2}:{client_secret_2}", - "{lti_id_3}:{client_key_3}:{client_secret_3}" + + "test_lti_id:b289378-f88d-2929-ctools.umich.edu:secret", + "id_21441:b289378-f88d-2929-ctools.school.edu:23746387264", + "book_lti_provider_from_new_york:b289378-f88d-2929-ctools.company.com:yt4984yr8" + #. At the bottom of the page, click **Save Changes**. - The page refreshes automatically. At the top of the page, you see a - notification that your changes have been saved. +The page refreshes automatically. At the top of the page, +you see a notification that your changes have been saved, and you can +see your entries in the **lti_passports** policy key. Step 3. Add the LTI Component to a Unit -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. In the unit where you want to create the problem, click **Advanced** - under **Add New Component**. -#. In the list of problem types, click **LTI**. + under **Add New Component**, and then click **LTI**. #. In the component that appears, click **Edit**. -#. In the component editor, set the options that you want. See the table below - for a description of each option. +#. In the component editor, set the options that you want. See the table + below for a description of each option. #. Click **Save**. - .. list-table:: :widths: 10 80 :header-rows: 1 @@ -130,22 +143,36 @@ Step 3. Add the LTI Component to a Unit * - `Display Name` - Specifies the name of the problem. This name appears above the problem and in the course ribbon at the top of the page in the courseware. - * - `custom_parameters` [string] - - Enables you to add one or more custom parameters. Basically, - each individual external LTI provider can have a separate format custom - parameters. For example: - key=value + * - `custom_parameters` + - Enables you to add one or more custom parameters. For example, if you've added an + e-book, a custom parameter may include the page that your e-book should open to. + You could also use a custom parameter to set the background color of the LTI component. + + Every custom parameter has a key and a value. You must add the key and value in the following format. + + :: + + key=value + + For example, a custom parameter may resemble the following. + + :: + + bgcolor=red + + page=144 + To add a custom parameter, click **Add**. * - `graded` - Indicates whether the grade for the problem counts towards student's total grade. By default, this value is set to **False**. * - `has_score` - Specifies whether the problem has a numerical score. By default, this value - is set to **False**. (**SP: Is this accurate?**) + is set to **False**. * - `launch_url` - Lists the URL that Studio sends to the external LTI provider so that the provider can send back students' grades. This setting is only used if **graded** is set to - **True**. (**SP: Is this accurate? How does the user find the launch URL?**) + **True**. * - `lti_id` - Specifies the LTI ID for the external LTI provider. This value must be the same LTI ID that you entered on the **Advanced Settings** page. @@ -153,39 +180,9 @@ Step 3. Add the LTI Component to a Unit - Indicates whether the problem opens in a new page. If you set this value to **True**, the student clicks a link that opens the LTI content in a new window. If you set this value to **False**, the LTI content opens in an IFrame in the current page. - * - `weight` [float] - - If the problem will be graded by an external LTI provider, - the raw grade will be in the range [0.0, 1.0]. In order to change this range, - set the `weight`. The grade that will be stored is calculated by the formula: - stored_grade = raw_grade * weight - -.. note:: **SP: I'm not clear on what a custom parameter would be used for. Based on - the Studio UI, I'm guessing that one example would be the location of an - e-book, but I'm not sure what "vbid" would be. What else can custom parameters - be used for? Can we provide a specific example?** - - **The following is an attempt at text for this description. Can you let - me know if it's accurate?** - - Enables you to add one or more custom parameters. For - example, a custom parameter may include the location (**SP: Would it be - correct to say "URL" instead of "location"?**) of your e-book. - - Every custom parameter has a key and a value. You must add the key and - value in the following format. - - key=value - - For example, a custom parameter that specifies the location of your e-book may - resemble the following. - - **(SP: Can you provide a specific example of a custom parameter?)** - - -.. note:: **SP: Would it be correct to say the following?** - - Specifies the number of points possible for the problem. By default, if - an external LTI provider grades the problem, the problem is worth 1 point, - and a student's score can be 0 or 1. - - For more information about problem weights and computing point scores, see :ref:`Problem Weight`. \ No newline at end of file + * - `weight` + - Specifies the number of points possible for the problem. By default, if an + external LTI provider grades the problem, the problem is worth 1 point, and + a student’s score can be any value between 0 and 1. + + For more information about problem weights and computing point scores, see :ref:`Problem Weight`. \ No newline at end of file From 8ffe169a03a08d9709468cdc901ff8ef204850be Mon Sep 17 00:00:00 2001 From: Mark Hoeber Date: Thu, 12 Dec 2013 20:03:19 -0500 Subject: [PATCH 6/6] fixing header fixing header --- docs/course_authors/source/common_problems.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/course_authors/source/common_problems.rst b/docs/course_authors/source/common_problems.rst index 0862bd9c22..c5d28afa98 100644 --- a/docs/course_authors/source/common_problems.rst +++ b/docs/course_authors/source/common_problems.rst @@ -376,9 +376,9 @@ To make the response case sensitive, change the value of the **type** attribute -============================================ +============================================= Response Field Length of Text Input Problems -============================================ +============================================= By default, the response field for text input problems is 20 characters long.