Department of Computer Science
The University of Texas at Austin
CS 323E - Elements of Scientific Computing (Spring 2025)
Section: 50780, MW 3:30 PM - 5:00 PM, RLP 0.102
Instructor: Dr. Shyamal Mitra
Office Hours: MTH 9:00 pm - 10:00 pm
Zoom Link: On Canvas
E-mail: mitra@cs.utexas.edu
Do not send mail on Canvas.
Required Text:
Numerical
Methods: An Inquiry-Based Approach with Python
Author: Eric Sullivan
ISBN: 9798687369954
Prerequisites for CS 323E
This is an upper-division Elements of Computing course. You should have
taken both CS 303E and CS 313E or approved substitutions.
Lectures and Office Hours
There will be two modalities for this course. We will meet in person or
online. We will give you at least one week's notice when we go from
virtual to in-person or vice versa.
When we meet online, the lectures and office hours will be on Zoom in Canvas.
When we meet in person, we will meet in the classroom listed above.
For online meetings, ensure you have the latest version of Zoom.
Log in to Zoom using your ut_eid@eid.utexas.edu. The lectures will be
recorded. These recordings are confidential and are only for educational
purposes. The recordings must not be shared in any form. Any dissemination
of the recordings is a violation of the University policies and will be
subject to Student Misconduct proceedings through the Office of Student
Conduct and Academic Integrity. The office hours will not be recorded.
Scope of the Course
This is an upper-division Elements of Computing course. You should know
basic Python syntax and concepts in data structures and algorithms. The
emphasis of this course will be on the solution of scientific equations
using numerical methods.
You should understand single-variable calculus, differential equations,
and linear algebra. I will provide notes on the background material. We
will look at numerical methods to solve equations rather than providing
rigorous mathematical derivations. There will be online courses for you
to complete to fill in the gaps in your understanding of the mathematical
background. We will use standard library functions in Python for our
solutions.
We will be following the required textbook closely. We will provide notes
in class that will be posted on the web for topics not covered in the book.
Unlike the traditional lecture format, our classes will be inquiry-based.
You will be given problems that arise in traditional scientific fields. You
will discuss with your peers, and devise and implement algorithms to solve
those problems.
Learning Objectives
In this course, you will learn how to solve scientific problems numerically.
Given a scientific problem, you should be able to
- Analyze (understand in detail) the problem.
- Design an algorithm to solve the problem. In this design process, you
will choose the appropriate numerical method, and the most efficient algorithm
and data structure.
- Code the algorithm in Python 3 using standard Python libraries.
- Visualize the results using standard visualization packages.
- Write the results of your computations as a scientific
paper.
This is a programming-intensive course.
Class Participation
You are expected to be in class and participate in class activities like
coding and solving numerical problems. There is a grade associated with
being engaged. I will drop the lowest of your two class participation
scores.
Quizzes
There will be a quiz every week on Fridays. There will be around three questions
in a given quiz. The questions will be from the reading assignments from the
book, material discussed in class, or material in the assigned online courses.
The quizzes will be hosted on Canvas. The quizzes are multiple-choice questions.
There are no makeup quizzes. I will drop the lowest quiz grade. This
number (one quiz) is non-negotiable. This drop will address any reasons
you may have for missing a quiz.
Online Courses
This course requires some background in mathematics. You will be assigned
online courses through Coursera and LinkedIn Learning to fill in the gaps
in your mathematics background. These courses are free and fun. Think of
these courses as reading assignments. When you finish a course, you will
upload a screenshot of the fact that you did it to Canvas. Our grading will
be on a binary scale. You will get full credit if you complete a course and
zero if you do not.
Assignments
There will be weekly programming assignments. These will be exercises
from the book or given to you in class. The assignments will be due
on Mondays. We have a two-day late period, during which we will accept your
assignment with a late penalty of 10 points per day. We encourage you
to work on the assignments in groups of two.
Mini-Projects
You will complete four mini-projects this semester. The science will drive
these projects. You will look at each project as a research problem you will
analyze and solve. You will then present your solutions in the form of a
scientific paper.
Here are the five areas that we will focus on for the mini-projects:
- Algebra and Calculus
- Linear Algebra
- Ordinary Differential Equations
- Partial Differential Equations
- Fast Fourier Transforms (optional)
For these projects, you must work in a group of two or three. The
project reports will be due on Wednesdays - 19 Feb, 12 Mar, 9 Apr, and
30 Apr. There will be a late period of two days with a ten 10-point late
penalty per day.
Due Dates and Times
All deadlines are expressed in US Central Time. Do not wait until the last
hour and try to beat the clock. Sometimes, systems are taken down for
maintenance and will be unavailable for you. Be aware of this as you schedule
your work.
Grades
Your performance in this class will be evaluated using your scores for
class participation, quizzes, assignments, online courses, and projects.
The weights of each of these components are listed below. There are no
extra credit projects or assignments to improve your grade. We do
not drop any of the scores to compute the weighted average.
- Class Participation: 15%
- Quizzes: 15%
- Assignments: 20%
- Online Courses: 10%
- Four Mini-Projects (each 10%): 40%
All scores will be entered on Canvas. Check your scores regularly on
Canvas to make sure that we have entered them correctly. Remember the
average score as shown on Canvas is not correct. It does not
weight the average with weights as shown above. Your final grade will
be assigned after we obtain the weighted average according to the weights
as given above. Your grade will be based on the traditional scheme:
- A: 90 - 100
- B: 80 - 89
- C: 70 - 79
- D: 60 - 69
- F: 0 - 59
We assign grades using the +/- system. However, those finer cutoffs will be
determined at the very end after the class's weighted average and standard
deviation are computed.
Study Groups
To find a compatible person to work with in class. You will work with a
partner for homework assignments or in a group of two or three people for
your projects. This does not preclude you from working with others in the
class.
Communication
We will use Ed Discussion integrated into Canvas to discuss class-related
questions. Please do not post solutions or codes for homework assignment
problems on Ed Discussion. All communications to the Teaching Assistants will
be through Ed Discussion. If you want to contact the teaching assistants,
post a private note in the Ed Discussion. Please do not send them private
emails. If you will reach me, mail me at (mitra@cs.utexas.edu). If you have
assignment-related questions, visit the TAs during their office hours. If
you have content-related questions, see me during my office hours.
We have an unmonitored discussion group on Discord. You may use this group
to find partners for assignments and discuss other class-related material
where you do not need a response from the teaching team. We do not encourage
forming any other discussion or social group for this class.
Your Responsibilities in This Class
- You will determine your performance in this class! It will require a
strong dedication to learning the material and a substantial time commitment
to complete all the readings and assignments.
- You are expected to attend all class meetings on time and stay for the
whole class period.
- You are required to have your cell phones off at all times during the
class. You may not make or receive calls on your cell phone or send or receive
text messages during class.
- You are responsible for all material posted to the website and sent by
email. Ignorance of such material is no excuse.
- You are responsible for all material presented in class and reading
online resources.
- We expect scrupulous honesty in all your work.
- Your class conduct should be conducive to a positive learning environment
for your classmates and yourself.
University Time Table
- 13 Jan 2025: First day of class
- 16 Jan 2025: Last day of official add / drop
- 29 Jan 2025: 12th class day, official enrollment count is
taken
- 17 Mar - 22 Mar 2025: Spring Break
- 16 Apr 2025: Last day to drop (with dean's approval) except for urgent
and substantiated, non-academic reasons or to change to or from pass/fail
basis.
- 28 Apr 2025: Last class day
General Policies
If you are absent from class for the observance of a religious holy day
you may turn in your assignment or paper on an alternate date provided
You gave me written notice fourteen days before the class's absence.
For religious holy days that fall within the first two weeks of class
notice must be given on the first class day.
Students with disabilities who need special accommodations should contact
the Services for Students with Disabilities (SSD) Office (471-6259 or
471-4641 TTY).