Undergraduate Department of Scientific Computing

College of Arts and Sciences

Website: https://www.sc.fsu.edu/

Chair: Beerli; Professors: Beerli, Erlebacher, Lemmon, Meyer-Baese, Plewa, Shanbhag, Speer, Wang; Associate Professors: Huang, Quaife; Assistant Professors: Dexter, Zavala Romero; Professor Emeritus: Gunzburger, Navon, Peterson; Courtesy Faculty: Algee-Hewitt, Barbu, Chi, Crock, Duke, Ke, Linn, Mascagni, Mashayekhi, Moore, Petersen, Pinker-Domenig, Ridley, Tahmassebi, Ye

Program Overview

Over the last few decades, computation has joined theory and experimentation to form the three pillars of scientific discovery and technological design. Moreover, many of the critical problems facing society can only be solved by teams of individuals from a variety of disciplines. Integral to these teams are computational scientists, who provide the simulation, optimization, and visualization algorithms used to solve problems on computers. The main activity of scientific computing is the development of computational tools that have applicability over a range of scientific disciplines.

The Department of Scientific Computing consists of faculty interested in the invention, analysis, implementation, and application of computational algorithms to problems arising in traditional disciplines. Examples include biology and ecology, chemical engineering, chemistry, computer science, geology and geophysics, material science, mathematics, mechanical engineering, physics, and astrophysics. An increasing number of algorithms involve machine learning and data science. Faculty and graduate students are supported in their research by several federal, state, laboratory, and commercial organizations. Further breadth and depth are added to the research and educational missions of the department through faculty from other departments at Florida State University and individuals from several national laboratories who interact closely with our faculty. These faculty members ensure that the department is ideally positioned to offer innovative degree programs that synergize the mathematical and application-driven aspects of scientific computing, thus providing the student with extensive interdisciplinary training.

Students are trained in a truly interdisciplinary environment. The undergraduate program offered by the Department of Scientific Computing is designed to provide broad training in the core methods of computational science across disciplines, followed by in-depth specialization in areas of particular interest to students. Even within specializations, the focus remains on interdisciplinary approaches to solving science and engineering problems. All students are also exposed to research-type experiences as part of the undergraduate degree program.

The Department of Scientific Computing offers a Bachelor of Science (BS) degree program in Computational Science. It also offers a minor in computational science. Please refer to the Department of Scientific Computing Website at https://www.sc.fsu.edu/ for the current status of the minor and certificate programs.

Computational Resources

The Department of Scientific Computing oversees a diverse computing infrastructure supporting research and education. Computing resources include clusters and computational servers. To best accommodate research, education, and application development, the department maintains a heterogeneous desktop and workstation environment, as well as a state-of-the-art computer classroom. The department also maintains the Computational Intelligence Laboratory which provides high-powered visualization resources to the FSU community for research, analysis of large data collections, and research in machine learning and education.

Departmental Programs

The Department of Scientific Computing offers a Bachelor of Science (BS) degree program in Computational Science and a minor in computational science.

State of Florida Common Program Prerequisites for Scientific Computing

The Florida Virtual Campus (FLVC) houses the statewide, internet-based catalog of distance learning courses, degree programs, and resources offered by Florida's public colleges and universities, and they have developed operational procedures and technical guidelines for the catalog that all institutions must follow. The statute governing this policy can be reviewed by visiting https://www.flsenate.gov/Laws/Statutes/2021/1006.73.

FLVC has identified common program prerequisites for the degree program in Scientific Computing. To obtain the most up-to-date, state-approved prerequisites for this degree, visit: https://cpm.flvc.org/programs/89/208.

Specific prerequisites are required for admission into the upper-division program and must be completed by the student at either a community college or a state university prior to being admitted to this program. Students may be admitted into the University without completing the prerequisites but may not be admitted into the program.

Computer Skills Competency

All undergraduates at Florida State University must demonstrate basic computer skills competency before graduation. Since necessary computer competency skills vary from discipline to discipline, each major determines the necessary courses to satisfy this requirement. Undergraduate majors in computational science fulfill this requirement by earning a grade of "C–" or higher in ISC 3313 or COP 3014.

Academic Performance

A grade of "C–" or better is required in all courses taken for the BS Degree in Computational Science.

All State Common Program Prerequisites listed as Term 1–4 Milestones must be completed with a "C" range (C–, C, or C+) grade or better. Students earning less than the necessary grade in any of these courses will be required to retake those courses until the standard is met. Note: retaking a course may delay graduation and incur increased fee liability (i.e., repeat course surcharge and excess credit surcharge).

