Math 3054

Programming and Mathematical Problem Solving

Course Description

This course serves as an introductory programming course for Mathematics majors. This course introduces elementary programming skills that are applied to solve mathematical problems. The course covers a basic understanding of how computers store and programs manipulate data, procedural and object-oriented programming techniques, parallel programming, and as well as graphics and visualization. The main programming language for the course is Matlab.

This course may be used to satisfy the Mathematics undergraduate programming requirement.

We will cover programming solutions to mathematical problems, including those that emphasize

  • Computational Geometry
  • Operations with Vectors and Matrices
  • Basic Statistics
  • Numerical Differentiation and Integration

Course Instructor: Jeff Borggaard

Regular office hours will be held in McBryde 528. Additional meeting times can be arranged by e-mail.

Course Resources

There is no required text for this course. Materials that might help students learn the material include

Insight Through Computing: A MATLAB Introduction to Computational Science and Engineering, Charles Van Loan and K.-Y. Daisy Fan, SIAM, 2010. (link).

This course will be managed using the Virginia Tech Canvas site. Example programs are posted under the Files menu.

Students are required to have access to Matlab in order to perform computations, edit, and run programs. Matlab is available for $25 to all Virginia Tech mathematics and engineering students through the Virginia Tech Computing Center. You may can find purchasing details at the Information Technology Acquisitions site.

You may also find one of the many MATLAB tutorials and Learning Resources useful: link

Course Contract

Math 3054 - Programming and Mathematical Problem Solving - Fall 2016


Jeff Borggaard, regular office hours will be held in McBryde 528. Students are invited to e-mail me at ( to arrange an appointment.

Evaluation and Grading

The grade will be determined by homework and projects as well as a midterm exam. Assignments during the semester will make up 70% of the grade. A midterm exam will be worth 15% of the grade and the remaining 15% will be determined through the final project that takes the place of the final exam. Homework will be assigned weekly to bi-weekly. Assignments will be managed during class or through Cody coursework. All grades will be posted on the course Scholar site. To encourage everyone to keep up with the material and lectures, late homework will not be accepted unless by prior agreement.

Academic Integrity and Honor Code

Students enrolled in this course are responsible for abiding by the Undergraduate Honor Code pledge that each member of the university community agrees to abide by and which states: As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.

You are encouraged to discuss assignments with other members of the class. However, the objective of this course is to teach everyone how to program and use computer programs to solve mathematical problems, thus any submitted write-up and code to be graded (including Cody coursework) should be your work alone. Direct copying of solutions or parts of solutions from any source is a violation of the honor code, as is sharing your solutions with others.

All exams and the final project are to be done without any assistance from anyone else. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code.

For more information about the Honor Code see