The CMPT 120 D300 Practice Question App

About this app

Customize your practice questions by selecting specific units or tags, choose between multiple-choice or fill-in-the-blank questions, and set how answers are displayed (see the answer after each question, or view all the answers at once to simulate a test environment). Most questions are based on a Python code snippet that you can paste into your own code editor to explore and double check your understanding.

Send feedback of all sorts (questions, bugs, etc.) here.

๐Ÿ‘‹ Welcome to the Practice Question App!

๐Ÿš€ Quick Start

Click one of the Quick Start buttons below to begin with preset quizzes, or customize your own practice session using the settings.

โŒจ๏ธ Keyboard Shortcuts

Navigate efficiently using:

  • โ† โ†’ Navigate between questions
  • 1-4 Select answers A-D
  • B Bookmark current question

๐Ÿ“ค Export Options

Export your quiz to various formats (Markdown, HTML, LaTeX, Print) using the Export section at the bottom of each quiz.

๐Ÿ› Debug Info

Expand the Exam Debug Info section (also at the bottom) to see detailed information about question selection and variants.

๐Ÿ’ก Tips

  • Click ๐Ÿ” Visualize to see code execution step-by-step in Python Tutor
  • Copy code snippets directly using the copy button on code blocks
  • Use bookmarks to mark questions for review
  • All code snippets can be pasted into your Python editor to test

Quick start:

Theme

Quiz Configuration

Question Source
Choose between Units or Tags
Advanced Mode
Configure questions per unit
Fill in Blank
Type answers instead of multiple choice
Show Answers at End
Review all answers after completion

{{ isTags ? 'Select Tags' : 'Select Units' }}

Number of Questions:

Using {{ maxQuestions }} templates to generate up to {{ totalUniqueQuestions }} unique questions.

Configure Questions Per Unit

{{ unit }}
max: {{ getUnitQuestionCount(unit) }}
{{ unit }} {{ weight }}
Total Questions: {{ totalQuestionsInAdvancedMode }}

Question {{ currentIndex + 1 }} of {{ numQuestions }}


            
{{currentCorrect ? 'โœ“ Correct!' : 'โœ— Incorrect' }}
Your answer:
{{ currentAnswer.answer }}
Correct answer:
{{ currentQuestion.answer }}
{{ currentQuestion.explanation }}
Keyboard Shortcuts
  • โ† Previous question
  • โ†’ Next question
  • 1-4 Select answer
  • B Toggle bookmark
  • H Toggle hint
Code snippet copied to clipboard!
Export
Exam Debug Info {{ currentQuestionDebugInfo.positionLabel }} ยท {{ currentQuestionDebugInfo.selectionMode }}

Current Question

  • Template ID: {{ currentQuestionDebugInfo.templateId }}
  • Unit: {{ currentQuestionDebugInfo.unit }}
  • Section: {{ currentQuestionDebugInfo.section || 'โ€”' }}
  • Difficulty: {{ currentQuestionDebugInfo.difficulty }}

Selection Context

  • Mode: {{ currentQuestionDebugInfo.selectionMode }}
  • Requested Count: {{ currentQuestionDebugInfo.requestedFromConfig }}
  • Variants Available: {{ currentQuestionDebugInfo.totalVariants }}
  • Tags: {{ currentQuestionDebugInfo.tags.join(', ') }} None

Quiz Completed!

Final Score: {{ userScore }} / {{ numQuestions }} ({{ userScorePercent }}%)

Time Spent: {{ Math.floor(timeSpent/60) }}m {{ timeSpent%60 }}s

Review ({{ Object.keys(userAnswers).length }} Questions)

Question {{ filteredQuestions.indexOf(question) + 1 }}


                        

                        

Your Answer:

{{ userAnswers[question.id].answer }}

Correct Answer:

{{ question.answer }}