A student who has received more than three unsatisfactory grades (U, F, D–, D, D+) in courses required for the major, excluding the Term 1–4 State Common Prerequisite milestone courses, taken after enrolling at FSU, will not be permitted to graduate with a degree in computational science.

Requirements for the Baccalaureate Degree in Computational Science

Note: Please review all University and college-wide degree requirements summarized in the "College of Arts and Sciences" chapter of this General Bulletin.

Students should refer to the Department of Scientific Computing Website at https://www.sc.fsu.edu/ or obtain, from the department office, revisions to the degree guidelines implemented since this printing.

Students should complete the State of Florida Common Program Prerequisites during their first two college years. To obtain final graduation clearance from the Department of Scientific Computing, all computational science majors are strongly encouraged to complete an exit survey.

Requirements for the BS Degree in Computational Science are provided as follows:

  • ISC 3222 Symbolic and Numerical Computations (3)
  • ISC 4220C Continuous Algorithms for Science Applications (4)
  • ISC 4221C Discrete Algorithms for Science Applications (4)
  • ISC 4223C Computational Methods for Discrete Problems (4)
  • ISC 4232C Computational Methods for Continuous Problems (4)
  • ISC 4304C Programming for Science Applications (4)
  • ISC 4931r Junior Seminar in Scientific Computing (1–2)
  • ISC 4932r Senior Seminar in Scientific Computing (1–2)
  • ISC 4943r Practicum in Scientific Computing (3)
  • MAS 3105 Applied Linear Algebra I (4)
  • Approved statistics course designed for statistics majors: STA 3XXX (3) or STA 4XXX (3)
  • Approved Department of Scientific Computing electives (9)
  • Approved STEM electives from the Department of Scientific Computing Advisor or Undergraduate Faculty Advisor or other departments (9)

Requirements for a Minor in Computational Science

A minor in computational science requires a minimum of fourteen hours of coursework, including ISC 3222 and ISC 4304C. The student must take at least one Computational Science Algorithms course (ISC 4220C or ISC 4221C) and a Computational Science course from the approved list. Students must also satisfy stated prerequisites, in particular, the computer programming requirement (ISC3313 or COP3014), before enrolling in each course accepted for minor credit. Grades below "C–" will not be accepted for minor credit.

Definition of Prefixes

CAP—Computer Applications

CGS—Computer General Studies

COP—Computer Programming

DIG—Digital Media

GFD—Geophysical Fluid Dynamics

IDC—Interdisciplinary Studies

ISC—Interdisciplinary Natural Science

MAD—Mathematics: Discrete

MAP—Mathematics Applied

Undergraduate Courses

Note: Additional undergraduate courses are under development. Please refer to the Department of Scientific Computing Website at https://www.sc.fsu.edu/ for an up-to-date list of undergraduate courses offered.

CGS 2821. Introduction to Website Design (3). This course teaches proper website design techniques to students from all degree programs. Topics include visual design and graphics, information architecture, usability and accessibility, communication, adaptation to audience, markup languages, and development tools and processes. Coursework is focused on applying Website design principles and techniques to projects in the students' disciplines. The course is gauged for beginners who are computer competent; it does not teach computer programming.

CGS 2835. Interdisciplinary Web Development (3). Prerequisite: Computer fluency. This interdisciplinary course provides basic training in project management, communication, information architecture, interface design, graphic design, Web technologies, content editing, and subject-area expertise, thus empowering students across disciplines to effectively communicate their subject-area expertise through today's most popular publishing medium, the Web.

COP 2258. Problem Solving with Object Oriented Programming (3). This interdisciplinary course is designed for students who are interested in understanding the principles that govern Object-Oriented Programming (OOP) and software development in order to assist with problem-solving in their own disciplines. The course addresses algorithm building principles, problem-solving strategies, how to analyze problems to identify requirements, and how to design an object-oriented solution. Students design, write, and debug computer programs.

DIG 3725. Introduction to Game and Simulator Design (3). This course introduces basic techniques used to design and implement computer games and/or simulation environments. Topics include a historic overview of computer games and simulators, game documents, description and use of a game engine, practical modeling of objects and terrain, as well as the use of audio. Physics and artificial intelligence in games are covered briefly. Programming is based on a scripting language. The course is divided between lectures and practical assignments. Course topics are assimilated through the design of a 3D game to be designed and implemented in a team environment.

