Overview


Instructor
Jeffrey Wong ( main site)
Email
jtwong at math dot duke dot edu
Office
Physics 029B
Office Hours
TBA or by appt.
Lectures
WF 3:30-4:45; through Zoom
Syllabus
link (pdf)
Textbook(s)
(None required)

Course Website
During the semester, we will use Piazza for the course website. Resources will periodically be updated here.

Course Description
This is an introductory programming course in python that will provide a foundational background for programming in a mathematical setting. Students will learn the basics of object oriented programming: memory storage and variable scoping, recursion, objects and classes, and basic data structures. A variety of numerical methods will be introduced, with a focus on their practical implementation, through a series of modules covering a variety of subjects such as physical modeling, genetics, and optimization. The course is separated into two parts: In the first, we cover programming fundamentals in python. The second part is comprised of a series of modules on applications in computational mathematics, which provide a practical setting in which to develop these programming skills. In addition, towards the end of the course, there will be a final project in which the student chooses a topic to explore in depth.

Prerequisites
Students should have taken at least linearr algebra (Math 216, 218 or 221), while no programming background is required. Not open to students who have taken CS 201.

Technology
Access to the following (free) resources is required: Zoom (for lectures), github (to share and turn in work), Python 3.x and an editor (e.g. a text editor or an IDE like PyCharm), LaTeX, (for some homework and project writing). Information for getting started will be provided.

Homework and Exams

Exams
There is one midterm exam that covers programming fundamentals and no final exam. The midterm will be `take-home' and open notes (with some restrictions), to be taken during a subset of a continuous three hour period of the student's choice.

Grading
Course grades will be based on the following components: Note that participation in synchronous class meetings is strongly encouraged but, if missed, is not penalized in the grade.

Ethics
Students are expected to follow the Duke Community Standard. If a student is found responsible for academic dishonesty through the Office of Student Conduct, the student will receive a core of zero for that assignment. If a student’s admitted academic shonesty is resolved directly through a faculty-student resolution agreement approved by the Office of Student Conduct, the terms of that ent will dictate the grading response to the assignment at issue.