It is very easy to overwhelm software students when trying to teach a broad array of topics (especially in a week!). He mentioned that his students ran into challenges such as not understanding the difference between 'python foo.py' and 'python3 foo.py'. How can you expect these students to overcome these beginner challenges and then still learn topics such as git, CI, machine learning (!!), functional programming, concurrency, processes, etc!
These topics can take years to learn properly, and require a good foundation. Maybe I didn't understand the purpose of this course, but it seems pretty insane
Wouldn't your audience be far better served if you offered dozens of focused sprint classes (1 topic; 1 hour) rather than some sort of eclectic marathon?
Design, testing, and debugging (which takes up more resources than writing code) require skill in forming good hypothesis and methodical way to test that hypothesis.
These type of courses should be designed more towards those skill sets than just learning to write code.
I would actually add to the above though that I think it's important people learn to approach problem-solving from a mathematical perspective. Unfortunately, a lot of people that get into software engineering don't like math, and they would generally be averse to learning about software engineering this way, but I think a lot of bad code gets written because the person writing it didn't approach the problem with the right structure or rigor.
A parallel to this would be something like, "You built a bird house out of wood. We'll teach you how to build a skyscraper in a week." It's just not possible.
I don't think people who go there expect to come out as experienced engineers. They expect to learn some this so that they can learn more later.
The amount of practical learning accelerated my first few years as a full-time developer. Went from barely using nix to spending nearly all my time there except for time spent in Outlook. Went from a cursory knowledge of C++ to having a beyond intermediate knowledge. Learned Python (back at version 2.2!).
I think a big point of a course like this is not to give you a full knowledge of the domain, but rather how to learn* about the domain. Software is constantly changing; to be effective, you have to be able to keep up. Which means a lot of reading. When I first started, Google wasn't a thing. Meant a lot of dead tree edition books (ebooks weren't a thing yet). I got my starting points when I was in high school from early forums and mailing lists circa 1995. Took a long time to research things at 56kbps. Also took an effort to convince my parents to buy me programming books at $40 a pop even in the 90s, but when they saw me reading them cover to cover instead of watching TV (easy to get motivated - we only had 2 TV channels) and spending hours slaving away on the computer on programming instead of playing Civ 1, they were more willing to buy the books.
The course is intended to help these researchers to understand software design and collaborative tools like git to be more effective at writing code.