Syllabus – Math 3316, Introduction to High Performance Scientific Computing, Fall 2016


Sheng Xu

Class and Office Hours:

Lecture: 126 Clements Hall, Tu/Th, 12:30-1:50 pm.

Labs: 485 Caruth Hall, M or W, 6:30-7:50 pm.

Office Hours: 235 Clements Hall, Tu/Th 2:30-4 pm, W 11am-noon, or by appointment (arrange by email).


W. Cheney and D. Kincaid, Numerical Mathematics and Computing, Brooks Cole, 7th edition, 2012. (ISBN: 1133103715)

Course Description:

MATH 3316 – Introduction to High-Performance Scientific Computing [3 credits]

An elementary survey course that includes techniques for root-finding, interpolation, functional approximation, linear equations, and numerical integration. Computational work focuses on the Python and C++ programming languages using Linux.

Prerequisites: C- or higher in MATH 1338 and CSE 1342. Corequisite: MATH 3353.

Student Learning Objectives:

  • Math Major SLO 2: Students will be able to write computer programs to solve scientific problems.
  • Math Major SLO 3: Students will be able to select appropriate algorithms to solve various computational problems from science and engineering.

In addition, this course is tagged for Writing. It is a W-course in which you compose coherent, well-supported and carefully edited reports.

Computer Labs:

The computer lab is located in 485 Caruth Hall. It is reserved for students in this course on Mondays/Wednesdays from 6:30-7:50 pm. Students must register for one of the computer labs, which is offered to help students complete project work. Attendance at lab sessions is voluntary; however you must show up to have the first half of each project checked by the TA. In addition, you may use the public Lyle computer labs at any time during public access hours.

The TA will be available during all of your lab sessions. The TA’s job is to help you with questions concerning the computer projects; all questions concerning other course material should be addressed to Dr. Xu.


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.

Specific passages required for each section are listed on the Homework page.


You will have two homework assignments per section. The first of these assignments will be very short, will cover material from your reading, and will be due before the material is presented in lecture. These problems must be turned in, in person, at the beginning of class (late work will not be accepted). If all problems are attempted, the lowest possible grade you can attain on this is a 70.

The second set of homework problems will be assigned on the course homework page, and will not be turned in. This larger and more challenging problem set will be indicative of exam questions, so you should make every effort to complete the homework assignments and seek help on all problems that you are unable to solve.

Both sets of homework problems for each section are listed on the Homework page.

I strongly encourage that you discuss the reading and all homework assignments with fellow students.

Computer Projects:

There will be 4 programming projects throughout the semester. These assignments will be discussed in class, and posted on the Projects page. Each will consist of writing and running C++ and Python programs to solve computational problems, along with a written report on the problems and results.

Each project will have two phases, an initial phase where you will build a tool, and a second phase where you will use that tool to solve a problem. The first (tool-building) phase must typically be completed one week prior to the required due date, and will be checked by the TA during your lab session.

The project reports must be turned in by 5:00 pm on the specified due date. All project materials (report, source codes, output, plots) should be combined into a single ”.zip” or ”.tgz” file, and must be turned in via Canvas. Late work will lose points based on the following schedule:

  • 1 minute to 24 hours – 10 points
  • 24 hours to 48 hours – 20 points
  • 48 to 72 hours – 30 points
  • 72 to 96 hours – 40 points
  • over 96 hours – no credit

The project assignments, along with any relevant example codes, are provided on the Projects page. The Computing page has helpful resources for Linux, C++ and Python.

The projects involve a substantial amount of work – I strongly recommend that you begin these early and do not procrastinate.


We will have 3 in-class exams, the dates of which are posted on the course web page. The exam questions will be based off of the homework and projects. These exams will be non-cumulative, and will be open-book/open-notes. There will be no final exam.

The specific sections covered on each exam, as well as practice exams, are provided on the Exams page.


Your course grade will be determined using the following formula:

12% Homework

48% Exams

40% Projects

I will drop your lowest homework assignment. I reserve the right to change these weights to the students’ advantage if the need arises. All final grades are assigned on a standard grading scale.

Honor Code:

The SMU Honor Code applies to all projects 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 project/exam, and the maximum penalty is immediate failure of the course. These penalties are in addition to those imposed by the SMU Honor Council.

Examples of honor code violations include:

  • Submitting a computer project which includes a program, or even part of a program, written by someone else (other than the instructor or TA). This includes programs written by students from previous semesters, and programs downloaded from the internet.
  • Submitting computer outputs (numerical results or plots) produced by someone else’s program.
  • Submitting computer outputs with fabricated results.
  • 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 project strategy (algorithms from the book, helpful websites, etc.) all you want, but you should never look at another student’s project codes or written report.

See the SMU Honor Code website for more information.

SMU Regulations:

Disability Accommodations: Students needing academic accommodations for a disability must first register with Disability Accommodations & Success Strategies (DASS). Students can call 214-768-1470 or visit to begin the process. Once registered, students should then schedule an appointment with the professor as early in the semester as possible, present a DASS Accommodation Letter, and make appropriate arrangements. Please note that accommodations are not retroactive and require advance notice to implement.

Religious Observance: Religiously observant students wishing to be absent on holidays that require missing class should notify their professors in writing at the beginning of the semester, and should discuss with them, in advance, acceptable ways of making up any work missed because of the absence. (See University Policy No. 1.9.)

Excused Absences for University Extracurricular Activities: Students participating in an officially sanctioned, scheduled University extracurricular activity should be given the opportunity to make up class assignments or other graded assignments missed as a result of their participation. It is the responsibility of the student to make arrangements with the instructor prior to any missed scheduled examination or other missed assignment for making up the work. (University Undergraduate Catalogue)