CMSE/MTH 314: Matrix Algebra with Computational Applications

Course Description

Historically, Linear Algebra was developed from studying methods for solving systems of linear equations. This course teaches core Linear Algebra concepts with a focus on applications encountered in science and engineering. These “real world” problems are often larger than what can easily be solved by hand, so this course focuses on Numerical techniques for understanding and solving large systems of equations using computing.

By the end of this course, you will be able to:

  1. Demonstrate the ability to solve Ax=b for linear systems, including underdetermined, inverterable, and overdetermined systems.
  2. Use the language of Linear Algebra to describe scientific problems. (ex. Vector spaces, pivots, multipliers, column spaces, row space, null space, back substitution, invertibility of a matrix, etc.)
  3. Define and Compute key vector and matrix properties (Rank, dot product, dimensionality, singular, identity, etc.)
  4. Give examples and Use basic Elementary and Transformation Matrices.
  5. Recognize the use of Eigenvalues and Eigenvectors and their role in problem-solving.
  6. Explain Factorization and Decompositions.
  7. Explain numerical complexity and Compare algorithms using Big-O notation.
  8. Be able to Illustrate the differences between different Numerical approaches to solving large sets of linear equations.
  9. Demonstrate the ability to write programs that can solve linear algebra problems.
  10. Identify programming libraries and techniques to solve linear algebra problems.
  11. Write programs to solve common Linear Algebra problems in a variety of scientific and engineering disciplines.

We will work toward the goals expressed above throughout this course using a range of activities – primarily by writing software both individually and in small groups, but also through discussion, presentations, and other types of exercises.  

Topics Covered

The primary topics covered in this course include:

Please note that using the language of linear algebra and computers to solve scientific problems (whether they are problems in the physical, life, or social sciences, or in engineering) is the driving principle of this course – everything else we teach you is in service to this goal.

Course Format and Activities

All sections of the course will be delivered synchronous online with no planned in-person interaction. This means that students are expected to attend class during the designated class period for their section using a remote video conference connection (zoom). Students will be expected to complete assignments and turn them in during class. Portions of the in-class instruction may be recorded and provided on the website. These videos are provided as a reference for students to review asynchronously and are not intended to replace attendance.

Class participation

Active class participation (led both by the instructors and by students) is critical to the success of this course.  As such, you are expected to attend every class session, bring the required materials and actively participate in the in-class discussion.

Pre-class assignments

We will provide short assignments that are due prior to class.  The purpose of these assignments is to introduce new material and give you some exposure so that we can focus on hands-on practice during class.  These assignments will typically consist of short videos, reading assignments, and related questions or problems. Each pre-class assignment includes a survey that students must fill out by 11:59 p.m. the night before class. Filling out of these assignments will account for 20% of the student's final grade. The two lowest pre-class assignment scores will be dropped.

In-class programming assignments

Class sessions will be held twice a week and broken up into presentations, discussions, and programming activities that will allow you to immediately implement (and get instant feedback on) what you have just learned. To gain credit for in-class assignments, students must use screen sharing (via zoom) to show how much they were able to complete before leaving class. If students have arranged with the instructor to participate asynchronously, then a complete in-class assignment must be turned in by 11:59 pm on the same day of the class via the course Desire2Learn page. Participating and turning in the completed in-class notebooks will account for 20% of the student's final grade. The two lowest in-class assignment scores will be dropped.

Quizzes

You will have periodic in-class quizzes (approximately 1 quiz every two weeks) that will assess your understanding of materials covered in class.  These quizzes are intended to take 20 minutes of class and be turned in via the course Desire2Learn page. Quizzes will account for 10% of the student's final grade. The lowest quiz score scores will be dropped.

Homework

You will have periodic programming assignments (approximately 1 assignment every two weeks) that will provide a more in-depth exploration of the materials covered in class.  These assignments may include both individual work and group work and will be turned in by the given deadline via the course's Desire2Learn page.  In general, homework assignments will be due on Fridays on the weeks when there is no quiz in class. Homework will account for 40% of the student's final grade. NO HOMEWORK SCORES WILL BE DROPPED.

