Department of Computer Science
The University of Texas at Austin
CS 323E - Elements of Scientific Computing (Fall 2022)
Section: 52620, MW 3:30 PM - 5:00 PM, RLP 1.104
Instructor: Dr. Shyamal Mitra
Office Hours: TTH 9:00 am to 10:00 am
Location: Zoom 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 on Canvas.
When we meet in-person we will be meeting in the classroom listed above.
For online meetings, be sure that you have Zoom 5.4 or higher and Duo.
Login 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.
Classroom Safety
To help preserve our in person learning environment, the university
recommends the following:
- Adhere to the university
masking guidance.
-
Vacinations are widely available, free and not billed to the health
insurance. The vaccine will help protect against the transmission of the
virus to others and reduce serious symptoms in those who are vaccinated.
- Proactive Community Testing remains an important part of the
university's efforts to protect our community. Tests are fast and free.
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 have some understanding of single variable calculus,
differential equations, and linear algebra. I will provide notes on
background material. We will look at numerical methods to solve equations
rather than providing rigorous mathematical derivations. We will use
standard library functions in Python for our solutions.
We will be following the required text book closely. We will provide notes
in class that will be posted on the web for topics that are 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 engage in discussion 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 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 in the form of a scientific
paper.
This is a programming intensive course.
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 Sundays. We have a two day late period where 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
There will be four mini-projects that you will complete in this semester.
The science will drive these projects. You will look upon each project
as a research problem that 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 - 14 Sep, 12 Oct, 2 Nov, and 30
Nov. There will be a late period of two days with 10 points late penalty
per day.
Grades
Your performance in this class will be evaluated using your scores for
the class work, home work, and the four mini-projects that you complete.
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 Work: 20%
- Home Work: 20%
- Four Mini-Projects (each 15%): 60%
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 do assign grades on the +/- system. But those finer cutoffs will be
determined at the very end after the weighted average and standard
deviation of the class are computed.
Study Groups
Do find a compatible person to work with in class. You will be working
with a partner or in a group of at most three people. This does not
preclude you from working with others in the class.
We will be using Piazza for general
discussion of class related questions rather than the discussion board on
Canvas. Piazza will be monitored by our teaching assistant. For
informal discussions, like finding partners for projects, you will be using
Discord for your posts. We expect
your posts to be professional and courteous to every member in the 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 meetigns 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 web site and
sent as 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 the work that you do.
- Your conduct in class should be conducive towards a positive learning
environment for your class mates as well as your self.
University Time Table
- 22 Aug 2022: Classes begin
- 25 Aug 2022: Last day of official add / drop
- 07 Sep 2022: 12th class day, official enrollment count is
taken
- 25 Oct 2022: 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.
- 21 Nov - 26 Nov: Thanksgiving Break
- 05 Dec 2022: 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 have given me written notice fourteen days prior to the class 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).