Scientific Computing Course
Title: Scientific Computing
Catalog number: IT&C 515R, section 3 (online)
Semester: Winter 2021
Credit Hours: 3 (Note that it incorrectly shows up as a variable amount of credits. It is 3 credits.)
Beginning Winter 2021, the course will be available exclusively through BYU Online (see this FAQ page for details about BYU Online). It is important to note that BYU Online is semester-based and included in your tuition, unlike Independent Study. It is very likely that we will begin offering the course in both Fall and Winter semesters in the future, though a decision about Fall semesters won't be made until after we teach the class in Winter 2021.
A lot of thought and preparation has gone into teaching the class online and we feel that the class will continue to be a high quality educational experience for students. Some of the planning for this change actually predated COVID-19, and this is not in any way a response to the pandemic.
About the Course
The Scientific Computing course has been taught four times, starting in Winter 2016. The course is for graduate and advanced undergraduate students. Students come from a wide variety of programs such as Biology, Chemistry, Economics, Mechanical Engineering, and Physics; typically, about half are graduate students and about half are undergraduates.
This course is intended for students whose current or future coursework or research involves computational science (e.g. computational fluid dynamics, genomics, finite element analysis, economics simulations, computational linguistics, physics, etc).
The class will help students learn the principles of operating in a typical scientific computing environment. Topics include typical Linux shells and commands, hardware (CPU, memory, network, etc), storage management, job scheduling, code and workflow optimization, code management, results verification, and programming. A semester-long project will help students apply the principles that are taught in class.
Prior to taking the class, students must know how to program in at least one language, including knowing how to write conditionals, loops, and functions. C++ is strongly preferred. Experience with only the R programming language has been found to be insufficient preparation. No particular course is required as a prerequisite, though CS 142 or similar is very strongly recommended.
A computer science background is not necessary except for the programming skills requirement. The less programming experience you have the harder the class will be. We have found that people of most skill levels do very well in the class, though it definitely takes more effort for those with less of a programming background. If you don't have much experience programming, please plan to spend additional effort learning some of the programming concepts. Please email us or open a support ticket if you have questions.
Many students will be able to use this class to fulfill an elective if you petition your program. You must contact your program to see if this is possible.