COGS-621 Foundations of Scientific Computing: Syllabus
Fall Semester 2025 (2251)
Description
This course will introduce students to foundational concepts in numerical computation that are useful for engineering and the mathematical, computational, and physical sciences. Topics will include floating-point arithmetic, error analysis, linear and nonlinear equations, numerical solution of systems of algebraic equations, constrained and unconstrained optimization, polynomial interpolation, numerical differentiation and integration, numerical solution of ordinary differential equations, truncation error, and basic methods for sampling stochastic processes. Implementation of various numerical methods and solvers will be done in Python.
Connections to computational neuroscience and modeling of cognition will be made throughout the course as motivating examples for various key concepts and tools. Prerequisites: COGS 600 and PSYC 640 or PSYC 717
Course Outcomes/Objectives
Central mission: The course will expose students to the foundations of scientific computing and numerical computation, from the perspective of computational cognitive neuroscience. Students will learn how to utilize basic tools and principles from applied mathematics and computer science for modeling real-world processes and phenomena.
Students will be able to describe basic, key concepts of numerical computation and analysis, optimization, and sampling.
Evaluation: written assignments, class participation/discussion, quizzes.
Students will be able to express problems in terms of numerical optimization/solution searching.
Evaluation: written assignments, class participation/discussion, quizzes.
Students will be able to apply key numerical solvers and techniques for tackling issues in numerical computation.
Evaluation: written assignments, class participation, (research) project / oral presentation.
Instructor Contact
Alexander G. Ororbia II
Office: GOL-3537
E-mail: ago AT cs DOT rit DOT edu
Office Hours: by appointment
Website:
http://www.cs.rit.edu/~ago
I am usually good at answering emails promptly, however, there is no guarantee that I will respond during the evening or on weekends.
I will not answer homework-related questions the day the assignment is due. I strongly recommend that you check out / stop by the tutoring center.
All homework in this course,
is to be done on your own. You may discuss the homeworks in the general sense with your classmates, tutors,
and the instructor. That is, no pictures for later, no shared notes, no shared code. Discussions with anybody else, including looking
up the solutions online or in the literature other than the course book, are not permitted. You are encouraged to discuss any class
material and homeworks whose deadline has passed with your peers, in the tutoring center, with the instructor, or anybody else
whom you might make listen.
For the research project/report, you may talk to other people as well but of
course the report, code, and presentation must be completely developed
by the group members themselves. More details on this work will be forthcoming.
Late homework submissions will be accepted up to 48 hours beyond the deadline, for a 20% grade deduction. No exceptions unless a true emergency arises (proper documentation is required in such cases).
Handing in your homeworks: All homework, both written and code, must be submitted through via MyCourses.
Note that for all programming homeworks/labs, they must be (easily) executable on the CS lab Linux machines (i.e. please no Visual Studio projects, etc). Programming must be done primarily in Python.
Homework grades can be disputed within one weeks after the graded work is handed back.
Your grades will be posted on MyCourses.
Hopefully there is no need to link to the departmental policy on academic honesty, but it will be enforced if necessary.
Required Materials
Numerical Python: Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib (NP), 3rd Edition, Robert Johansson
The Course Schedule, including information
about reading and homework assignments, etc., will be linked from the
course web page. I will also make any slides used available here after the relevant session.
Grading
Component
Weight
Participation
10%
Homework assignments (3)
45%
Research report and final talk
45%
CS Common Course Policies Include:
Rescheduling an Exam
Quizzes can not be made up except for real emergencies in which case proper documentation (like a doctor's note) will be required. If at all possible, you should contact me prior to the exam. Oversleeping, cars that don't start etc. do not constitute a valid excuse. No exceptions!
RIT's
Academic Senate revised the Final Examination Policies on March 28, 2013. Please refer to the policies
for related questions.
Course Withdrawal
During the add/drop period, you may drop this course and it will disappear from your transcript. After that time, you can only withdraw from the course; the course will appear on your transcript with a grade of W.
See the institute's calendar regarding the add/drop period and latest withdrawal date.
Disability Services
RIT is committed to providing reasonable accommodations to students with disabilities. If you would like to request accommodations such as
special seating or testing modifications due to a disability, please contact the Disability Services Office. It is located in the Student Alumni Union, Room 1150; the web site is
www.rit.edu/dso.
After you receive accommodation approval, it is imperative that you see me during office hours so that we can work out whatever arrangement is necessary.
Academic Integrity
The
DCS Policy on Academic Honesty will be enforced.
You should only submit work that is completely your own. Failure to do so counts as academic dishonesty and so does being the source of such work. Submitting work that is in large part not completely your own work is a flagrant violation of basic ethical behavior and will be punished according to department policy.
Policy on Large Language Models
The policy on using large language models (LLMs), which are part of a broader class of statistical learning models often labeled as "generative AI", for this course is simple -- please read the above strict policy "Academic Integrity" for this class. Using an LLM to write your code/text will be treated as not producing your own work (such as copying one of your classmates' work) and will be handled accordingly -- you must produce work that is completely your own. Adhering to this policy is for your personal benefit -- you get what you put into this class, and to master the basics of scientific computing, you must work through the mathematics and programming, doing the thinking for yourself in order to truly develop the competency and literacy that this class aims to provide.