Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

MTH 337 Syllabus

Class meetings

Tue Thu 9:00-10:50 AM
150 Mathematics Building

Instructor

Bernard Badzioch
E-mail: badzioch@buffalo.edu
Office: 108 Mathematics Building
Office Hours: Thu 2:00-4:00 PM, and by appointment

Learning Outcomes

This course provides introduction to scientific computing using Python programming language. At the end of the course you should be able to use Python and its libraries to perform scientific computations, access, manipulate and visualize data, and apply some methods to perform data analysis and modeling. The work on the course projects you will also help you improve your technical writing skills.

Course Resources

Laptop. We will be writing code during all class meetings. For this reason, you need to bring a laptop to each class. Any operating system (Windows/Mac/Linux) is fine.

Software. We will be using the Anaconda distribution of Python. This is free software. Even if you have Python already installed on your computer, you should install Anaconda distribution since it includes Jupyter Notebook and several Python libraries we will need.

Piazza. We be using Piazza for course-related communications. If you have a question or comment related to the course, please post it on Piazza. This will help other students who may face the same issue. If you know the answer to a question somebody else posted on Piazza, please answer it.

If you have a personal question (concerning your grade etc.), you can either send to me a private message on Piazza or contact me by e-mail.

UBLearns. In this course UBLearns will be used for submission of project reports only. All other course materials will be posted on this website.

Textbook. There is no required textbook for this course. Some useful resources will be posted under “Useful Links” on the course website.

Grading

There will be no exams in this course. Grades will be assigned based on the following components:

ComponentWeight
Project Reports75%
Quizzes15%
Weekly Digests10%

Project Reports

One the main components of this course will be exploratory projects. You will be working on them largely independently, using mathematical and computing tools. The outcome of your work on each project will be a project report that you will submit for grading.

Each report will be graded on the A-F scale. Extra credit (a grade of A+) may be assigned for an outstanding work. Some projects will require more effort than others. To reflect it, each project will have a weight of up to 10 points, with 10 points for more work-intensive projects, and fewer points for shorter ones.

Reports will be submitted via UBLearns. Late reports will be accepted up to two days after the submission deadline with 15% score reduction for each started day. The lowest report grade will be dropped when computing the final course grade. For more information about project reports, see the course website.

The lowest report grade will be dropped when computing the cumulative report grade.

Reports will be submitted via UBLearns. Late reports will not be accepted only in case of justified emergencies etc. More information about project reports is posted here.

Quizzes

There will be several short quizzes, mostly testing your knowledge of Python. Quizzes will be announced on the course website ahead of time. The lowest quiz score will be dropped when computing the final grade.

Weekly digests

Each week you will be asked to submit a short (1-3 sentences) writeup on your study from the previous week. For example, you can write:

You will be also asked to submit a question (or questions) regarding the course.

You can receive up to 10% credit for these write-ups. You can miss one such assignment without loosing any credit, but your weekly digest credit will be lowered by 2% for each subsequent missed assignment (i.e. from 10% to 8% etc.).

I may award extra credit to students who are especially active in the course.

Academic Integrity Policy

The general policy is that any content - narrative and computer code - you submit must be written by you. If you quote some source in a project report, it must be indicated, providing the source. In case of questions if you wrote some part of a project report yourself, I may ask you to explain it in person. Violations of this policy will result in the zero score on a report, and possibly in additional sanctions (an F course grade, an academic disciplinary action etc.).

AI Tools

Use of AI tools (such as ChatGPT, Gemini, Claude etc.) is not allowed when preparing project reports.

Collaboration

You are free to discuss projects with your classmates and use online (or other) resources related to Python programming. However, each project report must be solely your own work: it must be written by you in its entirety, including all computer code.

External resources

There are two types of resources that may be relevant. First, there are plenty of books and websites devoted to Python programming. You should take advantage of this. If you have a programming question then in most cases a quick web search will get you an answer. However, you must be able to explain every piece of code you are using.

Second, most of the projects you will be working on are based on mathematical problems and ideas that are described somewhere. However, you should not start your work on a project by doing a web or library search. The goal of each project is for you to explore a problem on your own. Description of your explorations and experimentation must be the main part of your project report. Projects will be open-ended so there is no “complete solution” you should be looking for. Have fun, explore, and put in the report what you came up with.

Incomplete Grades

See the UB Catalog for the UB Incomplete Policy.

Accessibility Resources

If you need accommodations due to a physical or learning disability please contact the UB Accessibility Resources Office to get help with making appropriate arrangements.