I'll echo this suggestion. In my senior year of university undergrad, majoring in computer science, I turned this book into two semesters of independent study credits, using the C section of the book for the first semester and then exploring a conversion to Rust for the second semester, both after having done the first (Java) section of the book on my own for amusement over the previous winter break.
I agree that the use of Java is not great and I'd prefer that the first section be in a different language, but it's useful for learning basic fundamentals before you dive into the meatier C section. I also like that the book refers to how Lua is implemented several times and borrows a few concepts from Lua, including the whole idea of upvalues, so especially for Lua enthusiasts there is a good connection there.