I'll try to give a slightly different angle to the answers already given.
My main claim, and this is what takes some getting used to, conceptually, is that in most cases writing code is not the goal. Writing code is the means to an end. In most cases, the end is to get a software product out, getting it out with good quality, and getting it out in time. If writing your own code will get in the way of that (and it will. For practically all non-trivial cases, your own code will take longer to write and will be less well tested), than use existing libraries, because writing code is not the goal.
There are, of course, always secondary goals. Learning and improving as a developer is one of them. Developing in-house expertise in a problem domain or a technology may be another. These must all be considered when deciding whether to use existing code or write new code.
If your project is writing a new tool for market trend analysis, it doesn't make sense to use existing data-analysis code, since that's where you want your designers and coders to give the edge over the competition. But it does't make sense to write your own UI controls, since that's not what your users will be choosing you for.
But if you're writing a new eCommerce platform, it makes sense to use existing components for user management, data access and payment gateways, since these are commodities, and probably not the deciding factors - but do write your own UI, since the ease of use for customers and sellers is the main advantage you can offer.
And finally, the school project. You have two goals here: the first is to learn. The second is to pass and get a good grade. These two are related, but not identical, and occasionaly even contradictory. If you spend your 15 weeks developing your own tools and plugins, you will likely not be spending them doing the actual tasks you were charged with. Always remember that it's the product requirements, not the elegance of your code, that matter to those who order the project.