# Syllabus – Math 5316, Introduction to Matrix Computation, Spring 2019¶

## Instructor:¶

Daniel R. Reynolds

## Class and Office Hours:¶

Lecture: 142 Dallas Hall, Tu/Th, 9:30-11:50 am.

Office Hours: 139 Clements Hall, Tu/Th 1-2 pm, W 9-10 am and 1-3 pm, or by appointment (arrange by email).

## Textbook (required):¶

D.S. Watkins, Fundamentals of Matrix Computations, Wiley, 3rd edition, 2010. (ISBN: 0470528338)

## Course Description:¶

MATH 5316 – Introduction to Matrix Computation [3 credits]

The efficient solution of dense and sparse linear systems, least squares problems, and eigenvalue problems. Elementary and orthogonal matrix transformations provide a unified treatment. Programming is in MATLAB, with a focus on algorithms.

Prerequisites: C- or higher in MATH 3304 or MATH 3353; C- or higher in MATH 3315/CSE 3365 or MATH 3316.

## Student Learning Objectives:¶

• Math Major SLO 5: Students will be able to demonstrate fluency in the use of advanced tools or methods common to the field.

## Computing:¶

Computing assignments in this class must be written in either Matlab or Python (unless otherwise approved by the instructor). Students may switch between languages at their discretion, I only require that each computing problem be turned in once (in a single language).

Matlab:

Because SMU has a site license for Matlab, it may be installed for free on your personal computer (Windows, Mac or Linux) – information on the installation process, as well as relevant download links, are available at www.smu.edu/OIT/Services/Info/Matlab. Matlab is also available on most public computers across campus.

I recommend that you use a more recent version of Matlab for your computations in this class (e.g., 2017a or newer), since they have worked to improve the speed of loop-based calculations (we’ll do lots of these in this class).

I require that Matlab programs be turned in as .m files (i.e., not as Live Scripts or Live Functions), so that they can be run in ‘batch mode’ for grading.

Python:

Similarly, Python is free and may be installed on any computer in a variety of ways. Popular Python distributions for Windows and OSX are Enthought Canopy Express and Anaconda. Be certain to install Python version 3.5 or higher so that your programs support the “@” operator for matrix-matrix and matrix-vector multiplication.

Python-based calculations in this class will require both the “Numpy” and “Scipy” packages, so you must ensure that these are installed within your distribution. All vectors and dense matrices in this class must be stored using one- and two-dimensional Numpy “ndarray” objects (we’ll also use sparse matrices based on other formats).

I require that Python programs be turned in as .py files (i.e., not as IPython or Jupyter notebooks), so that they can be run at the OS X / Linux command line.

Reading the assigned sections of the textbook is required, and will be necessary for completing each homework assignment. You are responsible for all of the material in the assigned reading, whether it has been presented in the lecture or not.

The assigned readings for each section will be listed on the Reading page.

## Homework:¶

Homework will be assigned on the course Homework page. These will be due periodically throughout the semester, and will be comprised of both theoretical and computational work.

• Computational portions of each assignment will be turned in electronically through Canvas. You must turn in all Matlab or Python scripts, functions, and input files required to run your code (including any files provided by the instructor).
• Theoretical portions of each assignment will be turned in electronically through Canvas.

Each homework assignment is due by 5:00 pm on the specified date.

Late work will lose points based on the following schedule:

• 1 minute to 24 hours – 20% deduction
• 24 hours to 48 hours – 50% deduction
• over 48 hours – no credit

These assignments will involve a substantial amount of work – I strongly recommend that you begin these when assigned and do not procrastinate.

## Exams:¶

We will have 2 in-class exams, the dates of which are posted on the course web page. The exam questions will be based off of the reading and homework. These exams will be non-cumulative, and will be open-book/open-notes, but calculators and other electronic devices are prohibited.

We will have a final exam during the regularly-scheduled exam period (5/9, 8:00 am). This will be cumulative, and will be open-book/open-notes, but again, calculators and other electronic devices are prohibited.

30% Homework

40% Mid-term exams

30% Final exam

30% Homework

20% Best mid-term exam

50% Final exam

This grading scheme is somehow too complex for Canvas to handle, so the overall grade shown in Canvas will be incorrect. As this is an upper-level Math course and I provide all numerical grades and the formula to you, I expect that you can determine your actual overall grade yourself. All final grades are assigned on a standard grading scale.

## Honor Code:¶

The SMU Honor Code applies to all homework and exams in this course. Work submitted for evaluation must represent your own individual effort. Any giving or receiving of aid without my express consent on academic work submitted for evaluation shall constitute a breach of the SMU Honor Code.

I take honor code violations very seriously, and will report all violations to the SMU Honor Council. The minimum penalty for a violation is a “0” on the assignment, and the maximum penalty is immediate failure of the course. These penalties are in addition to those imposed by the SMU Honor Council.

While all work submitted must represent your own individual effort, I do recommend that students work together to discuss proof strategies, code structure, etc., on homework in this course.

Examples of allowed collaboration:

• Proofs: You can discuss the basic strategy of any proof (e.g., proof by contradiction, important definitions from the book, etc.), including any “tricks” that may be required. However, actual writing of the proof and all justification of steps must be done on your own.
• Codes: You can discuss basic program strategy (e.g., algorithms from the book, helpful websites, code structure, additional useful functions, and how functions should interact with one another). However, you must write and debug all codes yourself, using your own personal variable/fuction names, comments, and implementation details.

Examples of honor code violations include:

• Copying theoretical work from another student, a tutor, or from the internet.
• Submitting a computer code which includes a program, or even part of a program, written by anyone else (other than the instructor). This includes programs written by students from previous semesters, tutors, and programs downloaded from the internet.
• Submitting plagiarized or fabricated computer outputs (numerical results or plots).
• Supplying your own work for another student to copy.

A generally applicable rule of thumb in this course is: you are encouraged to talk about program strategy and proof strategy all you want, but you should never look at another student’s codes or written work.