From 8f34fa4bdc023be63a7566e2d32421060ee69f5e Mon Sep 17 00:00:00 2001 From: Ezerous Date: Tue, 14 Sep 2021 01:26:03 +0300 Subject: [PATCH] feat: Replace uploads resource with Firebase remote config JSON --- app/build.gradle | 3 + .../activities/upload/UploadActivity.java | 42 +- .../activities/upload/UploadsCourse.java | 89 +- .../gr/thmmy/mthmmy/base/BaseActivity.java | 2 - .../gr/thmmy/mthmmy/base/BaseApplication.java | 38 +- .../thmmy/mthmmy/utils/io/ResourceUtils.java | 46 + app/src/main/res/raw/uploads_courses.json | 1702 +++++++++++++++++ app/src/main/res/values/uploads_courses.xml | 157 -- .../utils/UploadsCoursesJSONReadingTest.java | 43 + .../test/resources/raw/uploads_courses.json | 1702 +++++++++++++++++ 10 files changed, 3597 insertions(+), 227 deletions(-) create mode 100644 app/src/main/java/gr/thmmy/mthmmy/utils/io/ResourceUtils.java create mode 100644 app/src/main/res/raw/uploads_courses.json delete mode 100644 app/src/main/res/values/uploads_courses.xml create mode 100644 app/src/test/java/gr/thmmy/mthmmy/utils/UploadsCoursesJSONReadingTest.java create mode 100644 app/src/test/resources/raw/uploads_courses.json diff --git a/app/build.gradle b/app/build.gradle index 7284acd8..f4837696 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -84,8 +84,10 @@ dependencies { implementation 'com.google.android.material:material:1.4.0' implementation platform('com.google.firebase:firebase-bom:28.4.0') implementation 'com.google.firebase:firebase-analytics' + implementation 'com.google.firebase:firebase-config' implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-messaging' + implementation 'com.google.code.gson:gson:2.8.8' implementation 'com.snatik:storage:2.1.0' implementation 'com.squareup.okhttp3:okhttp:3.14.9' implementation 'org.jsoup:jsoup:1.14.2' @@ -111,4 +113,5 @@ dependencies { testImplementation 'org.powermock:powermock-module-junit4:2.0.2' testImplementation 'org.powermock:powermock-api-mockito2:2.0.2' testImplementation 'net.lachlanmckee:timber-junit-rule:1.0.1' + testImplementation 'org.json:json:20210307' } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java index 2d661517..26156382 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadActivity.java @@ -6,7 +6,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageManager; -import android.content.res.Resources; import android.graphics.Typeface; import android.graphics.drawable.Drawable; import android.net.Uri; @@ -38,10 +37,13 @@ import androidx.core.content.FileProvider; import androidx.preference.PreferenceManager; import com.google.android.material.floatingactionbutton.FloatingActionButton; +import com.google.firebase.remoteconfig.FirebaseRemoteConfig; import net.gotev.uploadservice.UploadNotificationAction; import net.gotev.uploadservice.UploadNotificationConfig; +import org.json.JSONException; +import org.json.JSONObject; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; @@ -86,6 +88,8 @@ public class UploadActivity extends BaseActivity { * The key to use when putting upload's category String to {@link UploadActivity}'s Bundle. */ public static final String BUNDLE_UPLOAD_CATEGORY = "UPLOAD_CATEGORY"; + public static final String firebaseConfigUploadsCoursesKey = "uploads_courses"; + private static final String uploadIndexUrl = "https://www.thmmy.gr/smf/index.php?action=tpmod;dl=upload"; private static final String uploadedFromTHMMYPromptHtml = "
uploaded from mTHMMY"; /** @@ -103,7 +107,7 @@ public class UploadActivity extends BaseActivity { private static final int MAX_FILE_SIZE_SUPPORTED = 45000000; - private HashMap uploadsCourses; + private HashMap uploadsCourses; private ArrayList uploadRootCategories = new ArrayList<>(); private ParseUploadPageTask parseUploadPageTask; @@ -416,10 +420,16 @@ public class UploadActivity extends BaseActivity { updateUIElements(); generateFieldsButton.setEnabled(true); } - - Resources res = getResources(); - uploadsCourses = new HashMap<>(UploadsCourse - .generateUploadsCourses(res.getStringArray(R.array.string_array_uploads_courses))); + FirebaseRemoteConfig firebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); + String uploadsCoursesString = firebaseRemoteConfig.getString(firebaseConfigUploadsCoursesKey); + JSONObject uploadsCoursesJSON; + try { + uploadsCoursesJSON = new JSONObject(uploadsCoursesString); + uploadsCourses = UploadsCourse.generateCoursesFromJSON(uploadsCoursesJSON); + } catch (JSONException e) { + uploadsCourses = new HashMap<>(); + Timber.e(e, "JSONException in uploads courses."); + } } @Override @@ -939,13 +949,19 @@ public class UploadActivity extends BaseActivity { .trim(); if (!retrievedCourse.isEmpty()) { - UploadsCourse foundUploadsCourse = UploadsCourse.findCourse(retrievedCourse, uploadsCourses); - - if (foundUploadsCourse != null) { - uploadsCourse = foundUploadsCourse; - semester = maybeSemester.replaceAll("-", "").trim().substring(0, 1); - Timber.d("Selected course: %s, semester: %s", uploadsCourse.getName(), semester); - generateFieldsButton.setEnabled(true); + try { + int categoryValue = Integer.parseInt(categorySelected); + if(uploadsCourses.containsKey(categoryValue)){ + UploadsCourse foundUploadsCourse = uploadsCourses.get(categoryValue); + if (foundUploadsCourse != null) { + uploadsCourse = foundUploadsCourse; + semester = maybeSemester.replaceAll("-", "").trim().substring(0, 1); + Timber.d("Selected course: %s, semester: %s", uploadsCourse.getName(), semester); + generateFieldsButton.setEnabled(true); + } + } + } catch (final NumberFormatException e) { + Timber.e(e, "Invalid category value!"); } } } diff --git a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadsCourse.java b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadsCourse.java index bfd6548d..25aa9af5 100644 --- a/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadsCourse.java +++ b/app/src/main/java/gr/thmmy/mthmmy/activities/upload/UploadsCourse.java @@ -1,79 +1,60 @@ package gr.thmmy.mthmmy.activities.upload; -import android.os.Bundle; +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; import java.util.HashMap; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import gr.thmmy.mthmmy.base.BaseApplication; -import timber.log.Timber; +public class UploadsCourse { + private final int id; + private final String name, minifiedName, greeklishName; -class UploadsCourse { - private final String name; - private final String minifiedName; - private final String greeklishName; - - private UploadsCourse(String fullName, String minifiedName, String greeklishName) { - this.name = fullName; + private UploadsCourse(int id, String name, String minifiedName, String greeklishName) { + this.id = id; + this.name = name; this.minifiedName = minifiedName; this.greeklishName = greeklishName; } - String getName() { + public int getId() { + return id; + } + + public String getName() { return name; } - String getMinifiedName() { + public String getMinifiedName() { return minifiedName; } - String getGreeklishName() { + public String getGreeklishName() { return greeklishName; } - static Map generateUploadsCourses(String[] uploadsCoursesRes) { - Map uploadsCourses = new HashMap<>(); - for (String uploadsCourseStr : uploadsCoursesRes) { - String[] split = uploadsCourseStr.split("\\|"); - UploadsCourse uploadsCourse = new UploadsCourse(split[0], split[1], split[2]); - uploadsCourses.put(uploadsCourse.getName(), uploadsCourse); + public static HashMap generateCoursesFromJSON(JSONObject json) throws JSONException { + HashMap coursesHashMap = new HashMap<>(); + if(json.has("courses")){ + JSONArray coursesArray = json.getJSONArray("courses"); + for(int i=0, size = coursesArray.length(); i uploadsCourses) { - retrievedCourse = normalizeGreekNumbers(retrievedCourse); - UploadsCourse uploadsCourse = uploadsCourses.get(retrievedCourse); - if (uploadsCourse != null) return uploadsCourse; - String foundKey = null; - for (Map.Entry entry : uploadsCourses.entrySet()) { - String key = entry.getKey(); - if ((key.contains(retrievedCourse) || retrievedCourse.contains(key)) - && (foundKey == null || key.length() > foundKey.length())) - foundKey = key; + if(json.has("categories")){ + JSONArray categoriesArray = json.getJSONArray("categories"); + for(int i=0, size = categoriesArray.length(); i uploadsCoursesMap = new HashMap<>(); + uploadsCoursesMap.put(firebaseConfigUploadsCoursesKey, uploadsCourses); + + firebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); + FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() + .setMinimumFetchIntervalInSeconds(3600) + .build(); + firebaseRemoteConfig.setConfigSettingsAsync(configSettings); + firebaseRemoteConfig.setDefaultsAsync(uploadsCoursesMap); + firebaseRemoteConfig.fetchAndActivate() + .addOnCompleteListener(this, task -> { + if (task.isSuccessful()) { + boolean updated = task.getResult(); + Timber.i("Firebase remote config params updated: %s", updated); + } else + Timber.e("Fetching Firebase remote config params failed!"); + }); } private void initOkHttp(PersistentCookieJar cookieJar) { @@ -247,4 +277,10 @@ public class BaseApplication extends Application { public static String getFirebaseProjectId() { return firebaseProjectId; } + + // Implement Executor (for Firebase remote config) + @Override + public void execute(Runnable runnable) { + runnable.run(); + } } diff --git a/app/src/main/java/gr/thmmy/mthmmy/utils/io/ResourceUtils.java b/app/src/main/java/gr/thmmy/mthmmy/utils/io/ResourceUtils.java new file mode 100644 index 00000000..479d288e --- /dev/null +++ b/app/src/main/java/gr/thmmy/mthmmy/utils/io/ResourceUtils.java @@ -0,0 +1,46 @@ +package gr.thmmy.mthmmy.utils.io; + +import android.content.res.Resources; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.StringWriter; +import java.io.Writer; +import java.nio.charset.StandardCharsets; + +import timber.log.Timber; + +public class ResourceUtils { + public static String readJSONResourceToString(Resources resources, int id) { + InputStream inputStream = resources.openRawResource(id); + return readStream(inputStream); + } + + public static String readJSONResourceToString(InputStream inputStream) { + return readStream(inputStream); + } + + private static String readStream(InputStream inputStream) { + Writer writer = new StringWriter(); + try { + BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)); + String line = reader.readLine(); + while (line != null) { + writer.write(line); + line = reader.readLine(); + } + } catch (Exception e) { + Timber.e(e, "Unhandled exception while using readJSONFromResource"); + } finally { + try { + inputStream.close(); + } catch (Exception e) { + Timber.e(e, "Unhandled exception while using readJSONFromResource"); + } + } + + return writer.toString(); + } +} + diff --git a/app/src/main/res/raw/uploads_courses.json b/app/src/main/res/raw/uploads_courses.json new file mode 100644 index 00000000..7f04e34e --- /dev/null +++ b/app/src/main/res/raw/uploads_courses.json @@ -0,0 +1,1702 @@ +{ + "categories": [ + { + "id": "3508", + "name": "Βασικός Κύκλος", + "categories": [ + { + "id": "3509", + "name": "1ο Εξάμηνο", + "courses": [ + { + "id": "27", + "name": "Γραμμική Άλγεβρα", + "minified": "Γραμμική Άλγεβρα", + "greeklish": "Grammiki_Algevra" + }, + { + "id": "33", + "name": "Δομημένος Προγραμματισμός", + "minified": "Δομημένος Προγραμματισμός", + "greeklish": "Struct_Programming" + }, + { + "id": "3476", + "name": "Λογική Σχεδίαση", + "minified": "Λογική Σχεδίαση", + "greeklish": "Logiki_Sxediasi" + }, + { + "id": "28", + "name": "Λογισμός I", + "minified": "Λογισμός I", + "greeklish": "Logismos_I" + }, + { + "id": "32", + "name": "Τεχνικές Σχεδίασης με Η/Υ", + "minified": "Τεχνικές Σχεδίασης με Η/Υ", + "greeklish": "Sxedio" + }, + { + "id": "29", + "name": "Φυσική I", + "minified": "Φυσική I", + "greeklish": "Fysiki_I" + } + ] + }, + { + "id": "3510", + "name": "2ο Εξάμηνο", + "courses": [ + { + "id": "3672", + "name": "Αντικειμενοστραφής Προγραμματισμός", + "minified": "Αντικειμενοστραφής Προγραμματισμός", + "greeklish": "OOP" + }, + { + "id": "38", + "name": "Εφαρμοσμένη Θερμοδυναμική", + "minified": "Εφαρμοσμένη Θερμοδυναμική", + "greeklish": "Thermodynamiki" + }, + { + "id": "34", + "name": "Ηλεκτρικά Κυκλώματα I", + "minified": "Ηλεκτρικά Κυκλώματα I", + "greeklish": "Kyklomata_I" + }, + { + "id": "43", + "name": "Ηλεκτρολογικά Υλικά", + "minified": "Ηλεκτρολογικά Υλικά", + "greeklish": "Hlektrologika_Ylika" + }, + { + "id": "36", + "name": "Λογισμός II", + "minified": "Λογισμός II", + "greeklish": "Logismos_II" + }, + { + "id": "3695", + "name": "Οργάνωση Υπολογιστών", + "minified": "Οργάνωση Υπολογιστών", + "greeklish": "Organosi_Ypologiston" + } + ] + }, + { + "id": "3511", + "name": "3ο Εξάμηνο", + "courses": [ + { + "id": "58", + "name": "Δομές Δεδομένων", + "minified": "Δομές Δεδομένων", + "greeklish": "Data_Structures" + }, + { + "id": "3880", + "name": "Εφαρμοσμένα Μαθηματικά I", + "minified": "Εφαρμοσμένα Μαθηματικά I", + "greeklish": "Efarmosmena_Math_I" + }, + { + "id": "41", + "name": "Ηλεκτρικά Κυκλώματα II", + "minified": "Ηλεκτρικά Κυκλώματα II", + "greeklish": "Kyklomata_II" + }, + { + "id": "3882", + "name": "Ηλεκτρομαγνητικό Πεδίο I", + "minified": "Ηλεκτρομαγνητικό Πεδίο I", + "greeklish": "EMF_I" + }, + { + "id": "40", + "name": "Ηλεκτρονική I", + "minified": "Ηλεκτρονική I", + "greeklish": "Electronics_I" + } + ] + }, + { + "id": "3512", + "name": "4ο Εξάμηνο", + "courses": [ + { + "id": "49", + "name": "Αριθμητική Ανάλυση", + "minified": "Αριθμητική Ανάλυση", + "greeklish": "Numerical_Analysis" + }, + { + "id": "72", + "name": "Διακριτά Μαθηματικά", + "minified": "Διακριτά Μαθηματικά", + "greeklish": "Diakrita" + }, + { + "id": "4107", + "name": "Ηλεκτρομαγνητικό Πεδίο II", + "minified": "Ηλεκτρομαγνητικό Πεδίο II", + "greeklish": "EMF_II" + }, + { + "id": "55", + "name": "Ηλεκτρονική II", + "minified": "Ηλεκτρονική II", + "greeklish": "Electronics_II" + }, + { + "id": "4108", + "name": "Θεωρία Πιθανοτήτων και Στατιστική", + "minified": "Θεωρία Πιθανοτήτων και Στατιστική", + "greeklish": "Prob_stat" + }, + { + "id": "4111", + "name": "Σήματα και Συστήματα", + "minified": "Σήματα και Συστήματα", + "greeklish": "Signals_and_Systems" + } + ] + }, + { + "id": "3513", + "name": "5ο Εξάμηνο", + "courses": [ + { + "id": "51", + "name": "Στοχαστικά Σήματα και Διαδικασίες (πρώην Στοχαστικό Σήμα)", + "minified": "Στοχαστικά Σήματα και Διαδικασίες", + "greeklish": "Stochastic" + }, + { + "id": "60", + "name": "Συστήματα Αυτομάτου Ελέγχου I", + "minified": "ΣΑΕ I", + "greeklish": "SAE_I" + }, + { + "id": "4424", + "name": "Συστήματα Ηλεκτρικής Ενέργειας I", + "minified": "ΣΗΕ I", + "greeklish": "SHE_I" + }, + { + "id": "4423", + "name": "Συστήματα Μετρήσεων", + "minified": "Συστήματα Μετρήσεων", + "greeklish": "Systimata_Metrisewn" + }, + { + "id": "59", + "name": "Τηλεπικοινωνιακά Συστήματα Ι (πρώην Αναλογικές Τηλεπικοινωνίες)", + "minified": "Τηλεπικοινωνιακά Συστήματα I", + "greeklish": "Tilepikoinoniaka_I" + } + ] + }, + { + "id": "3514", + "name": "6ο Εξάμηνο", + "categories": [ + { + "id": "4519", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "710", + "name": "Συστήματα Αυτομάτου Ελέγχου II", + "minified": "ΣΑΕ II", + "greeklish": "SAE_II" + }, + { + "id": "4556", + "name": "Συστήματα Ηλεκτρικής Ενέργειας II", + "minified": "ΣΗΕ II", + "greeklish": "SHE_II" + }, + { + "id": "76", + "name": "Τηλεπικοινωνιακά Συστήματα II (πρώην Ψηφιακές Τηλεπικοινωνίες I)", + "minified": "Τηλεπικοινωνιακά Συστήματα II", + "greeklish": "Tilepikoinoniaka_II" + } + ] + }, + { + "id": "4520", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "79", + "name": "Ανάλυση και Σχεδίαση Αλγορίθμων", + "minified": "Ανάλυση και Σχεδίαση Αλγορίθμων", + "greeklish": "Algorithms" + }, + { + "id": "4554", + "name": "Διατάξεις Υψηλών Συχνοτήτων", + "minified": "Διατάξεις Υψηλών Συχνοτήτων", + "greeklish": "DYS" + }, + { + "id": "90", + "name": "Δίκτυα Υπολογιστών I", + "minified": "Δίκτυα Υπολογιστών I", + "greeklish": "Diktya_I" + }, + { + "id": "4555", + "name": "Ηλεκτρικές Μηχανές I", + "minified": "Ηλεκτρικές Μηχανές I", + "greeklish": "Mixanes_I" + } + ] + } + ] + } + ] + }, + { + "id": "5", + "name": "Τομέας Ηλεκτρικής Ενέργειας", + "categories": [ + { + "id": "18", + "name": "6ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "709", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "4901", + "name": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας [ΠΠΣ]", + "minified": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας", + "greeklish": "Intro_Pyrhnikh_Texnologia" + }, + { + "id": "5106", + "name": "Επιχειρησιακή Έρευνα [ΠΠΣ]", + "minified": "Επιχειρησιακή Έρευνα", + "greeklish": "Operational_Research" + }, + { + "id": "4900", + "name": "Ημιαγωγά Υλικά: Θεωρία - Διατάξεις [ΠΠΣ]", + "minified": "Ημιαγωγά Υλικά", + "greeklish": "Imiagoga_Ylika" + } + ] + }, + { + "id": "708", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "4899", + "name": "Μετάδοση Θερμότητας [ΠΠΣ]", + "minified": "Μετάδοση Θερμότητας", + "greeklish": "Metadosi_Thermothtas" + }, + { + "id": "63", + "name": "Συστήματα Ηλεκτρικής Ενέργειας I [ΠΠΣ]", + "minified": "ΣΗΕ I", + "greeklish": "SHE_I" + }, + { + "id": "4898", + "name": "Υψηλές Τάσεις I [ΠΠΣ]", + "minified": "Υψηλές Τάσεις I", + "greeklish": "Ypsiles_I" + } + ] + } + ] + }, + { + "id": "19", + "name": "7ο εξάμηνο", + "categories": [ + { + "id": "4894", + "name": "7ο Εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "987", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5536", + "name": "Θεωρία και Τεχνολογία Πυρηνικών Αντιδραστήρων [ΠΠΣ]", + "minified": "ΘΤΠΑ", + "greeklish": "Theoria_Texnologia_Pyrhnikwn_Antidrasthrwn" + }, + { + "id": "5537", + "name": "Τεχνολογία Ηλεκτροτεχνικών Υλικών [ΠΠΣ]", + "minified": "Τεχνολογία Ηλεκτροτεχνικών Υλικών", + "greeklish": "Texnologia_Ilektrotexnikwn_Ylikwn" + } + ] + }, + { + "id": "986", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "64", + "name": "Ηλεκτρικές Μηχανές Α\\' [ΠΠΣ]", + "minified": "Ηλεκτρικές Μηχανές Α\\'", + "greeklish": "Mixanes_A" + }, + { + "id": "5535", + "name": "Σταθμοί Παραγωγής Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΣΠΗΕ", + "greeklish": "SPHE" + }, + { + "id": "84", + "name": "Συστήματα Ηλεκτρικής Ενέργειας II [ΠΠΣ]", + "minified": "ΣΗΕ II", + "greeklish": "SHE_II" + }, + { + "id": "5525", + "name": "Υψηλές Τάσεις II [ΠΠΣ]", + "minified": "Υψηλές Τάσεις II", + "greeklish": "Ypsiles_II" + } + ] + } + ] + } + ], + "courses": [ + { + "id": "109", + "name": "Ανάλυση Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "ΑΣΗΕ", + "greeklish": "ASHE" + }, + { + "id": "706", + "name": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας", + "minified": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας", + "greeklish": "Intro_Pyrhnikh_Texnologia" + }, + { + "id": "4897", + "name": "Ηλεκτρικές Μηχανές II", + "minified": "Ηλεκτρικές Μηχανές II", + "greeklish": "Mixanes_II" + }, + { + "id": "107", + "name": "Ηλεκτρονικά Ισχύος I", + "minified": "Ηλεκτρονικά Ισχύος I", + "greeklish": "Isxyos_I" + }, + { + "id": "707", + "name": "Ημιαγωγά Υλικά: Θεωρία - Διατάξεις", + "minified": "Ημιαγωγά Υλικά", + "greeklish": "Imiagoga_Ylika" + }, + { + "id": "65", + "name": "Μετάδοση Θερμότητας", + "minified": "Μετάδοση Θερμότητας", + "greeklish": "Metadosi_Thermothtas" + }, + { + "id": "4895", + "name": "Μεταφορά και Διανομή Ηλεκτρικής Ενέργειας", + "minified": "Μεταφορά και Διανομή Ηλεκτρικής Ενέργειας", + "greeklish": "MDHE" + }, + { + "id": "66", + "name": "Υψηλές Τάσεις I", + "minified": "Υψηλές Τάσεις I", + "greeklish": "Ypsiles_I" + } + ] + }, + { + "id": "20", + "name": "8ο εξάμηνο", + "categories": [ + { + "id": "990", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5538", + "name": "Αρχές Οικονομίας [ΠΠΣ]", + "minified": "Αρχές Οικονομίας", + "greeklish": "Arxes_Oikonomias" + }, + { + "id": "5530", + "name": "Διανεμημένη Παραγωγή [ΠΠΣ]", + "minified": "Διανεμημένη Παραγωγή", + "greeklish": "Dianemimeni_Paragogi" + }, + { + "id": "5529", + "name": "Διαχείριση Συστημάτων Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΔΣΗΕ", + "greeklish": "DSHE" + }, + { + "id": "5533", + "name": "Υψηλές Τάσεις III [ΠΠΣ]", + "minified": "Υψηλές Τάσεις III", + "greeklish": "Ypsiles_III" + } + ] + }, + { + "id": "991", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "4896", + "name": "Ανάλυση Συστημάτων Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΑΣΗΕ", + "greeklish": "ASHE" + }, + { + "id": "85", + "name": "Ηλεκτρικές Μηχανές Β\\' [ΠΠΣ]", + "minified": "Ηλεκτρικές Μηχανές Β\\'", + "greeklish": "Mixanes_B" + }, + { + "id": "4902", + "name": "Ηλεκτρονικά Ισχύος I [ΠΠΣ]", + "minified": "Ηλεκτρονικά Ισχύος I", + "greeklish": "Isxyos_I" + }, + { + "id": "5528", + "name": "Συστήματα Ηλεκτρικής Ενέργειας III [ΠΠΣ]", + "minified": "ΣΗΕ III", + "greeklish": "SHE_III" + } + ] + } + ], + "courses": [ + { + "id": "2695", + "name": "Αρχές Οικονομίας", + "minified": "Αρχές Οικονομίας", + "greeklish": "Arxes_Oikonomias" + }, + { + "id": "1742", + "name": "Διανεμημένη Παραγωγή", + "minified": "Διανεμημένη Παραγωγή", + "greeklish": "Dianemimeni_Paragogi" + }, + { + "id": "136", + "name": "Διαχείριση Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "ΔΣΗΕ", + "greeklish": "DSHE" + }, + { + "id": "108", + "name": "Δυναμική Συμπεριφορά Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "Δυναμική Συμπεριφορά Συστημάτων Ηλεκτρικής Ενέργειας", + "greeklish": "DSSHE" + }, + { + "id": "133", + "name": "Ηλεκτρονικά Ισχύος II", + "minified": "Ηλεκτρονικά Ισχύος II", + "greeklish": "Isxyos_II" + }, + { + "id": "87", + "name": "Θεωρία και Τεχνολογία Πυρηνικών Αντιδραστήρων", + "minified": "ΘΤΠΑ", + "greeklish": "Theoria_Texnologia_Pyrhnikwn_Antidrasthrwn" + }, + { + "id": "86", + "name": "Σταθμοί Παραγωγής Ηλεκτρικής Ενέργειας", + "minified": "ΣΠΗΕ", + "greeklish": "SPHE" + }, + { + "id": "106", + "name": "Σύγχρονες Μηχανές", + "minified": "Σύγχρονες Μηχανές", + "greeklish": "Sygxrones_Mixanes" + }, + { + "id": "134", + "name": "Συστήματα Αντικεραυνικής Προστασίας και Γειώσεων", + "minified": "ΣΑΠΓ", + "greeklish": "SAPG" + }, + { + "id": "110", + "name": "Τεχνολογία Ηλεκτροτεχνικών Υλικών", + "minified": "Τεχνολογία Ηλεκτροτεχνικών Υλικών", + "greeklish": "Texnologia_Ilektrotexnikwn_Ylikwn" + }, + { + "id": "88", + "name": "Υψηλές Τάσεις II", + "minified": "Υψηλές Τάσεις II", + "greeklish": "Ypsiles_II" + } + ] + }, + { + "id": "21", + "name": "9ο εξάμηνο", + "categories": [ + { + "id": "5527", + "name": "9ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "2027", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5544", + "name": "Οργάνωση και Διοίκηση Εργοστασίων [ΠΠΣ]", + "minified": "ΟΔΕ", + "greeklish": "ODE" + }, + { + "id": "5543", + "name": "Σερβοκινητήρια Συστήματα [ΠΠΣ]", + "minified": "Σερβοκινητήρια Συστήματα", + "greeklish": "Servomotor Systems" + }, + { + "id": "5545", + "name": "Συστήματα Ηλεκτροκίνησης [ΠΠΣ]", + "minified": "Συστήματα Ηλεκτροκίνησης", + "greeklish": "Systems_Ilektrokinisis" + }, + { + "id": "5542", + "name": "Υπολογιστικές Μέθοδοι στα Ενεργειακά Συστήματα [ΠΠΣ]", + "minified": "ΥΜΕΣ", + "greeklish": "YMES" + }, + { + "id": "5541", + "name": "Υψηλές Τάσεις 4 [ΠΠΣ]", + "minified": "Υψηλές 4", + "greeklish": "Ypsiles_IV" + } + ] + }, + { + "id": "2028", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "5539", + "name": "Ειδικά Κεφάλαια Συστημάτων Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΕΚΣΗΕ", + "greeklish": "EKSHE" + }, + { + "id": "5531", + "name": "Ηλεκτρικές Μηχανές Γ\\' [ΠΠΣ]", + "minified": "Ηλεκτρικές Μηχανές Γ\\'", + "greeklish": "Mixanes_C" + }, + { + "id": "5540", + "name": "Ηλεκτρική Οικονομία [ΠΠΣ]", + "minified": "Ηλεκτρική Οικονομία", + "greeklish": "Electric_Economy" + }, + { + "id": "5532", + "name": "Ηλεκτρονικά Ισχύος II [ΠΠΣ]", + "minified": "Ηλεκτρονικά Ισχύος II", + "greeklish": "Isxyos_II" + } + ] + } + ] + } + ], + "courses": [ + { + "id": "132", + "name": "Ειδικά Κεφάλαια Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "ΕΚΣΗΕ", + "greeklish": "EKSHE" + }, + { + "id": "135", + "name": "Ηλεκτρική Οικονομία", + "minified": "Ηλεκτρική Οικονομία", + "greeklish": "Electric_Economy" + }, + { + "id": "2033", + "name": "Οργάνωση και Διοίκηση Εργοστασίων", + "minified": "ΟΔΕ", + "greeklish": "ODE" + }, + { + "id": "2031", + "name": "Σερβοκινητήρια Συστήματα", + "minified": "Σερβοκινητήρια Συστήματα", + "greeklish": "Servomotor_Systems" + }, + { + "id": "5546", + "name": "Σύγχρονα Ενεργειακά Συστήματα", + "minified": "Σύγχρονα Ενεργειακά Συστήματα", + "greeklish": "SES" + }, + { + "id": "2029", + "name": "Συντονισμός Μονώσεων - Προστασία έναντι Υπερτάσεων", + "minified": "Συντονισμός Μονώσεων - Προστασία έναντι Υπερτάσεων", + "greeklish": "SMPEY" + }, + { + "id": "2032", + "name": "Συστήματα Ηλεκτροκίνησης", + "minified": "Συστήματα Ηλεκτροκίνησης", + "greeklish": "Systems_Ilektrokinisis" + }, + { + "id": "2030", + "name": "Υπολογιστικές Μέθοδοι στα Ενεργειακά Συστήματα", + "minified": "ΥΜΕΣ", + "greeklish": "YMES" + } + ] + } + ] + }, + { + "id": "4", + "name": "Τομέας Ηλεκτρονικής και Η/Υ", + "categories": [ + { + "id": "14", + "name": "6ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "713", + "name": "Μαθήματα Επιλογης [ΠΠΣ]", + "courses": [ + { + "id": "5372", + "name": "Κβαντική Φυσική [ΠΠΣ]", + "minified": "Κβαντική Φυσική", + "greeklish": "Quantum_Physics" + }, + { + "id": "5105", + "name": "Ρομποτική [ΠΠΣ]", + "minified": "Ρομποτική", + "greeklish": "Robotics" + }, + { + "id": "4951", + "name": "Τεχνικές Βελτιστοποίησης [ΠΠΣ]", + "minified": "Τεχνικές Βελτιστοποίησης", + "greeklish": "Optimization_Techniques" + } + ] + }, + { + "id": "712", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "68", + "name": "Ηλεκτρικές Μετρήσεις II [ΠΠΣ]", + "minified": "Ηλεκτρικές Μετρήσεις II", + "greeklish": "Metriseis_II" + }, + { + "id": "4952", + "name": "Ηλεκτρονική III [ΠΠΣ]", + "minified": "Ηλεκτρονική III", + "greeklish": "Electronics_III" + }, + { + "id": "71", + "name": "Ψηφιακά Συστήματα II [ΠΠΣ]", + "minified": "Ψηφιακά Συστήματα II", + "greeklish": "Psifiaka_II" + } + ] + } + ] + }, + { + "id": "15", + "name": "7ο εξάμηνο", + "categories": [ + { + "id": "4943", + "name": "7ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "4943", + "name": "7ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "985", + "name": "Μαθήματα Επιλογης [ΠΠΣ]", + "courses": [ + { + "id": "5108", + "name": "Προγραμματιζόμενα Κυκλώματα ASIC [ΠΠΣ]", + "minified": "ASIC", + "greeklish": "ASIC" + }, + { + "id": "5107", + "name": "Προσομοίωση και Μοντελοποίηση Συστημάτων [ΠΠΣ]", + "minified": "Προσομοίωση και Μοντελοποίηση Συστημάτων", + "greeklish": "Montelopoiisi" + } + ] + }, + { + "id": "984", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "91", + "name": "Συστήματα Μικροϋπολογιστών [ΠΠΣ]", + "minified": "Συστήματα Μικροϋπολογιστών", + "greeklish": "Mikro_I" + } + ] + } + ] + } + ] + } + ], + "courses": [ + { + "id": "4944", + "name": "Ανάλυση Δεδομένων", + "minified": "Ανάλυση Δεδομένων", + "greeklish": "Data_Analysis" + }, + { + "id": "4947", + "name": "Αρχιτεκτονική Προηγμένων Υπολογιστών", + "minified": "Αρχιτεκτονική Προηγμένων Υπολογιστών", + "greeklish": "Comp_Advanced_Architecture" + }, + { + "id": "115", + "name": "Δίκτυα Υπολογιστών II", + "minified": "Δίκτυα Υπολογιστών II", + "greeklish": "Diktya_II" + }, + { + "id": "69", + "name": "Ηλεκτρονική III", + "minified": "Ηλεκτρονική III", + "greeklish": "Electronics_III" + }, + { + "id": "4945", + "name": "Θεωρία Δικτύων", + "minified": "Θεωρία Δικτύων", + "greeklish": "Network_Theory" + }, + { + "id": "94", + "name": "Θεωρία Υπολογισμών και Αλγορίθμων", + "minified": "ΘΥΑ", + "greeklish": "THYA" + }, + { + "id": "95", + "name": "Λειτουργικά Συστήματα", + "minified": "Λειτουργικά Συστήματα", + "greeklish": "OS" + }, + { + "id": "2081", + "name": "Παράλληλα και Διανεμημένα Συστήματα", + "minified": "Παράλληλα και Διανεμημένα Συστήματα", + "greeklish": "Parallel_and_Distributed_Systems" + }, + { + "id": "97", + "name": "Σύνθεση Ενεργών Φίλτρων (πρώην Σύνθεση Ενεργών και Παθητικών Κυκλωμάτων)", + "minified": "Σύνθεση Ενεργών Φίλτρων", + "greeklish": "Synthesi_Energwn_Filtrwn" + }, + { + "id": "140", + "name": "Συστήματα Αυτομάτου Ελέγχου III", + "minified": "ΣΑΕ III", + "greeklish": "SAE_III" + }, + { + "id": "80", + "name": "Τεχνικές Βελτιστοποίησης", + "minified": "Τεχνικές Βελτιστοποίησης", + "greeklish": "Optimization_Techniques" + }, + { + "id": "96", + "name": "Χρονοσειρές (πρώην Ανάλυση Χρονοσειρών)", + "minified": "Χρονοσειρές", + "greeklish": "Timeseries" + }, + { + "id": "4946", + "name": "Ψηφιακά Συστήματα HW σε Χαμηλά Επίπεδα Λογικής I", + "minified": "Ψηφιακά HW I", + "greeklish": "Psifiaka_HWI" + } + ] + }, + { + "id": "16", + "name": "8ο εξάμηνο", + "categories": [ + { + "id": "5099", + "name": "8ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "992", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5100", + "name": "Ασαφή Συστήματα [ΠΠΣ]", + "minified": "Ασαφή Συστήματα", + "greeklish": "Fuzzy_Systems" + }, + { + "id": "113", + "name": "Ηλεκτρονικές Διατάξεις και Μετρήσεις [ΠΠΣ]", + "minified": "Ηλεκτρονικές Διατάξεις και Μετρήσεις", + "greeklish": "Ilektronikes_Diatakseis_Metriseis" + }, + { + "id": "93", + "name": "Ψηφιακά Συστήματα III [ΠΠΣ]", + "minified": "Ψηφιακά Συστήματα III", + "greeklish": "Psifiaka_III" + } + ] + }, + { + "id": "993", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "4950", + "name": "Δίκτυα Υπολογιστών II [ΠΠΣ]", + "minified": "Δίκτυα Υπολογιστών II", + "greeklish": "Diktya_II" + }, + { + "id": "112", + "name": "Ψηφιακά Φίλτρα [ΠΠΣ]", + "minified": "Ψηφιακά Φίλτρα", + "greeklish": "Psifiaka_Filtra" + } + ] + } + ] + } + ], + "courses": [ + { + "id": "120", + "name": "Γραφική με Υπολογιστές", + "minified": "Γραφική με Υπολογιστές", + "greeklish": "Computer_Graphics" + }, + { + "id": "2082", + "name": "Ενσωματωμένα Συστήματα Πραγματικού Χρόνου", + "minified": "Ενσωματωμένα Συστήματα Πραγματικού Χρόνου", + "greeklish": "Enswmatwmena" + }, + { + "id": "67", + "name": "Επιχειρησιακή Έρευνα", + "minified": "Επιχειρησιακή Έρευνα", + "greeklish": "Operational_Research" + }, + { + "id": "5101", + "name": "Εφαρμοσμένος Αυτόματος Έλεγχος", + "minified": "Εφαρμοσμένος Αυτόματος Έλεγχος", + "greeklish": "EAE" + }, + { + "id": "5103", + "name": "Θεωρία Εκτίμησης και Ανίχνευση", + "minified": "Θεωρία Εκτίμησης και Ανίχνευση", + "greeklish": "THEA" + }, + { + "id": "5102", + "name": "Θεωρία Παιγνίων", + "minified": "Θεωρία Παιγνίων", + "greeklish": "Game_Theory" + }, + { + "id": "111", + "name": "Μικροεπεξεργαστές και Περιφερειακά", + "minified": "[Μικροεπεξεργαστές και Περιφερειακά]", + "greeklish": "Mikro_II" + }, + { + "id": "486", + "name": "Προγραμματιζόμενα Κυκλώματα FPGA-ASIC", + "minified": "FPGA-ASIC", + "greeklish": "FPGA-ASIC" + }, + { + "id": "469", + "name": "Προσομοίωση και Μοντελοποίηση Δυναμικών Συστημάτων", + "minified": "Προσομοίωση και Μοντελοποίηση Δυναμικών Συστημάτων", + "greeklish": "Simulation_Modeling" + }, + { + "id": "114", + "name": "Ρομποτική", + "minified": "Ρομποτική", + "greeklish": "Robotics" + }, + { + "id": "116", + "name": "Τεχνολογία Λογισμικού", + "minified": "Τεχνολογία Λογισμικού", + "greeklish": "Texnologia_Logismikou" + }, + { + "id": "117", + "name": "Τηλεπικοινωνιακή Ηλεκτρονική", + "minified": "Τηλεπικοινωνιακή Ηλεκτρονική", + "greeklish": "Telecommunications_Electronics" + }, + { + "id": "119", + "name": "Υπολογιστική Νοημοσύνη", + "minified": "Υπολογιστική Νοημοσύνη", + "greeklish": "Computational_Intelligence" + }, + { + "id": "5104", + "name": "Ψηφιακά Συστήματα HW σε Χαμηλά Επίπεδα Λογικής II", + "minified": "Ψηφιακά HW II", + "greeklish": "Psifiaka_HWII" + }, + { + "id": "139", + "name": "Ψηφιακή Επεξεργασία Εικόνας", + "minified": "Ψηφιακή Επεξεργασία Εικόνας", + "greeklish": "DIP" + } + ] + }, + { + "id": "17", + "name": "9ο εξάμηνο", + "categories": [ + { + "id": "5549", + "name": "9ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "137", + "name": "Ανάλυση Ηλεκτρικών Κυκλωμάτων με Υπολογιστή [ΠΠΣ]", + "minified": "Ανάλυση Ηλεκτρικών Κυκλωμάτων με Υπολογιστή", + "greeklish": "Computer_Analysis_Electronics_Circuits" + }, + { + "id": "2083", + "name": "Αρχές Παράλληλης Επεξεργασίας [ΠΠΣ]", + "minified": "Αρχές Παράλληλης Επεξεργασίας", + "greeklish": "Arxes_Parallilis_Epeksergasias" + }, + { + "id": "148", + "name": "Βιομηχανικά Ηλεκτρονικά [ΠΠΣ]", + "minified": "Βιομηχανικά Ηλεκτρονικά", + "greeklish": "Viomixanika_Ilektronika" + }, + { + "id": "145", + "name": "Ειδικές Αρχιτεκτονικές Υπολογιστών [ΠΠΣ]", + "minified": "Ειδικές Αρχιτεκτονικές Υπολογιστών", + "greeklish": "Eidikes_Arxitektonikes_Ypologiston" + }, + { + "id": "141", + "name": "Ευφυή Συστήματα Ρομπότ [ΠΠΣ]", + "minified": "Ευφυή Συστήματα Ρομπότ", + "greeklish": "Intelligence_Robotics_System" + } + ] + } + ], + "courses": [ + { + "id": "118", + "name": "Αναγνώριση Προτύπων", + "minified": "Αναγνώριση Προτύπων", + "greeklish": "Pattern_Recognition" + }, + { + "id": "138", + "name": "Αξιοπιστία Συστημάτων", + "minified": "Αξιοπιστία Συστημάτων", + "greeklish": "Aksiopistia_Systimaton" + }, + { + "id": "146", + "name": "Ασφάλεια Πληροφοριακών Συστημάτων", + "minified": "Ασφάλεια Πληροφοριακών Συστημάτων", + "greeklish": "Asfaleia" + }, + { + "id": "5553", + "name": "Ασφαλής Ανάκτηση και Ανάλυση Ψηφ. Δεδομένων-Ψηφ. Εγκληματολογία", + "minified": "Ψηφιακή Εγκληματολογία", + "greeklish": "Psifiaki_Eglimatologia" + }, + { + "id": "142", + "name": "Βάσεις Δεδομένων", + "minified": "Βάσεις Δεδομένων", + "greeklish": "Data_Structures" + }, + { + "id": "143", + "name": "Βιομηχανική Πληροφορική", + "minified": "Βιομηχανική Πληροφορική", + "greeklish": "Viomixaniki_Pliroforiki" + }, + { + "id": "5477", + "name": "Ευφυή και Προσαρμοστικά Συστήματα Αυτομάτου Ελέγχου", + "minified": "Ευφυή και Προσαρμοστικά ΣΑΕ", + "greeklish": "EPSAE" + }, + { + "id": "147", + "name": "Συστήματα Πολυμέσων", + "minified": "Συστήματα Πολυμέσων", + "greeklish": "Multimedia_Systems" + }, + { + "id": "144", + "name": "Σχεδίαση Συστημάτων VLSI", + "minified": "VLSI", + "greeklish": "VLSI" + }, + { + "id": "5552", + "name": "Σχεδίαση Συστημάτων Υλικού-Λογισμικού", + "minified": "Σχεδίαση Συστημάτων Υλικού-Λογισμικού", + "greeklish": "Hardware_Software_System_Design" + }, + { + "id": "5478", + "name": "Ψηφιακά Ολοκληρωμένα Κυκλώματα VLSI-ASIC Μεγάλης Κλίμακας", + "minified": "[Ψηφιακά Ολοκληρωμένα Κυκλώματα VLSI-ASIC]", + "greeklish": "VLSI_ASIC" + } + ] + } + ] + }, + { + "id": "6", + "name": "Τομέας Τηλεπικοινωνιών", + "categories": [ + { + "id": "26", + "name": "6ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "715", + "name": "Μαθήματα Επιλογης [ΠΠΣ]", + "courses": [ + { + "id": "128", + "name": "Ακουστική I [ΠΠΣ]", + "minified": "Ακουστική I", + "greeklish": "Akoustiki_I" + }, + { + "id": "4915", + "name": "Εφαρμοσμένα Μαθηματικά II [ΠΠΣ]", + "minified": "Εφαρμοσμένα Μαθηματικά II", + "greeklish": "Efarmosmena_Math_II" + }, + { + "id": "4916", + "name": "Ηλεκτρακουστική I [ΠΠΣ]", + "minified": "Ηλεκτρακουστική I", + "greeklish": "Ilektrakoustiki_I" + }, + { + "id": "102", + "name": "Οπτική I [ΠΠΣ]", + "minified": "Οπτική I", + "greeklish": "Optiki_I" + } + ] + }, + { + "id": "714", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "73", + "name": "Διάδοση Ηλεκτρομαγνητικού Κύματος II [ΠΠΣ]", + "minified": "Διάδοση Ηλεκτρομαγνητικού Κύματος II", + "greeklish": "Diadosi_II" + } + ] + } + ] + }, + { + "id": "23", + "name": "7ο εξάμηνο", + "categories": [ + { + "id": "4905", + "name": "7ο Εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "988", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "152", + "name": "Ακουστική II [ΠΠΣ]", + "minified": "Ακουστική II", + "greeklish": "Akoustiki_II" + }, + { + "id": "4914", + "name": "Βιοϊατρική Τεχνολογία [ΠΠΣ]", + "minified": "Βιοϊατρική Τεχνολογία", + "greeklish": "Vioiatriki" + }, + { + "id": "2021", + "name": "Ειδικά Κεφάλαια Διαφορικών Εξισώσεων [ΠΠΣ]", + "minified": "Ειδικά Κεφάλαια Διαφορικών Εξισώσεων", + "greeklish": "Eidika_Kef_Diaf_Eksis" + }, + { + "id": "103", + "name": "Ειδικά Κεφάλαια Ηλεκτρομαγνητικού Πεδίου I [ΠΠΣ]", + "minified": "Ειδικά Κεφάλαια Ηλεκτρομαγνητικού Πεδίου I", + "greeklish": "Eidika_Kef_HM_Pediou_I" + }, + { + "id": "5164", + "name": "Ηλεκτρακουστική II [ΠΠΣ]", + "minified": "Ηλεκτρακουστική II", + "greeklish": "Ilektrakoustiki_II" + }, + { + "id": "129", + "name": "Οπτική II [ΠΠΣ]", + "minified": "Οπτική II", + "greeklish": "Optiki_II" + } + ] + }, + { + "id": "989", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "100", + "name": "Ασύρματος Τηλεπικοινωνία I [ΠΠΣ]", + "minified": "Ασύρματος Τηλεπικοινωνία I", + "greeklish": "Asyrmatos_I" + }, + { + "id": "98", + "name": "Μικροκύματα I [ΠΠΣ]", + "minified": "Μικροκύματα I", + "greeklish": "Mikrokymata_I" + }, + { + "id": "4908", + "name": "Ψηφιακές Τηλεπικοινωνίες II [ΠΠΣ]", + "minified": "Ψηφιακές Τηλεπικοινωνίες II", + "greeklish": "Psifiakes_Tilepikoinonies_II" + }, + { + "id": "4907", + "name": "Ψηφιακή Επεξεργασία Σήματος [ΠΠΣ]", + "minified": "Ψηφιακή Επεξεργασία Σήματος", + "greeklish": "DSP" + } + ] + } + ] + }, + { + "id": "4910", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "4912", + "name": "Ακουστική", + "minified": "Ακουστική", + "greeklish": "Akoustiki" + }, + { + "id": "105", + "name": "Βιοϊατρική Τεχνολογία", + "minified": "Βιοϊατρική Τεχνολογία", + "greeklish": "Vioiatriki" + }, + { + "id": "4911", + "name": "Γεωηλεκτρομαγνητισμός", + "minified": "Γεωηλεκτρομαγνητισμός", + "greeklish": "Geoilektromagnitismos" + }, + { + "id": "77", + "name": "Εφαρμοσμένα Μαθηματικά II", + "minified": "Εφαρμοσμένα Μαθηματικά II", + "greeklish": "Efarmosmena_Math_II" + }, + { + "id": "78", + "name": "Ηλεκτρακουστική I", + "minified": "Ηλεκτρακουστική I", + "greeklish": "Ilektrakoustiki_I" + }, + { + "id": "4913", + "name": "Οπτική", + "minified": "Οπτική", + "greeklish": "Optiki" + } + ] + }, + { + "id": "4906", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "4909", + "name": "Κεραίες και Διάδοση", + "minified": "Κεραίες και Διάδοση", + "greeklish": "Keraies_kai_Diadosh" + }, + { + "id": "122", + "name": "Τηλεπικοινωνιακά Συστήματα III", + "minified": "Τηλεπικοινωνιακά Συστήματα III", + "greeklish": "Tilepikoinoniaka_III" + }, + { + "id": "99", + "name": "Ψηφιακή Επεξεργασία Σήματος", + "minified": "Ψηφιακή Επεξεργασία Σήματος", + "greeklish": "DSP" + } + ] + } + ] + }, + { + "id": "24", + "name": "8ο εξάμηνο", + "categories": [ + { + "id": "5163", + "name": "8ο Εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "5556", + "name": "Ασύρματος Τηλεπικοινωνία II [ΠΠΣ]", + "minified": "Ασύρματος Τηλεπικοινωνία II", + "greeklish": "Asyrmatos_II" + } + ] + }, + { + "id": "994", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "125", + "name": "Ειδικές Κεραίες", + "minified": "Ειδικές Κεραίες", + "greeklish": "Eidikes_Keraies" + }, + { + "id": "3315", + "name": "Εισαγωγή στην Πολιτική Οικονομία", + "minified": "Εισαγωγή στην Πολιτική Οικονομία", + "greeklish": "Politiki_Oikonomia" + }, + { + "id": "997", + "name": "Εφαρμογές Τηλεπικοινωνιακών Διατάξεων", + "minified": "Εφαρμογές Τηλεπικοινωνιακών Διατάξεων", + "greeklish": "Efarmoges_Tilepikoinoniakon_Diatakseon" + }, + { + "id": "104", + "name": "Ηλεκτρακουστική II", + "minified": "Ηλεκτρακουστική II", + "greeklish": "Ilektrakoustiki_II" + }, + { + "id": "126", + "name": "Θεωρία Σκέδασης", + "minified": "Θεωρία Σκέδασης", + "greeklish": "Scattering_Theory" + }, + { + "id": "1252", + "name": "Κβαντική Φυσική", + "minified": "Κβαντική Φυσική", + "greeklish": "Quantum_Physics" + }, + { + "id": "996", + "name": "Προηγμένες Τεχνικές Επεξεργασίας Σήματος", + "minified": "ΠΤΕΣ", + "greeklish": "PTES" + }, + { + "id": "124", + "name": "Τηλεοπτικά Συστήματα", + "minified": "Τηλεοπτικά Συστήματα", + "greeklish": "Tileoptika_Systimata" + }, + { + "id": "127", + "name": "Υπολογιστικός Ηλεκτρομαγνητισμός", + "minified": "Υπολογιστικός Ηλεκτρομαγνητισμός", + "greeklish": "Computational Electromagnetism" + } + ] + }, + { + "id": "995", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "123", + "name": "Δίκτυα Τηλεπικοινωνιών", + "minified": "Δίκτυα Τηλεπικοινωνιών", + "greeklish": "Diktya_Tilepikoinonion" + }, + { + "id": "74", + "name": "Θεωρία Πληροφοριών", + "minified": "Θεωρία Πληροφοριών", + "greeklish": "Information_Theory" + }, + { + "id": "131", + "name": "Οπτικές Επικοινωνίες", + "minified": "Οπτικές Επικοινωνίες", + "greeklish": "Optikes_Epikoinwnies" + } + ] + } + ] + }, + { + "id": "25", + "name": "9ο εξάμηνο", + "categories": [ + { + "id": "5554", + "name": "9ο Εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "5999", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "154", + "name": "Γεωηλεκτρομαγνητισμός [ΠΠΣ]", + "minified": "Γεωηλεκτρομαγνητισμός", + "greeklish": "Geoilektromagnitismos" + }, + { + "id": "150", + "name": "Μικροκυματική Τηλεπισκόπηση [ΠΠΣ]", + "minified": "Μικροκυματική Τηλεπισκόπηση", + "greeklish": "MRS" + }, + { + "id": "157", + "name": "Τεχνικές Κωδικοποίησης [ΠΠΣ]", + "minified": "Τεχνικές Κωδικοποίησης", + "greeklish": "Texnikes_Kodikopoiisis" + } + ] + }, + { + "id": "6000", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "149", + "name": "Σύνθεση Τηλεπικοινωνιακών Διατάξεων [ΠΠΣ]", + "minified": "Σύνθεση Τηλεπικοινωνιακών Διατάξεων", + "greeklish": "Synthesi_Tilepikoinoniakon_Diatakseon" + } + ] + }, + { + "id": "2024", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "121", + "name": "Ειδικά Θέματα Διάδοσης και Ραδιοζεύξεων", + "minified": "Ειδικά Θέματα Διάδοσης και Ραδιοζεύξεων", + "greeklish": "Eidika_Themata_Diadosis_kai_Radiosyzeuxeon" + }, + { + "id": "1754", + "name": "Ευρυζωνικά Δίκτυα", + "minified": "Ευρυζωνικά Δίκτυα", + "greeklish": "Broadband_Networks" + }, + { + "id": "2084", + "name": "Ηλεκτρομαγνητική Συμβατότητα", + "minified": "Ηλεκτρομαγνητική Συμβατότητα", + "greeklish": "EMC" + }, + { + "id": "5555", + "name": "Κώδικες Διόρθωσης Σφαλμάτων", + "minified": "Κώδικες Διόρθωσης Σφαλμάτων", + "greeklish": "Error_Correction_Codes" + }, + { + "id": "155", + "name": "Τεχνικές μη Καταστρεπτικών Δοκιμών", + "minified": "Τεχνικές μη Καταστρεπτικών Δοκιμών", + "greeklish": "Non_Destructive_Testing_Techniques" + }, + { + "id": "1768", + "name": "Τεχνολογία Ήχου και Εικόνας: Αποθήκευση, Επεξεργασία, Μετάδοση", + "minified": "Τεχνολογία Ήχου και Εικόνας", + "greeklish": "Texnologia_Ixou_Eikonas" + }, + { + "id": "153", + "name": "Φωτονική Τεχνολογία", + "minified": "Φωτονική Τεχνολογία", + "greeklish": "Fotoniki_Texnologia" + } + ] + }, + { + "id": "2025", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "5557", + "name": "Ανάλυση και Σύνθεση Ραδιοσυστημάτων", + "minified": "Ανάλυση και Σύνθεση Ραδιοσυστημάτων", + "greeklish": "ASRS" + }, + { + "id": "307", + "name": "Ασύρματες Επικοινωνίες", + "minified": "Ασύρματες Επικοινωνίες", + "greeklish": "Asyrmates_Epikoinonies" + }, + { + "id": "151", + "name": "Μικροκυματική Τεχνολογία", + "minified": "Μικροκυματική Τεχνολογία", + "greeklish": "Microwave_Technology" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "3", + "name": "Βασικός Κύκλος [ΠΠΣ]", + "categories": [ + { + "id": "8", + "name": "1ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "30", + "name": "Συστήματα Υπολογιστών (Υπολογιστικά Συστήματα) [ΠΠΣ]", + "minified": "Συστήματα Υπολογιστών", + "greeklish": "Sys_Ypologiston" + }, + { + "id": "31", + "name": "Τεχνική Μηχανική [ΠΠΣ]", + "minified": "Τεχνική Μηχανική", + "greeklish": "Texniki_Mixaniki" + } + ] + }, + { + "id": "10", + "name": "2ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "37", + "name": "Διαφορικές Εξισώσεις [ΠΠΣ]", + "minified": "Διαφορικές Εξισώσεις", + "greeklish": "Diaforikes" + }, + { + "id": "35", + "name": "Θεωρία Πιθανοτήτων και Στατιστική [ΠΠΣ]", + "minified": "Θεωρία Πιθανοτήτων και Στατιστική", + "greeklish": "Prob_stat" + } + ] + }, + { + "id": "11", + "name": "3ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "42", + "name": "Εφαρμοσμένα Μαθηματικά I [ΠΠΣ]", + "minified": "Εφαρμοσμένα Μαθηματικά I", + "greeklish": "Efarmosmena_Math_I" + }, + { + "id": "39", + "name": "Ηλεκτρομαγνητικό Πεδίο I [ΠΠΣ]", + "minified": "Ηλεκτρομαγνητικό Πεδίο I", + "greeklish": "EMF_I" + }, + { + "id": "44", + "name": "Θεωρία Σημάτων και Γραμμικών Συστημάτων [ΠΠΣ]", + "minified": "Θεωρία Σημάτων και Γραμμικών Συστημάτων", + "greeklish": "Theory_Signals_and_Linear_Systems" + }, + { + "id": "45", + "name": "Προγραμματιστικές Τεχνικές [ΠΠΣ]", + "minified": "Προγραμματιστικές Τεχνικές", + "greeklish": "CPP" + } + ] + }, + { + "id": "12", + "name": "4ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "50", + "name": "Αρχιτεκτονική Υπολογιστών [ΠΠΣ]", + "minified": "Αρχιτεκτονική Υπολογιστών", + "greeklish": "Comp_Architecture" + }, + { + "id": "52", + "name": "Εισαγωγή στην Ενεργειακή Τεχνολογία I [ΠΠΣ]", + "minified": "Εισαγωγή στην Ενεργειακή Τεχνολογία I", + "greeklish": "EET_I" + }, + { + "id": "47", + "name": "Ηλεκτρικά Κυκλώματα III [ΠΠΣ]", + "minified": "Ηλεκτρικά Κυκλώματα III", + "greeklish": "Kyklomata_III" + }, + { + "id": "46", + "name": "Ηλεκτρομαγνητικό Πεδίο II [ΠΠΣ]", + "minified": "Ηλεκτρομαγνητικό Πεδίο II", + "greeklish": "EMF_II" + }, + { + "id": "48", + "name": "Ψηφιακά Συστήματα I [ΠΠΣ]", + "minified": "Ψηφιακά Συστήματα I", + "greeklish": "Psifiaka_I" + } + ] + }, + { + "id": "13", + "name": "5ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "54", + "name": "Διάδοση Ηλεκτρομαγνητικού Κύματος I (πρώην Πεδίο III) [ΠΠΣ]", + "minified": "Διάδοση Ηλεκτρομαγνητικού Κύματος I", + "greeklish": "Diadosi_I" + }, + { + "id": "56", + "name": "Εισαγωγή στην Ενεργειακή Τεχνολογία II [ΠΠΣ]", + "minified": "Εισαγωγή στην Ενεργειακή Τεχνολογία II", + "greeklish": "EET_II" + }, + { + "id": "57", + "name": "Ηλεκτρικές Μετρήσεις I [ΠΠΣ]", + "minified": "Ηλεκτρικές Μετρήσεις I", + "greeklish": "Metriseis_I" + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/app/src/main/res/values/uploads_courses.xml b/app/src/main/res/values/uploads_courses.xml deleted file mode 100644 index 131aa326..00000000 --- a/app/src/main/res/values/uploads_courses.xml +++ /dev/null @@ -1,157 +0,0 @@ - - - - - Ακουστική I|Ακουστική 1|Akoustiki_I - Ακουστική II|Ακουστική 2|Akoustiki_II - Ανάλυση Ηλεκτρικών Κυκλωμάτων με Υπολογιστή|Ανάλυση Ηλεκτρικ. Κυκλ. με Υπολογιστή|Analysi_Ilektr_Kykl - Ανάλυση Συστημάτων Ηλεκτρικής Ενέργειας|ΑΣΗΕ|ASHE - Ανάλυση Χρονοσειρών|Χρονοσειρές|Xronoseires - Ανάλυση και Σχεδίαση Αλγορίθμων|Αλγόριθμοι|Algorithms - Αναγνώριση Προτύπων|Αναγνώριση Προτύπων|Protypa - Αναλογικές Τηλεπικοινωνίες (πρώην Τηλεπικοινωνιακά Συστήματα I)|Αναλογικές Τηλεπ.|Anal_Tilep - Αντικειμενοστραφής Προγραμματισμός|Αντικειμενοστραφής|OOP - Αξιοπιστία Συστημάτων|Αξιοπιστία Συστημάτων|Aksiopistia_Systimaton - Αριθμητική Ανάλυση|Αριθμ. Ανάλυση|Arith_Anal - Αρχές Οικονομίας|Αρχές Οικονομίας|Arx_Oikonomias - Αρχές Παράλληλης Επεξεργασίας|Αρχές Παράλληλης Επεξεργασίας|Arxes_Parall_Epeksergasias - Αρχιτεκτονική Υπολογιστών|Αρχ. Υπολογιστών|Arx_Ypologiston - Ασαφή Συστήματα|Ασαφή|Asafi - Ασφάλεια Πληροφοριακών Συστημάτων|Ασφάλεια|Asfaleia - Ασύρματος Τηλεπικοινωνία I|Ασύρματος 1|Asyrmatos_I - Ασύρματος Τηλεπικοινωνία II|Ασύρματος 2|Asyrmatos_II - Βάσεις Δεδομένων|Βάσεις|Vaseis - Βιομηχανικά Ηλεκτρονικά|Βιομηχανικά Ηλεκτρονικά|Viomix_Ilektronika - Βιομηχανική Πληροφορική|Βιομηχανική Πληρ|Viomix_Plir - Βιοϊατρική Τεχνολογία|Βιοϊατρική|Vioiatriki - Γεωηλεκτρομαγνητισμός|Γεωηλεκτρομαγνητισμός|Geoilektromagnitismos - Γραμμική Άλγεβρα|Γραμμ. Άλγεβρ.|Grammiki_Algevra - Γραφική με Υπολογιστές|Γραφική|Grafiki - Δίκτυα Τηλεπικοινωνιών|Δίκτυα Τηλέπ.|Diktya_Tilep - Δίκτυα Υπολογιστών I|Δίκτυα 1|Diktya_I - Δίκτυα Υπολογιστών II|Δίκτυα 2|Diktya_II - Διάδοση Η/Μ Κύματος II|Διάδοση 2|Diadosi_II - Διάδοση Ηλεκτρομαγνητικού Κύματος I (πρώην Πεδίο III)|Διάδοση 1|Diadosi_I - Διακριτά Μαθηματικά|Διακριτά Μαθηματικά|Diakrita - Διανεμημένη Παραγωγή|Διανεμημένη Παραγωγή|Dian_Paragogi - Διατάξεις Υψηλών Συχνοτήτων|ΔΥΣ|DYS - Διαφορικές Εξισώσεις|Διαφορικές|Diaforikes - Διαχείριση Συστημάτων Ηλεκτρικής Ενέργειας|ΔΣΗΕ|DSHE - Δομές Δεδομένων|Δομ. Δεδομ.|Domes_Dedomenon - Δομημένος Προγραμματισμός|Δομ. Προγραμμ.|C - Ειδικά Κεφάλαια Διαφορικών Εξισώσεων|Ειδικά Κεφάλαια Διαφορικών Εξισώσεων|Eidika_Kef_Diaf_Eksis - Ειδικά Κεφάλαια Ηλεκτρομαγνητικού Πεδίου I|Ειδικά Κεφάλαια Ηλεκτρομαγνητικού Πεδίου I|Eidika_Kef_HM_Pediou_I - Ειδικά Κεφάλαια Συστημάτων Ηλεκτρικής Ενέργειας|ΕΚΣΗΕ|EKSHE - Ειδικές Αρχιτεκτονικές Υπολογιστών|Ειδικές Αρχιτεκτονικές Υπολογιστών|Eidikes_Arx_Ypolog - Ειδικές Κεραίες, Σύνθεση Κεραιών|Ειδικές Κεραίες, Σύνθεση Κεραιών|Eidikes_Keraies - Εισαγωγή στην Ενεργειακή Τεχνολογία I|ΕΕΤ 1|EET_I - Εισαγωγή στην Ενεργειακή Τεχνολογία II|ΕΕΤ 2|EET_II - Εισαγωγή στην Πολιτική Οικονομία|Πολιτική Οικονομία|Polit_Oik - Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας|Εισ. Πυρηνικη Τεχν.|Intro_Pyriniki_Texn - Ενσωματωμένα Συστήματα Πραγματικού Χρόνου|Ενσωματωμένα|Ensomatomena - Επιχειρησιακή Έρευνα|Επιχειρησιακή Έρευνα|Epixeirisiaki - Ευρυζωνικά Δίκτυα|Ευρυζωνικά|Evryzonika - Ευφυή Συστήματα Ρομπότ|Ευφυή|Eufyi - Εφαρμογές Τηλεπικοινωνιακών Διατάξεων|Εφαρμογές Τηλεπ. Διατάξεων|Efarm_Tilep_Diatakseon - Εφαρμοσμένα Μαθηματικά I|Εφαρμοσμένα 1|Efarmosmena_Math_I - Εφαρμοσμένα Μαθηματικά II|Εφαρμοσμένα 2|Efarmosmena_Math_II - Εφαρμοσμένη Θερμοδυναμική|Θερμοδυναμική|Thermodynamiki - Ηλεκτρακουστική I|Ηλεκτρακουστική 1|Ilektrakoustiki_I - Ηλεκτρακουστική II|Ηλεκτρακουστική 2|Ilektrakoustiki_II - Ηλεκτρικά Κυκλώματα I|Κυκλώματα 1|Kyklomata_I - Ηλεκτρικά Κυκλώματα II|Κυκλώματα 2|Kyklomata_II - Ηλεκτρικά Κυκλώματα III|Κυκλώματα 3|Kyklomata_I - Ηλεκτρικές Μετρήσεις I|Μετρήσεις 1|Metriseis_I - Ηλεκτρικές Μετρήσεις II|Μετρήσεις 2|Metriseis_II - Ηλεκτρικές Μηχανές I|Μηχανές I|Mixanes_I - Ηλεκτρικές Μηχανές Α\'|Μηχανές Α|Mixanes_A - Ηλεκτρικές Μηχανές Β\'|Μηχανές Β|Mixanes_B - Ηλεκτρικές Μηχανές Γ\'|Μηχανές Γ|Mixanes_C - Ηλεκτρική Οικονομία|Ηλεκτρική Οικονομία|Ilektr_Oikonomia - Ηλεκτρολογικά Υλικά|Ηλεκτρ. Υλικά|Ylika - Ηλεκτρομαγνητική Συμβατότητα|H/M Συμβατότητα|HM_Symvatotita - Ηλεκτρομαγνητικό Πεδίο I|Πεδίο 1|Pedio_I - Ηλεκτρομαγνητικό Πεδίο II|Πεδίο 2|Pedio_II - Ηλεκτρονικά Ισχύος I|Ισχύος 1|Isxyos_I - Ηλεκτρονικά Ισχύος II|Ισχύος 2|Isxyos_II - Ηλεκτρονικές Διατάξεις και Μετρήσεις|Ηλεκτρονικές Διατάξεις και Μετρήσεις|Ilektron_Diatakseis_Metriseis - Ηλεκτρονική I|Ηλεκτρονική 1|Ilektroniki_I - Ηλεκτρονική II|Ηλεκτρονική 2|Ilektroniki_II - Ηλεκτρονική III|Ηλεκτρονική 3|Ilektroniki_III - Ημιαγωγά Υλικά: Θεωρία-Διατάξεις|Ημιαγωγά Υλικά|Imiagoga_Ylika - Θεωρία Πιθανοτήτων και Στατιστική|Πιθανότητες|Pithanotites - Θεωρία Πληροφοριών|Θεωρία Πληρ.|Theoria_Plir - Θεωρία Σημάτων και Γραμμικών Συστημάτων|Σήματα & Συστήματα|Analog_Sima - Θεωρία Σκέδασης|Σκέδαση|Skedasi - Θεωρία Υπολογισμών και Αλγορίθμων|ΘΥΑ|THYA - Θεωρία και Τεχνολογία Πυρηνικών Αντιδραστήρων|Τεχνολογία Αντιδραστήρων|Texn_Antidrasthron - Κβαντική Φυσική|Κβαντική|Kvantiki - Κινητές και Δορυφορικές Επικοινωνίες|Κινητές & Δορυφορικές Επικοινωνίες|Kinites_Doryforikes_Epik - Λειτουργικά Συστήματα|Λειτουργικά|OS - Λογική Σχεδίαση|Λογική Σχεδίαση|Logiki_Sxediasi - Λογισμός I|Λογισμός 1|Logismos_I - Λογισμός II|Λογισμός 2|Logismos_II - Μετάδοση Θερμότητας|Μετάδοση Θερμ.|Metadosi_Therm - Μικροεπεξεργαστές και Περιφερειακά|Μίκρο 2|Mikro_II - Μικροκυματική Τηλεπισκόπηση|Τηλεπισκόπηση|Tilepiskopisi - Μικροκύματα I|Μικροκύματα 1|Mikrokymata_I - Μικροκύματα II|Μικροκύματα 2|Mikrokymata_II - Οπτικές Επικοινωνίες|Οπτικές Τηλεπ.|Optikes_Tilep - Οπτική I|Οπτική 1|Optiki_I - Οπτική II|Οπτική 2|Optiki_II - Οργάνωση Υπολογιστών|Οργάνωση Υπολ.|Org_Ypol - Οργάνωση και Διοίκηση Εργοστασίων|Οργάνωση και Διοίκηση Εργοστασίων|Organ_Dioik_Ergostasion - Παράλληλα και Κατανεμημένα Συστήματα|Παράλληλα|Parallila - Προγραμματιζόμενα Κυκλώματα ASIC|ASIC|ASIC - Προγραμματιστικές Τεχνικές|Προγραμματ. Τεχν.|CPP - Προηγμένες Τεχνικές Επεξεργασίας Σήματος|ΠΤΕΣ|PTES - Προσομοίωση και Μοντελοποίηση Συστημάτων|Μοντελοποίηση|Montelopoiisi - Ρομποτική|Ρομποτική|Robotiki - Σήματα και Συστήματα|Σήματα & Συστήματα|Analog_Sima - Σερβοκινητήρια Συστήματα|Σέρβο|Servo - Σταθμοί Παραγωγής Ηλεκτρικής Ενέργειας|ΣΠΗΕ|SPHE - Στοχαστικά Σήματα και Διαδικασίες|Στοχαστικό|Stochastic - Στοχαστικό Σήμα|Στοχαστικό|Stochastic - Συστήματα Αυτομάτου Ελέγχου I|ΣΑΕ 1|SAE_I - Συστήματα Αυτομάτου Ελέγχου II|ΣΑΕ 2|SAE_II - Συστήματα Αυτομάτου Ελέγχου III|ΣΑΕ 3|SAE_III - Συστήματα Ηλεκτρικής Ενέργειας I|ΣΗΕ 1|SHE_I - Συστήματα Ηλεκτρικής Ενέργειας II|ΣΗΕ 2|SHE_II - Συστήματα Ηλεκτρικής Ενέργειας III|ΣΗΕ 3|SHE_III - Συστήματα Ηλεκτροκίνησης|Ηλεκτροκίνηση|Ilektrokinisi - Συστήματα Μικροϋπολογιστών|Μίκρο 1|Mikro_I - Συστήματα Πολυμέσων και Εικονική Πραγματικότητα|Πολυμέσα|Polymesa - Συστήματα Υπολογιστών (Υπολογιστικά Συστήματα)|Συσ. Υπολογιστών|Sys_Ypologiston - Σχεδίαση Συστημάτων VLSI|VLSI|VLSI - Σύνθεση Ενεργών και Παθητικών Κυκλωμάτων|Σύνθεση|Synthesi - Σύνθεση Τηλεπικοινωνιακών Διατάξεων|Σύνθεση Τηλεπ. Διατάξεων|Synth_Tilep_Diatakseon - Τεχνικές Βελτιστοποίησης|Βελτιστοποίηση|Veltistopoiisi - Τεχνικές Κωδικοποίησης|Τεχνικές Κωδικοποίησης|Texn_Kodikopoiisis - Τεχνικές Σχεδίασης με Η/Υ|Σχέδιο|Sxedio - Τεχνικές μη Καταστρεπτικών Δοκιμών|Μη Καταστρεπτικές Δοκιμές|Non_Destructive_Tests - Τεχνική Μηχανική|Τεχν. Μηχαν.|Texn_Mixan - Τεχνολογία Ήχου και Εικόνας|Τεχνολογία Ήχου και Εικόνας|Texn_Ixou_Eikonas - Τεχνολογία Ηλεκτροτεχνικών Υλικών|Ηλεκτροτεχνικά Υλικά|Ilektrotexnika_Ylika - Τεχνολογία Λογισμικού|Τεχνολογία Λογισμικού|SE - Τηλεοπτικά Συστήματα|Τηλεοπτικά|Tileoptika - Τηλεπικοινωνιακά Συστήματα I|Τηλεπικοινωνιακά I|Tilepikoinoniaka_I - Τηλεπικοινωνιακά Συστήματα II|Τηλεπικοινωνιακά II|Tilepikoinoniaka_II - Τηλεπικοινωνιακή Ηλεκτρονική|Τηλεπ. Ηλεκτρ.|Tilep_Ilektr - Υπολογιστικές Μέθοδοι στα Ενεργειακά Συστήματα|ΥΜΕΣ|YMES - Υπολογιστικός Ηλεκτρομαγνητισμός|Υπολογιστικός Η/Μ|Ypologistikos_HM - Υψηλές Τάσεις I|Υψηλές 1|Ypsiles_I - Υψηλές Τάσεις II|Υψηλές 2|Ypsiles_II - Υψηλές Τάσεις III|Υψηλές 3|Ypsiles_III - Υψηλές Τάσεις 4|Υψηλές 4|Ypsiles_IV - Φυσική I|Φυσική 1|Fysiki_I - Φωτονική Τεχνολογία|Φωτονική|Fotoniki - Ψηφιακά Συστήματα I|Ψηφιακά 1|Psifiaka_I - Ψηφιακά Συστήματα II|Ψηφιακά 2|Psifiaka_II - Ψηφιακά Συστήματα III|Ψηφιακά 3|Psifiaka_III - Ψηφιακά Φίλτρα|Φίλτρα|Filtra - Ψηφιακές Τηλεπικοινωνίες I|Ψηφιακές Τηλεπ. 1|Psif_Tilep_I - Ψηφιακές Τηλεπικοινωνίες II|Ψηφιακές Τηλεπ. 2|Psif_Tilep_II - Ψηφιακή Επεξεργασία Εικόνας|ΨΕΕ|PSEE - Ψηφιακή Επεξεργασία Σήματος|ΨΕΣ|PSES - - diff --git a/app/src/test/java/gr/thmmy/mthmmy/utils/UploadsCoursesJSONReadingTest.java b/app/src/test/java/gr/thmmy/mthmmy/utils/UploadsCoursesJSONReadingTest.java new file mode 100644 index 00000000..1c3552a7 --- /dev/null +++ b/app/src/test/java/gr/thmmy/mthmmy/utils/UploadsCoursesJSONReadingTest.java @@ -0,0 +1,43 @@ +package gr.thmmy.mthmmy.utils; + +import net.lachlanmckee.timberjunit.TimberTestRule; + +import org.json.JSONObject; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import java.io.InputStream; +import java.util.HashMap; + + +import gr.thmmy.mthmmy.activities.upload.UploadsCourse; +import gr.thmmy.mthmmy.utils.io.ResourceUtils; + +import static gr.thmmy.mthmmy.activities.upload.UploadsCourse.generateCoursesFromJSON; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +@RunWith(PowerMockRunner.class) +@PrepareForTest(JSONObject.class) +public class UploadsCoursesJSONReadingTest { + private final String filePath = "/raw/uploads_courses.json"; + + @Rule + public TimberTestRule logAllAlwaysRule = TimberTestRule.logAllAlways(); + + @Test + public void uploadsCoursesRetrievedCorrectly() throws Exception { + InputStream is = this.getClass().getResourceAsStream(filePath); + assertNotNull(is); + String uploadsCoursesJSON = ResourceUtils.readJSONResourceToString(is); + assertNotNull(uploadsCoursesJSON);; + JSONObject jsonObject = new JSONObject(uploadsCoursesJSON); + assertTrue(jsonObject.has("categories")); + HashMap coursesHashMap = generateCoursesFromJSON(jsonObject); + assertEquals(coursesHashMap.size(), 216); + } +} diff --git a/app/src/test/resources/raw/uploads_courses.json b/app/src/test/resources/raw/uploads_courses.json new file mode 100644 index 00000000..7f04e34e --- /dev/null +++ b/app/src/test/resources/raw/uploads_courses.json @@ -0,0 +1,1702 @@ +{ + "categories": [ + { + "id": "3508", + "name": "Βασικός Κύκλος", + "categories": [ + { + "id": "3509", + "name": "1ο Εξάμηνο", + "courses": [ + { + "id": "27", + "name": "Γραμμική Άλγεβρα", + "minified": "Γραμμική Άλγεβρα", + "greeklish": "Grammiki_Algevra" + }, + { + "id": "33", + "name": "Δομημένος Προγραμματισμός", + "minified": "Δομημένος Προγραμματισμός", + "greeklish": "Struct_Programming" + }, + { + "id": "3476", + "name": "Λογική Σχεδίαση", + "minified": "Λογική Σχεδίαση", + "greeklish": "Logiki_Sxediasi" + }, + { + "id": "28", + "name": "Λογισμός I", + "minified": "Λογισμός I", + "greeklish": "Logismos_I" + }, + { + "id": "32", + "name": "Τεχνικές Σχεδίασης με Η/Υ", + "minified": "Τεχνικές Σχεδίασης με Η/Υ", + "greeklish": "Sxedio" + }, + { + "id": "29", + "name": "Φυσική I", + "minified": "Φυσική I", + "greeklish": "Fysiki_I" + } + ] + }, + { + "id": "3510", + "name": "2ο Εξάμηνο", + "courses": [ + { + "id": "3672", + "name": "Αντικειμενοστραφής Προγραμματισμός", + "minified": "Αντικειμενοστραφής Προγραμματισμός", + "greeklish": "OOP" + }, + { + "id": "38", + "name": "Εφαρμοσμένη Θερμοδυναμική", + "minified": "Εφαρμοσμένη Θερμοδυναμική", + "greeklish": "Thermodynamiki" + }, + { + "id": "34", + "name": "Ηλεκτρικά Κυκλώματα I", + "minified": "Ηλεκτρικά Κυκλώματα I", + "greeklish": "Kyklomata_I" + }, + { + "id": "43", + "name": "Ηλεκτρολογικά Υλικά", + "minified": "Ηλεκτρολογικά Υλικά", + "greeklish": "Hlektrologika_Ylika" + }, + { + "id": "36", + "name": "Λογισμός II", + "minified": "Λογισμός II", + "greeklish": "Logismos_II" + }, + { + "id": "3695", + "name": "Οργάνωση Υπολογιστών", + "minified": "Οργάνωση Υπολογιστών", + "greeklish": "Organosi_Ypologiston" + } + ] + }, + { + "id": "3511", + "name": "3ο Εξάμηνο", + "courses": [ + { + "id": "58", + "name": "Δομές Δεδομένων", + "minified": "Δομές Δεδομένων", + "greeklish": "Data_Structures" + }, + { + "id": "3880", + "name": "Εφαρμοσμένα Μαθηματικά I", + "minified": "Εφαρμοσμένα Μαθηματικά I", + "greeklish": "Efarmosmena_Math_I" + }, + { + "id": "41", + "name": "Ηλεκτρικά Κυκλώματα II", + "minified": "Ηλεκτρικά Κυκλώματα II", + "greeklish": "Kyklomata_II" + }, + { + "id": "3882", + "name": "Ηλεκτρομαγνητικό Πεδίο I", + "minified": "Ηλεκτρομαγνητικό Πεδίο I", + "greeklish": "EMF_I" + }, + { + "id": "40", + "name": "Ηλεκτρονική I", + "minified": "Ηλεκτρονική I", + "greeklish": "Electronics_I" + } + ] + }, + { + "id": "3512", + "name": "4ο Εξάμηνο", + "courses": [ + { + "id": "49", + "name": "Αριθμητική Ανάλυση", + "minified": "Αριθμητική Ανάλυση", + "greeklish": "Numerical_Analysis" + }, + { + "id": "72", + "name": "Διακριτά Μαθηματικά", + "minified": "Διακριτά Μαθηματικά", + "greeklish": "Diakrita" + }, + { + "id": "4107", + "name": "Ηλεκτρομαγνητικό Πεδίο II", + "minified": "Ηλεκτρομαγνητικό Πεδίο II", + "greeklish": "EMF_II" + }, + { + "id": "55", + "name": "Ηλεκτρονική II", + "minified": "Ηλεκτρονική II", + "greeklish": "Electronics_II" + }, + { + "id": "4108", + "name": "Θεωρία Πιθανοτήτων και Στατιστική", + "minified": "Θεωρία Πιθανοτήτων και Στατιστική", + "greeklish": "Prob_stat" + }, + { + "id": "4111", + "name": "Σήματα και Συστήματα", + "minified": "Σήματα και Συστήματα", + "greeklish": "Signals_and_Systems" + } + ] + }, + { + "id": "3513", + "name": "5ο Εξάμηνο", + "courses": [ + { + "id": "51", + "name": "Στοχαστικά Σήματα και Διαδικασίες (πρώην Στοχαστικό Σήμα)", + "minified": "Στοχαστικά Σήματα και Διαδικασίες", + "greeklish": "Stochastic" + }, + { + "id": "60", + "name": "Συστήματα Αυτομάτου Ελέγχου I", + "minified": "ΣΑΕ I", + "greeklish": "SAE_I" + }, + { + "id": "4424", + "name": "Συστήματα Ηλεκτρικής Ενέργειας I", + "minified": "ΣΗΕ I", + "greeklish": "SHE_I" + }, + { + "id": "4423", + "name": "Συστήματα Μετρήσεων", + "minified": "Συστήματα Μετρήσεων", + "greeklish": "Systimata_Metrisewn" + }, + { + "id": "59", + "name": "Τηλεπικοινωνιακά Συστήματα Ι (πρώην Αναλογικές Τηλεπικοινωνίες)", + "minified": "Τηλεπικοινωνιακά Συστήματα I", + "greeklish": "Tilepikoinoniaka_I" + } + ] + }, + { + "id": "3514", + "name": "6ο Εξάμηνο", + "categories": [ + { + "id": "4519", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "710", + "name": "Συστήματα Αυτομάτου Ελέγχου II", + "minified": "ΣΑΕ II", + "greeklish": "SAE_II" + }, + { + "id": "4556", + "name": "Συστήματα Ηλεκτρικής Ενέργειας II", + "minified": "ΣΗΕ II", + "greeklish": "SHE_II" + }, + { + "id": "76", + "name": "Τηλεπικοινωνιακά Συστήματα II (πρώην Ψηφιακές Τηλεπικοινωνίες I)", + "minified": "Τηλεπικοινωνιακά Συστήματα II", + "greeklish": "Tilepikoinoniaka_II" + } + ] + }, + { + "id": "4520", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "79", + "name": "Ανάλυση και Σχεδίαση Αλγορίθμων", + "minified": "Ανάλυση και Σχεδίαση Αλγορίθμων", + "greeklish": "Algorithms" + }, + { + "id": "4554", + "name": "Διατάξεις Υψηλών Συχνοτήτων", + "minified": "Διατάξεις Υψηλών Συχνοτήτων", + "greeklish": "DYS" + }, + { + "id": "90", + "name": "Δίκτυα Υπολογιστών I", + "minified": "Δίκτυα Υπολογιστών I", + "greeklish": "Diktya_I" + }, + { + "id": "4555", + "name": "Ηλεκτρικές Μηχανές I", + "minified": "Ηλεκτρικές Μηχανές I", + "greeklish": "Mixanes_I" + } + ] + } + ] + } + ] + }, + { + "id": "5", + "name": "Τομέας Ηλεκτρικής Ενέργειας", + "categories": [ + { + "id": "18", + "name": "6ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "709", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "4901", + "name": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας [ΠΠΣ]", + "minified": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας", + "greeklish": "Intro_Pyrhnikh_Texnologia" + }, + { + "id": "5106", + "name": "Επιχειρησιακή Έρευνα [ΠΠΣ]", + "minified": "Επιχειρησιακή Έρευνα", + "greeklish": "Operational_Research" + }, + { + "id": "4900", + "name": "Ημιαγωγά Υλικά: Θεωρία - Διατάξεις [ΠΠΣ]", + "minified": "Ημιαγωγά Υλικά", + "greeklish": "Imiagoga_Ylika" + } + ] + }, + { + "id": "708", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "4899", + "name": "Μετάδοση Θερμότητας [ΠΠΣ]", + "minified": "Μετάδοση Θερμότητας", + "greeklish": "Metadosi_Thermothtas" + }, + { + "id": "63", + "name": "Συστήματα Ηλεκτρικής Ενέργειας I [ΠΠΣ]", + "minified": "ΣΗΕ I", + "greeklish": "SHE_I" + }, + { + "id": "4898", + "name": "Υψηλές Τάσεις I [ΠΠΣ]", + "minified": "Υψηλές Τάσεις I", + "greeklish": "Ypsiles_I" + } + ] + } + ] + }, + { + "id": "19", + "name": "7ο εξάμηνο", + "categories": [ + { + "id": "4894", + "name": "7ο Εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "987", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5536", + "name": "Θεωρία και Τεχνολογία Πυρηνικών Αντιδραστήρων [ΠΠΣ]", + "minified": "ΘΤΠΑ", + "greeklish": "Theoria_Texnologia_Pyrhnikwn_Antidrasthrwn" + }, + { + "id": "5537", + "name": "Τεχνολογία Ηλεκτροτεχνικών Υλικών [ΠΠΣ]", + "minified": "Τεχνολογία Ηλεκτροτεχνικών Υλικών", + "greeklish": "Texnologia_Ilektrotexnikwn_Ylikwn" + } + ] + }, + { + "id": "986", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "64", + "name": "Ηλεκτρικές Μηχανές Α\\' [ΠΠΣ]", + "minified": "Ηλεκτρικές Μηχανές Α\\'", + "greeklish": "Mixanes_A" + }, + { + "id": "5535", + "name": "Σταθμοί Παραγωγής Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΣΠΗΕ", + "greeklish": "SPHE" + }, + { + "id": "84", + "name": "Συστήματα Ηλεκτρικής Ενέργειας II [ΠΠΣ]", + "minified": "ΣΗΕ II", + "greeklish": "SHE_II" + }, + { + "id": "5525", + "name": "Υψηλές Τάσεις II [ΠΠΣ]", + "minified": "Υψηλές Τάσεις II", + "greeklish": "Ypsiles_II" + } + ] + } + ] + } + ], + "courses": [ + { + "id": "109", + "name": "Ανάλυση Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "ΑΣΗΕ", + "greeklish": "ASHE" + }, + { + "id": "706", + "name": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας", + "minified": "Εισαγωγή στις εφαρμογές Πυρηνικής Τεχνολογίας", + "greeklish": "Intro_Pyrhnikh_Texnologia" + }, + { + "id": "4897", + "name": "Ηλεκτρικές Μηχανές II", + "minified": "Ηλεκτρικές Μηχανές II", + "greeklish": "Mixanes_II" + }, + { + "id": "107", + "name": "Ηλεκτρονικά Ισχύος I", + "minified": "Ηλεκτρονικά Ισχύος I", + "greeklish": "Isxyos_I" + }, + { + "id": "707", + "name": "Ημιαγωγά Υλικά: Θεωρία - Διατάξεις", + "minified": "Ημιαγωγά Υλικά", + "greeklish": "Imiagoga_Ylika" + }, + { + "id": "65", + "name": "Μετάδοση Θερμότητας", + "minified": "Μετάδοση Θερμότητας", + "greeklish": "Metadosi_Thermothtas" + }, + { + "id": "4895", + "name": "Μεταφορά και Διανομή Ηλεκτρικής Ενέργειας", + "minified": "Μεταφορά και Διανομή Ηλεκτρικής Ενέργειας", + "greeklish": "MDHE" + }, + { + "id": "66", + "name": "Υψηλές Τάσεις I", + "minified": "Υψηλές Τάσεις I", + "greeklish": "Ypsiles_I" + } + ] + }, + { + "id": "20", + "name": "8ο εξάμηνο", + "categories": [ + { + "id": "990", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5538", + "name": "Αρχές Οικονομίας [ΠΠΣ]", + "minified": "Αρχές Οικονομίας", + "greeklish": "Arxes_Oikonomias" + }, + { + "id": "5530", + "name": "Διανεμημένη Παραγωγή [ΠΠΣ]", + "minified": "Διανεμημένη Παραγωγή", + "greeklish": "Dianemimeni_Paragogi" + }, + { + "id": "5529", + "name": "Διαχείριση Συστημάτων Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΔΣΗΕ", + "greeklish": "DSHE" + }, + { + "id": "5533", + "name": "Υψηλές Τάσεις III [ΠΠΣ]", + "minified": "Υψηλές Τάσεις III", + "greeklish": "Ypsiles_III" + } + ] + }, + { + "id": "991", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "4896", + "name": "Ανάλυση Συστημάτων Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΑΣΗΕ", + "greeklish": "ASHE" + }, + { + "id": "85", + "name": "Ηλεκτρικές Μηχανές Β\\' [ΠΠΣ]", + "minified": "Ηλεκτρικές Μηχανές Β\\'", + "greeklish": "Mixanes_B" + }, + { + "id": "4902", + "name": "Ηλεκτρονικά Ισχύος I [ΠΠΣ]", + "minified": "Ηλεκτρονικά Ισχύος I", + "greeklish": "Isxyos_I" + }, + { + "id": "5528", + "name": "Συστήματα Ηλεκτρικής Ενέργειας III [ΠΠΣ]", + "minified": "ΣΗΕ III", + "greeklish": "SHE_III" + } + ] + } + ], + "courses": [ + { + "id": "2695", + "name": "Αρχές Οικονομίας", + "minified": "Αρχές Οικονομίας", + "greeklish": "Arxes_Oikonomias" + }, + { + "id": "1742", + "name": "Διανεμημένη Παραγωγή", + "minified": "Διανεμημένη Παραγωγή", + "greeklish": "Dianemimeni_Paragogi" + }, + { + "id": "136", + "name": "Διαχείριση Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "ΔΣΗΕ", + "greeklish": "DSHE" + }, + { + "id": "108", + "name": "Δυναμική Συμπεριφορά Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "Δυναμική Συμπεριφορά Συστημάτων Ηλεκτρικής Ενέργειας", + "greeklish": "DSSHE" + }, + { + "id": "133", + "name": "Ηλεκτρονικά Ισχύος II", + "minified": "Ηλεκτρονικά Ισχύος II", + "greeklish": "Isxyos_II" + }, + { + "id": "87", + "name": "Θεωρία και Τεχνολογία Πυρηνικών Αντιδραστήρων", + "minified": "ΘΤΠΑ", + "greeklish": "Theoria_Texnologia_Pyrhnikwn_Antidrasthrwn" + }, + { + "id": "86", + "name": "Σταθμοί Παραγωγής Ηλεκτρικής Ενέργειας", + "minified": "ΣΠΗΕ", + "greeklish": "SPHE" + }, + { + "id": "106", + "name": "Σύγχρονες Μηχανές", + "minified": "Σύγχρονες Μηχανές", + "greeklish": "Sygxrones_Mixanes" + }, + { + "id": "134", + "name": "Συστήματα Αντικεραυνικής Προστασίας και Γειώσεων", + "minified": "ΣΑΠΓ", + "greeklish": "SAPG" + }, + { + "id": "110", + "name": "Τεχνολογία Ηλεκτροτεχνικών Υλικών", + "minified": "Τεχνολογία Ηλεκτροτεχνικών Υλικών", + "greeklish": "Texnologia_Ilektrotexnikwn_Ylikwn" + }, + { + "id": "88", + "name": "Υψηλές Τάσεις II", + "minified": "Υψηλές Τάσεις II", + "greeklish": "Ypsiles_II" + } + ] + }, + { + "id": "21", + "name": "9ο εξάμηνο", + "categories": [ + { + "id": "5527", + "name": "9ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "2027", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5544", + "name": "Οργάνωση και Διοίκηση Εργοστασίων [ΠΠΣ]", + "minified": "ΟΔΕ", + "greeklish": "ODE" + }, + { + "id": "5543", + "name": "Σερβοκινητήρια Συστήματα [ΠΠΣ]", + "minified": "Σερβοκινητήρια Συστήματα", + "greeklish": "Servomotor Systems" + }, + { + "id": "5545", + "name": "Συστήματα Ηλεκτροκίνησης [ΠΠΣ]", + "minified": "Συστήματα Ηλεκτροκίνησης", + "greeklish": "Systems_Ilektrokinisis" + }, + { + "id": "5542", + "name": "Υπολογιστικές Μέθοδοι στα Ενεργειακά Συστήματα [ΠΠΣ]", + "minified": "ΥΜΕΣ", + "greeklish": "YMES" + }, + { + "id": "5541", + "name": "Υψηλές Τάσεις 4 [ΠΠΣ]", + "minified": "Υψηλές 4", + "greeklish": "Ypsiles_IV" + } + ] + }, + { + "id": "2028", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "5539", + "name": "Ειδικά Κεφάλαια Συστημάτων Ηλεκτρικής Ενέργειας [ΠΠΣ]", + "minified": "ΕΚΣΗΕ", + "greeklish": "EKSHE" + }, + { + "id": "5531", + "name": "Ηλεκτρικές Μηχανές Γ\\' [ΠΠΣ]", + "minified": "Ηλεκτρικές Μηχανές Γ\\'", + "greeklish": "Mixanes_C" + }, + { + "id": "5540", + "name": "Ηλεκτρική Οικονομία [ΠΠΣ]", + "minified": "Ηλεκτρική Οικονομία", + "greeklish": "Electric_Economy" + }, + { + "id": "5532", + "name": "Ηλεκτρονικά Ισχύος II [ΠΠΣ]", + "minified": "Ηλεκτρονικά Ισχύος II", + "greeklish": "Isxyos_II" + } + ] + } + ] + } + ], + "courses": [ + { + "id": "132", + "name": "Ειδικά Κεφάλαια Συστημάτων Ηλεκτρικής Ενέργειας", + "minified": "ΕΚΣΗΕ", + "greeklish": "EKSHE" + }, + { + "id": "135", + "name": "Ηλεκτρική Οικονομία", + "minified": "Ηλεκτρική Οικονομία", + "greeklish": "Electric_Economy" + }, + { + "id": "2033", + "name": "Οργάνωση και Διοίκηση Εργοστασίων", + "minified": "ΟΔΕ", + "greeklish": "ODE" + }, + { + "id": "2031", + "name": "Σερβοκινητήρια Συστήματα", + "minified": "Σερβοκινητήρια Συστήματα", + "greeklish": "Servomotor_Systems" + }, + { + "id": "5546", + "name": "Σύγχρονα Ενεργειακά Συστήματα", + "minified": "Σύγχρονα Ενεργειακά Συστήματα", + "greeklish": "SES" + }, + { + "id": "2029", + "name": "Συντονισμός Μονώσεων - Προστασία έναντι Υπερτάσεων", + "minified": "Συντονισμός Μονώσεων - Προστασία έναντι Υπερτάσεων", + "greeklish": "SMPEY" + }, + { + "id": "2032", + "name": "Συστήματα Ηλεκτροκίνησης", + "minified": "Συστήματα Ηλεκτροκίνησης", + "greeklish": "Systems_Ilektrokinisis" + }, + { + "id": "2030", + "name": "Υπολογιστικές Μέθοδοι στα Ενεργειακά Συστήματα", + "minified": "ΥΜΕΣ", + "greeklish": "YMES" + } + ] + } + ] + }, + { + "id": "4", + "name": "Τομέας Ηλεκτρονικής και Η/Υ", + "categories": [ + { + "id": "14", + "name": "6ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "713", + "name": "Μαθήματα Επιλογης [ΠΠΣ]", + "courses": [ + { + "id": "5372", + "name": "Κβαντική Φυσική [ΠΠΣ]", + "minified": "Κβαντική Φυσική", + "greeklish": "Quantum_Physics" + }, + { + "id": "5105", + "name": "Ρομποτική [ΠΠΣ]", + "minified": "Ρομποτική", + "greeklish": "Robotics" + }, + { + "id": "4951", + "name": "Τεχνικές Βελτιστοποίησης [ΠΠΣ]", + "minified": "Τεχνικές Βελτιστοποίησης", + "greeklish": "Optimization_Techniques" + } + ] + }, + { + "id": "712", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "68", + "name": "Ηλεκτρικές Μετρήσεις II [ΠΠΣ]", + "minified": "Ηλεκτρικές Μετρήσεις II", + "greeklish": "Metriseis_II" + }, + { + "id": "4952", + "name": "Ηλεκτρονική III [ΠΠΣ]", + "minified": "Ηλεκτρονική III", + "greeklish": "Electronics_III" + }, + { + "id": "71", + "name": "Ψηφιακά Συστήματα II [ΠΠΣ]", + "minified": "Ψηφιακά Συστήματα II", + "greeklish": "Psifiaka_II" + } + ] + } + ] + }, + { + "id": "15", + "name": "7ο εξάμηνο", + "categories": [ + { + "id": "4943", + "name": "7ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "4943", + "name": "7ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "985", + "name": "Μαθήματα Επιλογης [ΠΠΣ]", + "courses": [ + { + "id": "5108", + "name": "Προγραμματιζόμενα Κυκλώματα ASIC [ΠΠΣ]", + "minified": "ASIC", + "greeklish": "ASIC" + }, + { + "id": "5107", + "name": "Προσομοίωση και Μοντελοποίηση Συστημάτων [ΠΠΣ]", + "minified": "Προσομοίωση και Μοντελοποίηση Συστημάτων", + "greeklish": "Montelopoiisi" + } + ] + }, + { + "id": "984", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "91", + "name": "Συστήματα Μικροϋπολογιστών [ΠΠΣ]", + "minified": "Συστήματα Μικροϋπολογιστών", + "greeklish": "Mikro_I" + } + ] + } + ] + } + ] + } + ], + "courses": [ + { + "id": "4944", + "name": "Ανάλυση Δεδομένων", + "minified": "Ανάλυση Δεδομένων", + "greeklish": "Data_Analysis" + }, + { + "id": "4947", + "name": "Αρχιτεκτονική Προηγμένων Υπολογιστών", + "minified": "Αρχιτεκτονική Προηγμένων Υπολογιστών", + "greeklish": "Comp_Advanced_Architecture" + }, + { + "id": "115", + "name": "Δίκτυα Υπολογιστών II", + "minified": "Δίκτυα Υπολογιστών II", + "greeklish": "Diktya_II" + }, + { + "id": "69", + "name": "Ηλεκτρονική III", + "minified": "Ηλεκτρονική III", + "greeklish": "Electronics_III" + }, + { + "id": "4945", + "name": "Θεωρία Δικτύων", + "minified": "Θεωρία Δικτύων", + "greeklish": "Network_Theory" + }, + { + "id": "94", + "name": "Θεωρία Υπολογισμών και Αλγορίθμων", + "minified": "ΘΥΑ", + "greeklish": "THYA" + }, + { + "id": "95", + "name": "Λειτουργικά Συστήματα", + "minified": "Λειτουργικά Συστήματα", + "greeklish": "OS" + }, + { + "id": "2081", + "name": "Παράλληλα και Διανεμημένα Συστήματα", + "minified": "Παράλληλα και Διανεμημένα Συστήματα", + "greeklish": "Parallel_and_Distributed_Systems" + }, + { + "id": "97", + "name": "Σύνθεση Ενεργών Φίλτρων (πρώην Σύνθεση Ενεργών και Παθητικών Κυκλωμάτων)", + "minified": "Σύνθεση Ενεργών Φίλτρων", + "greeklish": "Synthesi_Energwn_Filtrwn" + }, + { + "id": "140", + "name": "Συστήματα Αυτομάτου Ελέγχου III", + "minified": "ΣΑΕ III", + "greeklish": "SAE_III" + }, + { + "id": "80", + "name": "Τεχνικές Βελτιστοποίησης", + "minified": "Τεχνικές Βελτιστοποίησης", + "greeklish": "Optimization_Techniques" + }, + { + "id": "96", + "name": "Χρονοσειρές (πρώην Ανάλυση Χρονοσειρών)", + "minified": "Χρονοσειρές", + "greeklish": "Timeseries" + }, + { + "id": "4946", + "name": "Ψηφιακά Συστήματα HW σε Χαμηλά Επίπεδα Λογικής I", + "minified": "Ψηφιακά HW I", + "greeklish": "Psifiaka_HWI" + } + ] + }, + { + "id": "16", + "name": "8ο εξάμηνο", + "categories": [ + { + "id": "5099", + "name": "8ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "992", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "5100", + "name": "Ασαφή Συστήματα [ΠΠΣ]", + "minified": "Ασαφή Συστήματα", + "greeklish": "Fuzzy_Systems" + }, + { + "id": "113", + "name": "Ηλεκτρονικές Διατάξεις και Μετρήσεις [ΠΠΣ]", + "minified": "Ηλεκτρονικές Διατάξεις και Μετρήσεις", + "greeklish": "Ilektronikes_Diatakseis_Metriseis" + }, + { + "id": "93", + "name": "Ψηφιακά Συστήματα III [ΠΠΣ]", + "minified": "Ψηφιακά Συστήματα III", + "greeklish": "Psifiaka_III" + } + ] + }, + { + "id": "993", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "4950", + "name": "Δίκτυα Υπολογιστών II [ΠΠΣ]", + "minified": "Δίκτυα Υπολογιστών II", + "greeklish": "Diktya_II" + }, + { + "id": "112", + "name": "Ψηφιακά Φίλτρα [ΠΠΣ]", + "minified": "Ψηφιακά Φίλτρα", + "greeklish": "Psifiaka_Filtra" + } + ] + } + ] + } + ], + "courses": [ + { + "id": "120", + "name": "Γραφική με Υπολογιστές", + "minified": "Γραφική με Υπολογιστές", + "greeklish": "Computer_Graphics" + }, + { + "id": "2082", + "name": "Ενσωματωμένα Συστήματα Πραγματικού Χρόνου", + "minified": "Ενσωματωμένα Συστήματα Πραγματικού Χρόνου", + "greeklish": "Enswmatwmena" + }, + { + "id": "67", + "name": "Επιχειρησιακή Έρευνα", + "minified": "Επιχειρησιακή Έρευνα", + "greeklish": "Operational_Research" + }, + { + "id": "5101", + "name": "Εφαρμοσμένος Αυτόματος Έλεγχος", + "minified": "Εφαρμοσμένος Αυτόματος Έλεγχος", + "greeklish": "EAE" + }, + { + "id": "5103", + "name": "Θεωρία Εκτίμησης και Ανίχνευση", + "minified": "Θεωρία Εκτίμησης και Ανίχνευση", + "greeklish": "THEA" + }, + { + "id": "5102", + "name": "Θεωρία Παιγνίων", + "minified": "Θεωρία Παιγνίων", + "greeklish": "Game_Theory" + }, + { + "id": "111", + "name": "Μικροεπεξεργαστές και Περιφερειακά", + "minified": "[Μικροεπεξεργαστές και Περιφερειακά]", + "greeklish": "Mikro_II" + }, + { + "id": "486", + "name": "Προγραμματιζόμενα Κυκλώματα FPGA-ASIC", + "minified": "FPGA-ASIC", + "greeklish": "FPGA-ASIC" + }, + { + "id": "469", + "name": "Προσομοίωση και Μοντελοποίηση Δυναμικών Συστημάτων", + "minified": "Προσομοίωση και Μοντελοποίηση Δυναμικών Συστημάτων", + "greeklish": "Simulation_Modeling" + }, + { + "id": "114", + "name": "Ρομποτική", + "minified": "Ρομποτική", + "greeklish": "Robotics" + }, + { + "id": "116", + "name": "Τεχνολογία Λογισμικού", + "minified": "Τεχνολογία Λογισμικού", + "greeklish": "Texnologia_Logismikou" + }, + { + "id": "117", + "name": "Τηλεπικοινωνιακή Ηλεκτρονική", + "minified": "Τηλεπικοινωνιακή Ηλεκτρονική", + "greeklish": "Telecommunications_Electronics" + }, + { + "id": "119", + "name": "Υπολογιστική Νοημοσύνη", + "minified": "Υπολογιστική Νοημοσύνη", + "greeklish": "Computational_Intelligence" + }, + { + "id": "5104", + "name": "Ψηφιακά Συστήματα HW σε Χαμηλά Επίπεδα Λογικής II", + "minified": "Ψηφιακά HW II", + "greeklish": "Psifiaka_HWII" + }, + { + "id": "139", + "name": "Ψηφιακή Επεξεργασία Εικόνας", + "minified": "Ψηφιακή Επεξεργασία Εικόνας", + "greeklish": "DIP" + } + ] + }, + { + "id": "17", + "name": "9ο εξάμηνο", + "categories": [ + { + "id": "5549", + "name": "9ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "137", + "name": "Ανάλυση Ηλεκτρικών Κυκλωμάτων με Υπολογιστή [ΠΠΣ]", + "minified": "Ανάλυση Ηλεκτρικών Κυκλωμάτων με Υπολογιστή", + "greeklish": "Computer_Analysis_Electronics_Circuits" + }, + { + "id": "2083", + "name": "Αρχές Παράλληλης Επεξεργασίας [ΠΠΣ]", + "minified": "Αρχές Παράλληλης Επεξεργασίας", + "greeklish": "Arxes_Parallilis_Epeksergasias" + }, + { + "id": "148", + "name": "Βιομηχανικά Ηλεκτρονικά [ΠΠΣ]", + "minified": "Βιομηχανικά Ηλεκτρονικά", + "greeklish": "Viomixanika_Ilektronika" + }, + { + "id": "145", + "name": "Ειδικές Αρχιτεκτονικές Υπολογιστών [ΠΠΣ]", + "minified": "Ειδικές Αρχιτεκτονικές Υπολογιστών", + "greeklish": "Eidikes_Arxitektonikes_Ypologiston" + }, + { + "id": "141", + "name": "Ευφυή Συστήματα Ρομπότ [ΠΠΣ]", + "minified": "Ευφυή Συστήματα Ρομπότ", + "greeklish": "Intelligence_Robotics_System" + } + ] + } + ], + "courses": [ + { + "id": "118", + "name": "Αναγνώριση Προτύπων", + "minified": "Αναγνώριση Προτύπων", + "greeklish": "Pattern_Recognition" + }, + { + "id": "138", + "name": "Αξιοπιστία Συστημάτων", + "minified": "Αξιοπιστία Συστημάτων", + "greeklish": "Aksiopistia_Systimaton" + }, + { + "id": "146", + "name": "Ασφάλεια Πληροφοριακών Συστημάτων", + "minified": "Ασφάλεια Πληροφοριακών Συστημάτων", + "greeklish": "Asfaleia" + }, + { + "id": "5553", + "name": "Ασφαλής Ανάκτηση και Ανάλυση Ψηφ. Δεδομένων-Ψηφ. Εγκληματολογία", + "minified": "Ψηφιακή Εγκληματολογία", + "greeklish": "Psifiaki_Eglimatologia" + }, + { + "id": "142", + "name": "Βάσεις Δεδομένων", + "minified": "Βάσεις Δεδομένων", + "greeklish": "Data_Structures" + }, + { + "id": "143", + "name": "Βιομηχανική Πληροφορική", + "minified": "Βιομηχανική Πληροφορική", + "greeklish": "Viomixaniki_Pliroforiki" + }, + { + "id": "5477", + "name": "Ευφυή και Προσαρμοστικά Συστήματα Αυτομάτου Ελέγχου", + "minified": "Ευφυή και Προσαρμοστικά ΣΑΕ", + "greeklish": "EPSAE" + }, + { + "id": "147", + "name": "Συστήματα Πολυμέσων", + "minified": "Συστήματα Πολυμέσων", + "greeklish": "Multimedia_Systems" + }, + { + "id": "144", + "name": "Σχεδίαση Συστημάτων VLSI", + "minified": "VLSI", + "greeklish": "VLSI" + }, + { + "id": "5552", + "name": "Σχεδίαση Συστημάτων Υλικού-Λογισμικού", + "minified": "Σχεδίαση Συστημάτων Υλικού-Λογισμικού", + "greeklish": "Hardware_Software_System_Design" + }, + { + "id": "5478", + "name": "Ψηφιακά Ολοκληρωμένα Κυκλώματα VLSI-ASIC Μεγάλης Κλίμακας", + "minified": "[Ψηφιακά Ολοκληρωμένα Κυκλώματα VLSI-ASIC]", + "greeklish": "VLSI_ASIC" + } + ] + } + ] + }, + { + "id": "6", + "name": "Τομέας Τηλεπικοινωνιών", + "categories": [ + { + "id": "26", + "name": "6ο εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "715", + "name": "Μαθήματα Επιλογης [ΠΠΣ]", + "courses": [ + { + "id": "128", + "name": "Ακουστική I [ΠΠΣ]", + "minified": "Ακουστική I", + "greeklish": "Akoustiki_I" + }, + { + "id": "4915", + "name": "Εφαρμοσμένα Μαθηματικά II [ΠΠΣ]", + "minified": "Εφαρμοσμένα Μαθηματικά II", + "greeklish": "Efarmosmena_Math_II" + }, + { + "id": "4916", + "name": "Ηλεκτρακουστική I [ΠΠΣ]", + "minified": "Ηλεκτρακουστική I", + "greeklish": "Ilektrakoustiki_I" + }, + { + "id": "102", + "name": "Οπτική I [ΠΠΣ]", + "minified": "Οπτική I", + "greeklish": "Optiki_I" + } + ] + }, + { + "id": "714", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "73", + "name": "Διάδοση Ηλεκτρομαγνητικού Κύματος II [ΠΠΣ]", + "minified": "Διάδοση Ηλεκτρομαγνητικού Κύματος II", + "greeklish": "Diadosi_II" + } + ] + } + ] + }, + { + "id": "23", + "name": "7ο εξάμηνο", + "categories": [ + { + "id": "4905", + "name": "7ο Εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "988", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "152", + "name": "Ακουστική II [ΠΠΣ]", + "minified": "Ακουστική II", + "greeklish": "Akoustiki_II" + }, + { + "id": "4914", + "name": "Βιοϊατρική Τεχνολογία [ΠΠΣ]", + "minified": "Βιοϊατρική Τεχνολογία", + "greeklish": "Vioiatriki" + }, + { + "id": "2021", + "name": "Ειδικά Κεφάλαια Διαφορικών Εξισώσεων [ΠΠΣ]", + "minified": "Ειδικά Κεφάλαια Διαφορικών Εξισώσεων", + "greeklish": "Eidika_Kef_Diaf_Eksis" + }, + { + "id": "103", + "name": "Ειδικά Κεφάλαια Ηλεκτρομαγνητικού Πεδίου I [ΠΠΣ]", + "minified": "Ειδικά Κεφάλαια Ηλεκτρομαγνητικού Πεδίου I", + "greeklish": "Eidika_Kef_HM_Pediou_I" + }, + { + "id": "5164", + "name": "Ηλεκτρακουστική II [ΠΠΣ]", + "minified": "Ηλεκτρακουστική II", + "greeklish": "Ilektrakoustiki_II" + }, + { + "id": "129", + "name": "Οπτική II [ΠΠΣ]", + "minified": "Οπτική II", + "greeklish": "Optiki_II" + } + ] + }, + { + "id": "989", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "100", + "name": "Ασύρματος Τηλεπικοινωνία I [ΠΠΣ]", + "minified": "Ασύρματος Τηλεπικοινωνία I", + "greeklish": "Asyrmatos_I" + }, + { + "id": "98", + "name": "Μικροκύματα I [ΠΠΣ]", + "minified": "Μικροκύματα I", + "greeklish": "Mikrokymata_I" + }, + { + "id": "4908", + "name": "Ψηφιακές Τηλεπικοινωνίες II [ΠΠΣ]", + "minified": "Ψηφιακές Τηλεπικοινωνίες II", + "greeklish": "Psifiakes_Tilepikoinonies_II" + }, + { + "id": "4907", + "name": "Ψηφιακή Επεξεργασία Σήματος [ΠΠΣ]", + "minified": "Ψηφιακή Επεξεργασία Σήματος", + "greeklish": "DSP" + } + ] + } + ] + }, + { + "id": "4910", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "4912", + "name": "Ακουστική", + "minified": "Ακουστική", + "greeklish": "Akoustiki" + }, + { + "id": "105", + "name": "Βιοϊατρική Τεχνολογία", + "minified": "Βιοϊατρική Τεχνολογία", + "greeklish": "Vioiatriki" + }, + { + "id": "4911", + "name": "Γεωηλεκτρομαγνητισμός", + "minified": "Γεωηλεκτρομαγνητισμός", + "greeklish": "Geoilektromagnitismos" + }, + { + "id": "77", + "name": "Εφαρμοσμένα Μαθηματικά II", + "minified": "Εφαρμοσμένα Μαθηματικά II", + "greeklish": "Efarmosmena_Math_II" + }, + { + "id": "78", + "name": "Ηλεκτρακουστική I", + "minified": "Ηλεκτρακουστική I", + "greeklish": "Ilektrakoustiki_I" + }, + { + "id": "4913", + "name": "Οπτική", + "minified": "Οπτική", + "greeklish": "Optiki" + } + ] + }, + { + "id": "4906", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "4909", + "name": "Κεραίες και Διάδοση", + "minified": "Κεραίες και Διάδοση", + "greeklish": "Keraies_kai_Diadosh" + }, + { + "id": "122", + "name": "Τηλεπικοινωνιακά Συστήματα III", + "minified": "Τηλεπικοινωνιακά Συστήματα III", + "greeklish": "Tilepikoinoniaka_III" + }, + { + "id": "99", + "name": "Ψηφιακή Επεξεργασία Σήματος", + "minified": "Ψηφιακή Επεξεργασία Σήματος", + "greeklish": "DSP" + } + ] + } + ] + }, + { + "id": "24", + "name": "8ο εξάμηνο", + "categories": [ + { + "id": "5163", + "name": "8ο Εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "5556", + "name": "Ασύρματος Τηλεπικοινωνία II [ΠΠΣ]", + "minified": "Ασύρματος Τηλεπικοινωνία II", + "greeklish": "Asyrmatos_II" + } + ] + }, + { + "id": "994", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "125", + "name": "Ειδικές Κεραίες", + "minified": "Ειδικές Κεραίες", + "greeklish": "Eidikes_Keraies" + }, + { + "id": "3315", + "name": "Εισαγωγή στην Πολιτική Οικονομία", + "minified": "Εισαγωγή στην Πολιτική Οικονομία", + "greeklish": "Politiki_Oikonomia" + }, + { + "id": "997", + "name": "Εφαρμογές Τηλεπικοινωνιακών Διατάξεων", + "minified": "Εφαρμογές Τηλεπικοινωνιακών Διατάξεων", + "greeklish": "Efarmoges_Tilepikoinoniakon_Diatakseon" + }, + { + "id": "104", + "name": "Ηλεκτρακουστική II", + "minified": "Ηλεκτρακουστική II", + "greeklish": "Ilektrakoustiki_II" + }, + { + "id": "126", + "name": "Θεωρία Σκέδασης", + "minified": "Θεωρία Σκέδασης", + "greeklish": "Scattering_Theory" + }, + { + "id": "1252", + "name": "Κβαντική Φυσική", + "minified": "Κβαντική Φυσική", + "greeklish": "Quantum_Physics" + }, + { + "id": "996", + "name": "Προηγμένες Τεχνικές Επεξεργασίας Σήματος", + "minified": "ΠΤΕΣ", + "greeklish": "PTES" + }, + { + "id": "124", + "name": "Τηλεοπτικά Συστήματα", + "minified": "Τηλεοπτικά Συστήματα", + "greeklish": "Tileoptika_Systimata" + }, + { + "id": "127", + "name": "Υπολογιστικός Ηλεκτρομαγνητισμός", + "minified": "Υπολογιστικός Ηλεκτρομαγνητισμός", + "greeklish": "Computational Electromagnetism" + } + ] + }, + { + "id": "995", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "123", + "name": "Δίκτυα Τηλεπικοινωνιών", + "minified": "Δίκτυα Τηλεπικοινωνιών", + "greeklish": "Diktya_Tilepikoinonion" + }, + { + "id": "74", + "name": "Θεωρία Πληροφοριών", + "minified": "Θεωρία Πληροφοριών", + "greeklish": "Information_Theory" + }, + { + "id": "131", + "name": "Οπτικές Επικοινωνίες", + "minified": "Οπτικές Επικοινωνίες", + "greeklish": "Optikes_Epikoinwnies" + } + ] + } + ] + }, + { + "id": "25", + "name": "9ο εξάμηνο", + "categories": [ + { + "id": "5554", + "name": "9ο Εξάμηνο [ΠΠΣ]", + "categories": [ + { + "id": "5999", + "name": "Μαθήματα Επιλογής [ΠΠΣ]", + "courses": [ + { + "id": "154", + "name": "Γεωηλεκτρομαγνητισμός [ΠΠΣ]", + "minified": "Γεωηλεκτρομαγνητισμός", + "greeklish": "Geoilektromagnitismos" + }, + { + "id": "150", + "name": "Μικροκυματική Τηλεπισκόπηση [ΠΠΣ]", + "minified": "Μικροκυματική Τηλεπισκόπηση", + "greeklish": "MRS" + }, + { + "id": "157", + "name": "Τεχνικές Κωδικοποίησης [ΠΠΣ]", + "minified": "Τεχνικές Κωδικοποίησης", + "greeklish": "Texnikes_Kodikopoiisis" + } + ] + }, + { + "id": "6000", + "name": "Υποχρεωτικά Μαθήματα [ΠΠΣ]", + "courses": [ + { + "id": "149", + "name": "Σύνθεση Τηλεπικοινωνιακών Διατάξεων [ΠΠΣ]", + "minified": "Σύνθεση Τηλεπικοινωνιακών Διατάξεων", + "greeklish": "Synthesi_Tilepikoinoniakon_Diatakseon" + } + ] + }, + { + "id": "2024", + "name": "Μαθήματα Επιλογής", + "courses": [ + { + "id": "121", + "name": "Ειδικά Θέματα Διάδοσης και Ραδιοζεύξεων", + "minified": "Ειδικά Θέματα Διάδοσης και Ραδιοζεύξεων", + "greeklish": "Eidika_Themata_Diadosis_kai_Radiosyzeuxeon" + }, + { + "id": "1754", + "name": "Ευρυζωνικά Δίκτυα", + "minified": "Ευρυζωνικά Δίκτυα", + "greeklish": "Broadband_Networks" + }, + { + "id": "2084", + "name": "Ηλεκτρομαγνητική Συμβατότητα", + "minified": "Ηλεκτρομαγνητική Συμβατότητα", + "greeklish": "EMC" + }, + { + "id": "5555", + "name": "Κώδικες Διόρθωσης Σφαλμάτων", + "minified": "Κώδικες Διόρθωσης Σφαλμάτων", + "greeklish": "Error_Correction_Codes" + }, + { + "id": "155", + "name": "Τεχνικές μη Καταστρεπτικών Δοκιμών", + "minified": "Τεχνικές μη Καταστρεπτικών Δοκιμών", + "greeklish": "Non_Destructive_Testing_Techniques" + }, + { + "id": "1768", + "name": "Τεχνολογία Ήχου και Εικόνας: Αποθήκευση, Επεξεργασία, Μετάδοση", + "minified": "Τεχνολογία Ήχου και Εικόνας", + "greeklish": "Texnologia_Ixou_Eikonas" + }, + { + "id": "153", + "name": "Φωτονική Τεχνολογία", + "minified": "Φωτονική Τεχνολογία", + "greeklish": "Fotoniki_Texnologia" + } + ] + }, + { + "id": "2025", + "name": "Υποχρεωτικά Μαθήματα", + "courses": [ + { + "id": "5557", + "name": "Ανάλυση και Σύνθεση Ραδιοσυστημάτων", + "minified": "Ανάλυση και Σύνθεση Ραδιοσυστημάτων", + "greeklish": "ASRS" + }, + { + "id": "307", + "name": "Ασύρματες Επικοινωνίες", + "minified": "Ασύρματες Επικοινωνίες", + "greeklish": "Asyrmates_Epikoinonies" + }, + { + "id": "151", + "name": "Μικροκυματική Τεχνολογία", + "minified": "Μικροκυματική Τεχνολογία", + "greeklish": "Microwave_Technology" + } + ] + } + ] + } + ] + } + ] + }, + { + "id": "3", + "name": "Βασικός Κύκλος [ΠΠΣ]", + "categories": [ + { + "id": "8", + "name": "1ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "30", + "name": "Συστήματα Υπολογιστών (Υπολογιστικά Συστήματα) [ΠΠΣ]", + "minified": "Συστήματα Υπολογιστών", + "greeklish": "Sys_Ypologiston" + }, + { + "id": "31", + "name": "Τεχνική Μηχανική [ΠΠΣ]", + "minified": "Τεχνική Μηχανική", + "greeklish": "Texniki_Mixaniki" + } + ] + }, + { + "id": "10", + "name": "2ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "37", + "name": "Διαφορικές Εξισώσεις [ΠΠΣ]", + "minified": "Διαφορικές Εξισώσεις", + "greeklish": "Diaforikes" + }, + { + "id": "35", + "name": "Θεωρία Πιθανοτήτων και Στατιστική [ΠΠΣ]", + "minified": "Θεωρία Πιθανοτήτων και Στατιστική", + "greeklish": "Prob_stat" + } + ] + }, + { + "id": "11", + "name": "3ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "42", + "name": "Εφαρμοσμένα Μαθηματικά I [ΠΠΣ]", + "minified": "Εφαρμοσμένα Μαθηματικά I", + "greeklish": "Efarmosmena_Math_I" + }, + { + "id": "39", + "name": "Ηλεκτρομαγνητικό Πεδίο I [ΠΠΣ]", + "minified": "Ηλεκτρομαγνητικό Πεδίο I", + "greeklish": "EMF_I" + }, + { + "id": "44", + "name": "Θεωρία Σημάτων και Γραμμικών Συστημάτων [ΠΠΣ]", + "minified": "Θεωρία Σημάτων και Γραμμικών Συστημάτων", + "greeklish": "Theory_Signals_and_Linear_Systems" + }, + { + "id": "45", + "name": "Προγραμματιστικές Τεχνικές [ΠΠΣ]", + "minified": "Προγραμματιστικές Τεχνικές", + "greeklish": "CPP" + } + ] + }, + { + "id": "12", + "name": "4ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "50", + "name": "Αρχιτεκτονική Υπολογιστών [ΠΠΣ]", + "minified": "Αρχιτεκτονική Υπολογιστών", + "greeklish": "Comp_Architecture" + }, + { + "id": "52", + "name": "Εισαγωγή στην Ενεργειακή Τεχνολογία I [ΠΠΣ]", + "minified": "Εισαγωγή στην Ενεργειακή Τεχνολογία I", + "greeklish": "EET_I" + }, + { + "id": "47", + "name": "Ηλεκτρικά Κυκλώματα III [ΠΠΣ]", + "minified": "Ηλεκτρικά Κυκλώματα III", + "greeklish": "Kyklomata_III" + }, + { + "id": "46", + "name": "Ηλεκτρομαγνητικό Πεδίο II [ΠΠΣ]", + "minified": "Ηλεκτρομαγνητικό Πεδίο II", + "greeklish": "EMF_II" + }, + { + "id": "48", + "name": "Ψηφιακά Συστήματα I [ΠΠΣ]", + "minified": "Ψηφιακά Συστήματα I", + "greeklish": "Psifiaka_I" + } + ] + }, + { + "id": "13", + "name": "5ο εξάμηνο [ΠΠΣ]", + "courses": [ + { + "id": "54", + "name": "Διάδοση Ηλεκτρομαγνητικού Κύματος I (πρώην Πεδίο III) [ΠΠΣ]", + "minified": "Διάδοση Ηλεκτρομαγνητικού Κύματος I", + "greeklish": "Diadosi_I" + }, + { + "id": "56", + "name": "Εισαγωγή στην Ενεργειακή Τεχνολογία II [ΠΠΣ]", + "minified": "Εισαγωγή στην Ενεργειακή Τεχνολογία II", + "greeklish": "EET_II" + }, + { + "id": "57", + "name": "Ηλεκτρικές Μετρήσεις I [ΠΠΣ]", + "minified": "Ηλεκτρικές Μετρήσεις I", + "greeklish": "Metriseis_I" + } + ] + } + ] + } + ] +} \ No newline at end of file