Department of Computer Science
The University of Texas at Austin
CS 323E - Elements of Scientific Computing (Spring 2022)
Section: 51190, MW 3:30 PM - 5:00 PM, RLP 0.130
Instructor: Dr. Shyamal Mitra
Office Hours: TTH 5:00 pm to 6:00 pm
Location: GDC 6.320
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 classrooms 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 Fridays. 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 four areas that we will focus on for the mini-projects:
- Algebra and Calculus
- Linear Algebra
- Ordinary Differential Equations
- Partial Differential Equations
For these projects, you must work in a group of two or three. The
project reports will be due on Wednesdays - 9 Feb, 9 Mar, 6 Apr, and 4 May.
There will be a later 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 assignments 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.
- Assignments: 20%
- Four Mini-Projects (each 20%): 80%
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
- 18 Jan 2022: Classes begin
- 21 Jan 2022: Last day of official add / drop
- 02 Feb 2022: 12th class day, official enrollment count is
taken
- 14 Mar - 19 Mar: Spring Break
- 04 Apr 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.
- 06 May 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).