Skip to content

2026 Spring - Course Policy

CMDA 3634 CRN 13192 CRN 13480

Policy Contents

  1. Course Logistics
  2. Instructor Information
  3. Course Information
  4. Course Policies
  5. Grading Scale and Methods

Course Logistics

Course Title: Computational Science Foundations for CMDA

Meeting Times

Lectures:

Days Begin End Location
M W 16:00 17:15 DDS 170

Office hours for one-on-one and team support:

Days Begin End Location
Tue 14:00 15:00 DDS 302
Thu 15:30 16:30 DDS 302

Individual meetings at different times can be made by appointment via email (jrudi vt edu).


Instructor Information

Johann Rudi, he, jrudi vt edu, office: DDS 302

Teaching Assistant Information

Jenifer Rain De Jager, she or they, jraind vt edu

Learning Assistant Information

  • Stanley Guo
  • Liam Hopkins

Course Information

Contents

  • Course Description
  • Course Pre-requisites and/or Co-requisites
  • Learning Outcomes/Goals
  • Textbook and Required Materials
  • Additional Resources

Course Description

Survey of computer science concepts and tools that enable computational science and data analytics. Data structure design and implementation. Analysis of data structure and algorithm performance. Introduction to high-performance computer architectures and parallel computation. Basic operating systems concepts that influence the performance of large-scale computational modeling and data analytics. Software development and software tools for computational modeling.

This course introduces the thinking about how to tackle large, open-ended problems in computational and data science – and how to do it at scale. You'll be working on challenges that don't come with step-by-step instructions. Instead, you are in charge to form hypotheses, test them, and draw on your background in mathematics, statistics, and computing to make sense of what you find.

The key question: How can we design parallel algorithms that deliver fast, approximate solutions to our problems. The algorithms must keep getting faster as we scale from 1 to 10^3 to 10^6 compute units (workers) and beyond?

This is where your creativity intersects with computing power. You'll learn not just to solve problems, but to solve them in ways that make the most of the compute system at your disposal.

Course Pre-requisites

To get the most out of this course, you should already have a few skills in your toolkit:

  • Comfort with a programming language: You've written programs in C/C++, Java, Python, or something similar, and you can read and write code without feeling lost.

If you're missing this, don't panic – just be ready to review and practice early on so you can hit the ground running.

Formal pre-requisites - [ ] CS 2114 (MIN grade of P)

Learning Outcomes/Goals

Interdisciplinary problem solving at the intersection of computational and data science, high-performance computing, engineering applications, and mathematics.

This will be enabled through the following topics:

  1. Interfaces is about the tools that make human-computer interaction efficient and systematic, including effective uses of terminals, editors, version control, AI tools, and more.

  2. The Go language has build-in concurrency. It will challenge your ability on parallel thinking. It will guide you toward understanding concurrency, interdependence of actions, shared memory across workers, distributed memory and communication between workers.

  3. Neural networks and PyTorch allow tapping into massive parallelism. Building on your lower-level skills, you will understand – and appreciate – how neural networks are trained even when Python interfaces hide much of the complexity from you. You'll be able to train using so-called distributed data parallelism.

Textbook and Required Materials

Because this course spans a wide range of disciplines and topics, there's no single textbook that could do it justice. Instead, we'll draw from a variety of resources – different formats, perspectives, and mediums – to give you the most complete picture possible.

All resource links and references will be posted on this course's wiki (I will call it just "wiki"); and it will be organized by topic. Our wiki is a living document, updated continuously as we discover new materials and opportunities to deepen your learning.

Additional Resources


Course Policies

Contents

  • Attendance
  • Late Work/Missed Work
  • Academic Dishonesty/Honor Code
  • Accommodations
  • Copyright
  • Laptop and Mobile Devices
  • AI Use and Disclosure
  • Syllabus Subject to Change

Attendance

