Luay Nakhleh
Teaching
"So I find that teaching and the students keep life going, and I
would never accept any position in which somebody has invented a
happy situation for me where I don't have to teach. Never."
R. Feynman
Unfortunately, I had to violate "Feynman's principle" quoted above. I was named Dean of the School of Engineering at Rice University in January 2020. I continued to teach, while serving as dean, but in Spring 2022 I found out it became too much for me to continue teaching while also serving as dean and continuing to be research-active. So, Spring 2022 was my last semester teaching. I do hope to be back in the classroom as soon as the circumstances allow, as I already miss teaching.
I have taught the following courses:
- COMP 182 - Algorithmic Thinking.
- COMP 382 - Analysis of Algorithms.
- I helped teach this course in Fall 2020, during Covid, and covered the first half of the materials, focused on data structures and algorithms.
Due to COVID, I recorded videos for the course. As above, these are not high-quality, professionally recorded videos. They are not proofread carefully, so they might include a few typos/mistakes here and there. Just in case the videos are of help to someone, they can be accessed at my YouTube channel, under the Data Structures and Algorithms playlist (36 videos).
The topics I covered were:
- Elementary data structures
- Binary search trees
- Red-black trees
- B-Trees
- Data structures for disjoint sets
- Hash tables
- Depth-first search on graphs and its applications in computing strongly connected components and topological sort.
- Greedy algorithms: The compatible intervals problem, the minimum spanning tree problem, the single-source shortest paths problem, and Huffman coding.
- Dynamic programming: Computing binomial coefficients, the weighted compatible intervals problem, the longest increasing subsequence problem, the all-pairs shortest paths problem, the longest common subsequence problem, the RNA secondary structure problem, and the Knapsack problem.
- COMP 481 - Automata, Formal Languages, and Computability. (Homepage)
- This course covers regular languages (automata, regular expressions,
regular grammars, etc.), context-free languages (push-down automata,
context-free grammars, etc.), recursive and recursively enumerable
languages (Turing machines, etc.), computability (of languages and
functions) and reductions, and elements of complexity theory.
- COMP 571 - Bioinformatics:
Sequence Analysis. (Homepage)
- This course covers topics in population genetics (Hardy-Weinberg,
finite populations and genetic drift, population structure and gene flow,
mutation, selection, and molecular evolution) and phylogenetics (sequence
alignment, phylogenetic tree reconstruction, and phylogenomics).
- COMP 572 - Bioinformatics: Network Analysis. (Homepage)
- This course covers topics in the analysis of topological and dynamic
properties of transcriptional, signaling, and metabolic networks.
- COMP 670 - Graduate Seminar on Computational Biology. (Homepage)
- This seminar covers advanced topics in computational biology; the
theme changes from semester to another.
Back to Luay's homepage.