обычно под этим понимается специалист,
способный сформулировать задачу заказчика в программистских
или околопрограммистских терминах.
Там есть несколько разных методик, например, то, что называют
Unified Approach. Книжек сейчас по этому вопросу довольно много,
но они довольно мутные.
Тематика курса "Теоретические основы информатики" сама по себе
не вредная, но связана с рассматриваемой областью довольно
опосредовано. К тому же, на мой личный и субъективный
взгляд, там чрезмерно сильный крен в сторону некоторых
практически малополезных вопросов.