diff --git a/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/CaseProb.hs b/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/CaseProb.hs index e9502a6f9c..2aca83b47f 100644 --- a/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/CaseProb.hs +++ b/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/CaseProb.hs @@ -36,23 +36,23 @@ motionContextP1, motionContextP2 :: Contents motionContextP1 = foldlSP [S "The free flight", phrase motion `S.ofA` phrase projectile, - S "is often studied in terms of its rectangular components, since the", - phrasePoss projectile, phrase acceleration +:+. S "always acts in the vertical direciton", - S "To illustrate the kinematic analysis, consider a ", phrase projectile, + S "is often studied in terms" `S.of_` S "its rectangular components" `sC` S "since the", + phrasePoss projectile, phrase acceleration +:+. (S "always acts" `S.inThe` S "vertical direciton"), + S "To illustrate the kinematic analysis" `sC` S "consider a ", phrase projectile, S "launched at point", sParen (P lX `sC` P lY), S "as shown in" +:+. refS figCSandA, - S "The path is defined in the", P lX `sDash` P lY, S "plane such that the initial", + S "The path" `S.is` S "defined in the", P lX `sDash` P lY, S "plane such that the initial", phrase velocity, S "is", eS (sy QP.iSpeed) :+: S ", having components", eS (sy QP.ixSpeed) `S.and_` eS (sy QP.iySpeed), S "When air resistance is neglected, the only", phrase force, S "acting on the", - phrase projectile, S"is its weight, which causes the", phrase projectile, + phrase projectile, S"is its weight" `sC` S "which causes the", phrase projectile, S "to have a *constant downward acceleration* of approximately", eS (sy QP.constAccel $= sy QP.gravitationalAccel $= dbl 9.81), Sy (usymb accelU) `S.or_` eS (sy QP.gravitationalAccel $= dbl 32.2), Sy (usymb accelinftU)] motionContextP2 = foldlSP_ - [S "The equations for rectilinear kinematics given above", refS lcrectVel, S "are in one dimension.", + [S "The equations" `S.for` S "rectilinear kinematics given above", refS lcrectVel, S "are in one dimension.", S "These equations can be applied for both the", phrase verticalMotion `S.andThe` phrase horizontalMotion :+: S ", as follows:"] @@ -64,24 +64,24 @@ hMintro = foldlSP_ [ hMequations = foldlSP_ $ weave [equationsSents, map eS horMotionEqns] hMconcl = foldlSP [ S "Since the", phrase acceleration, S "in the" +:+ phrase xDir, - sParen (eS (sy QP.xAccel)), S "is zero, the horizontal component of ", phrase velocity, + sParen (eS (sy QP.xAccel)), S "is zero" `sC` S "the horizontal component of ", phrase velocity, S "always remains constant during" +:+. phrase motion, - S "In addition to knowing this, we have one more equation"] + S "In addition to knowing this" `sC` S "we have one more equation"] vMintro = foldlSP_ [ S "Since the positive", phrase yAxis, S "is directed upward, the", phrase acceleration, S "in the vertical direction is" +:+. eS (sy QP.yAccel $= neg (sy QP.gravitationalAccel)), motionSent] vMequations = foldlSP_ $ weave [equationsSents, map eS verMotionEqns] vMconcl = foldlSP [ - S "Recall that the last equation can be formulated on the basis of eliminating the", - phrase time +:+ eS (sy QP.time), S "between the first two equations, and therefore only ", - S "two of the above three equations are independent of one another"] + S "Recall that the last equation can be formulated" `S.onThe` S "basis of eliminating the", + phrase time +:+ eS (sy QP.time), S "between the first two equations" `sC` S "and therefore only ", + S "two of the above three equations" `S.are` S "independent of one another"] -summary = foldlSP [S "In addition to knowing that the horizontal component of", phrase velocity, +summary = foldlSP [S "In addition to knowing that the horizontal component" `S.of_` phrase velocity, S "is constant [Hibbler doesn't say this, but it seems necessary for completeness],", S "problems involving the", phrase motion `S.ofA` phrase projectile +: S "can have at most three unknowns since only three independent equations can be written", - S "that is, one equation in the horizontal direction and two in the vertical direction.", + S "that is" `sC` S "one equation" `S.inThe` S "horizontal direction and two" `S.inThe` S "vertical direction.", S "Once", eS (sy QP.xVel) `S.and_` eS (sy QP.yVel), S "are obtained, the resultant", phrase velocity +:+ eS (sy QP.speed), S "which is always tangent to the path,", S "is defined by the vector sum as shown in", refS figCSandA] @@ -102,8 +102,8 @@ stepFiveHead = foldlSP_ [headSent 3 (S "Step 5: Solve for Unknowns")] stepOneCont, stepTwoCont, stepThreeCont, stepFourCont, horizMotionEqn1, horizMotionEqn1Sent, horizMotionEqn2, horizMotionEqn3, vertMotionEqn1, vertMotionEqn2, vertMotionEqn3, verMotionCont, stepFiveCont :: Contents stepOneCont = enumBulletU $ map foldlSent - [[S "Establish the fixed", P lX `sC` P lY, phrase coordinate +:+. S "axes and sketch the trajectory of the particle", - S "Between any *two points* on the path specify the given problem data and the *three unknowns*.", + [[S "Establish the fixed", P lX `sC` P lY, phrase coordinate +:+. (S "axes and sketch the trajectory" `S.ofThe` S "particle"), + S "Between any *two points*" `S.onThe` S "path specify the given problem data and the *three unknowns*.", S "In all cases the", phrase acceleration `S.of_` phrase gravity +:+. S "acts downward", S "The particle's initial and final", plural velocity +:+ S "should be represented in terms of their", P lX `S.and_` P lY, plural component], @@ -114,22 +114,22 @@ stepOneCont = enumBulletU $ map foldlSent phrase motion `S.ofThe` S "particle is known. Potential significant points include the initial point", S "of launching the", phrase projectile `S.andThe` S "final point where it lands." +:+ S "The landing point often has a known", P lY +:+ S "value"], - [S "The variables in the" , plural equation, S "may need to be changed to match the notation of the specific problem.", - S "For instance, a distinction may need to be made between the", P lX, phrase coordinate `S.of_` S "points", P cA `S.and_` P cB, + [S "The variables" `S.inThe` plural equation, S "may need to be changed to match the notation" `S.ofThe` S "specific problem.", + S "For instance" `sC` S "a distinction may need to be made between the", P lX, phrase coordinate `S.of_` S "points", P cA `S.and_` P cB, S "via notation like"]] -stepTwoCont = foldlSP [S "Using the notation for the problem in question, write out the known variables and their values.", +stepTwoCont = foldlSP [S "Using the notation" `S.for` S "the problem in question" `sC` S "write out the known variables and their values.", S "The known variables will be a subset of the following:" +:+. ((eS (sy QP.ixPos) `sC` eS (sy QP.xPos)) `sC` (eS (sy QP.iyPos) `sC` eS (sy QP.yPos)) `sC` (eS (sy QP.ixVel) `sC` eS (sy QP.xVel)) `sC` (eS (sy QP.iyVel) `sC` eS (sy QP.yVel)) `S.and_` P lT), - S "The knowns should be written in the notation adopted for the particular problem"] + S "The knowns should be written" `S.inThe` S "notation adopted" `S.for` S "the particular problem"] -stepThreeCont = foldlSP [S "Each problem will have at most 4 unknowns that need to be determined, selected from the variables listed in the Step 2 that are not known." +:+. - S "The number of relevant unknowns will usually be less than 4, since questions will often focus on one or two unknowns", - S "As an example, the equation that horizontal", phrase velocity +:+. S "is constant is so trivial that most problems will not look for this as an unknown", - S "The unknowns should be written in the notation adopted for the particular problem"] +stepThreeCont = foldlSP [S "Each problem will have at most 4 unknowns that need to be determined" `sC` S "selected from the variables listed in the Step 2 that are not known." +:+. + (S "The number of relevant unknowns will usually be less than 4" `sC` S "since questions will often focus on one or two unknowns"), + S "As an example" `sC` S "the equation that horizontal", phrase velocity +:+. S "is constant is so trivial that most problems will not look for this as an unknown", + S "The unknowns should be written" `S.inThe` S "notation adopted" `S.for` S "the particular problem"] -stepFourCont = foldlSP [S "Depending upon the known data and what is to be determined, a choice should be made as to which four of the following five equations" +:+ - S "should be applied between the two points on the path to obtain the most direct solution to the problem"] +stepFourCont = foldlSP [S "Depending upon the known data and what is to be determined" `sC` S "a choice should be made as to which four of the following five equations" +:+ + S "should be applied between the two points" `S.onThe` S "path to obtain the most direct solution to the problem"] horizMotionEqn1 = foldlSP_ [S "From equation" +: refS lcrectVel, eS horizVel] horizMotionEqn1Sent = foldlSP_ [sParen (S "The *velocity* in the horizontal" `S.or_` P lX +:+ phrase direction +:+ S "is *constant*")] @@ -143,10 +143,10 @@ vertMotionEqn3 = foldlSP_ [S "From equation" +: refS lcrectNoTime, eS vertNoTime verMotionCont = foldlSP [S "In the vertical" `S.or_` P lY, phrase direction, S "*only two*" `S.ofThe` S "following three equations", sParen (S "using" +:+ eS (sy QP.yAccel $= neg (sy QP.gravitationalAccel))) +:+. S "can be used for solution", sParen (S "The sign" `S.of_` P lG +:+ S "will change to positive if the positive" +:+ P lY +:+. S "axis is downward"), - S "For example, if the particle's final velocity", eS (sy QP.yVel), S "is not needed, then the first and third of these questions", + S "For example, if the particle's final velocity", eS (sy QP.yVel), S "is not needed" `sC` S "then the first and third of these questions", sParen (S "for" +:+ P lY) +:+ S "will not be useful"] -stepFiveCont = foldlSP [S "Use the equations from Step 4, together with the known values from Step 2 to find the unknown values from Step 3." +:+. +stepFiveCont = foldlSP [S "Use the equations from Step 4" `sC` S "together with the known values from Step 2 to find the unknown values from Step 3." +:+. S "We can do this systematically by going through each equation and determining how many unknowns are in that equation", S "Any equations with one unknown can be used to solve for that unknown directly"] @@ -163,7 +163,7 @@ verMotionEqns :: [ModelExpr] verMotionEqns = [vertVel, vertPos, vertNoTime] motionSent :: Sentence -motionSent = S "This value can be substituted in the equations for" +:+ phrase constAccel +: +motionSent = S "This value can be substituted" `S.inThe` S "equations for" +:+ phrase constAccel +: S "given above (ref) to yield the following" -- References -- diff --git a/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/Example.hs b/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/Example.hs index 38820755a9..65f5cafc9a 100644 --- a/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/Example.hs +++ b/code/drasil-example/projectile/lib/Drasil/Projectile/Lesson/Example.hs @@ -11,9 +11,9 @@ exampleContent :: [Contents] exampleContent = [exampleContextP1, codeC1, exampleContextP2, codeC2, exampleContextP3, codeC3] exampleContextP1, exampleContextP2, exampleContextP3 :: Contents -exampleContextP1 = foldlSP_ [S "A sack slides off the ramp, shown in Figure.", - S "We can ignore the physics of the sack sliding down the ramp and just focus on its exit", phrase velocity +:+. S "from the ramp", - S "There is initially no vertical component of", phrase velocity `S.andThe` S "horizontal", phrase velocity, S "is:"] +exampleContextP1 = foldlSP_ [S "A sack slides off the ramp" `sC` S "shown in Figure.", + S "We can ignore the physics" `S.ofThe` S "sack sliding down the ramp and just focus on its exit", phrase velocity +:+. S "from the ramp", + S "There is initially no vertical component" `S.of_` phrase velocity `S.andThe` S "horizontal", phrase velocity, S "is:"] exampleContextP2 = foldlSP_ [S "The", phrase height `S.ofThe` S "ramp from the floor is"] exampleContextP3 = foldlSP_ [S "Task: Determine the", phrase time, S "needed for the sack to strike the floor and the range", P cR +:+. S "where sacks begin to pile up",