Final Exam:

The final exam will cover the entire course and will have a similar format to the Quizzes. However, instead of a single motivating question the final will have multiple motivating questions. In this way the final exam will be like taking multiple quizzes in a row. The final exam will be conducted via zoom during each section’s schedule exam period. Students may be expected to log into zoom using a secondary device (ex. phone). this device will need to be positioned such that the students keyboard, mouse and screen are visible. The Final Exam will acount for 10% of a students grade. Details for the procedure used during the final exam will be explained during class.

Assessment Information

There are a variety of course activities, with percentages of total grade listed.  More detailed descriptions of each activity can be found elsewhere in the syllabus.  

Activity Grade Percentage
Pre-Class Assignments 20
In-Class Participation 20
Homework Assignments 40
Bi-weekly Quizzes 10
Final Exam 10
Total 100%

Grading scale

$$ 4.0 \lt 90\%$$$$ 3.5 \lt 85\%$$

 

$$ 3.0 \lt 80\%$$$$ 2.5 \lt 75\%$$$$ 2.0 \lt 70\%$$$$ 1.5 \lt 65\%$$$$ 0.0 \lt 60\%$$

Note: grades will not be curved - your grade is based on your own effort and progress, not on competition with your classmates.


Logistical Information

Course website

Information for this course is being managed via the course website:

Accompanying course information, including the official course calendar, can be found at this website. Each section also uses a Desire2Learn page for assignment grading and organization, which can be found at http://d2l.msu.edu. All assignments will be handed in via Desire2Learn.  Consult the course website for instructions.

Course Meeting Time and Location

For simplicity, all sections will be in the same zoom classroom. Students are expected to attend their class for their own sections and will not be allowed in during other classes without both instructors' prior approval.

Course Schedule

Specific assignments and due dates will be maintained on the course website, which is linked to off the course website. Note the due date for your individual section.

Class discussion

