### For UD students: All lecture notes, slides, assignments and other materials are available in the Canvas system.

### Automata Theory (aka Finite Automata/Foundations of Computer Science)

CISC303@UD, CPSC3500@Clemson

Recommended book: John C. Martin "Introduction to Languages and the Theory of Computation", 4th edition

These slides/lecture notes are tentaive. Not all of them will be used in all courses. Some animated slides are incorrectly rendered.

- Part I: Introduction to languages, sets, induction, proofs
- Part II: Finite automata
- Part III: Regular languages, nondeterminism, Kleene's theorem
- Part IV: Context free languages, grammars, ambiguity
- Part V: Push-down automata
- Part VI: Turing machines
- Part VII: Undecidable problems
- Part VIII: Introduction to complexity, time, space, classes of complexity, reduction

### Network Science (aka Graph Mining/Social Network Analysis)

CIS689@UD, CPSC481/681/881@Clemson

Recommended books:

- Newman "Networks: An Introduction"
- Brandes and Erlebach "Network Analysis: Methodological Foundations"
- Easley and Kleinberg "Networks, Crowds and Markets"

These slides/lecture notes are tentaive. Not all of them will be used in all courses. Some animated slides are incorrectly rendered.

Introductory lecture: Thinking in Network Terms, a conversation with A-L Barabasi

- Part I: Introduction, (hyper)graphs, notation, basic algorithms
- Part II: Centrality and vitality: closeness, eccentricity, eigenvector centrality, page rank, HITS, betweenness, traversal sets' centralities, closeness, betweenness, traversal sets
- Part III: Graph similarity and equivalence classes, homophily, assortative mixing, modularity
- Part IV: Small world, degree distributions, power low, clustering coefficients
- Part V: Introduction to spectral methods for graphs, random walks
- Part VI: Random models, configuration model, distributions in random network models: degrees, paths, connected components
- Part VII: Models of network formations, network generators, evolving models
- Part VIII: Percolation and network resilience
- Part IX: Epidemiological models and dynamics in networks
- Part X: Multiscale methods
- Part XI: Network visualization
- Part XII: Community detection

### Scientific Computing

CPSC8490@Clemson

Recommended books:

- Michael T. Heath "Scientific Computing: An Introductory Survey" (most of the classes will be based on this book, including definitions, examples, etc.)
- Harry Dym "Linear Algebra in Action"

- Introduction, preliminaries, floating-point numbers
- Big-O, complexity, systems of equations, norms, sensitivity
- Sensitivity of linear systems, residual, factor-solve methods
- LU factorization
- Graphs (see first lectures in "Network Science"), minimum degree pivoting, SuperLU example
- Sherman-Morrison formula, rank-k modifications, sparse matrix storage, combinatorial scientific computing, positive (semi-)definite systems
- Linear least squares, normal equations, projectors
- Pseudoinverse, projectors, sensitivity of LSQ, conditioning
- SVD, dimensionality reduction
- Eigenvalues, eigenvectors (basic properties)
- Computing single eigenvalues, eigenvectors
- Iterative methods for large-scale eigenproblems (QR, Krylov, Arnoldi, Lanczos), software (BLAS, LAPACK, ScaLAPACK, ARPACK, ...)
- Nonlinear equations, basic definitions and theorems, fixed-point iterations
- Systems of nonlinear equations
- Optimization, examples, basic classes and definitions, convexity
- Unconstrained/constrained optimization, first- and second-order conditions
- 1-dim/N-dim optimization, steepest descent, conjugate gradient, Newton's methods, trust-region, quasi-Newton, LP, software
- Interpolation
- Fast Fourier transform
- Stationary iterative relaxation, conjugate gradient methods for linear systems, multigrid
- Multigrid, multiscaling