GFD 4934r. Topics in Fire Dynamics - Research Seminar (1). (S/U grade only.) Miscellaneous Requirements: General knowledge of natural and environmental sciences; the ability to perform relatively simple mathematical formulations of natural phenomena; and enrollment in a relevant program. This seminar course exposes students to fire dynamics research through a variety of methods. Specific research topics of fire dynamics will be addressed by group discussion of ongoing student research, faculty research, and outside speakers. May be repeated to a maximum of four credit hours.

IDC 2930r. Special Topics in Interdisciplinary Computing – Beginning Level (1-4). This course covers current issues and topics in interdisciplinary computing that are not discussed in other courses. Topics vary. May be repeated within the same term, to a maximum of nine semester hours.

IDC 3931r. Special Topics in Interdisciplinary Computing – Intermediate Level (3). This course covers current issues and topics in interdisciplinary computing that are not discussed in other courses. Topics vary. May be repeated to a maximum of nine (9) credit hours.

ISC 1057. Computational Thinking (3). This course introduces students to the process of creating a representation of a task so that it can be performed by a computer. The course investigates strategies behind popular computational methods that are shaping our daily lives and our future. Students practice logical thinking by applying versions of these computational methods to problems in science and society.

ISC 2310. Introduction to Computational Thinking in Data Science with Python (3). Prerequisite: MAC 1105 or equivalent. This course investigates strategies behind popular computational methods used in data science. In addition, many of the algorithms are implemented using the programming language Python. No prior programming experience is required so the course presents the basics of the Python language as well as how to leverage Python's libraries to solve real-world problems in data science.

ISC 3222. Symbolic and Numerical Computations (3). Prerequisite: MAC 2311. This course introduces state-of-the-art software environments for solving scientific and engineering problems. Topics include solving simple problems in algebra and calculus; 2-D and 3-D graphics; non-linear function fitting and root-finding; basic procedural programming; methods for finding numerical solutions to DE's with applications to chemistry, biology, physics, and engineering.

ISC 3313. Introduction to Scientific Computing (3). Prerequisites: MAC 2311 or instructor permission. This course introduces the student to the science of computation. Topics cover algorithms for standard problems in computational science, as well as the basics of an object-oriented programming language, to facilitate the students' implementation of algorithms.

ISC 4220C. Continuous Algorithms for Science Applications (4). Prerequisite: MAC 2312. This course provides basic computational algorithms, including interpolation, approximation, integration, differentiation, and linear systems solution presented in the context of science problems. The laboratory component includes algorithm implementation for simple problems in the sciences and applying visualization software for interpretation of results.

ISC 4221C. Discrete Algorithms for Science Applications (4). Prerequisites: MAC 2311. This course offers stochastic algorithms, linear programming, optimization techniques, clustering and feature extraction presented in the context of science problems. The laboratory component includes algorithm implementation for simple problems in the sciences and applying visualization software for the interpretation of results.

ISC 4223C. Computational Methods for Discrete Problems (4). Prerequisites: ISC 4304C and MAS 3105. This course describes several discrete problems arising in science applications, a survey of methods and tools for solving the problems on computers, and detailed studies of algorithms, and their use in science and engineering. The laboratory component illustrates the concepts learned in the context of science problems.

ISC 4232C. Computational Methods for Continuous Problems (4). Prerequisites: ISC 4304C and MAS 3105. This course provides numerical discretization of differential equations and implementation for case studies drawn from several science areas. Finite-difference, finite-element, and spectral methods are introduced and standard software packages are used. The laboratory component aims to illustrate the concepts learned on a variety of application-driven problems.

ISC 4234C. Geometric Morphometrics: An Introduction to Modern Methods of Applied Shape Analysis (3). In this course, students learn about the mathematical, statistical, computational, and practical aspects of the quantitative analysis of shape. This course provides the basic background that will allow those who need to use such techniques to address research questions in their own work the means to effectively do so. It will also provide participants coming from a more computational or quantitative background the knowledge and understanding of the methods and problems of the field so that they might contribute to the development of new and/or improved methods of shape analysis.

ISC 4244C. Computer Applications in Psychology with Laboratory (4). Prerequisites: PSY 2012 (BSC 2010L, CGS 2100, CGS 2960, or ISC 3313) and PSY 3213C. This course gives the students practical knowledge of a powerful and flexible programming language with application to computational and research elements important to the field of psychology. Topics include complex searches, image and audio manipulation, data analysis, and all in the context of using a variety of software tools and packages.

ISC 4245C. Data Mining (3). Prerequisite: COP 3330, ISC 3222, ISC 3313 or ISC 4304; or instructor permission. In this course, students study concepts and techniques of data mining, including characterization and comparison, association rules mining, classification and prediction, cluster analysis, and mining complex types of data. Students also examine applications and trends in data mining.

