Skip to main content

Section 2 How to LAFF-On

Unit 2.1 Hardware/software requirements

While you may learn quite a bit by simply watching the videos and reading these materials, real comprehension comes from getting your hands dirty with the programming assignments.

We assume that

  • You have access to a computer with an Intel Haswell (R) processor.

  • On that computer, you can use some variant of the Linux operating system.

  • Within the Linux operating system, you have access to the {\tt gcc} compiler.

  • The compiler implements OpenMP (can compile OpenMP programs). This is particularly important for the material in Week 4.

  • You have access to \matlab:

    • Via \matlab\ that is installed on the same computer as you will execute your performance experiments.

    • Via \matlab\ Online. You will have to transfer files from the computer where you are performing your experiments to \matlab\ Online. You could try to set up \href{https://www.mathworks.com/products/matlab-drive.html}{\ding{42} \matlab\ Drive}, which allows you to share files easily between computers and with \matlab\ Online, but be warned that there may be a delay in when files show up, and as a result you may be using old data to plot if you aren't careful!

Unit 2.2 What should we know?

The material in this course is intended for learners who have already had an exposure to linear algebra, programming, and the Linux operating system. We try to provide enough support so that even those with a rudimentary exposure to these topics can be successful. This also ensures that we all "speak the same language" when it comes to notation and terminology. Along the way, we try to give pointers to other materials.

The language in which we will program is C. However, programming assignments start with enough of a template that even those without a previous exposure to C can be successful.

Unit 2.3 When to LAFF-On

The beauty of an online course is that you get to study when you want, where you want. Still, deadlines tend to keep people moving forward. To strike a balance between flexibility and structure, we release the materials roughly one week at a time. There are no intermediate due dates but only work that is completed by the closing of the course will count towards the optional Verified Certificate. To help you structure your time, we give a suggested course calendar with proposed due dates. It can be found by clicking the "Calendar" tab of the navigation bar of the course on the edX platform:

\includegraphics[width=0.4\textwidth]{Week0/Pictures/Calendar.pdf}

Even when the course is not officially in session, you should be able to access the "archived" materials by signing up. This means you can access the course, but you won't be able to track your progress through the course work.

Unit 2.4 How to Navigate LAFF-On

Insert video

Unit 2.5 Homework and LAFF-On

You will notice that homework appears both in the notes and in the corresponding units on the edX platform. Most of the time, the questions will match exactly but sometimes they will be worded slightly differently so as to facilitate automatic grading.

Realize that the edX platform is ever evolving and that at some point we had to make a decision about what features we would embrace and what features did not fit our format so well. As a result, homework problems have frequently been (re)phrased in a way that fits both the platform and our course.

Some things you will notice:

  • "Open" questions in the text are sometimes rephrased as multiple choice or "drag and drop" questions in the course on edX.

  • Video answers sometimes appear as embedded YouTube, with the link to the end of the week where the same video, with captioning and optional download from an alternative source, can be found. This was because edX's video player could not (yet) be embedded in answers.

    Sometimes we simply have the video with the answer right after a homework.

Please be patient with some of these decisions. Our course and the edX platform are both evolving, and sometimes we had to improvise.

Unit 2.6 Grading and LAFF-On

How to grade the course was another decision that required compromise. Our fundamental assumption is that you are taking this course because you want to learn the material, and that the homework and other activities are mostly there to help you learn and self-assess. For this reason, for the homework, we

  • Give you an infinite number of chances to get an answer right;

  • Provide you with detailed answers;

  • Allow you to view the answer any time you believe it will help you master the material efficiently;

  • Include some homework that is ungraded to give those who want extra practice an opportunity to do so while allowing others to move on.

In other words, you get to use the homework in whatever way helps you learn best.

Remark 2.6.1

To view your progress while the course is in session, click on "Progress" in the edX navigation bar. If you find out that you missed a homework, scroll down the page and you will be able to identify where to go to fix it. Don't be shy about correcting a missed or incorrect answer. The primary goal is to learn.

Some of you will be disappointed that the course is not more rigorously graded, thereby (to you) diminishing the value of a certificate. The fact is that MOOCs are still evolving. People are experimenting with how to make them serve different audiences. In our case, we decided to focus on quality material first, with the assumption that for most participants the primary goal for taking the course is to learn.

Remark 2.6.2

Unit 2.7 Setting Up to LAFF-On

Insert video.

Figure 2.7.3 Directory structure for your LAFF-On-PfHP materials. In this example, we cloned the repository in Robert's home directory, rvdg.

We have placed all programming assignments on GitHub. GitHub is a development environment for software projects. In our case, we use it to disseminate the various activities associated with this course.

On the computer on which you have chosen to work, "clone" the GitHub repository for this course:

  • In a browser, visit https://github.com/ULAFF/LAFF-On-PfHP}{\ding{42} \url{https://github.com/ULAFF/LAFF-On-PfHP

  • On that page, this document can be found in {\tt LAFF-On-PfHP.pdf}.

  • Click on

    and copy https://github.com/ULAFF/LAFF-On-PfHP.git.

  • On the computer where you intend to work, in a terminal session on the command line in the directory where you would like to place the materials, execute

    git clone https://github.com/ULAFF/LAFF-On-PfHP.git
    

    This will create a local copy (clone) of the materials.

  • Sometimes we will update some of the files in the repository. When this happens you will want to execute, in the cloned directory,

    git stash save
    

    which saves any local changes you have made, followed by

    git pull
    

    which updates your local copy of the repository, followed by

    git stash pop
    

    which restores local changes you made. This last step may require you to "merge" files that were changed in the repository that conflict with local changes.

Upon completion of the cloning, you will have a directory structure similar to that given in Figure 2.7.3.