CS 417 (Spring 2024)

Thomas J. Kennedy

Last modified: Jan 2, 2024
Contents:

1 Basic Course Information

The course schedule and website are located at https://www.cs.odu.edu/~tkennedy/cs417/latest.

1.1 Catalog Description

Algorithms and software for fundamental problems in scientific computing. Topics: properties of floating point arithmetic, linear systems of equations, matrix factorizations, stability of algorithms, conditioning of problems, least-squares problems, eigenvalue computations, numerical integration and differentiation, nonlinear equations, iterative solution of linear systems.

1.2 Overall Description

Computer Science involves a fair bit of math and logic. However, most students have a misplaced fear of or frustration with mathematics…

  1. Many students look at a math problem, see unfamiliar notation, and psyche themselves out.

  2. Many students hear the word “proof” and have no idea where to start.

My overarching goals are…

  1. to help you build the intuition that you need to make use of your existing math knowledge.

  2. to help you develop an intuition for constructing and analyzing proofs.

  3. to develop a natural curiosity along with a strong foundation for further mathematical endeavors.

1.3 Prerequisites

Students are expected to have a strong foundation in mathematics and programming:

  1. Math 316 - Good understanding of calculus and linear algebra.
  2. CS 250 or CS 251 or CS 253 - Programming skills in a language such as: C/C++, Python, Rust, or Java.

1.3.1 General Programming Knowledge

Students should be familiar with certain basic programming techniques that are largely independent of any specific programming language:

1.3.2 C, C++, Java, Python, or Rust Knowledge

I will assume that you are familiar with the basics of C, C++, Java, Python, or Rust. This includes:

1.3.3 General Computer Literacy

You will be studying techniques in this course for preparing professional-quality software documentation. The key embedded word in “software documentation” is “document”. Students taking this course should be able to use word processors and other common tools to produce good quality documents, including mixing text and graphics in a natural and professional manner.

1.4 When and Where

1.5 Instructors

Mr. Thomas Kennedy & Dr. Nikos Chrisochoides

Instructor Office Phone # Email Home Page & Office Hours
Thomas J. Kennedy Dragas 1100D 757.683.7725 tkennedy@cs.odu.edu https://www.cs.odu.edu/~tkennedy

Important: All email related to this course should have the phrase CS 417 somewhere in the subject line. This flags your message in my mailbox for faster attention.

 

I try to respond to all (properly marked) messages

Any delays in replying to email will be noted in a Canvas Announcement.

1.5.1 Office Hours

My general office hours are available at https://www.cs.odu.edu/~tkennedy/. Instructions for scheduling a formal appointment are listed on the same page and here. My office hours consist of web-conference (Zoom) appointments.

General questions about course content and reports of website problems should normally be asked in the Forums on Canvas or via email.

2 Required Materials

2.1 Textbooks

Class notes are available on Canvas and the course site. The required Chapter Texts are provided through Canvas.

2.2 Supplemental Materials

Supplemental texts are optional:

  1. (Optional) Elementary Numerical Analysis: An Algorithmic Approach, by Samuel Daniel Conte, Carl De Boor

  2. (Optional) Numerical Analysis: An Introduction, By Walter Gautschi.

  3. (Optional) Data Structures and Algorithms in Python Book by Michael H. Goldwasser, Michael T. Goodrich, and Roberto Tamassia

  4. (Optional) Advanced Calculus: Second Edition by David V. Widder

2.3 Technology Requirements

2.3.1 Computer Accounts

Students will need an account on the CS Dept. Linux network to participate in this class. This account is unrelated to any University-wide account you may have from ODU’s Information Technology Services (ITS).

If you have had a CS Unix account in the recent past, you should find it still active with your login name, password, and files unchanged. If you have had an account and it has not been restored, contact the CS Dept systems staff at root@cs.odu.edu requesting that it be restored.

If you do not yet have such an account, go to the CS Dept. home page and look for “Account Creation” under “Online Services”. All students in this course are responsible for making sure they have a working CS Unix account prior to the second week of class.

3 Course Objectives

This course is designed as an introduction to the basics of numerical analysis. At the end of this course students will be able to:

  1. Examine the impact of finite arithmetic on computation.
  2. Formulate numerical approximation problems and investigate their solutions via programming.
  3. Investigate the relationship between mathematical models and their matrix representations.
  4. Synthesize solutions from simpler parts.
  5. Design algorithms and prove their correctness using theory/analysis as building blocks.
  6. Examine the spatial complexity, temporal complexity, and computational complexity of numerical solvers.
  7. Implement numerical software using existing libraries.
  8. Test and verify the correctness of their own codes using model problems and principles from theory.
  9. Utilize vocabulary and terminology used by engineers and applied mathematicians.
  10. Summarize the literature and utilize basic software packages on numerical approximation.
  11. Discuss research issues in numerical computing.

