Собственно, не понятно, почему использование типов данных вызывает вопоросы. Какая разница, встроенные-элементарные они или реализованные?.
Простые имеют такие операции, а сложные - такие операции. На то они и сложные. А уж конструирование сложных типов - это потом.
ИМХО, как раз очень хорошо сначала научаем использовать реализованное.
А уж для повышения квалификации потом учим создавать.