You're not supposed to use any functions like Plot, Line, etc. but use the pointer to the screen buffer to write the desired pixels directly. As a template for the first assignment, you could start with the Game::Tick function mentioned in the text that draws a vertical line:
void Game::Tick( float a_DT )
Pixel* address = m_Screen->GetBuffer() + 100;
for ( int i = 0; i < 255; i++ ) address[i * 640] = i;
This draws a vertical line from (100, 0) to (100, 255) by directly setting values into the buffer. You should modify this to complete the first assignment. Try getting it to draw a diagonal line first, then when that's working put in the dotted-ness. I'll just give a hint: the difference between drawing a vertical line, a diagonal line, or a dotted diagonal line is just changing one number in this code.
As for the second assignment, yes, the idea is to keep using the screen buffer pointer to read and write pixels directly. The idea is you'll load an image into the screen buffer (hopefully there's a function in the engine to do this for you), then write some code that moves your guy around by erasing him at his current position and drawing him at his next position. Your guy is a one-pixel white dot, and he only moves in areas of the image that are black, so erasing and re-drawing him is easy. You have to look at the pixels of the loaded image in the buffer to figure out where the guy is allowed to move (i.e. where the background is black).