4 (Tentative) Course Topics

Part I*

  1. MACHINE ARITHMETIC AND RELATED MATTERS
    • Machine Arithmetic and Rounding
    • The Condition of a Problem and Algorithm
  2. APPROXIMATION
    • Least Squares Approximation
  3. INTERPOLATION
    • Polynomial Interpolation
    • Approximation and Interpolation by Spline Functions
  4. NONLINEAR EQUATIONS
    • Examples, Iteration, Convergence, and Efficiency
    • Method of False Position
    • Secant Method
    • Newton’s Method

Part II

  1. NUMERICAL DIFFERENTIATION AND INTEGRATION
    • Numerical Differentiation
    • Numerical Integration

Topics of Interest (Time Permitting)

  1. MATRIX COMPUTATIONS – SYSTEMS OF LINEAR EQUATIONS
    • Gauss Elimination and LU Factorization: Basic Algorithms
    • Iterative Methods: Basic Algorithms

The topics covered and time spent on each topic may change based on class performance and class pacing.

5 Course Schedule

The course schedule is available in Canvas under Modules and Calendar. An alternate schedule/outline can be accessed at https://www.cs.odu.edu/~tkennedy/cs417/latest/Directory/outline/index.html.

6 Grading

Final grades will be computed using the following weights:

CS 417 CS 517
Homework 30% 25%
Machine Assignments -- 5%
Exam 1 15% 15%
Exam 2 15% 15%
Semester Project 10% 10%
Final Exam 30% 30%
Total 100% 100%

Final course grades will be assigned based on the standard 10-point scale 1:

Point Range Letter Grade
90 – 100 A
80 – 89 B
70 – 79 C
60 – 69 D
59 and Below F
  1. I will apply pluses (+) and minuses (-) to letter grades as appropriate.

  2. CS417 students are encouraged to complete Machine Assignments. 5% of your Machine Assignment average will be added to your Final Grade.

  3. Your Final Exam percentage can be used to replace your Exam 1 or Exam 2 grade… if your Final Exam percentage is higher. Note that both Exam 1 and Exam 2 can potentially be replaced.

6.1 Exams

Exams will be administered online through Canvas.

6.2 Incomplete Grades

A grade of “I” indicates assigned work yet to be completed in a given course, or absence from the final examination, and is assigned only upon instructor approval of a student request. The “I” grade may be awarded only in exceptional circumstances beyond the student’s control. The “I” grade becomes an “F” if not removed by the day grades are due for following term based on specific criteria: Incomplete, Withdraws and Z grades..

7 Expectations

This course covers theory oriented and math oriented topics and problems. You are expected to review required mathematics, programming, and theory as directed. If whilst reviewing you would like direction or clarification contact the instructor (via email or in the discusion board).

We discuss various notations (for math and pseudocode) in this course. Keep in mind “That it is just notation.” Familiarizing oneself with unfamiliar notations is a skill we will endeaver to develop this semester.

If you have questions… Ask the instructor The cliché “If you have a question… at least one of your classmates has the same question.” is true (especially this semester).

8 Course Policies

8.1 Class Attendance

During lectures, we will be covering material from my notes. Lecture will also consist of the exploration of several real world problems not covered in any book. I may assign (or announce through Canvas) a reading assignment or thinking assignment at the end of each lecture.

You are responsible for the contents of all lectures. Ideally, I expect you to attend lecture and to arrive on time. If you must miss a class, you are responsible for all material (e.g., lecture and assignments). I expect you to watch the recorded lecture within 24 hours.

8.2 Classroom Conduct

Please be respectful of your classmates and instructor by minimizing distractions during class. Cell phones must be turned off during class.

8.3 Due Dates & Late Submissions

I do not accept late work. Exceptions to this and other grading policies will be made only in situations of unusual and unforeseeable circumstances beyond your control, and such arrangements must be made prior to the due date in any situations where the conflict is foreseeable.

8.4 Submission (Written Exercises)

All written exercises must be submitted through Canvas in PDF format. Each such submission must take the form of a single multi-page PDF document. Failure to follow these requirements will result in a zero.

All work must be readable. Make sure that all submitted PDFs are readable, e.g.,

Problems must be submitted in order. Any scans with the problems listed out of order will result in a zero.

Show your work. Partial credit will not be awarded if:

If there is insufficient work to show how you arrived at an answer, you will not receive full credit.

8.6 Submission (Programming Exercises)

