-
Lecture 1: C++ 1
Presentation #1: Matthew O'Meara introduces some preliminary concepts for object-oriented programming. Here he covers * Inheritance * Polymorphism * public /...
-
Lab 1: Git
Presentation #2: Sam DeLuca gives an introduction to using git as a version control system used in all the labs for this course and now as the version contro...
-
Lecture 2: Memory Allocation in C++
Presentation #3: Andrew Leaver-Fay introduces the two ways in which data may be allocated in C++: either on the stack, or on the heap. This lecture covers: *...
-
Lab 2: Rosetta Library Structure #1
Presentation #4: Matthew O'Meara describes some of the most important classes in Rosetta: * Pose * Score Function, and * Mover.
-
Lecture 3: C++ Classes #2
Presentation #5: Brian Weitzner introduces several important concepts for working with C++ * Function overloading * Const correctness * Static functions.
-
Lab 3: Debugging with GDB
Presentation #6: Matthew O'Meara introduces the gnu debugger, GDB, which is an invaluable tool in debugging your programms. The associated lab with this requ...
-
Lecture 4: Graphs in Rosetta
Presentation #7: Andrew Leaver-Fay introduces the computer science concept of a graph. Rosetta relies on graph data structures in many places, and the graph ...
-
Lab 4: Unit Tests
Presentation #8: Andrew Leaver-Fay introduces CxxTest, the unit test framework used in Rosetta. In the associated lab, you will have to write code to find th...
-
Lecture 5: Rosetta's Library Structure #2
Presentation #9: Andrew Leaver-Fay describes some of the foundational classes in Rosetta, covering the data structures in libraries: utility, core.1, core.2,...
-
Lab 5: C++ Classes #3
Presentation #10: Sam deluca introduces some of the finer points in working with C++ including: * Operator overloading * Assignment operators * Shallow vs de...
-
Lecture 6: Rosetta's Library Structure #3
Presentation #11: Tim Jacobs presents an overview of three central ways in which programmers can control the flexibility their protocols: through the PackerT...
-
Lab 6: FoldTree
Presentation #12: Brian Weitzner introduces the class Rosetta uses to represent the kinematic structure of a molecule: the FoldTree. The FoldTree describes h...
-
Lecture 7: Rosetta's Library Structure #4
Presentation #13: Matthew O'Meara presents an overview of the protocols.1 library. This lecture covers Rosetta's powerful, and abstract job distribution logi...
-
Lab 7: Python
Presentation #14 Andrew Leaver-Fay introduces a powerful programming language, Python. For job control management, and post-processing, Python is a far super...
-
Lecture 8: Rosetta's Library Structure #5
Presentation #15: Brian Weitzner introduces the protocols.3 library, which contains amongst a myriad of code, Rosetta's relax protocols and its loop modeling...
-
Lab 8: Unix Tools
Presentation #16: Sam DeLuca introduces some unix utilities that you will undoubtedly need when working with Rosetta.
-
Lecture 9: Scientific Computing
Presentation #17: Professor Jack Snoeyink provides a broad overview of the challenges and considerations in the field of scientific computing, presented as a...
-
Lab 9: Constraints
Presentation #18: Tim Jacobs introduces the framework for representing arbitrary constraints into the Rosetta score function. Constraints allow the user or t...
-
Lecture 10: Relational Databases
Presentation #19: Matthew O'Meara introduces relational databases, the structured query language (SQL), and the schema available in Rosetta for representing ...
-
Lab 10: Rosetta Library Structure #6
Presentation #20: Andrew Leaver-Fay introduces Rosetta's sidechain optimization module, the packer, and Rosetta's torsion-based minimization routeins. These ...