Giter Site home page Giter Site logo

physicsamc's Introduction

physicsAMC

#table of contents

#introduction

This projects seeks to create an exam question repository for an introductory physics course. If you are not convinced in the effectiveness of multiple choice, I would strongly recommend Scott2006.

This project should be of interest to anyone who teaches a physics course, and especially to anyone whose students take the NYSED physics regents. I am also aware that most online solutions are simply not an option for many high school teachers.

My main goals are to bring some basic ideas from computer science to teaching. Grading should be fast, student feedback should be lengthy. Grading should be fast, student feedback should be prompt and thorough.

This README is written with the hopes of being comprehensible to a computer literate physics teacher. If you describe yourself as above, and find this incomprehensible, I consider that a bug.

#branches

-mc-project, this is a self contained assessment ready for import into auto multiple choice (AMC). If you are new to using AMC, I would recommend that you start here. I have even included an rpm package of auto-multiple-choice for convenience. Once you get familiar, you can slowly import from the other branches to suite your needs.

-master, this is the stable branch. Everything should work here. This is somewhat implied in question-bank.

-develop, this is the development branch. Not everything here will work, though most should. If you want to contribute, or use things in development, I would recommend that you start here.

This has since been  merged into master, so nothing different here.

#dependencies

All except automultiplechoice are included by default in most package managers. I use Fedora's Package Manager, but have heard good things about other projects: HomeBrew, Debian, Arch Linux, Chocolatey, OneGet, etc. A good place to start is The LaTeX Project no matter what you are using.

  • automultiplechoice, this should really be self explanatory, hence the AMC in the project name.
  • mhchem is used for typesetting nuclear reactions.
  • pgfplots is used extensively for all graphs.
  • circuitikz is used for all circuit diagrams.
  • pgf/TikZ is used extensively for all graphics.
  • lualatex is used for Unicode font support and for integrating lua scripts into documents.
  • lua is used for scripting and some custom questions.
  • lpeg is used for scripting, see the scripts directory.
  • siunitx is used for typesetting all SI units and most other units and numbers.
  • amsmath is used for typesetting all equations.
  • booktabs is used for typesetting tables.
  • tabu is used for creating column fitted tables.
  • physics is used for Dirac bracket notation, not used on any high school level question.
  • STIX Fonts is the default font used. You can change it, but I strongly recommend it.

Please Note: This is not an exhaustive list.

#exam-files

-source-exam, this is for beautifully formatted exams with separate cover sheet and answer/response sheet. I use this for unit assessments. As they are each unique, I allow for redos and only record the most recent attempt. This file depends on AMCexam.

-source-full, this is for space saving for when you do not want a separate cover sheet and answer sheet. I use this for one page weekly assessments. I use these typically to measure student progress, I grade them, but I do not record them. This file depends on AMCfull.

-source-half, this is for half letter page sized assessments. These are really nice when you only want one to five questions. I use this for entrance drills and exit tickets. I am a huge proponent of using entrance drills, they can be a godsend at times. There is an included script for printing these, the script assumes that all assessments fit onto one sheet half letter paper (both recto and verso). If the above assumption is false, then you should be using source-full. This file depends on AMChalf.

-AMCcommon, this file provides common definitions that are necessary for compiling the exam files and the question bank files. Do not edit this file unless you are looking to contribute.

-myTikz, this file defines some fanciness for source-exam. Do not edit this file unless you are looking to contribute.

-email, this file provides a template for formatting student emails.

#question-bank

Below is a list of contents with a description in the question bank. Each has been edited by me to reflect my style and conventions. For instance, units not formatted to the NIST style guide, use of British instead of American English, formatting preferences, physical errors, or because I found the question ambiguous.

Question group naming follows the directory where the question is located. This is broken only when necessary.

Question naming follows closely as possible to the source material. For instance, question 32 on the June 2012 regents exam is named June2012-Q32.

master-branch

  • diagnostic: A collection of diagnostic exams: freeBodyDiagrams, vectors, ADTv2
  • hewitt: A rewrite of Hewitt's 60 questions that all physics students should answer.
  • kinematics: A collection of custom written graph questions.
  • lua: A collection of custom written questions that are randomized, requires lua
  • nysed: A comprehensive collection of NYSED physics regents exam questions, over 2200 categorized questions!!
  • survey: A collection of surveys that may be of interest: CLASS, MPEX, Duckworth, and Boredom Proneness Scale.

develop-branch

Please refer to the headings of each file for more information.

parse-qbank

The purpose of parse-qbank is to allow fast and easy parsing from the question bank. This project was first organized by files, this was acceptable when the project was only being used by the author. A more powerful manner to organize this project is to tag each question and parse the file for the desired question attributes. This allows a question to have multiple tags, as opposed to one directory, many questions do not fit neatly into a single category.

The author recommends building an exam by starting with the desired project in mc-project, and then parsing the question bank for the desired questions to include.

The script is very much beta, but it is currently producing usable output. It depends additionally on lpeg and argparse. These can be installed either with luarocks,

$ luarocks install lpeg argparse

or with the fedora package manager,

$ sudo dnf install lua-argparse lua-lpeg

example usage

Extract all questions from the June2012 or the June2013 regents.

$ parse-qbank -q June2012,June2013 qbank/nysed/NYSED-*tex

Extract all one-dimensional (A1) or two-dimensional (A2) kinematics questions.

$ parse-qbank -t A1,A2 qbank/AAPT/Bowl-*tex
git clone https://gitlab.com/jojo_boulix/auto-multiple-choice

best-practices

  • Do not have any MC-Project directory depend on material from another directory. Projects are much less likely to break, and debugging is much simpler.
  • Always set all random number seeds to a fixed number. This allows for recompilation and will likely save you at least once.

style-guide

I use NOTE: and TODO: labels for easy access to information in files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.