The modality of this course is in-person. You are expected to attend and participate in class when possible. Attendance in the classroom will be recorded.

Late Work/Missed Work

Correct and on-time submissions will count towards your total grade with a dedicated score. Late submissions do not get the dedicated on-time credit.

Health reasons are perfectly acceptable for getting penalties of late submissions waived. These require a DOS verified absence. See the following for more details.

Verified Absences If you have an extended or serious illness, a death in your family, or other significant personal difficulty that will prevent you from attending class, or prevent you from meeting your assignment deadlines, please let me know right away. Please also notify the [Dean of Students Office](https://dos.vt.edu) of your issue. They will secure your personal verification and private documentation such as notes from doctors, funeral directors, etc., which individual instructors may not wish to handle. The Dean of Students will also notify, via your Academic Dean, all of your course instructors of your situation with a date range for your verified absence. This endorsement from the Dean of Students helps the instructor extend accommodations to you with less concern for unfairness toward your classmates. Of course you should also understand that there are practical limits on academic accommodations and that some situations are severe enough to warrant other forms of academic relief such as course withdrawal.

Academic Dishonesty/Honor Code

Virginia Tech Honor Code The Undergraduate Honor Code pledge that Virginia Tech undergraduate students must abide by states: "As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do." Students enrolled in this course are responsible for abiding by the undergraduate Honor Code on each assignment and/or exam. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Students are strongly discouraged from misusing unauthorized online sources including generative artificial intelligence outlets. Students are strongly encouraged to consult their faculty members regarding the use of such outside materials as the misuse of these sources may constitute a violation of the Honor Code. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. For additional information about the Honor Code, please visit:
Honor Code Pledge for Assignments The Virginia Tech honor pledge for assignments is as follows: "I have neither given nor received unauthorized assistance on this assignment." The pledge is to be written out on all graded assignments at the university and signed by the student. The honor pledge represents both an expression of the student's support of the honor code and an unambiguous acknowledgment that the student has, on the assignment in question, abided by the obligation that the Honor Code entails. In the absence of a written honor pledge, the Honor Code still applies to an assignment.
CMDA Statement on Academic Integrity The field of Computational Modeling and Data Analytics requires professionals who act with the highest ethical standards. CMDA teaches skills that empower you to have a tremendous impact upon the world. We teach you these skills with the expectation that you will exercise them responsibly. Responsible practice is a habit forged during your undergraduate studies. CMDA majors demonstrate their sound ethical foundation by completely adhering to the Virginia Tech Honor Code in all of their courses. Not only do these policies prepare you for a rewarding professional life; they are designed to help you learn as much as possible from your courses. Unless a faculty member explicitly states a different policy, the following rules apply to all work submitted in your CMDA classes. - You are free to discuss general ideas about projects and homework problems with your classmates. You may not show a completed solution to another classmate, nor may you view theirs. - You must state the names of any classmates whom you have helped or received help from. State these names clearly at the top of your assignment. - The work you turn in must be your own write-up: you may not copy solutions from another student, even if you worked together to understand the underlying techniques. Your write-up must be prepared separately from your classmates. - The use of solutions or assignments from prior sections of the class (or similar classes at other institutions, GitHub, Stack Overflow, rent-a-coder sites, etc.) is strictly prohibited, regardless of how they are obtained. - Be sure to clean up your public workspace when you are done: for example, erase the whiteboards and do not leave code print-outs behind in the CMDA Collaboration Center. - You are free to discuss general ideas about computer programming, algorithms, and debugging strategies at a conceptual level. - You may not view one another’s code. You may not debug someone else’s code. You may not share code or receive code. This rule applies to source code and scripts, as well as LaTeX code. Copying from a screenshot, a photo of a screen, a print-out, or by any other mechanism, electronic or otherwise, is prohibited. You cannot provide this assistance to students in classes you have already taken, unless you are serving in an official capacity as an Undergraduate Learning Assistant or CMDA Computing Consultant. - You are free to get help on programming issues and assignments from the course instructor, Graduate Teaching Assistants (GTAs), Undergraduate Learning Assistants (ULAs), and CMDA Computing Consultants (provided they are not enrolled in your class). - You may not post solutions (or any other course material) online, outside of Canvas. Sharing any course materials on third party “study resource” sites is strictly prohibited. - You are expected to report any violations of the Virginia Tech Honor Code and this policy to the course instructor, the CMDA academic advisors, or the CMDA division leader. If you are uncertain or concerned that a behavior might be a violation of the Honor Code, please ask your instructor for clarification.

Accommodations

I will meet and listen to you when you want to talk about needs or circumstances to help you fulfill the requirements of the class. For instance, if you are a student with special needs or circumstances, if you have emergency medical information to share, or if you need special arrangements in case the building must be evacuated, please make an appointment with me as soon as possible. You may contact Services for Students with Disabilities (SSD) at 540-231-3788 or ssd.vt.edu for information about accommodations and other disability-related supports. Also, you may contact the Dean of Students who will see that their special needs are considered and appropriately addressed.

For a full listing of campus resources see:

Laptop and Mobile Devices

Bring your laptop to every lecture and be prepared to code!

Keep non-classroom uses of any electronic devices to a minimum.

AI Use and Disclosure

This course permits the use of AI under simple but strict conditions:

AI is only permitted, if its use is open, comprehensively documented, and fully and clearly disclosed.

While AI is a new tool, documentation of sources that influenced work is not. As such I see AI use as an extension of already standard practice of attributing credit to all sources (books, websites, people), as detailed in the following.

As we work on problems and test solution approaches, we generate new knowledge. This process has to be properly documented like the route of an expedition ship. For us this means that all sources have to listed and properly acknowledged:

  • Books and texts: It means that all physical books and online sources have to be disclosed. (The only exception is the content provided on this course's repository, which does not need to be cited.)
  • Web search: It means that all seen and used website URLs have to be listed that contained knowledge (e.g., which Wikipedia, StackOverflow, Reddit website, etc.; but not the search engine where you searched).
  • AI: It means that all prompts you enter and the corresponding AI responses have to be stored and submitted along with your solutions.
  • People: It means that everybody with who you discussed your work has to be acknowledged.

Syllabus Subject to Change

The course policies for this class are subject to reasonable adjustments as the class progresses. In such instances, the instructor will provide students with sufficient notice in the form of announcements in class and on Canvas and it is your responsibility as a student to inform yourself of the changes made.


Grading Scale and Methods

Contents

  • Grade Scale
  • Assignment Value or Weight
  • Description of Assignments

Grade Scale

Percentages of at least 90, 80, 70, and 60 guarantee grades of, at least, A-, B-, C-, D- respectively. The grade by percentage are:

Letter Grade Range
A 100% to 93%
A- < 93% to 90%
B+ < 90% to 87%
B < 87% to 83%
B- < 83% to 80%
C+ < 80% to 77%
C < 77% to 73%
C- < 73% to 70%
D+ < 70% to 67%
D < 67% to 63%
D- < 63% to 60%
F < 60% to 0%

Assignment Value or Weight

The overall grade will be calculated using the weights:

Category Weight Auto drop
In-class assignments and participation 10% 11% 4
Correct and on-time submission 4% 5% 1
Peer reviews 4% 0% 1
Exercises 12% 13% 1
Projects 10% 11% --
Midterm Exam 1 20% --
Midterm Exam 2 20% --
Final Exam 20% --

Description of Assignments

This course is hands-on from start to finish. You'll build your skills through:

  • Individual homework assignments where you are the sole contributor, giving you the chance to develop and showcase your own ideas.
  • Team projects completed with a group, where you'll learn to effectively collaborate and coordinate as well as present your group's work.
  • You'll demonstrate your skills in Midterm and Final Exams.