The reason why GUI toolkit is taught first is simple: it's the most practical thing to learn. Everything that comes after it is optional IMO, and not really necessary to being a good programmer. By learning this stuff first, you actually are able to go out and actually get a job more quicker.
Let me ask you a question: in your job, that is if you have a job <<lol
>>, when was the last time you had to write quick sort, or you had to write a tree traversal algorithm? All of these primitive structures have already been written by professionals, it's a waste of time to learn these again when it's already been done. In some cases writing your own version might actually be detrimental, as it surely will be riddled with bugs and performance issues.
On the other hand, the GUI applications need to be written everyday, for different people and different purposes. As such, it is our job as software developers to utilize at our disposal whatever we can to get the job done.