You've covered a lot of ground: variables and functions, conditionals, loops, exceptions, the standard library, dictionaries and comprehensions, unit testing, file I/O, regex, and object-oriented programming. Real programs rarely use just one of these at a time — a typical small utility script touches most of them together.
The two problems in this closing section are deliberately bigger and more "real" than anything earlier in the course: each one reads structured input from a file, validates it (raising a clear exception for bad data, the way Safe Divide and Validate Age did), processes it using loops and dict logic (the way Word Frequency and Group By Length did), and writes a result back out to a file (the way Uppercase File and Merge Two Files did) — all in a single function.
There's no new syntax to learn here. The challenge is entirely about composition: recognizing which tool from earlier in the course applies to which part of the problem, and wiring them together correctly, in the right order, with the right error handling. That's most of what real, everyday programming actually is.
Good luck — you've got everything you need.