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:

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:

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:

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: