Each week you get given a bunch of files with code in them that suits what you've learnt in the lecture that's week. Usually what you get is that some functions are incomplete and you must complete them. You are required to go over their code and understand it and then code the unfinished functions.
You are then also required to write your own tests and scripts that can execute these tests on your code.
The test cases and stuff don't come in the introductory course though.
This is pretty much what you do in labs, but really you can do whatever's you want in terms of coding, even the assignments.