# 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