Did you ever try doing your programming exercises in AmigaBASIC instead? It was also made by Microsoft, so it should have been quite compatible with GW-BASIC.
AmigaBASIC was both great and awful at the same time. On one hand it integrated quite well - you could write an interface definition that'd let it call system libraries relatively easily, and so could do a lot with it - but it was also buggy, and fell by the wayside pretty quickly on the Amiga in favour of AREXX (which was awful as a language, but the ability to script all your applications was fantastic)
Buggy? Aside from the abuse of the upper 8 bits of 32 bit pointers that prevented its use on newer CPUs, I don't recall hitting a lot of bugs in AmigaBASIC. Perhaps my memory is just old and faded.