We will be using Slack (http://slack.com) as our means of communicating outside of scheduled class times about course content as the semester progresses and you are expected to monitor Slack regularly. We believe that this will provide an excellent avenue to have discussions not only with course instructors, TAs, and LAs, but also between you and your fellow classmates. In order to join the Slack team that we’ve created for the course you should complete the following steps:

  1. Go to https://cmse-courses.slack.com/signup
  2. Once there, sign up using your @msu.edu email address. Important: When you create your account, use your MSU NetID as your user name and set up your display name to be the name you prefer to go by, including your last name. This will make it easier for your instructors to recognize you within the Slack channels.

Once you've joined the CMSE Courses Slack team, you'll need to add yourself to two channels. The first channel you should add yourself to is "mth314-s21". The second one you should add yourself to is "mth314-###-s21" where "###" corresponds to the section of the course that you are enrolled in. To add yourself to these channels, click on the “+” next to the "Channels" header and “browse” for the appropriate channel -- double check that you are adding yourself to the correct channel.

The "help" channel will be the place to go for any questions about assignments in the course or issues you're having with your computer or Python. We encourage you to help out other classmates when you can! The section-specific channel will be used by your instructor for important messages relevant only to your section of the course.

In order to ensure that Slack is an appropriately used tool that does not become overly time-consuming for the course instructors, TAs, or LAs, we have a list of rules for how we expect you to use Slack. They are:

  1. Before you ask a question, be sure to check the other session channels to see if the question has already been answered.
  2. The Slack team is primarily for you, the students, to help each other.
  3. The TAs and LAs will monitor the channels, but will defer to the students to work through things. They will only enter a conversation if students are going down the wrong path and/or there are too few other students involved. However, you should not expect that the TAs or LAs will always be available. The TAs and LAs will spend a limited amount of time “logged in” to Slack and we ask that you be respectful of their time.
  4. Slack is meant to be used to help you when you are stuck with a minor issue. If you are having major issues or trouble understanding the concept, go to office hours. Office hours are meant for more in-depth discussions of course content.
  5. Course instructors will rarely check Slack, only to examine progress. While they may offer help, do not rely on it. Instructors will not respond to the same student twice within a 30 minute time interval.
  6. Only in rare cases should you contact an instructor through a private channel. But, if you are struggling, feel free to use this option.
  7. Do not post your solutions to out-of-class assignments directly into Slack unless prompted by an instructor.

Be courteous to everyone on Slack. Students who are being rude or who are excessively posting might be banned from posting on the course Slack channel.

Required materials for class

Although this course will be meeting virtually this semester, the “in-class” programming assignments are a critical part of the learning process in this course. To that end, you will need to ensure that you have the following:

If you do not have a sufficiently reliable internet connection to log into Zoom during the designated class times to participate in the virtual class sessions, you should notify your instructor immediately to determine how you can best participate in the course and successfully complete the required activities.

You are also expected to have a Slack account (https://slack.com/) and sign up for the CMSE Courses Slack workspace (https://cmse-courses.slack.com/). Details for doing so are outlined in later sections.

The details regarding the software needed for this course are provided in the “Software Setup Guide” which will be provided to you by your instructor.

Reading Materials

Student self-guided learning through assigned readings is required for students to be successful. The course strives to use Open Educational Resources (OER) to help reduce student financial burden. To this end, we have selected the following downloadable textbooks for reading assignments and supplemental examples:

Instructor Contact Information

Section 001 Instructors (Tu/Th 10:20 AM - 11:40 AM):

Section 002 Instructors (M/W 12:40 PM - 2:00 PM):

Section 003 Instructors (Tu/Th 1:00 PM - 2:20 PM):

Section 004/005 Instructors (M/W 12:40 PM - 2:00 PM):

Course Coordinator:

Instructor office hours and locations

The best way to contact instructors is through email or by visiting their office hours. Please give all instructors 1 workday to reply to all emails.

For fall 2020, all office hours should be primarily via the Math 314 zoom help desk:

This room utilizes a zoom waiting room and breakout rooms for students. All MTH314 instructions will plan on using this room to provide a wide range of times for student support. However, during popular times, students may need to wait in line to ask questions with the instructor. A complete calendar of office hours for all instructors can be found on the course website.

In addition to the above, the MTH314 course coordinator (Dirk Colbry) holds office horus at the following times and by appointment:

When Where
Dirk Colbry T Th 9:20-10:30 a.m. https://msu.zoom.us/j/97272546850

Course Policies and Expectations

Class attendance

This class is heavily based on material presented and worked on during class, and it is critical that you attend and participate fully every week! Therefore, class attendance is absolutely required. Since unexpected situations may arise, all students will be permitted to miss three class periods without penalty. After the first three, an unexcused absence will result in zero points for the day, which includes the in-class programming assignment points. Arriving late or leaving early without prior arrangement with the instructor of your session may be counted as an unexcused absence. Note that if you have a legitimate reason to miss class (such as job, graduate school, or medical school interviews) you must arrange this ahead of time to be excused from class. Six or more unexcused absences will result in the reduction of your grade by one step (e.g., from 4.0 to 3.5), with additional absences reducing your grade further at the discretion of the course instructor. If you are unable to attend class or complete assignments due to illness or self-isolation (as per the CDC recommended guidelines), your instructor will work to provide the necessary accommodations to ensure that your performance in class is not significantly impacted.

Email

At times, we will send out important course information via email.  This email is sent to your MSU email address (the one that ends in “@msu.edu”).  You are responsible for all information sent to your university email and for checking this account daily.

Inclusive classroom behavior

Respectful and responsible behavior is expected at all times, which includes not interrupting other students, refraining from non-course-related use of electronic devices or additional software during class sessions, and not using offensive or demeaning language in our discussions. Flagrant or repeated violations of this expectation may result in ejection from the classroom, grade-related penalties, and/or involvement of the university Ombudsperson. In particular, behaviors that could be considered discriminatory or harassing, or unwanted sexual attention, will not be tolerated and will be immediately reported to the appropriate MSU office (which may include the MSU Police Department).

In addition, MSU welcomes a full spectrum of experiences, viewpoints, and intellectual approaches because they enrich the conversation, even as they challenge us to think differently and grow. However, we believe that expressions and actions that demean individuals or groups comprise the environment for intellectual growth and undermine the social fabric on which the community is based. These demeaning behaviors are not welcome in this classroom.

Accommodations for Students with Disabilities

Michigan State University is committed to providing equal opportunity for participation in all programs, services and activities. Requests for accommodations by persons with disabilities may be made by contacting the Resource Center for Persons with Disabilities at 517-884-RCPD or on the web at http://rcpd.msu.edu. Once your eligibility for an accommodation has been determined, you will be issued a Verified Individual Services Accommodation ("VISA") form. Please present this form to the instructor at the start of the term and/or two weeks prior to the accommodation date (test, project, etc.). Requests received after this date may not be honored.

  • from the Resource Center for Persons with Disabilities (RCPD)

Academic honesty

Intellectual integrity is the foundation of the scientific enterprise.  In all instances, you must do your own work and give proper credit to all sources that you use in your papers and oral presentations – any instance of submitting another person’s work, ideas, or wording as your own counts as plagiarism.  This includes failing to cite any direct quotations in your essays, research paper, class debate, or written presentation.  The MSU College of Engineering adheres to the policies of academic honesty as specified in the General Student Regulations 1.0, Protection of Scholarship and Grades, and in the all-University statement on Integrity of Scholarship and Grades, which are included in Spartan Life: Student Handbook and Resource Guide.  Students who plagiarize will receive a 0.0 in the course.  In addition, University policy requires that any cheating offense, regardless of the magnitude of the infraction or punishment decided upon by the professor, be reported immediately to the dean of the student's college. (See also the Academic Integrity webpage.)

It is important to note that plagiarism in the context of this course includes, but is not limited to, directly copying another student’s solutions to assignments; copying materials from online sources, textbooks, or other reference materials without citing those references in your source code or documentation, or having somebody else do your in-class work or homework on your behalf.  Any work that is done in collaboration with other students should state this explicitly, and have their names as well as yours listed clearly.

More broadly, we ask that students adhere to the Spartan Code of Honor academic pledge, as written by the Associated Students of Michigan State University (ASMSU):

“As a Spartan, I will strive to uphold values of the highest ethical standard. I will practice honesty in my work, foster honesty in my peers, and take pride in knowing that honor is worth more than grades. I will carry these values beyond my time as a student at Michigan State University, continuing the endeavor to build personal integrity in all that I do.”

Limits to confidentiality

Essays, journals, and other materials submitted for this class are generally considered confidential pursuant to the University's student record policies. However, students should be aware that University employees, including instructors, may not be able to maintain confidentiality when it conflicts with their responsibility to report certain issues to protect the health and safety of MSU community members and others. As the instructor, I must report the following information to other University offices (including the Department of Police and Public Safety) if you share it with me: suspected child abuse/neglect, even if this maltreatment happened when you were a child, allegations of sexual assault or sexual harassment when they involve MSU students, faculty, or staff, and credible threats of harm to oneself or to others. These reports may trigger contact from a campus official who will want to talk with you about the incident that you have shared. In almost all cases, it will be your decision whether you wish to speak with that individual. If you would like to talk about these events in a more confidential setting you are encouraged to make an appointment with the MSU Counseling Center.

Changes to Syllabus

The syllabus may also be adjusted if needed. These types of changes will be announced during class, by email and/or in the course’s Desire2Learn page.

Commercialized Lecture Notes

All lectures, videos and notes provided in this course are copyrighted by the university. Recording of lectures and/or commercialization of other university-provided course materials is not permitted in this course.

Disruptive Behavior

Article 2.III.B.4 of the Student Rights and Responsibilities (SRR) for students at Michigan State University states:

"The student's behavior in the classroom shall be conducive to the teaching and learning process for all concerned." Article 2.III.B.10 of the SRR states that "The student and the faculty share the responsibility for maintaining professional relationships based on mutual trust and civility."

General Student Regulation 5.02 states:

"No student shall . . . interfere with the functions and services of the University (for example, but not limited to, classes . . .) such that the function or service is obstructed or disrupted. Students whose conduct adversely affects the learning environment in this classroom may be subject to disciplinary action through the Student Judicial Affairs office."

Grief Absence Policy

Michigan State University is committed to ensuring that the bereavement process of a student who loses a family member during a semester does not put the student at an academic disadvantage in their classes. If you require a grief absence, you should complete the “Grief Absence Request” web form no later than one week after knowledge of the circumstance. I will work with you to make appropriate accommodations so that you are not penalized due to a verified grief absence.

MSU Community Compact for COVID-19

During the Fall 2020 semester a set of requirements have been put in place to maximize the health and safety of all members of the MSU community. More details can be found on the MSU Community Compact website.

Student illness and Exposure to COVID-19

If a student is exposed to someone who is ill or has tested positive for the COVID-19 virus, they will stay home, contact a health care provider and follow all public health recommendations. There are multiple policies available to complete course work. Please talk to your instructors and review the university policies.

Instructor illness

In the event that the instructor gets ill, the course will continue. Backup instructors have been identified and will step in.

Using this Course’s Python Setup

Instructions for downloading Anaconda (Python 3.x):

  1. Go to the Anaconda Download webpage: https://www.anaconda.com/downloads
  2. Pick your operating system.
  3. Download the Python 3.x version (64 bit recommended).
  4. Follow the directions at the bottom of the page to install Python on your specific operating system.
  5. Open the command line program on your computer
    • On windows, type CMD in the run box in the Start menu.
    • On Mac, type “terminal” and hit enter in the Finder window
    • On Linux, open up the console application
  6. Type “jupyter notebook” in the command line and hit enter

If everything goes correctly, a browser window should open up with the Jupyter interface running. If things don’t work, don’t worry; we will help you get started.

Instructions for connecting to the engineering JupyterHub server:

Every student enrolled in this class will be given an engineering computing account. If this is your first time using your Engineering account you will need to activate the account by going to the following website:

https://www.egr.msu.edu/decs/myaccount/?page=activate

Enter your MSU NetID. The initial password will be your Apid with an @ on the end (example: A12345678@) and then they have to set a password that meets the requirements listed on the page. Verify the password. Then agree to the terms and Activate.

Once your account is activated you can access the classroom Jupyterhub server using the following instructions:

  1. Open up a web browser and go to the following URL: https://jupyterhub.egr.msu.edu
  2. Type your engineering login name. This will be your MSU NetID.
  3. Your engineering password.

If everything is working properly you will see the main “Files” windows in the Jupyter interface.

Instructions for getting iPython notebook files into Jupyter:

iPython notebooks (also referred to as Jupyter notebooks) are files that end with the .ipynb extension.  We will give you these files for all of your assignments, you will edit them and turn in the edited files using the class Website.

You can download the ipynb assignment files from the class website (http://d2l.msu.edu). Once you have an ipynb file you can load it into Jupyter using the “upload” button on the main “Files” tab in the Jupyter web interface. Hitting this button will cause a file browser window to open. Just navigate to your ipynb file, select it and hit the open button.

Once you see your filename in the jupyter window you can just click on that name to start using that file.

Instructions for making a copy of iPython notebooks and turning them in:

When you are finished editing your iPython notebook and are ready to turn in the assignment you will need to download the ipynb file from the Jupyter interface.  

  1. With the notebook file open in Jupyter, go to the “File” menu, select the “Download as” menu option and then choose “iPython Notebook (.ipynb)”
  2. Pick a place to save the file (The desktop is a good choice).  
  3. Make sure you make  a copy of the .ipynb file for your own records.
  4. Go to the Desire 2 Learn course website and upload the .ipynb file into the assignment folder.

NOTE:  Video versions of these instructions are available on the CMSE YouTube Channel.