Classroom Resources#
Mathematics#
Dynamical Systems and Chaos#
Textbooks:
A First Course in Chaotic Dynamical Systems: Theory and Experiment by Robert L. Devaney
Software:
- Fractal Generator
Description: The Fractal Generator is designed to display images produced from complex and real parametric dynamical systems. Its main purpose is to allow the user to experiment with their own formulas in the dynamical system.
Download: mathprofdes/Fractal-Generator
Abstract Algebra#
Textbooks:
Contemporary Abstract Algebra by Joseph A. Gallian
Software
- PascGalois JE
Description: PascGalois JE is a platform independent program developed for the exploration of one and two dimensional cellular automata over finite group structures. The supported group structures are \(Z_n\), \(Z_n\) (under multiplication), \(D_n\), \(S_n\), the Quaternions, \(Q_n\) (Generalized Quaternions) and \(C_n\) (Dicyclic groups).
Download: mathprofdes/PascGaloisJE
- PascGalois Zn
Description: PascGalois Zn is a platform independent program developed for the exploration of one and two dimensional cellular automata over \(Z_n\). This program allows you to use update rules that employ both addition and multiplication.
Download: mathprofdes/PascGaloisZn
Cryptography#
Textbooks:
Introduction to Cryptography with Coding Theory by Wade Trappe and Lawrence C. Washington
The Code Book: HOW TO MAKE IT, BREAK IT, HACK IT, CRACK IT by Simon Singh
Software:
- Cryptography Explorer
Description: The Cryptography Explorer program was developed for the investigation of cryptography and cryptanalysis. It was developed as a teaching tool to try to remove the tedious calculations but still require the user to make the decisions for the processes and analysis.
Download: mathprofdes/Cryptography-Explorer
- Text Converter
Description: The Text Converter is a simple text and numeric manipulation application that allows the user to do some specialized conversions that may not be available in a standard text editor or programming IDE. If you do not use the Cryptography Explorer program and choose to use another computational package, this program may be useful in converting data to and from forms that standard software packages can manipulate.
Download: mathprofdes/Text-Converter
Handouts:
Maxima Support Functions: CryptDS.mac Support Functions
Maxima Support Function Documentation: CryptDS.mac Support Functions Documentation
Computer Science#
Introduction to Computer Science#
Textbooks:
Introductory Java Programming: Example Code & Notes by Don Spickler
Introduction to Programming Using Java by David J. Eck
Code:
Class Example Code (Eclipse Workspace): AllJavaCodeExamples.zip
Class Example Code (Code Only): AllJavaCodeExamplesCodeOnly.zip
Assignments:
Handouts:
Computer Science I#
Textbooks:
Starting Out With C++: From Control Structures through Objects by Tony Gaddis
Code:
Assignments:
Computer Science II#
Textbooks:
Starting Out With C++: From Control Structures through Objects by Tony Gaddis
Code:
Assignments:
Advanced Data Structures & Algorithm Analysis#
Textbooks:
Introduction to Algorithms, Fourth Edition by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
Data Structures and Algorithms in C++ by Adam Drozdek
Code:
Assignments:
Handouts:
Microcomputer Organization (Digital Logic)#
Textbooks:
Fundamentals of Logic Design by Charles H. Roth Jr. and Larry L. Kinney
Code:
Assignments:
Handouts:
Theory of Computation#
Textbooks:
An Introduction to Formal Languages and Automata by Peter Linz
Handouts:
Computer Graphics#
Textbooks:
OpenGL Programming Guide: The Official Guide To Learning Open GL: The Kronos OpenGL ARB Working Group, Dave Shreiner et.al.
The OpenGL Shading Language by Randi J. Rost
3-D Computer Graphics: A Mathematical Introduction with OpenGL by Samuel R. Buss
Code:
- C++ Base Language: uses OpenGL, GLU, GLEW, SFML, FreeType, DoxyGen, and Bullet.
- Python Base Language: uses numpy, pyOpenGL, pyGLM, and pyGame.
- POV-Ray Ray Tracing:
Assignments:
Software:
- Text Converter
Description: The Text Converter is a simple text and numeric manipulation application that allows the user to do some specialized conversions that may not be available in a standard text editor or programming IDE. One nice use of this for Computer Graphics is that it has some facilities for converting GLSL shader program code into string literals for incorporating the shaders into the source code.
Download: mathprofdes/Text-Converter
High-Performance Computing#
Textbooks:
The Science of Computing: The Art of HPC, Vol 1 by Victor Eijkhout
Parallel Programming in MPI and OpenMP: The Art of HPC, Vol 2 by Victor Eijkhout
Introduction to Scientific Programming in C++17/Fortran2008: The Art of HPC, Vol 3 by Victor Eijkhout
Tutorials for High Performance Scientific Computing: The Art of HPC, Vol 4 by Victor Eijkhout
An Introduction to Parallel Programming by Peter S. Pacheco and Matthew Malensek.
Programming Massively Parallel Processors: A Hands-on Approach by David B. Kirk and Wen-mei W. Hwu.
High Performance Computing Modern Systems and Practices* by Thomas Sterling, Matthew Anderson, and Maciej Brodowicz.
Using MPI: Portable Parallel Programming with the Message-Passing Interface by William Gropp, Ewing Lusk, and Anthony Skjellum.
Using Advanced MPI: Modern Features of the Message-Passing Interface by William Gropp, Torsten Hoefler, Rajeev Thakur, and Ewing Lusk.
Code:
Assignments:
Handouts: