Department of Computer Science
The University of Texas at Austin
CS 323E - Elements of Scientific Computing (Fall 2024)
Section: 50275, MW 3:30 PM - 5:00 PM, RLP 0.102
Instructor: Dr. Shyamal Mitra
Office Hours: TTH 9:00 pm to 10:00 pm
Location: 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.
The lectures and office hours will be on Zoom in Canvas when we meet online.
We will meet in the classroom listed above when we meet in person.
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.
Understanding single-variable calculus,
differential equations, and linear algebra would be best. I will provide notes on
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 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, the most efficient
algorithm, and the most 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. To fill in
your mathematics background gaps, you will be assigned online courses through Coursera
and LinkedIn Learning. 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 or three.
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
For these projects, you must work in a group of two or three. The
project reports will be due on Wednesdays - 25 Sep, 23 Oct, 20 Nov, and 11
Dec. There will be a late period of two days with ten 10-point late penalties 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: 10%
- Quizzes: 10%
- Assignments: 20%
- Online Courses: 20%
- 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 or in a group of at least three people. This does not
preclude you from working with others in the class.
Communication
We will use Ed Discussion integerated into Canvas to discuss class-related questions. Please do not post solutions or
code to any homework assignment problems on Ed Discussion. All
communications to the Teaching Assistants will be through Ed Discussion.
If you want to reach out to the Teaching Assistants, post a private note
on Ed Discussion. Do not send them private emails. If you
want to reach me, mail me at (mitra@cs.utexas.edu). If you have
assignment-related questions, visiting the TAs during their office
hours is best. If you have content-related questions, visit 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
- Your performance in this class will be determined by you! It will
require a strong dedication to learning the material and will require
a substantial time commitment to complete all the readings and
assignments.
- You are expected to show up on time for all class meetings 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 the class, and
your reading of 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
- 26 Aug 2024: Classes begin
- 29 Aug 2024: Last day of official add/drop
- 11 Sep 2024: 12th class day, official enrollment count is
taken
- 20 Nov 2024: Last day to drop (with dean's approval) except for urgent
and substantiated non-academic reasons to change to or from
pass/fail basis.
- 25-30 Nov 2024: Thanksgiving Holidays
- 09 Dec 2024: Classes end
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).