Files
codeocean/db/schema.rb
Sebastian Serth aaa0772c95 Bundle update
2022-06-15 17:37:23 +02:00

3260 lines
150 KiB
Ruby

# This file is auto-generated from the current state of the database. Instead
# of editing this file, please use the migrations feature of Active Record to
# incrementally modify your database, and then regenerate this schema definition.
#
# This file is the source Rails uses to define your schema when running `bin/rails
# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to
# be faster and is potentially less error prone than running all of your
# migrations from scratch. Old migrations may fail to apply correctly if those
# migrations use external dependencies or application code.
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2022_04_15_215112) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_trgm"
enable_extension "pgcrypto"
enable_extension "plpgsql"
create_table "anomaly_notifications", id: :serial, force: :cascade do |t|
t.integer "user_id"
t.string "user_type"
t.integer "exercise_id"
t.integer "exercise_collection_id"
t.string "reason"
t.datetime "created_at"
t.datetime "updated_at"
t.index ["exercise_collection_id"], name: "index_anomaly_notifications_on_exercise_collection_id"
t.index ["exercise_id"], name: "index_anomaly_notifications_on_exercise_id"
t.index ["user_type", "user_id"], name: "index_anomaly_notifications_on_user"
end
create_table "codeharbor_links", id: :serial, force: :cascade do |t|
t.string "api_key"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
t.string "push_url"
t.string "check_uuid_url"
t.string "user_type"
t.index ["user_type", "user_id"], name: "index_codeharbor_links_on_user_type_and_user_id"
end
create_table "comments", id: :serial, force: :cascade do |t|
t.integer "user_id"
t.integer "file_id"
t.string "user_type"
t.integer "row"
t.integer "column"
t.text "text"
t.datetime "created_at"
t.datetime "updated_at"
t.index ["file_id"], name: "index_comments_on_file_id"
t.index ["user_id"], name: "index_comments_on_user_id"
end
create_table "community_solution_contributions", force: :cascade do |t|
t.bigint "community_solution_id", null: false
t.bigint "study_group_id"
t.string "user_type", null: false
t.bigint "user_id", null: false
t.bigint "community_solution_lock_id", null: false
t.boolean "proposed_changes", null: false
t.boolean "timely_contribution", null: false
t.boolean "autosave", null: false
t.interval "working_time", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["community_solution_id", "timely_contribution", "autosave", "proposed_changes"], name: "index_community_solution_valid_contributions"
t.index ["community_solution_lock_id"], name: "index_community_solution_contributions_lock"
t.index ["user_type", "user_id"], name: "index_community_solution_contributions_on_user"
end
create_table "community_solution_locks", force: :cascade do |t|
t.bigint "community_solution_id", null: false
t.string "user_type", null: false
t.bigint "user_id", null: false
t.datetime "locked_until"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["community_solution_id", "locked_until"], name: "index_community_solution_locks_until", unique: true
t.index ["user_type", "user_id"], name: "index_community_solution_locks_on_user"
end
create_table "community_solutions", force: :cascade do |t|
t.bigint "exercise_id", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["exercise_id"], name: "index_community_solutions_on_exercise_id"
end
create_table "consumers", id: :serial, force: :cascade do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.string "oauth_key"
t.string "oauth_secret"
end
create_table "error_template_attributes", id: :serial, force: :cascade do |t|
t.string "key"
t.string "regex"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "description"
t.boolean "important"
end
create_table "error_template_attributes_templates", id: false, force: :cascade do |t|
t.integer "error_template_id", null: false
t.integer "error_template_attribute_id", null: false
end
create_table "error_templates", id: :serial, force: :cascade do |t|
t.integer "execution_environment_id"
t.string "name"
t.string "signature"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.text "description"
t.text "hint"
end
create_table "events", id: :serial, force: :cascade do |t|
t.string "category"
t.string "data"
t.integer "user_id"
t.string "user_type"
t.integer "exercise_id"
t.integer "file_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "execution_environments", id: :serial, force: :cascade do |t|
t.string "docker_image"
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.string "run_command"
t.string "test_command"
t.string "testing_framework"
t.text "help"
t.integer "permitted_execution_time"
t.integer "user_id"
t.string "user_type"
t.integer "pool_size"
t.integer "file_type_id"
t.integer "memory_limit"
t.boolean "network_enabled"
t.integer "cpu_limit", default: 20, null: false
t.integer "exposed_ports", default: [], array: true
end
create_table "exercise_collection_items", id: :serial, force: :cascade do |t|
t.integer "exercise_collection_id"
t.integer "exercise_id"
t.integer "position", default: 0, null: false
t.index ["exercise_collection_id"], name: "index_exercise_collection_items_on_exercise_collection_id"
t.index ["exercise_id"], name: "index_exercise_collection_items_on_exercise_id"
end
create_table "exercise_collections", id: :serial, force: :cascade do |t|
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "use_anomaly_detection", default: false
t.integer "user_id"
t.string "user_type"
t.index ["user_type", "user_id"], name: "index_exercise_collections_on_user_type_and_user_id"
end
create_table "exercise_tags", id: :serial, force: :cascade do |t|
t.integer "exercise_id"
t.integer "tag_id"
t.integer "factor", default: 1
end
create_table "exercise_tips", force: :cascade do |t|
t.bigint "exercise_id", null: false
t.bigint "tip_id", null: false
t.integer "rank", null: false
t.bigint "parent_exercise_tip_id"
t.index ["exercise_id", "rank"], name: "index_exercise_tips_on_exercise_id_and_rank"
t.index ["exercise_id"], name: "index_exercise_tips_on_exercise_id"
t.index ["parent_exercise_tip_id"], name: "index_exercise_tips_on_parent_exercise_tip_id"
t.index ["tip_id"], name: "index_exercise_tips_on_tip_id"
end
create_table "exercises", id: :serial, force: :cascade do |t|
t.text "description"
t.integer "execution_environment_id"
t.string "title"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
t.text "instructions"
t.boolean "public"
t.string "user_type"
t.string "token"
t.boolean "hide_file_tree"
t.boolean "allow_file_creation"
t.boolean "allow_auto_completion", default: false
t.integer "expected_difficulty", default: 1
t.uuid "uuid"
t.boolean "unpublished", default: false
t.datetime "submission_deadline"
t.datetime "late_submission_deadline"
t.index ["id"], name: "index_exercises_on_id"
t.index ["id"], name: "index_unpublished_exercises", where: "(NOT unpublished)"
t.index ["title"], name: "index_exercises_on_title", opclass: :gin_trgm_ops, using: :gin
end
create_table "exercises_proxy_exercises", id: false, force: :cascade do |t|
t.integer "proxy_exercise_id"
t.integer "exercise_id"
t.datetime "created_at"
t.datetime "updated_at"
t.index ["exercise_id"], name: "index_exercises_proxy_exercises_on_exercise_id"
t.index ["proxy_exercise_id"], name: "index_exercises_proxy_exercises_on_proxy_exercise_id"
end
create_table "external_users", id: :serial, force: :cascade do |t|
t.integer "consumer_id"
t.string "email"
t.string "external_id"
t.string "name"
t.datetime "created_at"
t.datetime "updated_at"
t.string "role", default: "learner", null: false
t.string "gender"
t.string "age"
t.integer "skill_level_pre_java17"
t.integer "skill_level_pre_java20"
t.integer "skill_level_pre_java21"
t.integer "skill_level_pre_python20"
t.boolean "tips_group_python20"
t.boolean "linter_group_python20"
t.string "intervention_group_java21"
t.boolean "community_solution_group_java21"
t.integer "skill_level_post_java21"
t.integer "skill_level_post_python20"
t.float "points_java17"
t.float "points_java20"
t.float "points_java21"
t.float "points_python20"
end
create_table "file_templates", id: :serial, force: :cascade do |t|
t.string "name"
t.text "content"
t.integer "file_type_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "file_types", id: :serial, force: :cascade do |t|
t.string "editor_mode"
t.string "file_extension"
t.integer "indent_size"
t.string "name"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "executable"
t.boolean "renderable"
t.string "user_type"
t.boolean "binary"
end
create_table "files", id: :serial, force: :cascade do |t|
t.text "content"
t.integer "context_id"
t.string "context_type"
t.integer "file_id"
t.integer "file_type_id"
t.boolean "hidden"
t.string "name"
t.boolean "read_only"
t.datetime "created_at"
t.datetime "updated_at"
t.string "native_file"
t.string "role"
t.string "hashed_content"
t.string "feedback_message"
t.float "weight"
t.string "path"
t.integer "file_template_id"
t.index ["context_id", "context_type"], name: "index_files_on_context_id_and_context_type"
end
create_table "internal_users", id: :serial, force: :cascade do |t|
t.integer "consumer_id"
t.string "email"
t.string "name"
t.string "role"
t.datetime "created_at"
t.datetime "updated_at"
t.string "crypted_password"
t.string "salt"
t.integer "failed_logins_count", default: 0
t.datetime "lock_expires_at"
t.string "unlock_token"
t.string "remember_me_token"
t.datetime "remember_me_token_expires_at"
t.string "reset_password_token"
t.datetime "reset_password_token_expires_at"
t.datetime "reset_password_email_sent_at"
t.string "activation_state"
t.string "activation_token"
t.datetime "activation_token_expires_at"
t.index ["activation_token"], name: "index_internal_users_on_activation_token"
t.index ["email"], name: "index_internal_users_on_email", unique: true
t.index ["remember_me_token"], name: "index_internal_users_on_remember_me_token"
t.index ["reset_password_token"], name: "index_internal_users_on_reset_password_token"
end
create_table "interventions", id: :serial, force: :cascade do |t|
t.string "name"
t.text "markup"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "java17_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "warum_nimmst_du_am_kurs_teil"
t.text "motivation_wenn_vorgaenger_kurs_belegt"
t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt"
t.text "andere_antwort"
t.text "was_ist_ziel_und_motivation_zur_belegung"
end
create_table "java17_1-2_selbsteinschaetzung", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java"
t.text "wie_sicher_klassen_und_objekte_in_java"
t.text "wie_sicher_kontrollstrukturen_in_java"
t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein"
end
create_table "java17_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "welche_haupt__aufgabe_hat_ein_interface"
t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts"
t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr"
t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode"
t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru"
t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi"
t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code"
t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt"
t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen"
t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko"
t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist"
t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre"
t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj"
t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt"
t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_"
t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_"
t.text "welche_fehler.zeile_2__zeile_3_von_papageijava"
t.text "welche_fehler.zeile_5_von_papageijava"
t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija"
t.text "welche_fehler.zeilen_13_bis_15_von_papageijava"
t.text "welche_fehler.zeilen_17_bis_19_von_papageijava"
t.text "welche_fehler.zeile_3_von_zoojava"
t.text "welche_fehler.zeile_4_von_zoojava"
t.text "welche_fehler.zeilen_5___9_von_zoojava"
t.text "welche_fehler.zeile_11_von_zoojava"
t.text "welche_fehler.zeile_13_von_zoojava"
t.text "welche_fehler.zeile_14_von_zoojava"
t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag"
end
create_table "java17_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java_nach_w1_w2"
t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2"
t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "java17_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop"
t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections"
end
create_table "java17_5-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4"
t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "java17_6-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "wrdest_du_diesen_kurs_weiterempfehlen"
t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich"
t.text "grundstzlich_finde_ich_die_mglichkeit_aufgaben_im_team_zu_bearb"
t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_"
t.text "die_anzahl_der_bonus_aufgaben_fand_ich_"
t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich"
t.text "interventions_hilfreich"
t.text "interventions_zeitpunkt"
t.text "videotelefonie.andere_teilnehmer"
t.text "videotelefonie.kursbetreuer_oder_tutoren"
t.text "videotelefonie.ich_wre_bereit_fr_das_individuelle_tutoring_durc"
t.text "videotelefonie.ich_habe_nicht_die_technische_mglichkeit_zur_vid"
t.text "vieotelefonie.ich_wrde_dieses_feature_aus_bedenken_bezglich_des"
t.text "whrend_bearbeitung_habe_ich"
t.text "wie_alt_bist_du"
t.text "welches_geschlecht_hast_du"
t.text "wrdest_du_open_hpi_weiterempfehlen"
end
create_table "java17_6-2_generelles_feedback", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "rahmenhandlung_wnscht_du_dir_beispielsweise_mehr_rahmenhandlung"
t.text "code_ocean_wnscht_du_dir_vielleicht_umfangreichere_bungen_in_co"
t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zur_g"
end
create_table "java17_7_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "age_group"
t.text "birth_date"
t.text "access_groups"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.integer "sessions"
t.integer "avg_session_duration"
t.decimal "total_session_duration"
t.integer "video_play_activity"
t.decimal "video_play_activity_percentage"
t.integer "video_downloads_activity"
t.decimal "video_downloads_activity_percentage"
t.integer "slide_downloads_activity"
t.decimal "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.decimal "quiz_performance"
t.integer "graded_quiz_performance"
t.decimal "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.decimal "points_percentage"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.decimal "woche_3_visited_percentage_section"
t.decimal "exkurs__modellierung_visited_percentage_section"
t.decimal "woche_4_visited_percentage_section"
t.text "exkurs__speicherverwaltung_visited_percentage_section"
t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section"
t.decimal "i_like_i_wish_visited_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.decimal "woche_2_self_tests_percentage_section"
t.decimal "woche_3_self_tests_percentage_section"
t.text "exkurs__modellierung_self_tests_percentage_section"
t.integer "woche_4_self_tests_percentage_section"
t.text "exkurs__speicherverwaltung_self_tests_percentage_section"
t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti"
t.text "i_like_i_wish_self_tests_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.integer "woche_3_assignments_percentage_section"
t.text "exkurs__modellierung_assignments_percentage_section"
t.integer "woche_4_assignments_percentage_section"
t.text "exkurs__speicherverwaltung_assignments_percentage_section"
t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect"
t.text "i_like_i_wish_assignments_percentage_section"
t.integer "woche_1_bonus_percentage_section"
t.integer "woche_2_bonus_percentage_section"
t.integer "woche_3_bonus_percentage_section"
t.integer "exkurs__modellierung_bonus_percentage_section"
t.integer "woche_4_bonus_percentage_section"
t.text "exkurs__speicherverwaltung_bonus_percentage_section"
t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "woche_1___11_ein_erstes_programm_percentage_quiz"
t.text "woche_1___12_klassen_und_objekte_percentage_quiz"
t.text "woche_1___13_variablen_1_percentage_quiz"
t.text "woche_1___14_variablen_2_percentage_quiz"
t.text "woche_1___15_attribute_percentage_quiz"
t.text "woche_1___16_methoden_percentage_quiz"
t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz"
t.text "woche_1___hausaufgabe_woche_1_percentage_quiz"
t.text "woche_2___recap_percentage_quiz"
t.text "woche_2___21_parameter_percentage_quiz"
t.text "woche_2___221_boolean_percentage_quiz"
t.text "woche_2___222_boolean_percentage_quiz"
t.text "woche_2___23_verzweigungen_percentage_quiz"
t.text "woche_2___24_schleifen_percentage_quiz"
t.text "woche_2___25_primitive_arrays_percentage_quiz"
t.text "woche_2___26_konstruktoren_percentage_quiz"
t.text "woche_2___hausaufgabe_woche_2_percentage_quiz"
t.text "woche_3___31_vererbung_percentage_quiz"
t.text "woche_3___32_sichtbarkeiten_percentage_quiz"
t.text "woche_3___33_kapselung_percentage_quiz"
t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz"
t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz"
t.text "woche_3___36_abstrakte_klassen_percentage_quiz"
t.text "woche_3___37_polymorphie_percentage_quiz"
t.text "woche_3___38_this_is_super_percentage_quiz"
t.text "woche_3___hausaufgabe_woche_3_percentage_quiz"
t.text "woche_4___41_objektdatentypen_percentage_quiz"
t.text "woche_4___42_type_casting_percentage_quiz"
t.text "woche_4___43_collections_percentage_quiz"
t.text "woche_4___44_foreach_schleifen_percentage_quiz"
t.text "woche_4___45_interfaces_percentage_quiz"
t.text "woche_4___hausaufgabe_woche_4_percentage_quiz"
t.text "course_code"
end
create_table "java20_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "warum_nimmst_du_am_kurs_teil"
t.text "motivation_wenn_vorgaenger_kurs_belegt"
t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt"
t.text "andere_antwort"
t.text "was_ist_ziel_und_motivation_zur_belegung"
end
create_table "java20_1-2_selbsteinschaetzung", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java"
t.text "wie_sicher_klassen_und_objekte_in_java"
t.text "wie_sicher_kontrollstrukturen_in_java"
t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions"
t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein"
end
create_table "java20_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "welche_haupt__aufgabe_hat_ein_interface"
t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts"
t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr"
t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode"
t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru"
t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi"
t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code"
t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt"
t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen"
t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko"
t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist"
t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre"
t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj"
t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt"
t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_"
t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_"
t.text "welche_fehler.zeile_2__zeile_3_von_papageijava"
t.text "welche_fehler.zeile_5_von_papageijava"
t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija"
t.text "welche_fehler.zeilen_13_bis_15_von_papageijava"
t.text "welche_fehler.zeilen_17_bis_19_von_papageijava"
t.text "welche_fehler.zeile_3_von_zoojava"
t.text "welche_fehler.zeile_4_von_zoojava"
t.text "welche_fehler.zeilen_5___9_von_zoojava"
t.text "welche_fehler.zeile_11_von_zoojava"
t.text "welche_fehler.zeile_13_von_zoojava"
t.text "welche_fehler.zeile_14_von_zoojava"
t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag"
end
create_table "java20_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java_nach_w1_w2"
t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2"
t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2"
t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "java20_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop"
t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections"
end
create_table "java20_4-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4"
t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4"
t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "java20_5-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "wrdest_du_diesen_kurs_weiterempfehlen"
t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich"
t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_"
t.text "die_anzahl_der_bonus_aufgaben_fand_ich_"
t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich"
t.text "co_support_convention.eigenen_programme_verbessern_und_alle_hin"
t.text "co_support_convention.eigenen_programme_verbessern_und_einige_h"
t.text "co_support_convention.mich_wrde_das_feedback_in_code_ocean_zwar"
t.text "co_support_convention.das_zustzliche_feedback_in_code_ocean_wrd"
t.text "co_support_convention.feedback_zur_struktur_des_codes_ist_grund"
t.text "whrend_bearbeitung_habe_ich._mich_meistens_nur_mit_der_aufgabe_"
t.text "whrend_bearbeitung_habe_ich._nebenbei_oft_was_anderes_gemacht_d"
t.text "whrend_bearbeitung_habe_ich._mich_mal_nur_mit_der_aufgabe_besch"
t.text "whrend_bearbeitung_habe_ich._mir_das_video__die_folien_der_vorh"
t.text "whrend_bearbeitung_habe_ich._im_forum_fragen_gestellt_oder_bean"
t.text "whrend_bearbeitung_habe_ich._in_code_ocean_kommentaranfragen_vo"
t.text "wie_alt_bist_du"
t.text "welches_geschlecht_hast_du"
t.text "wrdest_du_open_hpi_weiterempfehlen"
end
create_table "java20_5-2_generelles_feedback", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "rahmenhandlung_erzhle_uns_bitte_ein_bisschen_mehr_darber_wie_di"
t.text "code_ocean_gerne_mchten_wir_von_dir_mehr_ber_deine_nutzung_von_"
t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zum_s"
end
create_table "java20_6_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "age_group"
t.text "birth_date"
t.text "access_groups"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.integer "sessions"
t.integer "avg_session_duration"
t.decimal "total_session_duration"
t.integer "video_play_activity"
t.decimal "video_play_activity_percentage"
t.integer "video_downloads_activity"
t.decimal "video_downloads_activity_percentage"
t.integer "slide_downloads_activity"
t.decimal "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.decimal "quiz_performance"
t.integer "graded_quiz_performance"
t.decimal "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.integer "points_percentage"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.decimal "woche_3_visited_percentage_section"
t.decimal "woche_4_visited_percentage_section"
t.text "exkurs__speicherverwaltung_visited_percentage_section"
t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section"
t.decimal "i_like_i_wish_visited_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.integer "woche_2_self_tests_percentage_section"
t.integer "woche_3_self_tests_percentage_section"
t.integer "woche_4_self_tests_percentage_section"
t.text "exkurs__speicherverwaltung_self_tests_percentage_section"
t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti"
t.text "i_like_i_wish_self_tests_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.integer "woche_3_assignments_percentage_section"
t.integer "woche_4_assignments_percentage_section"
t.text "exkurs__speicherverwaltung_assignments_percentage_section"
t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect"
t.text "i_like_i_wish_assignments_percentage_section"
t.integer "woche_1_bonus_percentage_section"
t.integer "woche_2_bonus_percentage_section"
t.integer "woche_3_bonus_percentage_section"
t.integer "woche_4_bonus_percentage_section"
t.text "exkurs__speicherverwaltung_bonus_percentage_section"
t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "woche_1___11_ein_erstes_programm_percentage_quiz"
t.text "woche_1___12_klassen_und_objekte_percentage_quiz"
t.text "woche_1___13_variablen_1_percentage_quiz"
t.text "woche_1___14_variablen_2_percentage_quiz"
t.text "woche_1___15_attribute_percentage_quiz"
t.text "woche_1___16_methoden_percentage_quiz"
t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz"
t.text "woche_1___18_hausaufgabe_percentage_quiz"
t.text "woche_1___hausaufgabe_woche_1_original_percentage_quiz"
t.text "woche_2___recap_percentage_quiz"
t.text "woche_2___21_parameter_percentage_quiz"
t.text "woche_2___221_boolean_percentage_quiz"
t.text "woche_2___222_boolean_percentage_quiz"
t.text "woche_2___23_verzweigungen_percentage_quiz"
t.text "woche_2___24_schleifen_percentage_quiz"
t.text "woche_2___25_primitive_arrays_percentage_quiz"
t.text "woche_2___26_konstruktoren_percentage_quiz"
t.text "woche_2___27_hausaufgabe_percentage_quiz"
t.text "woche_2___hausaufgabe_woche_2_original_percentage_quiz"
t.text "woche_3___31_vererbung_percentage_quiz"
t.text "woche_3___32_sichtbarkeiten_percentage_quiz"
t.text "woche_3___33_kapselung_percentage_quiz"
t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz"
t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz"
t.text "woche_3___36_abstrakte_klassen_percentage_quiz"
t.text "woche_3___37_polymorphie_percentage_quiz"
t.text "woche_3___38_this_is_super_percentage_quiz"
t.text "woche_3___deep_dive_konventionen_in_java_percentage_quiz"
t.text "woche_3___deep_dive_best_practices_percentage_quiz"
t.text "woche_3___39_hausaufgabe_percentage_quiz"
t.text "woche_3___hausaufgabe_woche_3_original_percentage_quiz"
t.text "woche_4___41_objektdatentypen_percentage_quiz"
t.text "woche_4___42_type_casting_percentage_quiz"
t.text "woche_4___43_collections_percentage_quiz"
t.text "woche_4___44_foreach_schleifen_percentage_quiz"
t.text "woche_4___45_interfaces_percentage_quiz"
t.text "woche_4___46_hausaufgabe_percentage_quiz"
t.text "woche_4___hausaufgabe_woche_4_original_percentage_quiz"
t.text "course_code"
end
create_table "java21_0-1_umfrage_zum_kursstart", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.decimal "points"
t.text "wie_alt_bist_du"
t.text "was_ist_dein_primres_ziel_und_die_motivation_den_kurs_zu_belege"
t.text "andere_ziele"
t.text "in_welchem_rahmen_nimmst_du_an_dem_kurs_teil"
t.text "erwartungen_lerninhalte_und_lernziele"
t.text "kennengelernt.mooc_aggregator"
t.text "kennengelernt.zeitung_oder_zeitschrift"
t.text "kennengelernt.facebook"
t.text "kennengelernt.twitter"
t.text "kennengelernt.open_hpi_seite"
t.text "kennengelernt.freunde_oder_bekannte"
t.text "kennengelernt.linked_in"
t.text "kennengelernt.xing"
t.text "kennengelernt.andere"
t.text "geplante_zeit_pro_woche"
t.text "medien_zum_lernen.bilder_und_grafiken"
t.text "medien_zum_lernen.videos_und_animationen"
t.text "medien_zum_lernen.podcasts__audio_bcher"
t.text "medien_zum_lernen.texte_digital_nicht_ausgedruckt"
t.text "medien_zum_lernen.texte_auf_papier_ausgedruckt"
t.text "medien_zum_lernen.persnlicher_austausch_mit_anderen"
t.text "kennst_du_das_konzept_der_lerntypen"
t.text "lerntyp_relevant"
t.text "welcher_lerntyp_bist_du.visuell"
t.text "welcher_lerntyp_bist_du.haptisch_motorisch"
t.text "welcher_lerntyp_bist_du.auditiv"
t.text "welcher_lerntyp_bist_du.kommunikativ"
t.text "welcher_lerntyp_bist_du.medienorientiert"
t.text "welcher_lerntyp_bist_du.keiner_davon"
end
create_table "java21_0-2_deine_vorkenntnisse", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.decimal "points"
t.text "vorheriger_programmierkurs.ja_genau_einen_auf_open_hpi"
t.text "vorheriger_programmierkurs.ja_mehrere_auf_open_hpi"
t.text "vorheriger_programmierkurs.ja_auf_einer_anderen_plattform"
t.text "vorheriger_programmierkurs.ja_in_prsenz_zb_in_der_schule_univer"
t.text "vorheriger_programmierkurs.nein_noch_gar_nicht"
t.text "wie_schtzt_du_deine_programmiererfahrung_im_allgemeinen_ein"
t.text "openhpi_kurs_mit_codeocean"
t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_feedback_von_anderen"
t.text "gemeinsam_entwickeln.ich_habe_anderen_schon_einmal_feedback_zu_"
t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_mit_anderen_gemeinsa"
t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_gleichzeitig_mit_and"
t.text "gemeinsam_entwickeln.nein_noch_gar_nicht"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_arrays_und_listen_m"
t.text "hast_du_zum_thema_arrays_und_listen_bereits_praktische_programm"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_queues_und_stacks_m"
t.text "hast_du_zum_thema_queues_und_stacks_bereits_praktische_programm"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_java_generics_mit"
t.text "hast_du_zum_thema_java_generics_bereits_praktische_programmiere"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_foreach_schleifen_m"
t.text "hast_du_zum_thema_foreach_schleifen_bereits_praktische_programm"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_iteratoren_mit"
t.text "hast_du_zum_thema_iteratoren_bereits_praktische_programmiererfa"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_suchen_in_listen_mi"
t.text "hast_du_zum_thema_suchen_in_listen_bereits_praktische_programmi"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sortieralgorithmen_"
t.text "hast_du_zum_thema_sortieralgorithmen_bereits_praktische_program"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_equals_mit"
t.text "hast_du_zum_thema_equals_bereits_praktische_programmiererfahrun"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_compare_to_mit"
t.text "hast_du_zum_thema_compare_to_bereits_praktische_programmiererfa"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_bestimmung_der_prog"
t.text "hast_du_zum_thema_bestimmung_der_programmlaufzeit_bereits_prakt"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_rekursion_mit"
t.text "hast_du_zum_thema_rekursion_bereits_praktische_programmiererfah"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sets_und_maps_mit"
t.text "hast_du_zum_thema_sets_und_maps_bereits_praktische_programmiere"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_trees__bume_mit"
t.text "hast_du_zum_thema_trees__bume_bereits_praktische_programmiererf"
end
create_table "java21_2-2_umfrage_sets_maps", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "hast_du_das_gefhl_das_thema_sets_und_maps_mit_den_von_uns_angeb"
t.text "hast_du_ein_verstndnis_dafr_entwickelt_fr_welche_anwendungsflle"
t.text "wie_sicher_fhlst_du_dich_gerade_damit_sets_oder_maps_im_eigenen"
t.text "was_wrde_dir_am_meisten_helfen_die_themen_set_und_map_noch_bess"
t.text "falls_du_in_der_letzten_frage_sonstiges_geantwortet_hast_freuen"
end
create_table "java21_3-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.decimal "points"
t.text "hast_du_deine_persnlichen_lernziele_erreicht"
t.text "wie_schtzt_du_dein_wissen_zu_dem_thema_algorithmen_und_datenstr"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfehlen_w"
t.text "die_tipps_in_code_ocean_waren_hilfreich"
t.text "die_tipps_in_code_ocean_waren_einfach_zu_finden"
t.text "die_tipps_in_code_ocean_haben_zur_jeweiligen_aufgabe_gepasst"
t.text "durch_tipps_habe_ich_seltener_frage_oder_rfc_gestellt"
t.text "die_tipps_in_code_ocean_waren_zu_sehr_auf_die_jeweilige_aufgabe"
t.text "ich_knnte_mir_vorstellen_selbst_zustzliche_tipps_fr_die_aufgabe"
t.text "hast_du_weitere_wnsche_oder_ideen_wie_wir_die_tipps_verbessern_"
t.text "nenne_1_2_anwendungsflle_fr_sets_undoder_maps_die_dir_einfallen"
t.text "nach_welcher_zeit_wrdest_du_dir_einen_solchen_hinweise_wnschen"
t.text "unabhngig_von_der_zeit_wie_hilfreich_findest_du_diese_hinweise_"
t.text "unabhngig_von_der_zeit_wie_strend_findest_du_diese_hinweise_in_"
t.text "wunschinteraktion.eine_neue_kommentaranfrage_stellen"
t.text "wunschinteraktion.antworten_auf_eine_eigene_kommentaranfragen_l"
t.text "wunschinteraktion.fremde_kommentaranfragen_lesen"
t.text "wunschinteraktion.tipps_zur_aufgabe_ansehen"
t.text "wunschinteraktion.link_zum_kursforum_auf_open_hpi"
t.text "wunschinteraktion.link_zum_zugehrigen_video_oder_selbsttest_auf"
t.text "wunschinteraktion.erinnerung_daran_eine_pause_zu_machen"
t.text "wunschinteraktion.etwas_anderes"
t.text "wunschinteraktion.gar_nichts_ich_finde_die_hinweise_nicht_gut"
t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_hinweisen_wenn_du_in_d"
t.text "ich_fand_rfc_stellen_einfach_zu_finden"
t.text "ich_wnsche_mir_die_mglichkeit_gemeinsam_eine_musterlsung_zu_ers"
t.text "ich_traue_mir_zu_eine_nderung_an_der_musterlsung_vorzuschlagen"
t.text "ich_habe_freude_daran_an_der_musterlsung_mitzuwirken"
t.text "ich_wnsche_mir_eine_mglichkeit_vorherige_versionen_der_musterls"
t.text "ich_wnsche_mir_eine_mglichkeit_in_co_darueber_zu_diskutieren"
t.text "ich_bin_nur_an_der_finalen_musterlsung_interessiert_das_mitarbe"
t.text "ich_fnde_es_gut_wenn_es_mehrere_musterlsungen_zur_selben_aufgab"
t.text "ich_vertraue_einer_solchen_musterlsung_auch_wenn_diese_nicht_du"
t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_musterlsungen"
t.text "wir_hatten_euch_dazu_angeregt_alleine_oder_gemeinsam_mit_andere"
t.text "lernlogbuch.ich_habe_das_etherpad_in_den_collab_spaces_der_plat"
t.text "lernlogbuch.ich_habe_den_dateiupload_in_den_collab_spaces_genut"
t.text "lernlogbuch.ich_habe_das_private_forum_in_den_collab_spaces_gen"
t.text "lernlogbuch.ich_habe_ein_analoges_logbuch_gefhrt_papier_holz_st"
t.text "lernlogbuch.ich_habe_ein_anderes_online_tool_oder_eine_lokale_s"
t.text "lernlogbuch.ich_habe_kein_logbuch_gefhrt"
t.text "weiteres_zum_lernlogbuch"
t.text "beispiel_set_erinnern.das_schraubenzieherset_bei_dem_unterschie"
t.text "beispiel_set_erinnern.das_hash_set_von_detectives_bei_dem_versu"
t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_500_dateneintrg"
t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_die_unterschied"
t.text "beispiel_set_erinnern.die_zahlenmenge_bei_der_alle_zahlen_nur_e"
t.text "beispiel_set_erinnern.die_unterschiedlichen_brentatzen_die_die_"
t.text "beispiel_set_erinnern.das_beispiel_mit_den_blttern_unterschiedl"
t.text "beispiel_map_erinnern.das_weltkarten_beispiel_bei_dem_jedem_lan"
t.text "beispiel_map_erinnern.das_adressbuch_beispiel_bei_dem_jeder_per"
t.text "beispiel_map_erinnern.das_beispiel_wo_jedem_charakter_wie_detek"
t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_fr_jeden_der_10"
t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_insgesamt_500_h"
t.text "beispiel_map_erinnern.das_beispiel_mit_den_unterschiedlichen_ti"
t.text "beispiel_map_erinnern.das_beispiel_bei_dem_unterschiedliche_blt"
t.text "weiteres_feedback"
end
create_table "java21_4_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "age_group"
t.text "birth_date"
t.text "access_groups"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.integer "sessions"
t.integer "avg_session_duration"
t.decimal "total_session_duration"
t.integer "video_play_activity"
t.decimal "video_play_activity_percentage"
t.integer "video_downloads_activity"
t.decimal "video_downloads_activity_percentage"
t.integer "slide_downloads_activity"
t.decimal "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.decimal "quiz_performance"
t.integer "graded_quiz_performance"
t.decimal "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.integer "points_percentage"
t.decimal "intro_visited_percentage_section"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.decimal "i_like_i_wish_visited_percentage_section"
t.integer "intro_self_tests_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.integer "woche_2_self_tests_percentage_section"
t.text "i_like_i_wish_self_tests_percentage_section"
t.text "intro_assignments_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.text "i_like_i_wish_assignments_percentage_section"
t.text "intro_bonus_percentage_section"
t.text "woche_1_bonus_percentage_section"
t.integer "woche_2_bonus_percentage_section"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "woche_1___11_wiederholung_arrays_und_listen_percentage_quiz"
t.text "woche_1___12_queues_und_stacks_percentage_quiz"
t.text "woche_1___14_schleifen_for_each_percentage_quiz"
t.text "woche_1___16_iteratoren_while_next_percentage_quiz"
t.text "woche_1___17_suchen_in_listen_percentage_quiz"
t.text "woche_1___17_suchen_in_unsortierten_listen_fragen_zur_bung_perc"
t.text "woche_1___19_sortieralgorithmen_bubble_sort_percentage_quiz"
t.text "woche_1___113_hausaufgabe_woche_1_percentage_quiz"
t.text "woche_1___110_equals_percentage_quiz"
t.text "woche_1___111_compare_to_und_equals___e_tivity_percentage_quiz"
t.text "woche_1___112_laufzeit_big_o___e_tivity_percentage_quiz"
t.text "woche_1___111_compare_to_percentage_quiz"
t.text "woche_1___112_laufzeit_big_o_percentage_quiz"
t.text "woche_2___25_sets_teil_33_percentage_quiz"
t.text "woche_2___25_sets_teil_23_percentage_quiz"
t.text "woche_2___29_balancierte_suchbume___interaktiver_simulator_perc"
t.text "woche_2___213_graphen___e_tivity_percentage_quiz"
t.text "woche_2___22_sortieralgorithmen_quick_sort_percentage_quiz"
t.text "woche_2___21_rekursion_percentage_quiz"
t.text "woche_2___24_datenstrukturen_percentage_quiz"
t.text "woche_2___25_sets_teil_13_percentage_quiz"
t.text "woche_2___26_maps_percentage_quiz"
t.text "woche_2___28_tree_operationen_percentage_quiz"
t.text "woche_2___29_balancierte_suchbume_percentage_quiz"
t.text "woche_2___210_suchen_in_bumen_percentage_quiz"
t.text "woche_2___211_weitere_trees_percentage_quiz"
t.text "woche_2___213_graphen_percentage_quiz"
t.text "woche_2___27_trees_percentage_quiz"
t.text "woche_2___216_abschlussprfung_percentage_quiz"
t.text "course_code"
end
create_table "linter_check_runs", force: :cascade do |t|
t.bigint "linter_check_id", null: false
t.string "scope"
t.integer "line"
t.text "result"
t.bigint "testrun_id", null: false
t.bigint "file_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["file_id"], name: "index_linter_check_runs_on_file_id"
t.index ["linter_check_id"], name: "index_linter_check_runs_on_linter_check_id"
t.index ["testrun_id"], name: "index_linter_check_runs_on_testrun_id"
end
create_table "linter_checks", force: :cascade do |t|
t.string "name", null: false
t.string "code", null: false
t.string "severity"
end
create_table "lti_parameters", id: :serial, force: :cascade do |t|
t.integer "external_users_id"
t.integer "consumers_id"
t.integer "exercises_id"
t.jsonb "lti_parameters", default: {}, null: false
t.datetime "created_at"
t.datetime "updated_at"
t.index ["external_users_id"], name: "index_lti_parameters_on_external_users_id"
end
create_table "old_java17_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "warum_nimmst_du_am_kurs_teil"
t.text "motivation_wenn_vorgaenger_kurs_belegt"
t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt"
t.text "andere_antwort"
t.text "was_ist_ziel_und_motivation_zur_belegung"
end
create_table "old_java17_1-2_selbsteinschaetzung", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java"
t.text "wie_sicher_klassen_und_objekte_in_java"
t.text "wie_sicher_kontrollstrukturen_in_java"
t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein"
end
create_table "old_java17_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "welche_haupt__aufgabe_hat_ein_interface"
t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts"
t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr"
t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode"
t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru"
t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi"
t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code"
t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt"
t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen"
t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko"
t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist"
t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre"
t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj"
t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt"
t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_"
t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_"
t.text "welche_fehler.zeile_2__zeile_3_von_papageijava"
t.text "welche_fehler.zeile_5_von_papageijava"
t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija"
t.text "welche_fehler.zeilen_13_bis_15_von_papageijava"
t.text "welche_fehler.zeilen_17_bis_19_von_papageijava"
t.text "welche_fehler.zeile_3_von_zoojava"
t.text "welche_fehler.zeile_4_von_zoojava"
t.text "welche_fehler.zeilen_5___9_von_zoojava"
t.text "welche_fehler.zeile_11_von_zoojava"
t.text "welche_fehler.zeile_13_von_zoojava"
t.text "welche_fehler.zeile_14_von_zoojava"
t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag"
end
create_table "old_java17_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java_nach_w1_w2"
t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2"
t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "old_java17_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop"
t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections"
end
create_table "old_java17_5-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4"
t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "old_java17_6-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "wrdest_du_diesen_kurs_weiterempfehlen"
t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich"
t.text "grundstzlich_finde_ich_die_mglichkeit_aufgaben_im_team_zu_bearb"
t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_"
t.text "die_anzahl_der_bonus_aufgaben_fand_ich_"
t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich"
t.text "interventions_hilfreich"
t.text "interventions_zeitpunkt"
t.text "videotelefonie.andere_teilnehmer"
t.text "videotelefonie.kursbetreuer_oder_tutoren"
t.text "videotelefonie.ich_wre_bereit_fr_das_individuelle_tutoring_durc"
t.text "videotelefonie.ich_habe_nicht_die_technische_mglichkeit_zur_vid"
t.text "vieotelefonie.ich_wrde_dieses_feature_aus_bedenken_bezglich_des"
t.text "whrend_bearbeitung_habe_ich"
t.text "wie_alt_bist_du"
t.text "welches_geschlecht_hast_du"
t.text "wrdest_du_open_hpi_weiterempfehlen"
end
create_table "old_java17_6-2_generelles_feedback", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "rahmenhandlung_wnscht_du_dir_beispielsweise_mehr_rahmenhandlung"
t.text "code_ocean_wnscht_du_dir_vielleicht_umfangreichere_bungen_in_co"
t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zur_g"
end
create_table "old_java17_7_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "age_group"
t.text "birth_date"
t.text "access_groups"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.integer "sessions"
t.integer "avg_session_duration"
t.decimal "total_session_duration"
t.integer "video_play_activity"
t.decimal "video_play_activity_percentage"
t.integer "video_downloads_activity"
t.decimal "video_downloads_activity_percentage"
t.integer "slide_downloads_activity"
t.decimal "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.decimal "quiz_performance"
t.integer "graded_quiz_performance"
t.decimal "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.decimal "points_percentage"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.decimal "woche_3_visited_percentage_section"
t.decimal "exkurs__modellierung_visited_percentage_section"
t.decimal "woche_4_visited_percentage_section"
t.text "exkurs__speicherverwaltung_visited_percentage_section"
t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section"
t.decimal "i_like_i_wish_visited_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.decimal "woche_2_self_tests_percentage_section"
t.decimal "woche_3_self_tests_percentage_section"
t.text "exkurs__modellierung_self_tests_percentage_section"
t.integer "woche_4_self_tests_percentage_section"
t.text "exkurs__speicherverwaltung_self_tests_percentage_section"
t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti"
t.text "i_like_i_wish_self_tests_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.integer "woche_3_assignments_percentage_section"
t.text "exkurs__modellierung_assignments_percentage_section"
t.integer "woche_4_assignments_percentage_section"
t.text "exkurs__speicherverwaltung_assignments_percentage_section"
t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect"
t.text "i_like_i_wish_assignments_percentage_section"
t.integer "woche_1_bonus_percentage_section"
t.integer "woche_2_bonus_percentage_section"
t.integer "woche_3_bonus_percentage_section"
t.integer "exkurs__modellierung_bonus_percentage_section"
t.integer "woche_4_bonus_percentage_section"
t.text "exkurs__speicherverwaltung_bonus_percentage_section"
t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "woche_1___11_ein_erstes_programm_percentage_quiz"
t.text "woche_1___12_klassen_und_objekte_percentage_quiz"
t.text "woche_1___13_variablen_1_percentage_quiz"
t.text "woche_1___14_variablen_2_percentage_quiz"
t.text "woche_1___15_attribute_percentage_quiz"
t.text "woche_1___16_methoden_percentage_quiz"
t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz"
t.text "woche_1___hausaufgabe_woche_1_percentage_quiz"
t.text "woche_2___recap_percentage_quiz"
t.text "woche_2___21_parameter_percentage_quiz"
t.text "woche_2___221_boolean_percentage_quiz"
t.text "woche_2___222_boolean_percentage_quiz"
t.text "woche_2___23_verzweigungen_percentage_quiz"
t.text "woche_2___24_schleifen_percentage_quiz"
t.text "woche_2___25_primitive_arrays_percentage_quiz"
t.text "woche_2___26_konstruktoren_percentage_quiz"
t.text "woche_2___hausaufgabe_woche_2_percentage_quiz"
t.text "woche_3___31_vererbung_percentage_quiz"
t.text "woche_3___32_sichtbarkeiten_percentage_quiz"
t.text "woche_3___33_kapselung_percentage_quiz"
t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz"
t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz"
t.text "woche_3___36_abstrakte_klassen_percentage_quiz"
t.text "woche_3___37_polymorphie_percentage_quiz"
t.text "woche_3___38_this_is_super_percentage_quiz"
t.text "woche_3___hausaufgabe_woche_3_percentage_quiz"
t.text "woche_4___41_objektdatentypen_percentage_quiz"
t.text "woche_4___42_type_casting_percentage_quiz"
t.text "woche_4___43_collections_percentage_quiz"
t.text "woche_4___44_foreach_schleifen_percentage_quiz"
t.text "woche_4___45_interfaces_percentage_quiz"
t.text "woche_4___hausaufgabe_woche_4_percentage_quiz"
t.text "course_code"
t.index ["user_id"], name: "old_java17_7_course_report_user_id_uindex", unique: true
end
create_table "old_java20_1-1_umfrage_zum_kursbeginn", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "warum_nimmst_du_am_kurs_teil"
t.text "motivation_wenn_vorgaenger_kurs_belegt"
t.text "wo_hast_du_von_open_hpi_bzw_speziell_diesem_kurs_gehrt"
t.text "andere_antwort"
t.text "was_ist_ziel_und_motivation_zur_belegung"
end
create_table "old_java20_1-2_selbsteinschaetzung", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java"
t.text "wie_sicher_klassen_und_objekte_in_java"
t.text "wie_sicher_kontrollstrukturen_in_java"
t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions"
t.text "fr_wie_gut_schtzt_du_deine_programmierkenntnisse_ein"
end
create_table "old_java20_1-3_fragebogen_zu_vorkenntnissen", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "welche_haupt__aufgabe_hat_ein_interface"
t.text "was_ist_polymorphie_bei_oop.das_umbenennen_eines_objekts"
t.text "was_ist_polymorphie_bei_oop.das_erzeugen_instanziieren_von_mehr"
t.text "was_ist_polymorphie_bei_oop.ein_aufruf_einer_statischen_methode"
t.text "was_ist_polymorphie_bei_oop.das_dynamische_auswhlen_der_aufzuru"
t.text "was_ist_polymorphie_bei_oop.ich_weiss_noch_nicht_was_polymorphi"
t.text "was_ist_refactoring.hinzufgen_neuer_funktionalitten_im_code"
t.text "was_ist_refactoring.nderung_des_codes_ohne_dessen_funktionalitt"
t.text "was_ist_refactoring.nachtrgliches_hinzufgen_von_tests_zum_eigen"
t.text "was_ist_refactoring.das_nutzen_des_factory_designpatterns_in_ko"
t.text "was_ist_refactoring.ich_weiss_nicht_was_refactoring_ist"
t.text "klassen_oop.klassen_sortieren_objekte_damit_ihre_abarbeitungsre"
t.text "klassen_oop.klassen_sind_die_logische_weiterentwicklung_von_obj"
t.text "klassen_oop.klassen_sind_eine_art_bauplan_fr_ein_objekt"
t.text "klassen_oop.eine_klasse_kann_methoden_definieren_die_auf_jedem_"
t.text "klassen_oop.ich_wei_noch_nicht_genau_was_eine_klasse_macht_bin_"
t.text "welche_fehler.zeile_2__zeile_3_von_papageijava"
t.text "welche_fehler.zeile_5_von_papageijava"
t.text "welche_fehler.zeile_6_in_kombination_mit_zeile_21_von_papageija"
t.text "welche_fehler.zeilen_13_bis_15_von_papageijava"
t.text "welche_fehler.zeilen_17_bis_19_von_papageijava"
t.text "welche_fehler.zeile_3_von_zoojava"
t.text "welche_fehler.zeile_4_von_zoojava"
t.text "welche_fehler.zeilen_5___9_von_zoojava"
t.text "welche_fehler.zeile_11_von_zoojava"
t.text "welche_fehler.zeile_13_von_zoojava"
t.text "welche_fehler.zeile_14_von_zoojava"
t.text "code_korrigiert_wie_oft_feiert_der_papagei_geburtstag"
end
create_table "old_java20_2-1_selbsteinschaetzung_woche_2", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_methoden_in_java_nach_w1_w2"
t.text "wie_sicher_klassen_und_objekte_in_java_nach_w1_w2"
t.text "wie_sicher_kontrollstrukturen_in_java_nach_w1_w2"
t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "old_java20_3-1_selbsteinschaetzung_woche_3", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop"
t.text "wie_sicher_fuhlst_du_dich_mit_im_einsatz_von_java_collections"
end
create_table "old_java20_4-1_selbsteinschaetzung_woche_4", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_sicher_vererbung_und_polymorphie_nach_w3_w4"
t.text "wie_sicher_kapselung_und_sichtbarkeiten_bei_oop_nach_w3_w4"
t.text "wie_sicher_fuhlst_du_dich_mit_java_collections_nach_w3_w4"
t.text "wie_sicher_code_in_java_zu_strukturieren_und_code_conventions"
t.text "was_hat_dir_zum_verstaendnis_gefehlt"
end
create_table "old_java20_5-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "wrdest_du_diesen_kurs_weiterempfehlen"
t.text "die_kommentaranfrage_funktion_in_code_ocean_fand_ich"
t.text "die_praktischen_bonus_aufgaben_in_code_ocean_fand_ich_"
t.text "die_anzahl_der_bonus_aufgaben_fand_ich_"
t.text "die_rahmenhandlung_um_detektiv_duke_fand_ich"
t.text "co_support_convention.eigenen_programme_verbessern_und_alle_hin"
t.text "co_support_convention.eigenen_programme_verbessern_und_einige_h"
t.text "co_support_convention.mich_wrde_das_feedback_in_code_ocean_zwar"
t.text "co_support_convention.das_zustzliche_feedback_in_code_ocean_wrd"
t.text "co_support_convention.feedback_zur_struktur_des_codes_ist_grund"
t.text "whrend_bearbeitung_habe_ich._mich_meistens_nur_mit_der_aufgabe_"
t.text "whrend_bearbeitung_habe_ich._nebenbei_oft_was_anderes_gemacht_d"
t.text "whrend_bearbeitung_habe_ich._mich_mal_nur_mit_der_aufgabe_besch"
t.text "whrend_bearbeitung_habe_ich._mir_das_video__die_folien_der_vorh"
t.text "whrend_bearbeitung_habe_ich._im_forum_fragen_gestellt_oder_bean"
t.text "whrend_bearbeitung_habe_ich._in_code_ocean_kommentaranfragen_vo"
t.text "wie_alt_bist_du"
t.text "welches_geschlecht_hast_du"
t.text "wrdest_du_open_hpi_weiterempfehlen"
end
create_table "old_java20_5-2_generelles_feedback", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "rahmenhandlung_erzhle_uns_bitte_ein_bisschen_mehr_darber_wie_di"
t.text "code_ocean_gerne_mchten_wir_von_dir_mehr_ber_deine_nutzung_von_"
t.text "sonstiges_weitere_anmerkungen_zur_plattform_oder_dem_kurs_zum_s"
end
create_table "old_java20_6_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "age_group"
t.text "birth_date"
t.text "access_groups"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.integer "sessions"
t.integer "avg_session_duration"
t.decimal "total_session_duration"
t.integer "video_play_activity"
t.decimal "video_play_activity_percentage"
t.integer "video_downloads_activity"
t.decimal "video_downloads_activity_percentage"
t.integer "slide_downloads_activity"
t.decimal "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.decimal "quiz_performance"
t.integer "graded_quiz_performance"
t.decimal "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.integer "points_percentage"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.decimal "woche_3_visited_percentage_section"
t.decimal "woche_4_visited_percentage_section"
t.text "exkurs__speicherverwaltung_visited_percentage_section"
t.decimal "cheat_sheets_und_andere_materialien_visited_percentage_section"
t.decimal "i_like_i_wish_visited_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.integer "woche_2_self_tests_percentage_section"
t.integer "woche_3_self_tests_percentage_section"
t.integer "woche_4_self_tests_percentage_section"
t.text "exkurs__speicherverwaltung_self_tests_percentage_section"
t.text "cheat_sheets_und_andere_materialien_self_tests_percentage_secti"
t.text "i_like_i_wish_self_tests_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.integer "woche_3_assignments_percentage_section"
t.integer "woche_4_assignments_percentage_section"
t.text "exkurs__speicherverwaltung_assignments_percentage_section"
t.text "cheat_sheets_und_andere_materialien_assignments_percentage_sect"
t.text "i_like_i_wish_assignments_percentage_section"
t.integer "woche_1_bonus_percentage_section"
t.integer "woche_2_bonus_percentage_section"
t.integer "woche_3_bonus_percentage_section"
t.integer "woche_4_bonus_percentage_section"
t.text "exkurs__speicherverwaltung_bonus_percentage_section"
t.text "cheat_sheets_und_andere_materialien_bonus_percentage_section"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "woche_1___11_ein_erstes_programm_percentage_quiz"
t.text "woche_1___12_klassen_und_objekte_percentage_quiz"
t.text "woche_1___13_variablen_1_percentage_quiz"
t.text "woche_1___14_variablen_2_percentage_quiz"
t.text "woche_1___15_attribute_percentage_quiz"
t.text "woche_1___16_methoden_percentage_quiz"
t.text "woche_1___17_methoden_und_rckgabewerte_percentage_quiz"
t.text "woche_1___18_hausaufgabe_percentage_quiz"
t.text "woche_1___hausaufgabe_woche_1_original_percentage_quiz"
t.text "woche_2___recap_percentage_quiz"
t.text "woche_2___21_parameter_percentage_quiz"
t.text "woche_2___221_boolean_percentage_quiz"
t.text "woche_2___222_boolean_percentage_quiz"
t.text "woche_2___23_verzweigungen_percentage_quiz"
t.text "woche_2___24_schleifen_percentage_quiz"
t.text "woche_2___25_primitive_arrays_percentage_quiz"
t.text "woche_2___26_konstruktoren_percentage_quiz"
t.text "woche_2___27_hausaufgabe_percentage_quiz"
t.text "woche_2___hausaufgabe_woche_2_original_percentage_quiz"
t.text "woche_3___31_vererbung_percentage_quiz"
t.text "woche_3___32_sichtbarkeiten_percentage_quiz"
t.text "woche_3___33_kapselung_percentage_quiz"
t.text "woche_3___34_berschreiben_von_methoden_override_percentage_quiz"
t.text "woche_3___35_berladen_von_methoden_overload_percentage_quiz"
t.text "woche_3___36_abstrakte_klassen_percentage_quiz"
t.text "woche_3___37_polymorphie_percentage_quiz"
t.text "woche_3___38_this_is_super_percentage_quiz"
t.text "woche_3___deep_dive_konventionen_in_java_percentage_quiz"
t.text "woche_3___deep_dive_best_practices_percentage_quiz"
t.text "woche_3___39_hausaufgabe_percentage_quiz"
t.text "woche_3___hausaufgabe_woche_3_original_percentage_quiz"
t.text "woche_4___41_objektdatentypen_percentage_quiz"
t.text "woche_4___42_type_casting_percentage_quiz"
t.text "woche_4___43_collections_percentage_quiz"
t.text "woche_4___44_foreach_schleifen_percentage_quiz"
t.text "woche_4___45_interfaces_percentage_quiz"
t.text "woche_4___46_hausaufgabe_percentage_quiz"
t.text "woche_4___hausaufgabe_woche_4_original_percentage_quiz"
t.text "course_code"
end
create_table "old_java21_0-1_umfrage_zum_kursstart", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.decimal "points"
t.text "wie_alt_bist_du"
t.text "was_ist_dein_primres_ziel_und_die_motivation_den_kurs_zu_belege"
t.text "andere_ziele"
t.text "in_welchem_rahmen_nimmst_du_an_dem_kurs_teil"
t.text "erwartungen_lerninhalte_und_lernziele"
t.text "kennengelernt.mooc_aggregator"
t.text "kennengelernt.zeitung_oder_zeitschrift"
t.text "kennengelernt.facebook"
t.text "kennengelernt.twitter"
t.text "kennengelernt.open_hpi_seite"
t.text "kennengelernt.freunde_oder_bekannte"
t.text "kennengelernt.linked_in"
t.text "kennengelernt.xing"
t.text "kennengelernt.andere"
t.text "geplante_zeit_pro_woche"
t.text "medien_zum_lernen.bilder_und_grafiken"
t.text "medien_zum_lernen.videos_und_animationen"
t.text "medien_zum_lernen.podcasts__audio_bcher"
t.text "medien_zum_lernen.texte_digital_nicht_ausgedruckt"
t.text "medien_zum_lernen.texte_auf_papier_ausgedruckt"
t.text "medien_zum_lernen.persnlicher_austausch_mit_anderen"
t.text "kennst_du_das_konzept_der_lerntypen"
t.text "lerntyp_relevant"
t.text "welcher_lerntyp_bist_du.visuell"
t.text "welcher_lerntyp_bist_du.haptisch_motorisch"
t.text "welcher_lerntyp_bist_du.auditiv"
t.text "welcher_lerntyp_bist_du.kommunikativ"
t.text "welcher_lerntyp_bist_du.medienorientiert"
t.text "welcher_lerntyp_bist_du.keiner_davon"
end
create_table "old_java21_0-2_deine_vorkenntnisse", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.decimal "points"
t.text "vorheriger_programmierkurs.ja_genau_einen_auf_open_hpi"
t.text "vorheriger_programmierkurs.ja_mehrere_auf_open_hpi"
t.text "vorheriger_programmierkurs.ja_auf_einer_anderen_plattform"
t.text "vorheriger_programmierkurs.ja_in_prsenz_zb_in_der_schule_univer"
t.text "vorheriger_programmierkurs.nein_noch_gar_nicht"
t.text "wie_schtzt_du_deine_programmiererfahrung_im_allgemeinen_ein"
t.text "openhpi_kurs_mit_codeocean"
t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_feedback_von_anderen"
t.text "gemeinsam_entwickeln.ich_habe_anderen_schon_einmal_feedback_zu_"
t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_mit_anderen_gemeinsa"
t.text "gemeinsam_entwickeln.ich_habe_schon_einmal_gleichzeitig_mit_and"
t.text "gemeinsam_entwickeln.nein_noch_gar_nicht"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_arrays_und_listen_m"
t.text "hast_du_zum_thema_arrays_und_listen_bereits_praktische_programm"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_queues_und_stacks_m"
t.text "hast_du_zum_thema_queues_und_stacks_bereits_praktische_programm"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_java_generics_mit"
t.text "hast_du_zum_thema_java_generics_bereits_praktische_programmiere"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_foreach_schleifen_m"
t.text "hast_du_zum_thema_foreach_schleifen_bereits_praktische_programm"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_iteratoren_mit"
t.text "hast_du_zum_thema_iteratoren_bereits_praktische_programmiererfa"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_suchen_in_listen_mi"
t.text "hast_du_zum_thema_suchen_in_listen_bereits_praktische_programmi"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sortieralgorithmen_"
t.text "hast_du_zum_thema_sortieralgorithmen_bereits_praktische_program"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_equals_mit"
t.text "hast_du_zum_thema_equals_bereits_praktische_programmiererfahrun"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_compare_to_mit"
t.text "hast_du_zum_thema_compare_to_bereits_praktische_programmiererfa"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_bestimmung_der_prog"
t.text "hast_du_zum_thema_bestimmung_der_programmlaufzeit_bereits_prakt"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_rekursion_mit"
t.text "hast_du_zum_thema_rekursion_bereits_praktische_programmiererfah"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_sets_und_maps_mit"
t.text "hast_du_zum_thema_sets_und_maps_bereits_praktische_programmiere"
t.text "wie_viel_vorkenntnisse_bringst_du_zum_thema_trees__bume_mit"
t.text "hast_du_zum_thema_trees__bume_bereits_praktische_programmiererf"
end
create_table "old_java21_2-2_umfrage_sets_maps", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "hast_du_das_gefhl_das_thema_sets_und_maps_mit_den_von_uns_angeb"
t.text "hast_du_ein_verstndnis_dafr_entwickelt_fr_welche_anwendungsflle"
t.text "wie_sicher_fhlst_du_dich_gerade_damit_sets_oder_maps_im_eigenen"
t.text "was_wrde_dir_am_meisten_helfen_die_themen_set_und_map_noch_bess"
t.text "falls_du_in_der_letzten_frage_sonstiges_geantwortet_hast_freuen"
end
create_table "old_java21_3-1_umfrage_zum_kursabschluss", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.decimal "points"
t.text "hast_du_deine_persnlichen_lernziele_erreicht"
t.text "wie_schtzt_du_dein_wissen_zu_dem_thema_algorithmen_und_datenstr"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfehlen_w"
t.text "die_tipps_in_code_ocean_waren_hilfreich"
t.text "die_tipps_in_code_ocean_waren_einfach_zu_finden"
t.text "die_tipps_in_code_ocean_haben_zur_jeweiligen_aufgabe_gepasst"
t.text "durch_tipps_habe_ich_seltener_frage_oder_rfc_gestellt"
t.text "die_tipps_in_code_ocean_waren_zu_sehr_auf_die_jeweilige_aufgabe"
t.text "ich_knnte_mir_vorstellen_selbst_zustzliche_tipps_fr_die_aufgabe"
t.text "hast_du_weitere_wnsche_oder_ideen_wie_wir_die_tipps_verbessern_"
t.text "nenne_1_2_anwendungsflle_fr_sets_undoder_maps_die_dir_einfallen"
t.text "nach_welcher_zeit_wrdest_du_dir_einen_solchen_hinweise_wnschen"
t.text "unabhngig_von_der_zeit_wie_hilfreich_findest_du_diese_hinweise_"
t.text "unabhngig_von_der_zeit_wie_strend_findest_du_diese_hinweise_in_"
t.text "wunschinteraktion.eine_neue_kommentaranfrage_stellen"
t.text "wunschinteraktion.antworten_auf_eine_eigene_kommentaranfragen_l"
t.text "wunschinteraktion.fremde_kommentaranfragen_lesen"
t.text "wunschinteraktion.tipps_zur_aufgabe_ansehen"
t.text "wunschinteraktion.link_zum_kursforum_auf_open_hpi"
t.text "wunschinteraktion.link_zum_zugehrigen_video_oder_selbsttest_auf"
t.text "wunschinteraktion.erinnerung_daran_eine_pause_zu_machen"
t.text "wunschinteraktion.etwas_anderes"
t.text "wunschinteraktion.gar_nichts_ich_finde_die_hinweise_nicht_gut"
t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_hinweisen_wenn_du_in_d"
t.text "ich_fand_rfc_stellen_einfach_zu_finden"
t.text "ich_wnsche_mir_die_mglichkeit_gemeinsam_eine_musterlsung_zu_ers"
t.text "ich_traue_mir_zu_eine_nderung_an_der_musterlsung_vorzuschlagen"
t.text "ich_habe_freude_daran_an_der_musterlsung_mitzuwirken"
t.text "ich_wnsche_mir_eine_mglichkeit_vorherige_versionen_der_musterls"
t.text "ich_wnsche_mir_eine_mglichkeit_in_co_darueber_zu_diskutieren"
t.text "ich_bin_nur_an_der_finalen_musterlsung_interessiert_das_mitarbe"
t.text "ich_fnde_es_gut_wenn_es_mehrere_musterlsungen_zur_selben_aufgab"
t.text "ich_vertraue_einer_solchen_musterlsung_auch_wenn_diese_nicht_du"
t.text "hast_du_weitere_wnsche_oder_ideen_zu_den_musterlsungen"
t.text "wir_hatten_euch_dazu_angeregt_alleine_oder_gemeinsam_mit_andere"
t.text "lernlogbuch.ich_habe_das_etherpad_in_den_collab_spaces_der_plat"
t.text "lernlogbuch.ich_habe_den_dateiupload_in_den_collab_spaces_genut"
t.text "lernlogbuch.ich_habe_das_private_forum_in_den_collab_spaces_gen"
t.text "lernlogbuch.ich_habe_ein_analoges_logbuch_gefhrt_papier_holz_st"
t.text "lernlogbuch.ich_habe_ein_anderes_online_tool_oder_eine_lokale_s"
t.text "lernlogbuch.ich_habe_kein_logbuch_gefhrt"
t.text "weiteres_zum_lernlogbuch"
t.text "beispiel_set_erinnern.das_schraubenzieherset_bei_dem_unterschie"
t.text "beispiel_set_erinnern.das_hash_set_von_detectives_bei_dem_versu"
t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_500_dateneintrg"
t.text "beispiel_set_erinnern.das_beispiel_bei_dem_duke_die_unterschied"
t.text "beispiel_set_erinnern.die_zahlenmenge_bei_der_alle_zahlen_nur_e"
t.text "beispiel_set_erinnern.die_unterschiedlichen_brentatzen_die_die_"
t.text "beispiel_set_erinnern.das_beispiel_mit_den_blttern_unterschiedl"
t.text "beispiel_map_erinnern.das_weltkarten_beispiel_bei_dem_jedem_lan"
t.text "beispiel_map_erinnern.das_adressbuch_beispiel_bei_dem_jeder_per"
t.text "beispiel_map_erinnern.das_beispiel_wo_jedem_charakter_wie_detek"
t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_fr_jeden_der_10"
t.text "beispiel_map_erinnern.das_beispiel_bei_dem_duke_insgesamt_500_h"
t.text "beispiel_map_erinnern.das_beispiel_mit_den_unterschiedlichen_ti"
t.text "beispiel_map_erinnern.das_beispiel_bei_dem_unterschiedliche_blt"
t.text "weiteres_feedback"
end
create_table "old_java21_4_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "age_group"
t.text "birth_date"
t.text "access_groups"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.integer "sessions"
t.integer "avg_session_duration"
t.decimal "total_session_duration"
t.integer "video_play_activity"
t.decimal "video_play_activity_percentage"
t.integer "video_downloads_activity"
t.decimal "video_downloads_activity_percentage"
t.integer "slide_downloads_activity"
t.decimal "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.decimal "quiz_performance"
t.integer "graded_quiz_performance"
t.decimal "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.integer "points_percentage"
t.decimal "intro_visited_percentage_section"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.decimal "i_like_i_wish_visited_percentage_section"
t.integer "intro_self_tests_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.integer "woche_2_self_tests_percentage_section"
t.text "i_like_i_wish_self_tests_percentage_section"
t.text "intro_assignments_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.text "i_like_i_wish_assignments_percentage_section"
t.text "intro_bonus_percentage_section"
t.text "woche_1_bonus_percentage_section"
t.integer "woche_2_bonus_percentage_section"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "woche_1___11_wiederholung_arrays_und_listen_percentage_quiz"
t.text "woche_1___12_queues_und_stacks_percentage_quiz"
t.text "woche_1___14_schleifen_for_each_percentage_quiz"
t.text "woche_1___16_iteratoren_while_next_percentage_quiz"
t.text "woche_1___17_suchen_in_listen_percentage_quiz"
t.text "woche_1___17_suchen_in_unsortierten_listen_fragen_zur_bung_perc"
t.text "woche_1___19_sortieralgorithmen_bubble_sort_percentage_quiz"
t.text "woche_1___113_hausaufgabe_woche_1_percentage_quiz"
t.text "woche_1___110_equals_percentage_quiz"
t.text "woche_1___111_compare_to_und_equals___e_tivity_percentage_quiz"
t.text "woche_1___112_laufzeit_big_o___e_tivity_percentage_quiz"
t.text "woche_1___111_compare_to_percentage_quiz"
t.text "woche_1___112_laufzeit_big_o_percentage_quiz"
t.text "woche_2___25_sets_teil_33_percentage_quiz"
t.text "woche_2___25_sets_teil_23_percentage_quiz"
t.text "woche_2___29_balancierte_suchbume___interaktiver_simulator_perc"
t.text "woche_2___213_graphen___e_tivity_percentage_quiz"
t.text "woche_2___22_sortieralgorithmen_quick_sort_percentage_quiz"
t.text "woche_2___21_rekursion_percentage_quiz"
t.text "woche_2___24_datenstrukturen_percentage_quiz"
t.text "woche_2___25_sets_teil_13_percentage_quiz"
t.text "woche_2___26_maps_percentage_quiz"
t.text "woche_2___28_tree_operationen_percentage_quiz"
t.text "woche_2___29_balancierte_suchbume_percentage_quiz"
t.text "woche_2___210_suchen_in_bumen_percentage_quiz"
t.text "woche_2___211_weitere_trees_percentage_quiz"
t.text "woche_2___213_graphen_percentage_quiz"
t.text "woche_2___27_trees_percentage_quiz"
t.text "woche_2___216_abschlussprfung_percentage_quiz"
t.text "course_code"
end
create_table "old_python20_0-1_kennenlern_quiz", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "herzlich_willkommen_zu_diesem_kennenlern_quiz_es_handelt_sich_d"
t.text "ich_habe_schon_einmal_quellcode_in_einer_beliebigen_programmier"
t.text "ich_habe_schon_einmal_etwas_in_einer_beliebigen_programmierspra"
t.text "ich_habe_bereits_einen_online_kurs_zu_python_besucht"
t.text "ich_habe_bereits_einen_prsenz_kurs_zu_python_besucht"
t.text "ich_wei_was_sich_hinter_dem_begriff_syntax_versteckt"
t.text "ich_wei_was_sich_hinter_dem_begriff_datentyp_versteckt"
t.text "ich_wei_was_sich_hinter_dem_begriff_funktion_versteckt"
t.text "ich_wei_was_sich__hinter_dem_begriff_bibliothek_versteckt"
t.text "ich_habe_bereits_erfahrung_im_umgang_mit_python"
t.text "ich_habe_bereits_einen_kurs_mit_co_gemacht"
end
create_table "old_python20_1-1_selbsteinschatzungs_quiz_woche_1", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "schn_dass_du_wieder_dabei_bist_bei_diesem_selbsteinschtzungs_qu"
t.text "eine_hohe_punktwertung_im_kurs_zu_erhalten_ist_mir"
t.text "besonders_wichtig_an_einem_kurs_ist_fr_mich"
t.text "ich_mchte_im_kurs"
t.text "den_austausch_mit_anderen_finde_ich"
t.text "die_lernmaterialien_einer_woche_bearbeite_ich_lieber"
t.text "nicht_gleich_auf_die_lsung_zu_kommen_empfinde_ich"
t.text "bearbeitung_effektiver_wenn"
t.text "meine_bevorzugte_herangehensweise_an_probleme_ist"
t.text "wenn_ich_ein_problem_beim_lsen_einer_aufgabe_habe_mchte_ich"
t.text "zu_wissen_dass_andere_am_gleichen_thema_arbeiten"
t.text "ber_die_lerninhalte_im_kurs_sollte_entscheiden_"
t.text "weiteres_feedback_selbsteinschaetzung"
end
create_table "old_python20_2-1_selbsteinschatzungs_quiz_woche_2", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_ist_selbsteinschtzungsquiz_mit_grafischer_auswertung"
t.text "auswertungen_geben_mir_das_gefhl_teil_der_kurs_community_zu_sei"
t.text "das_bearbeiten_der_bisherigen_aufgaben_fiel_mir_leicht"
t.text "herausfordernde_lektion_w1.11_erstes_programmierbeispiel"
t.text "herausfordernde_lektion_w1.12_code_ocean_einfhrung"
t.text "herausfordernde_lektion_w1.13_variablen"
t.text "herausfordernde_lektion_w1.14_strings"
t.text "herausfordernde_lektion_w1.15_datentypen"
t.text "herausfordernde_lektion_w1.16_turtle_12"
t.text "herausfordernde_lektion_w1.17_turtle_22"
t.text "herausfordernde_lektion_w1.keine"
t.text "neben_lerninhalten_habe_ich.mich_aktiv_im_forum_beteiligt"
t.text "neben_lerninhalten_habe_ich.mehrere_beitrge_im_forum_gelesen"
t.text "neben_den_bereitgestellten_lerninhalten_habe_ich__mehrfachantwo"
t.text "neben_lerninhalten_habe_ich.kommentaranfragen_auf_code_ocean_be"
t.text "neben_lerninhalten_habe_ich.zustzliche_tipps_in_anspruch_genomm"
t.text "neben_lerninhalten_habe_ich.hilfe_auerhalb_des_kurses_erhalten_"
t.text "neben_lerninhalten_habe_ich.externe_lern__undoder_infomateriali"
t.text "die_diskussionbeitrge_im_forum_empfinde_ich_als"
t.text "hilfe_gebeten_hat_mir"
t.text "hilfe_gebeten_habe_ich"
t.text "die_mglichkeit_an_video_fragerunde_teilzunehmen_finde_ich"
t.text "feedback_selbsteinschaetzung"
end
create_table "old_python20_3-1_selbsteinschatzungs_quiz_woche_3", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "richtige_kommunikationsmedium_fr_mich_gefunden"
t.text "das_bearbeiten_der_aufgaben_aus_woche_2_fiel_mir_leicht"
t.text "herausfordernde_lektion_w2.21_verzweigungen_12"
t.text "herausfordernde_lektion_w2.22_verzweigungen_22"
t.text "herausfordernde_lektion_w2.23_schleifen"
t.text "herausfordernde_lektion_w2.24_listen_13"
t.text "herausfordernde_lektion_w2.25_listen_23"
t.text "herausfordernde_lektion_w2.26_listen_33"
t.text "herausfordernde_lektion_w2.keine"
t.text "offene_inhaltliche_fragen"
t.text "forum_oder_rfc_genutzt"
t.text "warum_frage_nicht_gestellt.ich_habe_nicht_genug_zeit_oder_will_"
t.text "warum_frage_nicht_gestellt.ich_bin_nicht_motiviert_die_frage_we"
t.text "warum_frage_nicht_gestellt.die_frage_kommt_mir_nicht_wichtig_ge"
t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_mir_keiner_a"
t.text "warum_frage_nicht_gestellt.ich_wei_nicht_wen_ich_fragen_bzw_wo_"
t.text "warum_frage_nicht_gestellt.ich_kann_meine_frage_nicht_gut_genug"
t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_die_frage_zu"
t.text "warum_frage_nicht_gestellt.anderer_grund"
t.text "anderer_grund"
t.text "tipps_zu_erhalten_war"
t.text "die_aufgabe_zur_selbstreflexion_aus_woche_2_hat_mir__gefallen"
t.text "ich_plane_meine_aufgabenlsungen_weiter_zu_reflektieren_oder_tu_"
t.text "feedback_selbsteinschaetzung"
end
create_table "old_python20_4-1_selbsteinschatzungs_quiz_woche_4", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "das_bearbeiten_der_aufgaben_aus_woche_3_fiel_mir_leicht"
t.text "herausfordernde_lektion_w3.31_funktionen_ohne_parameter"
t.text "herausfordernde_lektion_w3.32_funktionen_mit_parametern"
t.text "herausfordernde_lektion_w3.33_dictionaries"
t.text "herausfordernde_lektion_w3.34_zufallszahlen"
t.text "herausfordernde_lektion_w3.exkurs_konventionen_in_python"
t.text "herausfordernde_lektion_w3.keine"
t.text "hilfe_durch_krusteilnehmer"
t.text "hilfe_durch_dritte"
t.text "wie_bewertest_du_exkurs_und_linter"
t.text "das_feedback_des_linters_hat_mir"
t.text "das_feedback_des_linters_habe_ich"
t.text "wie_hat_dir_aufgabe_314_gefallen"
t.text "a314_verstaendnis.ich_habe_ein_besseres_verstndnis_des_linter_f"
t.text "a314_verstaendnis.ich_habe_die_relevanz_von_code_formatierungen"
t.text "a314_verstaendnis.ich_habe_mir_bewusst_gedanken_ber_die_benennu"
t.text "a314_verstaendnis.mir_ist_der_unterschied_zwischen_return__und_"
t.text "a314_verstaendnis.ich_habe_verstanden_inwiefern_funktionen_und_"
t.text "a314_verstaendnis.etwas_anderes_bitte_in_der_nchsten_frage_ergn"
t.text "a314_verstaendnis.gar_nicht"
t.text "feedback_selbsteinschaetzung"
end
create_table "old_python20_4-3_selbsteinschatzungs_quiz_zum_kursende", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "das_bearbeiten_der_aufgaben_aus_woche_4_fiel_mir_leicht"
t.text "herausfordernde_lektion_w4.41_eingabe"
t.text "herausfordernde_lektion_w4.42_zahlenraten"
t.text "herausfordernde_lektion_w4.43_snake_spiel_13"
t.text "herausfordernde_lektion_w4.44_snake_spiel_23"
t.text "herausfordernde_lektion_w4.45_snake_spiel_33"
t.text "herausfordernde_lektion_w4.exkurs_installieren_unter_windows_10"
t.text "herausfordernde_lektion_w4.keine"
t.text "wie_erfahren_mit_python_nach_kurs"
t.text "retrospektiv_wie_viel_erfahrung_hattest_du_vorher_mit_python"
t.text "wie_viel_hast_du_gelernt"
t.text "ich_bin_stolz_darauf_was_ich_in_kurs_geschafft_habe"
t.text "feedback_selbsteinschaetzung"
end
create_table "old_python20_6-1_snapshot_umfrage_zum_kurs", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.text "welchem_geschlecht_fhlst_du_dich_zugehrig"
t.text "wie_alt_bist_du"
t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache"
t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "snake_abschlussprojekt_fand_ich"
t.text "snake_abschlussprojekt_war_hilfreich"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features"
t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code"
t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis"
t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler"
t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_"
t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben"
t.text "mehr_inhalte_wuenschen.keine"
t.text "kurselement_einfluss_lernerfolg.videos"
t.text "kurselement_einfluss_lernerfolg.selbsttests"
t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum"
t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben"
t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic"
t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben"
t.text "kurselement_einfluss_lernerfolg.die_reflexionen"
t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen"
t.text "kurselement_einfluss_lernerfolg.keine"
t.text "naechste_schritte.weiteren_programmierkurs_belegen"
t.text "naechste_schritte.eigene_programme_schreiben"
t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere"
t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben"
t.text "naechste_schritte.nichts_weiter"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst"
t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie"
t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten"
t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_"
t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem"
t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st"
t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in"
t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern"
t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben"
t.text "wo_zukuenftig_hilfe_suchen.gar_nicht"
t.text "kommentare_in_co_zu_erbitten_war_fr_mich"
t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich"
t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant"
t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_"
t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen"
t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt"
t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean"
t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw"
t.text "intevention_eine_frage_zu_stellen"
t.text "intevention_nach_hilfe_zu_fragen"
t.text "uebersetzung_linter"
t.text "wie_kann_co_weiter_untersetuetzen"
t.text "email_interview"
t.text "feedback_selbsteinschaetzung"
end
create_table "old_python20_6-1_umfrage_zum_kurs", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "welchem_geschlecht_fhlst_du_dich_zugehrig"
t.text "wie_alt_bist_du"
t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache"
t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "snake_abschlussprojekt_fand_ich"
t.text "snake_abschlussprojekt_war_hilfreich"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features"
t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code"
t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis"
t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler"
t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_"
t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben"
t.text "mehr_inhalte_wuenschen.keine"
t.text "kurselement_einfluss_lernerfolg.videos"
t.text "kurselement_einfluss_lernerfolg.selbsttests"
t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum"
t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben"
t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic"
t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben"
t.text "kurselement_einfluss_lernerfolg.die_reflexionen"
t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen"
t.text "kurselement_einfluss_lernerfolg.keine"
t.text "naechste_schritte.weiteren_programmierkurs_belegen"
t.text "naechste_schritte.eigene_programme_schreiben"
t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere"
t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben"
t.text "naechste_schritte.nichts_weiter"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst"
t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie"
t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten"
t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_"
t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem"
t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st"
t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in"
t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern"
t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben"
t.text "wo_zukuenftig_hilfe_suchen.gar_nicht"
t.text "kommentare_in_co_zu_erbitten_war_fr_mich"
t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich"
t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant"
t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_"
t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen"
t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt"
t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean"
t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw"
t.text "intevention_eine_frage_zu_stellen"
t.text "intevention_nach_hilfe_zu_fragen"
t.text "uebersetzung_linter"
t.text "wie_kann_co_weiter_untersetuetzen"
t.text "email_interview"
t.text "feedback_selbsteinschaetzung"
end
create_table "old_python20_7_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "affiliated"
t.text "birth_date"
t.text "age"
t.text "age_group"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.text "sessions"
t.text "avg_session_duration"
t.text "total_session_duration"
t.text "video_play_activity"
t.text "video_play_activity_percentage"
t.text "video_downloads_activity"
t.text "video_downloads_activity_percentage"
t.text "slide_downloads_activity"
t.text "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.text "quiz_performance"
t.text "graded_quiz_performance"
t.text "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.integer "points_percentage"
t.decimal "woche_0_visited_percentage_section"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.integer "woche_3_visited_percentage_section"
t.integer "woche_4_visited_percentage_section"
t.text "zustzliche_woche_visited_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_visited_percentage_sec"
t.text "i_like_i_wish_visited_percentage_section"
t.text "lsungen_visited_percentage_section"
t.decimal "woche_0_self_tests_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.decimal "woche_2_self_tests_percentage_section"
t.integer "woche_3_self_tests_percentage_section"
t.integer "woche_4_self_tests_percentage_section"
t.text "zustzliche_woche_self_tests_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_self_tests_percentage_"
t.integer "i_like_i_wish_self_tests_percentage_section"
t.text "lsungen_self_tests_percentage_section"
t.text "woche_0_assignments_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.integer "woche_3_assignments_percentage_section"
t.integer "woche_4_assignments_percentage_section"
t.text "zustzliche_woche_assignments_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_assignments_percentage"
t.text "i_like_i_wish_assignments_percentage_section"
t.text "lsungen_assignments_percentage_section"
t.text "woche_0_bonus_percentage_section"
t.text "woche_1_bonus_percentage_section"
t.text "woche_2_bonus_percentage_section"
t.integer "woche_3_bonus_percentage_section"
t.text "woche_4_bonus_percentage_section"
t.text "zustzliche_woche_bonus_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_bonus_percentage_secti"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "lsungen_bonus_percentage_section"
t.text "woche_0___kennenlern_quiz_percentage_quiz"
t.text "woche_0___auswertung_des_kennenlern_quiz_percentage_quiz"
t.text "woche_1___selbsteinschtzungs_quiz_percentage_quiz"
t.text "woche_1___11_erstes_programmierbeispiel_percentage_quiz"
t.text "woche_1___13_variablen_percentage_quiz"
t.text "woche_1___14_strings_percentage_quiz"
t.text "woche_1___15_datentypen_percentage_quiz"
t.text "woche_1___16_turtle_12_percentage_quiz"
t.text "woche_1___17_turtle_22_percentage_quiz"
t.text "woche_1___hausaufgabe_1_percentage_quiz"
t.text "woche_2___selbsteinschtzungs_quiz_woche_2_percentage_quiz"
t.text "woche_2___21_verzweigungen_12_percentage_quiz"
t.text "woche_2___22_verzweigungen_22_percentage_quiz"
t.text "woche_2___23_schleifen_percentage_quiz"
t.text "woche_2___24_listen_13_percentage_quiz"
t.text "woche_2___25_listen_23_percentage_quiz"
t.text "woche_2___26_listen_33_percentage_quiz"
t.text "woche_2___26_reflexion_aufgabe_2_percentage_quiz"
t.text "woche_2___hausaufgabe_2_percentage_quiz"
t.text "woche_3___selbsteinschtzungs_quiz_woche_3_percentage_quiz"
t.text "woche_3___31_funktionen_ohne_parameter_percentage_quiz"
t.text "woche_3___exkurs_konventionen_percentage_quiz"
t.text "woche_3___32_funktionen_mit_parametern_percentage_quiz"
t.text "woche_3___33_dictionaries_percentage_quiz"
t.text "woche_3___34_zufallszahlen_percentage_quiz"
t.text "woche_3___34_reflexion_aufgabe_2_percentage_quiz"
t.text "woche_3___hausaufgabe_3_percentage_quiz"
t.text "woche_4___selbsteinschtzungs_quiz_woche_4_percentage_quiz"
t.text "woche_4___41_eingabe_percentage_quiz"
t.text "woche_4___44_reflexion_aufgabe_1_percentage_quiz"
t.text "woche_4___hausaufgabe_4_percentage_quiz"
t.text "woche_4___selbsteinschtzungs_quiz_zum_kursende_percentage_quiz"
t.text "i_like_i_wish___selbsteinschtzung_zum_i_like_i_wish_percentage_"
t.text "course_code"
end
create_table "proxy_exercises", id: :serial, force: :cascade do |t|
t.string "title"
t.string "description"
t.string "token"
t.datetime "created_at"
t.datetime "updated_at"
t.string "user_type"
t.bigint "user_id"
t.boolean "public", default: false, null: false
t.index ["user_type", "user_id"], name: "index_proxy_exercises_on_user_type_and_user_id"
end
create_table "python20_0-1_kennenlern_quiz", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "herzlich_willkommen_zu_diesem_kennenlern_quiz_es_handelt_sich_d"
t.text "ich_habe_schon_einmal_quellcode_in_einer_beliebigen_programmier"
t.text "ich_habe_schon_einmal_etwas_in_einer_beliebigen_programmierspra"
t.text "ich_habe_bereits_einen_online_kurs_zu_python_besucht"
t.text "ich_habe_bereits_einen_prsenz_kurs_zu_python_besucht"
t.text "ich_wei_was_sich_hinter_dem_begriff_syntax_versteckt"
t.text "ich_wei_was_sich_hinter_dem_begriff_datentyp_versteckt"
t.text "ich_wei_was_sich_hinter_dem_begriff_funktion_versteckt"
t.text "ich_wei_was_sich__hinter_dem_begriff_bibliothek_versteckt"
t.text "ich_habe_bereits_erfahrung_im_umgang_mit_python"
t.text "ich_habe_bereits_einen_kurs_mit_co_gemacht"
end
create_table "python20_1-1_selbsteinschatzungs_quiz_woche_1", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "schn_dass_du_wieder_dabei_bist_bei_diesem_selbsteinschtzungs_qu"
t.text "eine_hohe_punktwertung_im_kurs_zu_erhalten_ist_mir"
t.text "besonders_wichtig_an_einem_kurs_ist_fr_mich"
t.text "ich_mchte_im_kurs"
t.text "den_austausch_mit_anderen_finde_ich"
t.text "die_lernmaterialien_einer_woche_bearbeite_ich_lieber"
t.text "nicht_gleich_auf_die_lsung_zu_kommen_empfinde_ich"
t.text "bearbeitung_effektiver_wenn"
t.text "meine_bevorzugte_herangehensweise_an_probleme_ist"
t.text "wenn_ich_ein_problem_beim_lsen_einer_aufgabe_habe_mchte_ich"
t.text "zu_wissen_dass_andere_am_gleichen_thema_arbeiten"
t.text "ber_die_lerninhalte_im_kurs_sollte_entscheiden_"
t.text "weiteres_feedback_selbsteinschaetzung"
end
create_table "python20_2-1_selbsteinschatzungs_quiz_woche_2", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "wie_ist_selbsteinschtzungsquiz_mit_grafischer_auswertung"
t.text "auswertungen_geben_mir_das_gefhl_teil_der_kurs_community_zu_sei"
t.text "das_bearbeiten_der_bisherigen_aufgaben_fiel_mir_leicht"
t.text "herausfordernde_lektion_w1.11_erstes_programmierbeispiel"
t.text "herausfordernde_lektion_w1.12_code_ocean_einfhrung"
t.text "herausfordernde_lektion_w1.13_variablen"
t.text "herausfordernde_lektion_w1.14_strings"
t.text "herausfordernde_lektion_w1.15_datentypen"
t.text "herausfordernde_lektion_w1.16_turtle_12"
t.text "herausfordernde_lektion_w1.17_turtle_22"
t.text "herausfordernde_lektion_w1.keine"
t.text "neben_lerninhalten_habe_ich.mich_aktiv_im_forum_beteiligt"
t.text "neben_lerninhalten_habe_ich.mehrere_beitrge_im_forum_gelesen"
t.text "neben_den_bereitgestellten_lerninhalten_habe_ich__mehrfachantwo"
t.text "neben_lerninhalten_habe_ich.kommentaranfragen_auf_code_ocean_be"
t.text "neben_lerninhalten_habe_ich.zustzliche_tipps_in_anspruch_genomm"
t.text "neben_lerninhalten_habe_ich.hilfe_auerhalb_des_kurses_erhalten_"
t.text "neben_lerninhalten_habe_ich.externe_lern__undoder_infomateriali"
t.text "die_diskussionbeitrge_im_forum_empfinde_ich_als"
t.text "hilfe_gebeten_hat_mir"
t.text "hilfe_gebeten_habe_ich"
t.text "die_mglichkeit_an_video_fragerunde_teilzunehmen_finde_ich"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_3-1_selbsteinschatzungs_quiz_woche_3", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "richtige_kommunikationsmedium_fr_mich_gefunden"
t.text "das_bearbeiten_der_aufgaben_aus_woche_2_fiel_mir_leicht"
t.text "herausfordernde_lektion_w2.21_verzweigungen_12"
t.text "herausfordernde_lektion_w2.22_verzweigungen_22"
t.text "herausfordernde_lektion_w2.23_schleifen"
t.text "herausfordernde_lektion_w2.24_listen_13"
t.text "herausfordernde_lektion_w2.25_listen_23"
t.text "herausfordernde_lektion_w2.26_listen_33"
t.text "herausfordernde_lektion_w2.keine"
t.text "offene_inhaltliche_fragen"
t.text "forum_oder_rfc_genutzt"
t.text "warum_frage_nicht_gestellt.ich_habe_nicht_genug_zeit_oder_will_"
t.text "warum_frage_nicht_gestellt.ich_bin_nicht_motiviert_die_frage_we"
t.text "warum_frage_nicht_gestellt.die_frage_kommt_mir_nicht_wichtig_ge"
t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_mir_keiner_a"
t.text "warum_frage_nicht_gestellt.ich_wei_nicht_wen_ich_fragen_bzw_wo_"
t.text "warum_frage_nicht_gestellt.ich_kann_meine_frage_nicht_gut_genug"
t.text "warum_frage_nicht_gestellt.ich_habe_das_gefhl_dass_die_frage_zu"
t.text "warum_frage_nicht_gestellt.anderer_grund"
t.text "anderer_grund"
t.text "tipps_zu_erhalten_war"
t.text "die_aufgabe_zur_selbstreflexion_aus_woche_2_hat_mir__gefallen"
t.text "ich_plane_meine_aufgabenlsungen_weiter_zu_reflektieren_oder_tu_"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_4-1_selbsteinschatzungs_quiz_woche_4", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "das_bearbeiten_der_aufgaben_aus_woche_3_fiel_mir_leicht"
t.text "herausfordernde_lektion_w3.31_funktionen_ohne_parameter"
t.text "herausfordernde_lektion_w3.32_funktionen_mit_parametern"
t.text "herausfordernde_lektion_w3.33_dictionaries"
t.text "herausfordernde_lektion_w3.34_zufallszahlen"
t.text "herausfordernde_lektion_w3.exkurs_konventionen_in_python"
t.text "herausfordernde_lektion_w3.keine"
t.text "hilfe_durch_krusteilnehmer"
t.text "hilfe_durch_dritte"
t.text "wie_bewertest_du_exkurs_und_linter"
t.text "das_feedback_des_linters_hat_mir"
t.text "das_feedback_des_linters_habe_ich"
t.text "wie_hat_dir_aufgabe_314_gefallen"
t.text "a314_verstaendnis.ich_habe_ein_besseres_verstndnis_des_linter_f"
t.text "a314_verstaendnis.ich_habe_die_relevanz_von_code_formatierungen"
t.text "a314_verstaendnis.ich_habe_mir_bewusst_gedanken_ber_die_benennu"
t.text "a314_verstaendnis.mir_ist_der_unterschied_zwischen_return__und_"
t.text "a314_verstaendnis.ich_habe_verstanden_inwiefern_funktionen_und_"
t.text "a314_verstaendnis.etwas_anderes_bitte_in_der_nchsten_frage_ergn"
t.text "a314_verstaendnis.gar_nicht"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_4-3_selbsteinschatzungs_quiz_zum_kursende", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "das_bearbeiten_der_aufgaben_aus_woche_4_fiel_mir_leicht"
t.text "herausfordernde_lektion_w4.41_eingabe"
t.text "herausfordernde_lektion_w4.42_zahlenraten"
t.text "herausfordernde_lektion_w4.43_snake_spiel_13"
t.text "herausfordernde_lektion_w4.44_snake_spiel_23"
t.text "herausfordernde_lektion_w4.45_snake_spiel_33"
t.text "herausfordernde_lektion_w4.exkurs_installieren_unter_windows_10"
t.text "herausfordernde_lektion_w4.keine"
t.text "wie_erfahren_mit_python_nach_kurs"
t.text "retrospektiv_wie_viel_erfahrung_hattest_du_vorher_mit_python"
t.text "wie_viel_hast_du_gelernt"
t.text "ich_bin_stolz_darauf_was_ich_in_kurs_geschafft_habe"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_6-1_snapshot_umfrage_zum_kurs", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.text "welchem_geschlecht_fhlst_du_dich_zugehrig"
t.text "wie_alt_bist_du"
t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache"
t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "snake_abschlussprojekt_fand_ich"
t.text "snake_abschlussprojekt_war_hilfreich"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features"
t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code"
t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis"
t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler"
t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_"
t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben"
t.text "mehr_inhalte_wuenschen.keine"
t.text "kurselement_einfluss_lernerfolg.videos"
t.text "kurselement_einfluss_lernerfolg.selbsttests"
t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum"
t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben"
t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic"
t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben"
t.text "kurselement_einfluss_lernerfolg.die_reflexionen"
t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen"
t.text "kurselement_einfluss_lernerfolg.keine"
t.text "naechste_schritte.weiteren_programmierkurs_belegen"
t.text "naechste_schritte.eigene_programme_schreiben"
t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere"
t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben"
t.text "naechste_schritte.nichts_weiter"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst"
t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie"
t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten"
t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_"
t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem"
t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st"
t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in"
t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern"
t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben"
t.text "wo_zukuenftig_hilfe_suchen.gar_nicht"
t.text "kommentare_in_co_zu_erbitten_war_fr_mich"
t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich"
t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant"
t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_"
t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen"
t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt"
t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean"
t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw"
t.text "intevention_eine_frage_zu_stellen"
t.text "intevention_nach_hilfe_zu_fragen"
t.text "uebersetzung_linter"
t.text "wie_kann_co_weiter_untersetuetzen"
t.text "email_interview"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_6-1_umfrage_all", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.text "welchem_geschlecht_fhlst_du_dich_zugehrig"
t.text "wie_alt_bist_du"
t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache"
t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "snake_abschlussprojekt_fand_ich"
t.text "snake_abschlussprojekt_war_hilfreich"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features"
t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code"
t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis"
t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler"
t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_"
t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben"
t.text "mehr_inhalte_wuenschen.keine"
t.text "kurselement_einfluss_lernerfolg.videos"
t.text "kurselement_einfluss_lernerfolg.selbsttests"
t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum"
t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben"
t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic"
t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben"
t.text "kurselement_einfluss_lernerfolg.die_reflexionen"
t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen"
t.text "kurselement_einfluss_lernerfolg.keine"
t.text "naechste_schritte.weiteren_programmierkurs_belegen"
t.text "naechste_schritte.eigene_programme_schreiben"
t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere"
t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben"
t.text "naechste_schritte.nichts_weiter"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst"
t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie"
t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten"
t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_"
t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem"
t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st"
t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in"
t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern"
t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben"
t.text "wo_zukuenftig_hilfe_suchen.gar_nicht"
t.text "kommentare_in_co_zu_erbitten_war_fr_mich"
t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich"
t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant"
t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_"
t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen"
t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt"
t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean"
t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw"
t.text "intevention_eine_frage_zu_stellen"
t.text "intevention_nach_hilfe_zu_fragen"
t.text "uebersetzung_linter"
t.text "wie_kann_co_weiter_untersetuetzen"
t.text "email_interview"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_6-1_umfrage_for_union", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.text "welchem_geschlecht_fhlst_du_dich_zugehrig"
t.text "wie_alt_bist_du"
t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache"
t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "snake_abschlussprojekt_fand_ich"
t.text "snake_abschlussprojekt_war_hilfreich"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features"
t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code"
t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis"
t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler"
t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_"
t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben"
t.text "mehr_inhalte_wuenschen.keine"
t.text "kurselement_einfluss_lernerfolg.videos"
t.text "kurselement_einfluss_lernerfolg.selbsttests"
t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum"
t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben"
t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic"
t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben"
t.text "kurselement_einfluss_lernerfolg.die_reflexionen"
t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen"
t.text "kurselement_einfluss_lernerfolg.keine"
t.text "naechste_schritte.weiteren_programmierkurs_belegen"
t.text "naechste_schritte.eigene_programme_schreiben"
t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere"
t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben"
t.text "naechste_schritte.nichts_weiter"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst"
t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie"
t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten"
t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_"
t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem"
t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st"
t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in"
t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern"
t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben"
t.text "wo_zukuenftig_hilfe_suchen.gar_nicht"
t.text "kommentare_in_co_zu_erbitten_war_fr_mich"
t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich"
t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant"
t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_"
t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen"
t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt"
t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean"
t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw"
t.text "intevention_eine_frage_zu_stellen"
t.text "intevention_nach_hilfe_zu_fragen"
t.text "uebersetzung_linter"
t.text "wie_kann_co_weiter_untersetuetzen"
t.text "email_interview"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_6-1_umfrage_zum_kurs", id: false, force: :cascade do |t|
t.text "user_id"
t.text "accessed_at"
t.text "submitted_at"
t.integer "submit_duration"
t.integer "points"
t.text "welchem_geschlecht_fhlst_du_dich_zugehrig"
t.text "wie_alt_bist_du"
t.text "hattest_du_bereits_vorkenntnisse_in_einer_programmiersprache"
t.text "hast_du_das_gefhl_durch_die_kursteilnahme_ein_besseres_verstndn"
t.text "wie_lange_hast_du_dich_wchentlich_mit_dem_kurs_beschftigt"
t.text "wie_bewertest_du_die_inhaltliche_qualitt_des_kurses"
t.text "wie_bewertest_du_den_schwierigkeitsgrad_des_kurses"
t.text "wie_schtzt_du_die_verstndlichkeit_und_struktur_des_kurses_ein"
t.text "snake_abschlussprojekt_fand_ich"
t.text "snake_abschlussprojekt_war_hilfreich"
t.text "wurden_deine_erwartungen_an_den_kurs_erfllt"
t.text "mehr_inhalte_wuenschen.vorstellung_von_sprach_features"
t.text "mehr_inhalte_wuenschen.tipps_zu_gutem_code"
t.text "mehr_inhalte_wuenschen.problemlsungsstrategien__herangehensweis"
t.text "mehr_inhalte_wuenschen.hufig_gemachte_fehler"
t.text "mehr_inhalte_wuenschen.praktische_beispiele_aus_dem_alltag_der_"
t.text "mehr_inhalte_wuenschen.anderes_bitte_in_frage_25_angeben"
t.text "mehr_inhalte_wuenschen.keine"
t.text "kurselement_einfluss_lernerfolg.videos"
t.text "kurselement_einfluss_lernerfolg.selbsttests"
t.text "kurselement_einfluss_lernerfolg.diskussionen_im_forum"
t.text "kurselement_einfluss_lernerfolg.wchentliche_hausaufgaben"
t.text "kurselement_einfluss_lernerfolg.die_story_und_beispiele_die_sic"
t.text "kurselement_einfluss_lernerfolg.praktische_programmieraufgaben"
t.text "kurselement_einfluss_lernerfolg.die_reflexionen"
t.text "kurselement_einfluss_lernerfolg.die_selbsteinschtzungen"
t.text "kurselement_einfluss_lernerfolg.keine"
t.text "naechste_schritte.weiteren_programmierkurs_belegen"
t.text "naechste_schritte.eigene_programme_schreiben"
t.text "naechste_schritte.mich_in_der_softwareentwicklung_spezialisiere"
t.text "naechste_schritte.anderes_bitte_in_frage_25_angeben"
t.text "naechste_schritte.nichts_weiter"
t.text "wie_wahrscheinlich_ist_es_dass_du_diesen_kurs_weiterempfiehlst"
t.text "wo_zukuenftig_hilfe_suchen.innerhalb_der_familie"
t.text "wo_zukuenftig_hilfe_suchen.bei_freunden_und_bekannten"
t.text "wo_zukuenftig_hilfe_suchen.in_der_schule_universtitt_oder_beim_"
t.text "wo_zukuenftig_hilfe_suchen.in_online_kursen_wie_diesem"
t.text "wo_zukuenftig_hilfe_suchen.auf_fragewebseiten_im_internet_zb_st"
t.text "wo_zukuenftig_hilfe_suchen.in_tutorials_als_blogeintrag_oder_in"
t.text "wo_zukuenftig_hilfe_suchen.in_lehr__oder_fachbchern"
t.text "wo_zukuenftig_hilfe_suchen.anderes_bitte_in_frage_25_angeben"
t.text "wo_zukuenftig_hilfe_suchen.gar_nicht"
t.text "kommentare_in_co_zu_erbitten_war_fr_mich"
t.text "erhaltenen_antworten_auf_rfcs_waren_fr_mich"
t.text "rfc_redirect.es_hat_spa_gemacht_die_fragen_der_anderen_zu_beant"
t.text "rfc_redirect.ich_habe_beim_beantworten_der_fragen_selbst_etwas_"
t.text "rfc_redirect.ich_habe_niemals_fragen_von_anderen_kursteilnehmen"
t.text "rfc_redirect.ich_fhlte_mich_durch_die_fragen_anderer_gestrt"
t.text "rfc_redirect.ich_konnte_die_fragen_der_anderen_meist_nicht_bean"
t.text "rfc_redirect.ich_htte_gerne_mehr_fragen_von_mitlernenden_beantw"
t.text "intevention_eine_frage_zu_stellen"
t.text "intevention_nach_hilfe_zu_fragen"
t.text "uebersetzung_linter"
t.text "wie_kann_co_weiter_untersetuetzen"
t.text "email_interview"
t.text "feedback_selbsteinschaetzung"
end
create_table "python20_7_course_report", id: false, force: :cascade do |t|
t.text "user_id"
t.text "enrollment_date"
t.text "first_enrollment"
t.text "user_created"
t.text "lang"
t.text "affiliated"
t.text "birth_date"
t.text "age"
t.text "age_group"
t.text "profile_picture"
t.text "affiliation"
t.text "career_status"
t.text "highest_degree"
t.text "professional_life"
t.text "job_position"
t.text "city"
t.text "gender"
t.text "country"
t.text "main_motivation_for_joining_open_hpi"
t.text "regular_computer_use"
t.text "top_country_code"
t.text "top_country_name"
t.text "top_city"
t.integer "desktop_web_activity"
t.integer "mobile_web_activity"
t.integer "mobile_app_activity"
t.text "first_action_timestamp"
t.text "first_visited_item_timestamp"
t.text "last_action_timestamp"
t.text "last_visited_item_timestamp"
t.text "last_visited_item"
t.text "sessions"
t.text "avg_session_duration"
t.text "total_session_duration"
t.text "video_play_activity"
t.text "video_play_activity_percentage"
t.text "video_downloads_activity"
t.text "video_downloads_activity_percentage"
t.text "slide_downloads_activity"
t.text "slide_downloads_activity_percentage"
t.integer "forum_activity"
t.decimal "forum_activity_per_day"
t.integer "forum_posting_activity"
t.text "quiz_performance"
t.text "graded_quiz_performance"
t.text "ungraded_quiz_performance"
t.integer "enrollment_delta_in_days"
t.integer "forum_posts"
t.integer "forum_threads"
t.text "reactivated"
t.text "reactivated_submission_date"
t.text "confirmation_of_participation"
t.text "record_of_achievement"
t.text "qualified_certificate"
t.text "course_completed"
t.text "un_enrolled"
t.text "quantile"
t.text "top_performance"
t.integer "items_visited"
t.decimal "items_visited_percentage"
t.integer "points"
t.integer "points_percentage"
t.decimal "woche_0_visited_percentage_section"
t.decimal "woche_1_visited_percentage_section"
t.decimal "woche_2_visited_percentage_section"
t.integer "woche_3_visited_percentage_section"
t.integer "woche_4_visited_percentage_section"
t.text "zustzliche_woche_visited_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_visited_percentage_sec"
t.text "i_like_i_wish_visited_percentage_section"
t.text "lsungen_visited_percentage_section"
t.decimal "woche_0_self_tests_percentage_section"
t.decimal "woche_1_self_tests_percentage_section"
t.decimal "woche_2_self_tests_percentage_section"
t.integer "woche_3_self_tests_percentage_section"
t.integer "woche_4_self_tests_percentage_section"
t.text "zustzliche_woche_self_tests_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_self_tests_percentage_"
t.integer "i_like_i_wish_self_tests_percentage_section"
t.text "lsungen_self_tests_percentage_section"
t.text "woche_0_assignments_percentage_section"
t.integer "woche_1_assignments_percentage_section"
t.integer "woche_2_assignments_percentage_section"
t.integer "woche_3_assignments_percentage_section"
t.integer "woche_4_assignments_percentage_section"
t.text "zustzliche_woche_assignments_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_assignments_percentage"
t.text "i_like_i_wish_assignments_percentage_section"
t.text "lsungen_assignments_percentage_section"
t.text "woche_0_bonus_percentage_section"
t.text "woche_1_bonus_percentage_section"
t.text "woche_2_bonus_percentage_section"
t.integer "woche_3_bonus_percentage_section"
t.text "woche_4_bonus_percentage_section"
t.text "zustzliche_woche_bonus_percentage_section"
t.text "zusammenfassungen_und_andere_materialien_bonus_percentage_secti"
t.text "i_like_i_wish_bonus_percentage_section"
t.text "lsungen_bonus_percentage_section"
t.text "woche_0___kennenlern_quiz_percentage_quiz"
t.text "woche_0___auswertung_des_kennenlern_quiz_percentage_quiz"
t.text "woche_1___selbsteinschtzungs_quiz_percentage_quiz"
t.text "woche_1___11_erstes_programmierbeispiel_percentage_quiz"
t.text "woche_1___13_variablen_percentage_quiz"
t.text "woche_1___14_strings_percentage_quiz"
t.text "woche_1___15_datentypen_percentage_quiz"
t.text "woche_1___16_turtle_12_percentage_quiz"
t.text "woche_1___17_turtle_22_percentage_quiz"
t.text "woche_1___hausaufgabe_1_percentage_quiz"
t.text "woche_2___selbsteinschtzungs_quiz_woche_2_percentage_quiz"
t.text "woche_2___21_verzweigungen_12_percentage_quiz"
t.text "woche_2___22_verzweigungen_22_percentage_quiz"
t.text "woche_2___23_schleifen_percentage_quiz"
t.text "woche_2___24_listen_13_percentage_quiz"
t.text "woche_2___25_listen_23_percentage_quiz"
t.text "woche_2___26_listen_33_percentage_quiz"
t.text "woche_2___26_reflexion_aufgabe_2_percentage_quiz"
t.text "woche_2___hausaufgabe_2_percentage_quiz"
t.text "woche_3___selbsteinschtzungs_quiz_woche_3_percentage_quiz"
t.text "woche_3___31_funktionen_ohne_parameter_percentage_quiz"
t.text "woche_3___exkurs_konventionen_percentage_quiz"
t.text "woche_3___32_funktionen_mit_parametern_percentage_quiz"
t.text "woche_3___33_dictionaries_percentage_quiz"
t.text "woche_3___34_zufallszahlen_percentage_quiz"
t.text "woche_3___34_reflexion_aufgabe_2_percentage_quiz"
t.text "woche_3___hausaufgabe_3_percentage_quiz"
t.text "woche_4___selbsteinschtzungs_quiz_woche_4_percentage_quiz"
t.text "woche_4___41_eingabe_percentage_quiz"
t.text "woche_4___44_reflexion_aufgabe_1_percentage_quiz"
t.text "woche_4___hausaufgabe_4_percentage_quiz"
t.text "woche_4___selbsteinschtzungs_quiz_zum_kursende_percentage_quiz"
t.text "i_like_i_wish___selbsteinschtzung_zum_i_like_i_wish_percentage_"
t.text "course_code"
end
create_table "r_java21_tips", id: false, force: :cascade do |t|
t.integer "user_id"
t.string "user_gender"
t.string "age"
t.integer "skill_level_pre_java17"
t.integer "skill_level_pre_java20"
t.integer "skill_level_pre_java21"
t.integer "skill_level_pre_python20"
t.boolean "tips_group_python20"
t.boolean "linter_group_python20"
t.string "intervention_group_java21"
t.boolean "community_solution_group_java21"
t.integer "skill_level_post_java21"
t.integer "skill_level_post_python20"
t.float "points_java17"
t.float "points_java20"
t.float "points_java21"
t.float "points_python20"
t.integer "event_id"
t.string "event_category"
t.string "tip_id"
t.integer "exercise_id"
t.integer "file_id"
t.interval "working_time"
t.float "max_score"
t.float "max_reachable_points"
end
create_table "remote_evaluation_mappings", id: :serial, force: :cascade do |t|
t.integer "user_id", null: false
t.integer "exercise_id", null: false
t.string "validation_token", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "user_type"
t.bigint "study_group_id"
t.index ["study_group_id"], name: "index_remote_evaluation_mappings_on_study_group_id"
end
create_table "request_for_comments", id: :serial, force: :cascade do |t|
t.integer "user_id", null: false
t.integer "exercise_id", null: false
t.integer "file_id", null: false
t.datetime "created_at"
t.datetime "updated_at"
t.string "user_type"
t.text "question"
t.boolean "solved", default: false
t.integer "submission_id"
t.text "thank_you_note"
t.boolean "full_score_reached", default: false
t.integer "times_featured", default: 0
t.index ["exercise_id"], name: "index_request_for_comments_on_exercise_id"
t.index ["submission_id"], name: "index_request_for_comments_on_submission_id"
t.index ["user_id", "user_type", "created_at"], name: "index_rfc_on_user_and_created_at", order: { created_at: :desc }
end
create_table "runners", force: :cascade do |t|
t.string "runner_id"
t.bigint "execution_environment_id"
t.string "user_type"
t.bigint "user_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["execution_environment_id"], name: "index_runners_on_execution_environment_id"
t.index ["user_type", "user_id"], name: "index_runners_on_user"
end
create_table "searches", id: :serial, force: :cascade do |t|
t.integer "exercise_id", null: false
t.integer "user_id", null: false
t.string "user_type", null: false
t.string "search"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "structured_error_attributes", id: :serial, force: :cascade do |t|
t.integer "structured_error_id"
t.integer "error_template_attribute_id"
t.string "value"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "match"
end
create_table "structured_errors", id: :serial, force: :cascade do |t|
t.integer "error_template_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "submission_id"
t.index ["submission_id"], name: "index_structured_errors_on_submission_id"
end
create_table "study_group_memberships", force: :cascade do |t|
t.bigint "study_group_id"
t.string "user_type"
t.bigint "user_id"
t.index ["study_group_id"], name: "index_study_group_memberships_on_study_group_id"
t.index ["user_type", "user_id"], name: "index_study_group_memberships_on_user"
end
create_table "study_groups", force: :cascade do |t|
t.string "name"
t.string "external_id"
t.bigint "consumer_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["consumer_id"], name: "index_study_groups_on_consumer_id"
t.index ["external_id", "consumer_id"], name: "index_study_groups_on_external_id_and_consumer_id", unique: true
end
create_table "submissions", id: :serial, force: :cascade do |t|
t.integer "exercise_id"
t.float "score"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "cause"
t.string "user_type"
t.bigint "study_group_id"
t.index ["exercise_id"], name: "index_submissions_on_exercise_id"
t.index ["study_group_id"], name: "index_submissions_on_study_group_id"
t.index ["user_id"], name: "index_submissions_on_user_id"
end
create_table "subscriptions", id: :serial, force: :cascade do |t|
t.integer "user_id"
t.string "user_type"
t.integer "request_for_comment_id"
t.string "subscription_type"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.boolean "deleted"
end
create_table "tags", id: :serial, force: :cascade do |t|
t.string "name", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "testrun_execution_environments", force: :cascade do |t|
t.bigint "testrun_id", null: false
t.bigint "execution_environment_id", null: false
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["execution_environment_id"], name: "index_testrun_execution_environments"
t.index ["testrun_id"], name: "index_testrun_execution_environments_on_testrun_id"
end
create_table "testrun_messages", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
t.bigint "testrun_id", null: false
t.interval "timestamp", default: "PT0S", null: false
t.integer "cmd", limit: 2, default: 0, null: false, comment: "Used as enum in Rails"
t.integer "stream", limit: 2, comment: "Used as enum in Rails"
t.text "log"
t.jsonb "data"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["testrun_id"], name: "index_testrun_messages_on_testrun_id"
t.check_constraint "(log IS NULL) OR (data IS NULL)", name: "either_data_or_log"
end
create_table "testruns", id: :serial, force: :cascade do |t|
t.boolean "passed"
t.text "output"
t.integer "file_id"
t.integer "submission_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "cause"
t.interval "container_execution_time"
t.interval "waiting_for_container_time"
t.integer "exit_code", limit: 2, comment: "No exit code is available in case of a timeout"
t.integer "status", limit: 2, default: 0, null: false, comment: "Used as enum in Rails"
t.index ["submission_id"], name: "index_testruns_on_submission_id"
t.check_constraint "(exit_code >= 0) AND (exit_code <= 255)", name: "exit_code_constraint"
end
create_table "tips", force: :cascade do |t|
t.string "title"
t.text "description"
t.text "example"
t.bigint "file_type_id"
t.string "user_type", null: false
t.bigint "user_id", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["file_type_id"], name: "index_tips_on_file_type_id"
t.index ["user_type", "user_id"], name: "index_tips_on_user"
end
create_table "tmp", id: false, force: :cascade do |t|
t.integer "user_id"
t.string "user_gender"
t.string "age"
t.integer "skill_level_pre_java17"
t.integer "skill_level_pre_java20"
t.integer "skill_level_pre_java21"
t.integer "skill_level_pre_python20"
t.boolean "tips_group_python20"
t.boolean "linter_group_python20"
t.string "intervention_group_java21"
t.boolean "community_solution_group_java21"
t.integer "skill_level_post_java21"
t.integer "skill_level_post_python20"
t.float "points_java17"
t.float "points_java20"
t.float "points_java21"
t.float "points_python20"
t.integer "exercise_id"
t.integer "rfc_id"
end
create_table "tmp3", id: false, force: :cascade do |t|
t.integer "user_id"
t.string "user_gender"
t.string "age"
t.integer "skill_level_pre_java17"
t.integer "skill_level_pre_java20"
t.integer "skill_level_pre_java21"
t.integer "skill_level_pre_python20"
t.boolean "tips_group_python20"
t.boolean "linter_group_python20"
t.string "intervention_group_java21"
t.boolean "community_solution_group_java21"
t.integer "skill_level_post_java21"
t.integer "skill_level_post_python20"
t.float "points_java17"
t.float "points_java20"
t.float "points_java21"
t.float "points_python20"
t.integer "exercise_id"
t.float "tip_count_per_exercise"
t.bigint "tip_count"
t.decimal "avg_tips_per_exercise"
t.decimal "relative_tip_count"
end
create_table "user_exercise_feedbacks", id: :serial, force: :cascade do |t|
t.integer "exercise_id", null: false
t.integer "user_id", null: false
t.string "user_type", null: false
t.integer "difficulty"
t.integer "working_time_seconds"
t.string "feedback_text"
t.integer "user_estimated_worktime"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.float "normalized_score"
t.bigint "submission_id"
t.index ["submission_id"], name: "index_user_exercise_feedbacks_on_submission_id"
end
create_table "user_exercise_interventions", id: :serial, force: :cascade do |t|
t.integer "user_id"
t.string "user_type"
t.integer "exercise_id"
t.integer "intervention_id"
t.integer "accumulated_worktime_s"
t.text "reason"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "user_proxy_exercise_exercises", id: :serial, force: :cascade do |t|
t.integer "user_id"
t.string "user_type"
t.integer "proxy_exercise_id"
t.integer "exercise_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "reason"
t.index ["exercise_id"], name: "index_user_proxy_exercise_exercises_on_exercise_id"
t.index ["proxy_exercise_id"], name: "index_user_proxy_exercise_exercises_on_proxy_exercise_id"
t.index ["user_type", "user_id"], name: "index_user_proxy_exercise_exercises_on_user"
end
create_table "wk2020_until_rfc_reply", id: false, force: :cascade do |t|
t.integer "user_id"
t.integer "exercise_id"
t.interval "working_time_until_rfc_reply"
end
create_table "wk2020_with_wk_until_rfc", id: false, force: :cascade do |t|
t.string "external_user_id", limit: 255
t.integer "user_id"
t.integer "exercise_id"
t.float "max_score"
t.float "max_reachable_points"
t.interval "working_time"
t.interval "working_time_until_rfc"
t.interval "working_time_until_rfc_reply"
t.time "percentile75"
t.time "percentile90"
end
add_foreign_key "community_solution_contributions", "community_solution_locks"
add_foreign_key "community_solution_contributions", "community_solutions"
add_foreign_key "community_solution_contributions", "study_groups"
add_foreign_key "community_solution_locks", "community_solutions"
add_foreign_key "community_solutions", "exercises"
add_foreign_key "exercise_tips", "exercise_tips", column: "parent_exercise_tip_id"
add_foreign_key "exercise_tips", "exercises"
add_foreign_key "exercise_tips", "tips"
add_foreign_key "remote_evaluation_mappings", "study_groups"
add_foreign_key "submissions", "study_groups"
add_foreign_key "testrun_execution_environments", "execution_environments"
add_foreign_key "testrun_execution_environments", "testruns"
add_foreign_key "testrun_messages", "testruns"
add_foreign_key "tips", "file_types"
add_foreign_key "user_exercise_feedbacks", "submissions"
end