Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
C
cas741-boliang
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Bo Liang
cas741-boliang
Commits
9041eee6
Commit
9041eee6
authored
2 years ago
by
W. Spencer Smith
Browse files
Options
Downloads
Patches
Plain Diff
Updates to course outline
parent
0ac1738b
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
CourseOutline/CAS741_Outline.pdf
+0
-0
0 additions, 0 deletions
CourseOutline/CAS741_Outline.pdf
CourseOutline/CAS741_Outline.tex
+68
-66
68 additions, 66 deletions
CourseOutline/CAS741_Outline.tex
with
68 additions
and
66 deletions
CourseOutline/CAS741_Outline.pdf
+
0
−
0
View file @
9041eee6
No preview for this file type
This diff is collapsed.
Click to expand it.
CourseOutline/CAS741_Outline.tex
+
68
−
66
View file @
9041eee6
...
...
@@ -32,11 +32,11 @@
\renewcommand
{
\labelenumi
}{
\arabic
{
enumi
}
.
}
\newcounter
{
temp
}
\begin
{
document
}
\begin{document}
\maketitle
This course outline contains important information that will
e
ffect your
This course outline contains important information that will
a
ffect your
grade. You should retain and refer to this outline throughout the term.
\section
{
Instructor
}
...
...
@@ -51,56 +51,55 @@ Office Hours: Drop in, or by appointment\\
This course presents the basic principles of software development for reliable
and sustainable scientific and engineering software. Using example
applications, a systematic process
is given
for the development and
applications,
we discuss
a systematic process for the development and
documentation of requirements, system design, module design, implementation,
testing and inspection.
testing
,
and inspection.
\section
{
Introduction
}
Scientific computation consists of using computer tools to
simulate mathematical
models of real world systems so that we can better
understand and predict the
system's behaviour. A small sample of some important
applications of scientific
computation include the following: designing new
automotive parts, analysing the
flow of blood in the body, and determining the
concentration of a pollutant
released into the groundwater. As these examples
illustrate, scientific
computation can be used for tackling problems that impact
such areas as
manufacturing, financial planning, environmental policy, and the
health, welfare
and safety of communities. Given the important applications of
scientific
computation, it is surprising that
little emphasis is currently placed on the
quality of the software that performs the computations. Although many
Scientific computation
(Research Software)
consists of using computer tools to
simulate mathematical
models of real world systems so that we can better
understand and predict the
system's behaviour. A small sample of some important
applications of scientific
computation include the following: designing new
automotive parts, analysing the
flow of blood in the body, and determining the
concentration of a pollutant
released into the groundwater. As these examples
illustrate, scientific
computation can be used for tackling problems that impact
such areas as
manufacturing, financial planning, environmental policy, and the
health, welfare
and safety of communities. Given the important applications of
scientific
computation, it is surprising that
developers place little emphasis
on the
quality of the software that performs the computations. Although many
successful and sophisticated algorithms have been developed for scientific
computing, the software often suffers from problems with such qualities as
reliability, usability, verifiability, maintainability, reusability and
portability. This is why scientific software
is routinely sold with a
disclaimer
instead of a warranty. To make matters worse, the quality of
scientific
software is becoming increasingly more of an issue because the
complexity and
size of the problems that can be simulated on modern computers is
constantly
growing. The question for the future is how to meet the growing need
for
providing quick solutions to large and complex problems, and at the same
time
ensure that the solutions are correct? This graduate course will
investigate
this question by applying to scientific computing problems such
software
engineering methodologies as commonality analysis, requirements
analysis and
documentation, modular decomposition, module interface
specification, testing,
code and document generation and assurance cases.
The course will look at tools, techniques and principles for iterative and
reliability, usability, verifiability, maintainability, reusability
,
and
portability. This is why
developers sell
scientific software
with a disclaimer
instead of a warranty. To make matters worse, the quality of
scientific
software is becoming increasingly more of an issue because the
complexity and
size of the problems that can be simulated on modern computers is
constantly
growing. The question for the future is how to meet the growing need
for
providing quick solutions to large and complex problems, and at the same
time
ensure that the solutions are correct? This graduate course will
investigate
this question by applying to scientific computing problems such
software
engineering methodologies as commonality analysis, requirements
analysis and
documentation, modular decomposition, module interface
specification, testing,
code and document generation and assurance cases.
The course will look at tools, techniques
,
and principles for iterative and
incremental development of scientific and engineering software. Despite the
iterative development cycle, the documentation will follow 5 rational steps: i)
identify the problem, ii) document the requirements, iii) design the system, iv)
implement the software, and v) perform tests. This structure is well suited to
scientific computing because it parallels the idealized scientific method, as
follows: i) a physical problem of engineering or scientific importance is
identified; ii) a system of governing equations and the associated boundary
conditions are derived; iii) a numerical algorithms are developed; iv) the
numerical algorithms are implemented on a computer; and, v) the model and the
computed results are verified and validated, with the potential to return to one
of the previous steps if necessary. These five steps are inherently
multidisciplinary as they involve skills from physical modelling, mathematics,
numerical analysis and computer science. For this reason it is important that
requirements (including assumptions) and design decisions are clearly
documented.
\subsection*
{
Course Web Site
}
follows: i) we identify a physical problem of engineering or scientific
importance; ii) we derive a system of governing equations and the associated
boundary conditions; iii) we develop numerical algorithms; iv) we implement the
numerical algorithms on a computer; and, v) we verify and validate the model and
the computed results, with the potential to return to one of the previous steps
if necessary. These five steps are inherently multidisciplinary as they involve
skills from physical modelling, mathematics, numerical analysis and computer
science. For this reason it is important that we clearly document requirements
(including assumptions) and design decisions.
\subsection*
{
Course Website
}
This course will be administered via Avenue to Learn. Go to
...
...
@@ -113,14 +112,13 @@ This course will be administered via Avenue to Learn. Go to
\noindent
to access the course's Avenue to Learn page. Please send only normal
McMaster e-mail; do not send mail via Avenue.
Students should be aware that, when they access the electronic
components of this course, private information such as first and last
names, user names for the McMaster e-mail accounts, and program
affiliation may become apparent to all other students in the same
course. The available information is dependent on the technology
used. Continuation in this course will be deemed consent to this
disclosure. If you have any questions or concerns about such
disclosure please discuss this with the Instructor.
Students should be aware that, when they access the electronic components of
this course, private information such as first and last names, usernames for the
McMaster e-mail accounts, and program affiliation may become apparent to all
other students in the same course. The available information is dependent on
the technology used. Continuation in this course will be deemed consent to this
disclosure. If you have any questions or concerns about such disclosure please
discuss this with the Instructor.
\emph
{
It is the student's responsibility to be aware of the
information on the course's Avenue to Learn page and to check
...
...
@@ -128,22 +126,25 @@ disclosure please discuss this with the Instructor.
The primary purpose of Avenue will be for maintaining grades. Most
of the course content will be maintained in a public git repository.
You can access this repository at:
\\
You can access this repository at:
~
\newline
\href
{
https://gitlab.cas.mcmaster.ca/smiths/cas741/
}{
https://gitlab.cas.mcmaster.ca/smiths/cas741/
}
\\
\noindent
Rather than use the Avenue discussion board, please post your
questions (issues) to the GitLab issue tracker.
%
\noindent Rather than use the Avenue discussion board, please post your
%
questions (issues) to the GitLab issue tracker.
In addition to Avenue and the Gitlab course note repository, every student will
create a public gitHub repository (with the instructor added as a full access
collaborator) for their work. The GitHub server is located at
\url
{
https://github.com/
}
. Students will be expected to use GitHub to provide
comments on the work of other students in the class.
collaborator) for their work. The GitHub server is at
\url
{
https://github.com/
}
. Each student's repo will start from the given
\href
{
https://github.com/smiths/capTemplate
}
{
template repo
}
. Students will be
expected to use GitHub to provide comments on the work of other students in the
class.
\subsection*
{
Classes
}
Classes will be held
virtually using Microsoft Teams
.
Classes will be held
in person in the graduate classroom (ITB/222)
.
\section
{
Course Project
}
...
...
@@ -177,19 +178,20 @@ waterfall model. Typically, students will use one of two methodologies:
If a student opts for the Drasil approach, they can later switch back to the
Traditional approach, without any grade related penalty.
The Drasil approach uses the
Drasil tool
(
\url
{
https://github.com/JacquesCarette/Drasil
}
)
to generate the SRS and the
code. Since Drasil is
incomplete, the V
\&
V documents will still be generated
manually. Further
details on Drasil will be covered during the class lectures.
The Drasil approach uses the
\href
{
https://github.com/JacquesCarette/Drasil
}
{
Drasil framework
}
to generate the SRS and the
code. Since Drasil is
incomplete, the V
\&
V documents will still be generated
manually. Further
details on Drasil will be covered during the class lectures.
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. 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.
deliverables, or with extending Drasil's capabilities. Projects that add
something substantial to the base requirements are eligible for a bonus grade of
up to 50
\%
. For instance, adding support for a new external library to Drasil
would be worth additional marks. The specific bonus should be discussed with
the instructor in advance.
\section
{
Course Structure
}
...
...
@@ -200,8 +202,8 @@ expected the class discussion will assist in improving the quality of the
written deliverables. Each student following the traditional approach will be
expected to virtually hand in the following written documents: SRS, MG, MIS, VnV
Plan, VnV Report, code and Final Documentation. The deliverables for the Drasil
approach are the same, except
that
the MG and MIS
are replaced
with the Drasil
code to
generate the documentation and code.
approach are the same, except
we replace
the MG and MIS with the Drasil
code to
generate the documentation and code.
\section
{
Grading
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment