Date

Where and When

Test date/time: Tuesday, December 13, 2016 at 7:00 PM
Test location: Some of us are in different rooms for the final!

  • CS 1110 w/ Ibrahim - GIL 190
  • CS 1110 w/ Sherriff - GIL 130
  • CS 1111 w/ Praphamontripong - MEC 205 (normal classroom)

Test duration: 3 hours
Review session: Monday, December 12, 12:00-1:30 PM, CHM 402

Conflicts

All conflicts should have been reported to the form posted on Piazza and sent out via email. Contact Prof. Sherriff if you have questions.

What to bring

  • A writing utensil - pen or pencil
  • Your UVa student ID - you will need to show your ID to turn in your final exam

No laptops, calculators, scratch paper, backpacks, books, or anything else should be brought. These items will be left in the back/front of the room if you bring them. It is also highly recommended to dress in layers. It is likely to get quite warm in the room.

Test Specifics

We are writing the test to be 1 1/2 times the length of the previous two tests. So, we are writing the test to take 1 1/2 hours, but you will have all 3 hours.

The format of the test will be similar to what you have seen, but with basically a few more pages. You can expect similar multiple choice, short answer, code reading, and code writing questions to previous tests.

Major things you can expect:

  • A "long" coding question, one that asks you to solve a problem and will encourage you to use the various tools you've picked up this semester
  • Reading and evaluating methods / code snippets
  • Some questions related to material from the first two thirds of the class
  • Some questions specifically about the final third of the class

Things that we will definitely not ask:

  • How to use specific libraries, such as gamebox, cImage, Turtle, beautifulsoup4, etc. without providing the API
  • Chase activities
  • Professor AMAs

Topics

All topics from the previous two tests are fair game. You can find their lists here:

Additional Topics:

Gamebox

  • We won't ask you to code any gamebox/pygame code
  • It would be good to consider some of the basic algorithms used such as taking a moving character and looping over all of the walls/platforms to see if it is touching any of them

Testing

  • Know the difference between a fault and a failure.
  • Be able to describe the three categories of failures from earlier in the semester: syntax, runtime, logical.
  • Be able to identify a set of good test cases to fully test a simple function.

Algorithms

  • Be able to describe the basic algorithms for bubble sort, insertion sort, and selection sort.

Image Manipulation

  • The concept of a picture and pixel as represented in Python (basically, a 2D list of pixels, where a pixel is a single color point)
  • General idea of the various image algorithms work
  • You may have to read and interpret image algorithms on the test, so understand the basics of how code and algorithms we have done works!

Study Hints

Example questions to look at

Link to Coding Questions from Fall 2015 Final Exam

Link to Key to Fall 2015 Coding Questions

Link to Coding Questions from Spring 2016 Final Exam

Link to Key to Spring 2016 Coding Questions

Here are some questions from the Gaddis book that we think are good ones to review with:

  • Chapter 5 (p. 229) - 4, 5, 7, 13
  • Chapter 6 (p. 288) - 1, 4, 5, 10
  • Chapter 7 (p. 334) - 2, 3, 6, 7
  • Chapter 8 (p. 366) - 2, 4, 6, 9
  • Chapter 9 (p. 416) - 3, 4, 5, 7

Remember: You have more time!

Take the time to write out your code/algorithm on scratch paper FIRST! You've got the time on the final to really work through the options here and write better (and hopefully easier to read) code. So use it!

Check out the lab code

We will be adding example solutions to past labs - so check the Previous Labs page!

Practice coding on paper

You'll be writing code on paper. This feels different than writing it in Eclipse. You don't want to be surprised by how different it feels. Practice writing code by hand.

A few small syntax errors is OK. But if you are really off we will take off points. Try to write correct code.

We'll give you any imports you might need - so don't worry about memorizing those.

Try re-solving the POTD and Lab problems on paper without looking at your code or textbook.

You can find more sample problems in Programming Challenges in the textbook. We do not, however, have the answer key to share with you.

Practice reading code

We will show you code and ask you what it does. You won't be able to have Python run it. Practice thinking through code without running it.

Review the Lectures

Not everything in the book is equally important. Review the lecture notes to see what we emphasized. If you are confused by some point, check the audio. You might want to listen to the audio of the other instructor (the one you didn't hear in class) so that you can get a different perspective on the material.