All programming exercises (e.g., Machine Assignments) must be submitted as a single zip file (zip) or tarball (tar.gz, tar, or tgz). Unless explicitly stated in the prompt, other formats will not be accepted. Each submission must include:

  1. A brief ReadMe file that specifies how to compile and run your code.
  2. Makefiles (or equivalent build files) for any compilable code.
    • For C/C++, I recommend make or Cmake
    • For Java, I recommend Gradle
    • For Rust, stick with Cargo
    • For Python, no build file is required. Python is an interpreted language

IDE (e.g., Code::Blocks, Eclipse, or VSCode) projects are not build files. No credit (i.e., zero points) will be awarded for any compilable code submitted without an appropriate build file.

All code must follow best practices, including:

8.6.1 Permitted Languages

You may used any combination of C, C++, Java, Python (3.8+), and Rust. All other languages must be discussed with the instructor before assignment/project submission.

Extra consideration will be given to novel solutions (e.g., those written in a functional language).

8.7 Academic Honesty

Everything turned in for grading in this course must be your own work.

The instructor reserves the right to question a student orally or in writing and to use his evaluation of the student’s understanding of the assignment and of the submitted solution as evidence of cheating. Violations will be reported to the Office of Student Conduct & Academic Integrity for consideration for possible punitive action.

Students who contribute to violations by sharing their code/designs with others may be subject to the same penalties.

This policy is not intended to prevent students from providing legitimate assistance to one another. Students are encouraged to seek/provide one another aid in learning to use the operating system, in issues pertaining to the programming language, or to general issues relating to the course subject matter.

Students should avoid, however, explicit discussion of approaches to solving a particular programming assignment, and under no circumstances should students show one another their code for an ongoing assignment, nor discuss such code in detail.

Use of Online Resources

You may not post details of course assignments, projects, or tests at online Forums, Bulletin Boards, Homework sites, etc., soliciting help.

You may use information that you have not solicited but have located, subject to the following restrictions:

9 University Policies

9.1 Code of Student Conduct and Academic Integrity

The Office of Student Conduct & Academic Integrity (OSCAI) oversees the administration of the student conduct system, as outlined in the Code of Student Conduct. Old Dominion University is committed to fostering an environment that is: safe and secure, inclusive, and conducive to academic integrity, student engagement, and student success. The University expects students and student organizations/groups to uphold and abide by standards included in the Code of Student Conduct. These standards are embodied within a set of core values that include personal and academic integrity, fairness, respect, community, and responsibility.

9.2 Honor Pledge

By attending Old Dominion University, you have accepted the responsibility to abide by the Honor Pledge:

I pledge to support the Honor System of Old Dominion University. I will refrain from any form of academic dishonesty or deception, such as cheating or plagiarism. I am aware that as a member of the academic community it is my responsibility to turn in all suspected violations of the Honor Code. I will report to a hearing if summoned.

9.3 University Email Policy

Reformatted to follow https://ww1.odu.edu/about/policiesandprocedures/computing/standards/11/02.

9.3.1 Student Email

With the increasing reliance and acceptance of electronic communication, email is considered an official means for University communication. Old Dominion University provides each student an email account for the purposes of teaching and learning, research, administration, and service. It is important that all students are aware of the expectations associated with email use as outlined in the Student Email Standard.

9.3.2 Email Account Activation

It is the responsibility of every eligible student to activate MIDAS, the Monarch Identification and Authorization System, in order to obtain email access.

9.3.3 Expectations Regarding Use of Email

The email account provided by the University is considered to be an official point of contact for correspondence. Students are expected to check their official e-mail account on a frequent and consistent basis in order to stay current with University communications. Mail sent to the ODU email address may include notification of University-related actions, including academic, financial, and disciplinary actions. For more information about student email, please visit Student Computing.

9.3.4 Educational Uses of Email

University offices and instructors cannot validate that a communication coming by email is from an ODU student unless it comes from a valid ODU email address. If students send mail from non-ODU email accounts (e.g., Hotmail or Yahoo), faculty and staff are not obligated to respond and may request that official e-mail accounts be used.

9.4 Withdrawal

Enrollment in this course indicates your acceptance of its teaching focus, requirements, and policies. Please review the syllabus and the course requirements as soon as possible. If you believe that the nature of this course does not meet your interests, needs or expectations, if you are not prepared for the amount of work involved – or if you anticipate assignment deadlines or adherence to course policies will constitute an unacceptable hardship for you – you should drop the course by the drop/add deadline, which is listed in the ODU Schedule of Classes. Visit the Office of the University Registrar for more information.

9.5 Educational Accessibility

Old Dominion University is committed to ensuring equal access to all qualified students with disabilities in accordance with the Americans with Disabilities Act. The Office of Educational Accessibility (OEA) is the campus office that works with students who have disabilities to provide and/or arrange reasonable accommodations.

The Office of Educational Accessibility is located at 1021 Student Success Center and their phone number is (757) 683-4655. Additional information is available at the OEA website