diff --git a/CourseOutline/CAS741_Outline.pdf b/CourseOutline/CAS741_Outline.pdf index bcba9807fdf358e22aa5302cb3809ef5312af9d7..62c5c39e4a076682ccabe64e3a7481050ade3ae0 100644 Binary files a/CourseOutline/CAS741_Outline.pdf and b/CourseOutline/CAS741_Outline.pdf differ diff --git a/CourseOutline/CAS741_Outline.tex b/CourseOutline/CAS741_Outline.tex index 650058fe57c024655306cd664f08870525fe1407..1f5abf244c708c4fbe7e34adf2f06ecb2d2b23d4 100755 --- a/CourseOutline/CAS741_Outline.tex +++ b/CourseOutline/CAS741_Outline.tex @@ -166,6 +166,7 @@ waterfall model. Typically, students will use one of two methodologies: \begin {enumerate} \item Software Requirements Specification (SRS) draft, as for manual \item SRS generation in Drasil +\item Drasil design choices and explanation \item Code generation (Drasil supported programming languages) \item Verification and Validation (VnV) Plan (manually produced) \item Verification and Validation (VnV) Report (manually produced) @@ -185,7 +186,10 @@ With approval from the instructor, the deliverables can potentially be modified, if a project is more suited to a different structure. For instance, a project could replace one of the above deliverables with an assurance case deliverable, or with a greater emphasis on domain specific code to automatically build the -deliverables. +deliverables. Projects that add something substantial to the base requirements +are eligible for a bonus grade of up to 50\%. For instance, adding support for +an external library to Drasil is worth additional marks. The specific bonus +should be discussed with the instructor in advance. \section {Course Structure} @@ -207,7 +211,7 @@ code to generate the documentation and code. \item (Traditional and Drasil) ``Domain Expert'' and secondary reviewer roles 10\% -\item (Traditional and Drasil) Problem Statement 0\% +\item (Traditional and Drasil) Problem Statement, Risk, Proof of Concept (POC) Plan 0\% \item (Traditional and Drasil) System Requirements Specification (SRS) Document 15\% @@ -238,10 +242,10 @@ Each student will be assigned as a ``Domain Expert'' (DE) for one of their classmates. The DE will review (via GitHub issues) their assigned project. % In % addition, they will write the code for one of the modules of their assigned % project and issue a pull request through GitHub. -For the secondary reviewer -role, the instructor will assign various review tasks throughout the term. The -secondary reviewers feedback will focus more on the structure and format of the -documentation, rather than on issues related to domain knowledge. +For the secondary reviewer role, the instructor will assign various review tasks +throughout the term. The secondary reviewers feedback will focus more on the +structure and format of the documentation, rather than on issues related to +domain knowledge. \section {Policy Statements} diff --git a/Lectures/L01_IntroToCourse/IntroToCourse.pdf b/Lectures/L01_IntroToCourse/IntroToCourse.pdf index df96a953a371dff684f5eeb0c42c9dc9301419bb..df3587c2b3a2af08c945553221b78828040da603 100644 Binary files a/Lectures/L01_IntroToCourse/IntroToCourse.pdf and b/Lectures/L01_IntroToCourse/IntroToCourse.pdf differ diff --git a/Lectures/L01_IntroToCourse/IntroToCourse.tex b/Lectures/L01_IntroToCourse/IntroToCourse.tex index b8231f5170f866544935b96eddcfb90a82b21e55..7b2da40cc80765464e0752eaf850ee25219f728a 100755 --- a/Lectures/L01_IntroToCourse/IntroToCourse.tex +++ b/Lectures/L01_IntroToCourse/IntroToCourse.tex @@ -1,4 +1,4 @@ -%\documentclass[handout]{beamer} + %\documentclass[handout]{beamer} \documentclass[t,12pt,numbers,fleqn]{beamer} %\documentclass[ignorenonframetext]{beamer} @@ -47,24 +47,42 @@ \frametitle{Introduction to CAS 741 (CES 741)} \bi +\item Scholar Strike \item Administrative details \item Brief overview of course \item Introductions \item Course outline -\item Requirements \ei \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame} +\frametitle{Scholar Strike} + +\begin{itemize} + +\item + \href{https://www.cbc.ca/news/canada/manitoba/manitoba-scholars-strike-black-lives-canada-1.5717066} + {Scholar Strike} +\item One small step for improvement is to watch for + \href{https://builtin.com/diversity-inclusion/unconscious-bias-examples} + {unconscious bias} +\item Does anyone have any comments they wish to share? +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{frame} \frametitle{Administrative Details} \begin{itemize} -\item New Grad Stdnt Orientation: Mon, Sept 9, 10 am -- 1 pm %may - %cancel our class -\item Lectures: Mon and Thurs, 10:30 am -- 12:00 noon +% \item New Grad Stdnt Orientation: Mon, Sept 9, 10 am -- 1 pm %may +% %cancel our class +\item Lectures: Mon (11:30 --1:00) and Thurs (2:30 -- 4:00) \item Avenue for grade tracking \begin{itemize} \item \url{http://avenue.mcmaster.ca/} @@ -74,7 +92,10 @@ \begin{itemize} \item \url{https://gitlab.cas.mcmaster.ca/} \item Create your account by logging in, option to set CAS password to MacID password -\item Course material and issue tracking at \url{https://gitlab.cas.mcmaster.ca/smiths/cas741} +\item Course material and issue tracking at: + \url{https://gitlab.cas.mcmaster.ca/smiths/cas741} (public) +\item Publication resources available at: + \url{https://gitlab.cas.mcmaster.ca/smiths/pub} (CAS) \end{itemize} \item Your projects will be hosted on GitHub \begin{itemize} @@ -95,11 +116,11 @@ \begin{itemize} \item Application of software engineering methodologies to improve the quality - of scientific computing software + of scientific computing (or research) software \item \structure{What is the definition of scientific computing?} \item \structure{What are some examples of scientific computing and scientific computing software?} -\item \structure{What is the definition of software engineeing?} +\item \structure{What is the definition of software engineering?} \item \structure{What are some techniques, tools and principles for software engineering?} @@ -200,10 +221,10 @@ \item Instructor \begin{itemize} \item Dr.\ Spencer Smith ({\tt smiths@mcmaster.ca}) -\item ITB/167 -\item Drop in or make an appointment - \item Feel free to make use of the instructor's - \href{http://www.cas.mcmaster.ca/~smiths/SSmithSchedule.html} {schedule} +\item ITB/167 (when campus opens) +\item Feel free to make an appointment +\item Use instructor's + \href{http://www.cas.mcmaster.ca/~smiths/SSmithSchedule.html} {schedule} \end{itemize} \end{itemize} @@ -252,11 +273,11 @@ \item Software engineering \item Software development technology \begin{itemize} - \item Git - \item GitHub or GitLab + \item Git (GitHub or GitLab) \item LaTeX \item Make etc. \end{itemize} + \item Your preferred OS \end{itemize} \item What do you hope to get out of this course? \end{itemize} @@ -301,7 +322,7 @@ \item Select a project related to your research \item Scope needs to be feasible within one term \ei -\item Milestones +\item Milestones (Traditional) \be \item Software Requirements Specification (SRS) \item Module Guide (MG) @@ -317,6 +338,32 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame} +\frametitle{``Drasil'' Milestones} + +\begin{itemize} +\item \href{https://github.com/JacquesCarette/Drasil}{Drasil} is used to capture + knowledge and generate documentation and code + +\begin {enumerate} + +\item Software Requirements Specification (SRS) draft, as for manual +\item SRS Generated by Drasil +\item Drasil design choices and explanation +\item Code generation (Drasil supported language, or languages) +\item VnV Plan (manually produced) +\item VnV Report (manually produced) + +\end {enumerate} + +\item No grade advantage for one approach over the other +\item Can switch from Drasil to traditional +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{frame} \frametitle{Project Selection: Desired Qualities} \begin{itemize} @@ -333,6 +380,78 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame} +\frametitle{Project Selection (Traditional): Specific Physical Problem} +\begin{itemize} +\item + \href{https://ocw.mit.edu/courses/mathematics/18-303-linear-partial-differential-equations-fall-2006/lecture-notes/heateqni.pdf}{ + Heated + rod} +\item \href{http://www.tech.plym.ac.uk/sme/THER204B-web/Heatran2.PDF}{Heated plate} +\item \href{https://en.wikipedia.org/wiki/Double_pendulum}{Double pendulum} +\item \href{http://chrishecker.com/Rigid_Body_Dynamics}{Rigid body dynamics} +\item Column buckling +\item \href{https://en.wikipedia.org/wiki/Harmonic_oscillator}{Damped harmonic oscillator} +\item Stoichiometric calculations (chemical balance) +\item + \href{http://www.tiem.utk.edu/~gross/bioed/bealsmodules/predator-prey.html}{Predator + prey dynamics} +\item Imaging: filters, edge detection etc. +\item Medical Imaging +\item etc. +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Project Selection (Traditional): General Purpose Tools} +\begin{itemize} +\item \href{https://en.wikipedia.org/wiki/Numerical_methods_for_ordinary_differential_equations}{Solution of ODEs} +\item \href{https://en.wikibooks.org/wiki/Numerical_Methods/Solution_of_Linear_Equation_Systems}{Solution of $A x = b$} +\item \href{https://en.wikipedia.org/wiki/Linear_regression}{Regression} +\item \href{https://en.wikibooks.org/wiki/Introduction_to_Numerical_Methods/Interpolation}{Interpolation} +\item \href{https://en.wikipedia.org/wiki/Numerical_integration}{Numerical integration} +\item \href{https://en.wikipedia.org/wiki/Fast_Fourier_transform}{FFT} +\item \href{https://en.wikipedia.org/wiki/Mesh_generation}{Mesh generation} +\item \href{https://en.wikipedia.org/wiki/Finite_element_method}{Finite element method} +\item Any chapter from a standard numerical methods textbook +\item etc. +\item The tool shouldn't be too simple +\end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Project Selection (Drasil): Specific Physical Problems} +\begin{itemize} +\item Set of explicit equations with the variables of interest isolated on one + side of the equation (like + \href{https://jacquescarette.github.io/Drasil/examples/GlassBR/srs/GlassBR_SRS.html}{GlassBR}, + or \href{https://jacquescarette.github.io/Drasil/examples/Projectile/srs/Projectile_SRS.html} {Projectile}) +\item First order Initial value problem (like + \href{https://jacquescarette.github.io/Drasil/examples/NoPCM/srs/NoPCM_SRS.html} + {NoPCM}) +\item Examples +\begin{itemize} +\item Cooling of a uniform temperature body over time +\item Charging or discharging of a capacitor +\item Flow into a reservoir +\item Population growth +\item Blood alcohol level over time +\item + \href{http://ugrad.math.ubc.ca/coursedoc/math103/keshet.notes/chapter11Notes.pdf}{Some + potential problems} +\item Worked example in a physics or chemistry textbook, using equations, like + solving for the forces in a statically indeterminate structure +\end{itemize} +\end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + \begin{frame} \frametitle{``Faked'' Rational Design Process} @@ -383,6 +502,7 @@ Not all docs necessary \item Student and instructor presentations \item Classroom discussions \item Will present a subset of your documentation for in-class feedback +\item Will do a proof of concept demonstration early in the term \item Structure from our documentation \item Use GitHub issue tracker for feedback from other students @@ -395,27 +515,41 @@ Not all docs necessary \begin{frame} \frametitle{Grade Assessment} -\begin {enumerate} +\begin {itemize} + +\item (Traditional and Drasil) Presentations and class discussion 5\% -\item Presentations and class discussion 5\% +\item (Traditional and Drasil) ``Domain Expert'' and secondary reviewer roles 10\% -\item ``Domain Expert'' and secondary reviewer roles 10\% +\item (Traditional and Drasil) Problem Statement, Risk, Proof of Concept (POC) Plan 0\% -\item Problem Statement 0\% +\item (Traditional and Drasil) System Requirements Specification (SRS) 15\% -\item System Requirements Specification (SRS) 15\% +\item (Traditional and Drasil) System Verification and Validation (VnV-Syst) Plan 15\% -\item System Verification and Validation (VnV-Syst) Plan 15\% +\item (Traditional) Module Guide and Module Interface Specification (MG and MIS) + 15\% -\item Module Guide and Module Interface Specification (MG and MIS) 15\% +\item (Drasil) Drasil code and Code Explanation Document 15\% -\item Final Documentation (including revised versions of previous documents, - plus the source code, unit testing plan, reflection report and testing - reports (System and Unit)) 40\% +\end {itemize} -\item Drasil simple physics example, pull request accepted 5\% (Bonus) +\end{frame} -\end {enumerate} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Grade Assessment Cont'd} + +\begin {itemize} + +\item (Traditional and Drasil) Final Documentation (including revised versions + of previous documents, plus the source code, unit testing plan, reflection + report and testing reports (System and Unit)) 40\% + +\item Addition to Drasil infrastructure, pull request accepted (up to) 50\% (Bonus) + +\end {itemize} \end{frame} @@ -443,9 +577,11 @@ Not all docs necessary \begin {itemize} -\item Academic dishonesty consists of misrepresentation by deception or by other fraudulent means -\item Can result in serious consequences, e.g. the grade of zero on an assignment, loss of credit with a notation on -the transcript, and/or suspension or expulsion from the university. +\item Academic dishonesty consists of misrepresentation by deception or by other + fraudulent means +\item Can result in serious consequences, e.g. the grade of zero on an + assignment, loss of credit with a notation on the transcript, and/or + suspension or expulsion from the university. \item It is your responsibility to understand what constitutes academic dishonesty \item Three examples of academic dishonesty \begin{itemize} @@ -469,10 +605,10 @@ slides \begin {itemize} \item - \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/ReferenceMaterial/SoftEngForScienceBook.pdf} + \href{https://gitlab.cas.mcmaster.ca/smiths/pub/-/blob/master/Smith2016.pdf} {\bibentry{Smith2016}} \item - \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/ReferenceMaterial/SmithLaiAndKhedri2007fulltext.pdf} + \href{https://gitlab.cas.mcmaster.ca/smiths/pub/-/blob/master/SmithEtAl2007.pdf} {\bibentry{SmithEtAl2007}} \end{itemize} @@ -481,28 +617,40 @@ slides %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame} -\frametitle{Assigned Reading} +\frametitle{Assigned Reading Cont'd} \begin {itemize} \item - \href{https://gitlab.cas.mcmaster.ca/smiths/cas741/blob/master/ReferenceMaterial/ParnasAndClements1986.pdf} + \href{https://gitlab.cas.mcmaster.ca/smiths/pub/-/blob/master/ParnasAndClements1986.pdf} {\bibentry{ParnasAndClements1986}} \item \href{https://github.com/smiths/swhs}{Solar Water Heating System Example} \item \href{https://jacquescarette.github.io/Drasil/examples/SWHS/srs/SWHS_SRS.html} {Solar Water Heating System Example SRS (Generated by Drasil)} +\item + \href{https://jacquescarette.github.io/Drasil/examples/NoPCM/srs/NoPCM_SRS.html} + {Simplified Solar Water Heating System Example SRS (Generated by Drasil)} \item \href{https://jacquescarette.github.io/Drasil/examples/Projectile/srs/Projectile_SRS.html} {Projectile Example SRS (Generated by Drasil)} -\item Recommended reading order for SRS documents + +\end{itemize} + +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame} +\frametitle{Recommended Reading Order SRS} + \begin{itemize} + \item Goal Statement \item Instance Models \item Requirements \item Introduction \item Specific System Description -\end{itemize} \end{itemize}