A course in programming would be a great way to teach critical thinking, especially if you spend several weeks specifically working on debugging skills.
One can be deeply analytical and yet not really critical. For example, some people that know all details of a religious text and can argue its points very well, while not paying attention to its limitations/inconsistencies or influences.
Not trying to bash religious people, just giving a common example.