ISC 4246C. Computational Forensics: An Introduction to Objective, Quantitative Tools and Methods for Forensic Science (3). Prerequisite: STA 2122, STA 2171, or equivalent, or instructor permission. In this course, students investigate some of the methods and protocols of Computational Forensics with an emphasis on the analysis and interpretation of physical evidence. Topics include stature, sex, and ancestry estimation from skeletal remains, DNA analysis, and finger print, toolmark, and bloodstain analysis. Students develop their own simple programs in an appropriate programming language to build and verify models and use existing programs to investigate the processing and analysis of physical evidence.

ISC 4302. Scientific Visualization (3). Prerequisites: MAC 1105 and MAC 2312. This course is an introduction to scientific visualization for large-scale computation and experimental data that covers the visualization methods and techniques, visualization results analysis and evaluation, and visualization practice. It teaches students the techniques for creating compelling visual representations of 2D and 3D scientific data sets. The basic concepts, data structures, and algorithms in scientific visualization are presented and applied using datasets from different disciplines. Classic visualization techniques for scalar, vector, and tensor data such as marching cubes, ray casting, splatting, streamline, and line integral convolution and more, are introduced along with popular visualization software.

ISC 4304C. Programming for Science Applications (4). Prerequisite: MAC 2311. This course provides knowledge of a scripting language that serves as a front-end to popular packages and frameworks, along with a compiled language such as (C++). Students study and practice scientific programming with the scripting language and practice how to interface it with a more traditional programming language to improve the speed of the programs developed in the course. In the laboratory component of this course, students apply the concepts learned in class. Students analyze large data sets by translating from mathematical expressions and algorithms to working computer code that is then used to visualize and summarize the results.

ISC 4420. Introduction to Bioinformatics (4). This course provides a quantitative framework for understanding how the genomic sequence and its variations affect the phenotype. The course is designed for biologists and biochemists seeking to improve quantitative data interpretation skills, and for mathematicians, computer scientists and other quantitative scientists seeking to learn more about computational biology. Lab exercises are designed to reinforce classroom learning.

ISC 4907r. Senior Directed Individual Study in Scientific Computation (1–4). Prerequisite: Instructor permission. This course is available so that a faculty member can design an individualized course of study in an area of computational science for a student, in cases where such a class is not available in the current curriculum. The student and faculty member are responsible for preparing a syllabus of readings, exercises, and evaluations. May be repeated to a maximum of twelve semester hours.

ISC 4931r. Junior Seminar in Scientific Computing (1–2). (S/U grade only.) Prerequisite: Junior standing (sixty plus hours). This is a special topics course in computational science. May be repeated two times to a maximum of four semester hours, with a maximum of only two semester hours credit allowed to be applied to the Computational Science degree.

ISC 4932r. Senior Seminar in Scientific Computing (1–2). (S/U grade only.) Prerequisite: Senior standing (ninety plus hours). This is a special topics course in computational science. May be repeated one time to a maximum of four semester hours, with a maximum of only one semester hour credit allowed to be applied to the Computational Science degree.

ISC 4933r. Selected Topics in Computational Science (3). Prerequisite: Instructor permission. This course covers computational science topics not covered by existing courses. May be repeated within the same term, to a maximum of twelve semester hours.

ISC 4943r. Practicum in Scientific Computing (3). Prerequisite: Senior standing (ninety-plus hours). This practicum allows students to work individually with a faculty member throughout the semester and meet with the instructor periodically throughout the semester to make progress reports. Written and oral presentations of work are required. May be repeated to a maximum of six semester hours, with a maximum of only three semester hours credit allowed to be applied to the Computational Science degree.

ISC 4971r. Honors Thesis (Scientific Computing) (3). Prerequisites: At least sixty hours of college credit, at least two full terms remaining before anticipated graduation date, enrollment in the Honors in the Major program, and identification of a faculty member who has agreed to act as thesis director. In this course, students work closely with a faculty member and investigate an original idea in the area of scientific computing, study the background, implications, implementation, and applications, prepare a final publication-quality thesis based on original research, and defend it orally before a committee. May be repeated to a maximum of nine semester hours.

Note: Many courses offered at the graduate level include a "4933" section specifically designed to allow motivated undergraduates to participate. Such courses have included Computational Evolutionary Biology, Genomic Sequences and Analysis, Datamining, and Verification and Validation in Computational Science. For details about these courses, see the graduate course listings.

For listings relating to graduate coursework, consult the Graduate Bulletin.