I think for every programming language, you should think about this concepts

  • 1.1 - Programming Paradigms
  • 1.2 - Elements of Programming
  • 1.3 - Evaluation Strategies and Termination
  • 1.4 - Conditionals and Value Definitions
  • 1.5 - Example square roots with Newtons method
  • 1.6 - Blocks and Lexical Scope
  • 2.1 - Tail Recursion
  • 2.2 - Higher-Order Functions
  • 2.3 - Currying
  • 2.4 - Example Finding Fixed Points
  • 2.5 - Scala Syntax Summary
  • 3.1 - Functions and Data
  • 3.2 - More Fun With Rationals
  • 3.3 - Evaluation and Operators
  • 3.4 - Class Hierarchies
  • 3.5 - How Classes Are Organized
  • 5.1 - Lists
  • 5.2 - More Functions on Lists
  • 5.3 - Pairs and Tuples
  • 5.4 - Implicit Parameters
  • 5.5 - Higher-Order List Functions
  • 5.6 - Reduction of Lists
  • 5.7 - Reasoning About Concat
  • 5.8 - A Larger Equational Proof on Lists
  • 4.1 - Polymorphism
  • 4.2 - Objects Everywhere
  • 4.3 - Functions as Objects
  • 4.4 - Subtyping and Generics
  • 4.5 - Variance
  • 4.6 - Decomposition
  • 4.7 - Pattern Matching
  • 6.1 - Other Collections
  • 6.2 - Combinatorial Search and For-Expressions
  • 6.3 - Combinatorial Search Example
  • 6.4 - Queries with For
  • 6.5 - Translation of For
  • 6.6 - Maps
  • 6.7 - Putting the Pieces Together
  • 7.1 - Structural Induction on Trees
  • 7.2 - Streams
  • 7.3 - Lazy Evaluation
  • 7.4 - Computing with Infinite Sequences
  • 7.5 - Case Study the Water Pouring Problem
  • 7.6 - Course Conclusion

this following two pictures show how I get the syllabus above.

then perl onliner.

 ls | perl -aF/Lecture/ -e 'print $F[1]' | perl -n -E 'chomp;s/\(.*//;say "<li>$_</li>"'

 ls | perl -aF/Lecture/ -E 'say "<li>" . $F[1]=~s/\(.*//rsg . "</li>"'