كيف تحل واجبات CPCS 203 - دليل عملي للواجبات واللابات

فريق زدني فريق زدني 22 أبريل 2026
12 دقيقة للقراءة
كيف تحل واجبات CPCS 203 - دليل عملي للواجبات واللابات

الأسبوع الخامس يدخل الدكتور المعمل ويرفع الواجب الأول على Blackboard. تفتح الـ PDF، تقراه ثلاث مرات، وكل مرة تطنش عند نفس السطر. تحاول تكتب أول class، تطلع لك خمس أخطاء حمر. تقفل اللابتوب وتقول “بكرة أكمل”، وبكرة يصير بعد بكرة، ولين تنتبه يكون التسليم بعد يومين.

هذا المشهد متكرر مع كل دفعة في FCIT جامعة الملك عبدالعزيز. مادة CPCS 203 برمجة 2 عندها هيكل ثابت كل فصل: واجبان كاملان، 12 لاب أسبوعي، ولاب نهائي يجمع كل اللي درسته. والمشكلة مو في صعوبة المادة، المشكلة في إن الطالب ما عنده خطة. يدخل الواجب وهو يفكر “كيف أبدأ؟” بدل ما يفكر “في أي خطوة أنا الحين؟”.

هذا الدليل يعطيك المنهجية. مو شرح OOP من جديد، لو تبي الشرح المفاهيمي اقرأ شرحنا الكامل لمفاهيم OOP في CPCS 203. هذا يعطيك خطوات حل واجبات CPCS 203 وكل لاب فيها، مع الأخطاء الشائعة اللي تكلف الطلاب درجات كل سمستر، وخطة استعداد للاب النهائي.

📋 ملخص سريع

  • هيكل المادة: واجبان (2) + 12 لاب أسبوعي + لاب نهائي شامل، كلها برمجة عملية بـ Java
  • المواضيع الرئيسية: المصفوفات، الـ Classes والـ Constructors، الوراثة، تعدد الأشكال، الـ Abstract والـ Interfaces، الـ File I/O
  • منهجية حل أي واجب CPCS 203: اقرأ الـ PDF كامل، ارسم الـ class diagram، ابدأ بالـ skeleton، اشتغل class-by-class
  • أخطاء OOP اللي تكلفك درجات: NullPointerException بعد extends بدون super()، ClassCastException، نسيان @Override
  • خطة الاستعداد للاب النهائي: راجع حلول اللابات، طبق Constructor + Inheritance + Polymorphism في برنامج واحد، اضبط نفسك على الوقت
  • متى تطلب مساعدة: قعدت أكثر من 3 ساعات على نفس الخطأ، أو ما فاهم ايش يطلب الـ PDF أصلا

ليش CPCS 203 مختلف عن CPCS 202

الفرق الجذري بين CPCS 202 و CPCS 203 مو في عدد المواضيع، الفرق في طريقة التفكير. في 202 كنت تكتب برنامج واحد كبير من فوق لتحت: متغيرات، حلقات، شروط، دوال. السكربت يمشي خط واحد، وأنت تتبعه بعينك بدون لف ودوران.

في CPCS 203 الكود يصير “أشياء” تتكلم مع بعض. كل class كائن مستقل، له صفاته وله وظائفه. والبرنامج يصير عبارة عن مجموعة كائنات تتفاعل. هذا التحول هو السبب اللي يخلي طلاب جابوا A في 202 يدخلون 203 ويحصلون C، مو لانهم نسوا البرمجة، لان دماغهم لسا يفكر بالطريقة القديمة.

والتعقيد يجي من إن المادة تراكمية بشكل قاسي. ما فهمت الـ Constructors في الأسبوع الرابع؟ راح يأثر على الواجب الأول. ما فهمت الـ Inheritance في الأسبوع الثامن؟ الواجب الثاني واللاب النهائي راح يكونون كابوس. لو حسيت إن الأساسيات اهتزت، راجع أساسيات CPCS 202 قبل ما تكمل، خاصة أقسام الـ methods والـ arrays.

الخبر الزين إن المنهج واضح والتدرج منطقي. الخبر الصعب إنك إذا تأخرت أسبوعين بدون متابعة، الفجوة تكبر بسرعة. والمدرس ما يحس فيك إلا في درجة الواجب أو اللاب، وقتها يكون متأخر.

اللابات الـ12: الموضوع الأسبوعي وكيف تستعد

الـ 12 لاب في المادة مو 12 موضوع منفصل، هي 5 مجموعات تتكرر بترتيب يبني على بعضه. لو فهمت الترتيب، تقدر تستعد لكل لاب قبل ما يبدأ الأسبوع.

المجموعة الأولى - المصفوفات والـ enhanced for loops (لابات 1 إلى 3): هنا تبدأ بمراجعة المصفوفات من 202، بس بمستوى أعمق: مصفوفات ثنائية، تمرير المصفوفات للدوال، command-line arguments، والـ variable-length parameters. هذا الجزء سهل نسبيا لأنه قريب من البرمجة الإجرائية اللي تعرفها. اللاب الثالث عادة يبدأ يدخل عليك مفهوم “الكلاس البسيط” كتمهيد.

للاستعداد قبل أول لاب: افتح أي تمرين مصفوفات من 202 وحله من الصفر بدون ما ترجع للحل القديم. لو حسيت إن إيدك صدئت في تمرير المصفوفات للدوال، خذ ساعة تكتب method تستقبل array وترجع نسخة معكوسة. هذا التمرين الواحد يجاهزك لأول 3 لابات.

المجموعة الثانية - الـ Classes والـ Constructors (لابات 4 إلى 6): هنا تبدأ المادة الفعلية. تتعلم تعرف class، تكتب constructors، تستخدم this، وتعمل overloading للـ constructors. لاب 6 خصوصا فيه نمط متكرر: يطلب منك تكتب class له 3-4 constructors، كل واحد يستقبل بارامترات مختلفة. الفخ الشائع إنك تحط منطق التحقق من البيانات في كل constructor. الصح إنك تخلي constructor واحد يتصل بالباقي عبر this().

للاستعداد: اكتب class اسمه Course فيه 3 constructors بأطوال مختلفة، وخل الكل يتصل بالـ constructor الكامل عبر this(). لو قدرت تكتبه في 15 دقيقة بدون مرجع، أنت جاهز للابات 4-6. لو احتجت أكثر من 30 دقيقة، راجع شرح this() في الكتاب قبل لاب 4.

المجموعة الثالثة - الوراثة والـ Polymorphism (لابات 7 إلى 8): هنا يبدأ الجد. extends، super، method overriding، dynamic dispatch. اللابات هذه قصيرة بس فيها أكثر النقاط اللي تنزل درجة. لو دخلت اللاب من غير ما تفهم super() عن قراءة، راح تخرج بكود يكمبايل بس ما يطبع الناتج المتوقع.

للاستعداد: ادرس مثال Animal/Dog/Cat بشكل عملي، اكتبه بنفسك، خل Dog تورث من Animal وتعمل override لـ method بسيط مثل makeSound(). جرب تشغل main يحط Dog و Cat في array من نوع Animal ويستدعي makeSound() على الكل. لو فهمت ليش الناتج مختلف رغم إن النوع واحد، فهمت تعدد الأشكال.

المجموعة الرابعة - Abstract Classes و Interfaces (لابات 9 إلى 10): الفرق بين الاثنين هو السؤال اللي يجي 100% في اختبار اللاب النهائي. القاعدة العملية: abstract class لو تبي ترث وتشارك كود، interface لو تبي تفرض contract من غير كود. لاب 10 عادة يطلب منك تطبق interface واحد على كذا class مختلف عشان تشوف تعدد الأشكال شغال.

للاستعداد: ارسم جدول مقارنة على ورقة بين abstract class و interface. أعمدة الجدول: هل يحوي كود؟ هل يقدر يكون فيه constructor؟ هل تقدر ترث منه أكثر من واحد؟ تعبئة الجدول هذي تخليك ما تختلط بينهم في الاختبار، وتفرق نقاط مباشرة في لاب 9 و 10.

المجموعة الخامسة - File I/O و Exception Handling (لابات 11 إلى 12): الجزء العملي اللي راح تستخدمه فعلا في الواجب الثاني. تتعلم تقرأ من ملف، تكتب فيه، تتعامل مع FileNotFoundException، وتعمل try-catch-finally بشكل صحيح.

للاستعداد: جرب تقرا ملف CSV بسيط فيه 5 أسطر بيانات طلاب (اسم، رقم جامعي، معدل)، اطبع كل سطر على الشاشة. هذا التمرين الواحد يغطي 80% من اللي راح تحتاجه في الواجب الثاني، ويعرفك على FileReader و BufferedReader و حلقة قراءة الأسطر.

ℹ️ ترتيب اللابات قد يختلف

الترتيب اللي فوق هو الترتيب الشائع في FCIT، لكن بعض الشعب تقدم لاب أو تأخر آخر حسب الدكتور. تأكد من جدول الكورس على Blackboard في أول أسبوعين، ولو شفت اختلاف عدل خطتك.

الواجبان: ايش يطلب منك فعلا

الواجبان في CPCS 203 مو متشابهين، كل واحد يختبرك في مجموعة مختلفة من المهارات. لو فهمت النمط من السنوات السابقة، تقدر تستعد قبل ما الـ PDF ينزل.

الواجب الأول - تطبيق بسياق محلي (الأسبوع 5 إلى 6): عادة يطلب منك تطبيق إداري بسياق سعودي، مثل نظام لإدارة استهلاك المياه في الأحياء، نظام لتسجيل الطلاب، أو نظام لمتابعة الكتب في مكتبة. الهدف إنك تستخدم Classes و Constructors و Encapsulation بشكل صحيح. مفيش فيه وراثة عادة، الوراثة تنتظرك في الواجب الثاني.

النمط الثابت في هذا الواجب: تحتاج 2-3 classes رئيسية، كل واحد له بياناته الخاصة، ومنهج main يجمع بينها. مثال على هيكل الـ class الأساسي:

public class WaterUsage {
    // متغيرات خاصة
    private String district;
    private double monthlyConsumption;
    private int residents;

    // constructor كامل
    public WaterUsage(String d, double c, int r) {
        this.district = d;
        this.monthlyConsumption = c;
        this.residents = r;
    }

    // constructor مختصر
    public WaterUsage(String d) {
        this(d, 0.0, 0);
    }

    // حساب نصيب الفرد
    public double perCapita() {
        if (residents == 0) return 0;
        return monthlyConsumption / residents;
    }
}

لاحظ كيف الـ constructor المختصر يستدعي الكامل عبر this(). هذا النمط بالضبط اللي يطلبونه في الـ rubric، ويفرق نقطتين كاملتين على التقييم.

الواجب الثاني - Word Cloud أو معالجة نصوص (الأسبوع 11 إلى 12): الواجب الثاني عادة يطلب منك تقرا ملف نصي، تعالجه (تشيل علامات الترقيم، توحد الـ case)، تعد تكرار كل كلمة، وتعرض الناتج مرتب. هنا تستخدم كل اللي تعلمته: File I/O زائد Collections زائد String manipulation زائد Exception Handling. الواجب أكبر وأصعب من الأول لأنه يجمع 4-5 مواضيع في برنامج واحد.

الفخ الكبير: الطلاب يبدون يكتبون كود عشوائي بدون ما يقسمون المشكلة. الصح إنك تكتب 4 methods منفصلة (read, clean, count, display) وتربط بينهم في main. هكذا لو حصلك خطأ تعرف وين بالضبط، بدل ما تقعد ساعتين تخمن.

طريقة عملية تنجح كل مرة: الـ method الأولى readFile ترجع String فيه كل النص. الثانية cleanText تستقبل String وترجع String نظيف بدون ترقيم وكله lowercase. الثالثة countWords تستقبل String وترجع Map من النوع HashMap بكل كلمة وعدد تكرارها. الرابعة printTopWords تستقبل Map ورقم n وتطبع أكثر n كلمة شيوعا. الـ main يطلب اسم الملف من المستخدم ويربط الأربعة. لو قسمت الواجب هكذا، تقدر تختبر كل method لحالها قبل ما تربطهم، وأي خطأ يصير محصور في method واحدة بدل ما يضيع في 200 سطر متشابكة.

عالق في الواجب الثاني؟

الواجب الثاني عادة الأصعب لأنه يجمع File I/O مع OOP وكثير يقعد فيه أسابيع. لو تبي حد يمشي معك خطوة خطوة على واجبك ويوضح لك المنطق بدون ما يحلها عنك، فريقنا متخصص في CPCS 203.

أرسل واجبك على واتساب

اللاب النهائي: تختبر فيك كل شي

اللاب النهائي في CPCS 203 مو اختبار ورقي، هو جلسة برمجة حية في المعمل تحت إشراف الدكتور والـ TA. تجي بحاسوبك أو تستخدم حاسوب المعمل، يفتح لك السؤال على الشاشة، وعندك ساعة ونص أو ساعتين عشان تكتب البرنامج كامل وترفعه على Blackboard قبل انتهاء الوقت.

السؤال غالبا يكون نسخة مصغرة من الواجب: 2-3 classes فيها وراثة، interface واحد، method واحد على الأقل override، وقراءة بسيطة من ملف. مفيش سؤال نظري واحد، كله كود.

كيف تستعد قبل اللاب النهائي بأسبوع:

اقعد ساعتين كل يوم تحل لاب من اللي مرت عليك من الصفر، بدون ما ترجع للحل. اكتب class فيه constructor زائد inheritance زائد polymorphism في 30 دقيقة، ثم 20 دقيقة، ثم 15 دقيقة. جرب تستخدم نفس الحاسوب اللي راح تجيبه لاختبار اللاب، مع نفس الـ IDE. درب نفسك على القراءة من ملف وكتابة في ملف بدون ما ترجع للنوتس.

أهم نصيحة: لا تفتح الـ IDE وتبدأ تكتب فورا. خذ 5 دقائق تقرا السؤال كامل، ارسم الـ classes على ورقة، حدد العلاقة بينها (هل في extends؟ هل في implements؟)، بعدها افتح الـ IDE. الـ 5 دقائق هذه ترجع لك 30 دقيقة بدل ما تكتشف بعد نص ساعة إنك صممت الـ classes غلط.

توزيع الوقت داخل اللاب: لو عندك ساعة ونص، خصص 5 دقائق للقراءة والرسم، 60 دقيقة للكتابة، 15 دقيقة للاختبار وتشغيل العينات، و 10 دقائق احتياط للحفظ والتسليم على Blackboard. الطلاب اللي يفشلون اللاب النهائي عادة يضيعون نصف الوقت في الـ debugging لأنهم ما رسموا قبل ما يبدأون، ويسلمون كود نصف شغال في الدقيقة الأخيرة. التزم بالتوزيع وما تتعدى أي مرحلة عن وقتها حتى لو حسيت إنك “قريب من الحل”.

أخطاء OOP الشائعة وكيف تصححها

الأخطاء في CPCS 203 ما تكون أخطاء syntax عادة، تكون أخطاء فهم. الكود يكمبايل بدون مشاكل، يشتغل، بس الناتج غلط أو يطلع NullPointerException في وقت التشغيل. هذي أكثر 4 أخطاء تقع للطلاب وتكلفهم درجات:

الخطأ الأول - NullPointerException بعد extends بدون super(): لو ورثت class من class آخر، وما كتبت super() في الـ constructor، الكلاس الأب يبدا بقيم null. لما تحاول تستخدم أي حقل من الأب، يطلع NullPointerException في وقت التشغيل بدون أي تحذير من الـ compiler.

⚠️ الخطأ الأشهر في الواجب الثاني

الكود التالي يكمبايل لكن لما تشغله يطلع NullPointerException عند getName(). السبب: الـ subclass ما اتصل بـ constructor الأب فما تم ضبط الحقول.

كود غلط:

public class Student extends Person {
    private int studentId;
    public Student(int id) {
        this.studentId = id;  // نسيت super
    }
}

كود صح:

public class Student extends Person {
    private int studentId;
    public Student(String name, int id) {
        super(name);  // مهم
        this.studentId = id;
    }
}

الخطأ الثاني - ClassCastException من downcasting بدون instanceof: لما تخزن objects من types مختلفة في array من النوع الأب، ولما ترجع تتعامل معها تحاول تـcast بدون فحص. الحل: استخدم instanceof قبل أي cast، خاصة في الواجب الثاني لما تعالج array من Shape فيه Circle و Rectangle. علامة الخطأ: الكود يشتغل صح لأول 3 عناصر ثم يطلع crash مفاجئ على عنصر معين، يعني التعدد متفاوت ولازم تفحص النوع قبل الـ cast.

الخطأ الثالث - نسيان @Override: الـ annotation @Override مو إجباري للكمبايلر بس بدونه لو كتبت اسم الـ method غلط بحرف واحد، الكمبايلر ما راح يخبرك. يصير عندك method جديد بدل overriding، والـ polymorphism ما يشتغل والـ test cases تطلع غلط. عود نفسك تحط @Override فوق كل method تورثه، حتى لو سهل. علامة الخطأ: الكود يكمبايل بدون أخطاء بس الناتج يطلع من النسخة الأصلية للـ method (من الأب)، مو من النسخة اللي عدلتها (في الابن).

الخطأ الرابع - مشاركة array reference بين objects: لو رجعت array من method getter بدون ما تنسخه، أي تعديل من برا يأثر على الـ object الأصلي ويكسر الـ encapsulation. الحل: ارجع نسخة باستخدام Arrays.copyOf أو clone(). هذا يهم خاصة في الواجب الأول لما تحتاج تحفظ بيانات لكذا حي أو لكذا طالب. علامة الخطأ: تطبع الـ object قبل التعديل، تعدل من main، تطبع مرة ثانية، وتلاقي البيانات الداخلية تغيرت رغم إنك ما استدعيت أي setter.

كل خطأ من هذي يكلف الطالب 5-10 درجات في الواجب لأنه يكسر الـ test cases اللي يستخدمها الدكتور للتقييم. ساعة واحدة تقعد فيها تتأكد من الأربعة قبل التسليم تفرق فرق كبير في الدرجة النهائية.

خطوات حل أي واجب CPCS 203

  1. اقرا الـ PDF كامل قبل ما تكتب سطر: خذ نص ساعة بس عشان تقرا. لون بقلم أصفر كل متطلب صريح، وبقلم أحمر كل متطلب ضمني. لو الـ PDF ذكر “the system should handle invalid input” هذا متطلب، حتى لو ما طلب منك try-catch مباشرة.

  2. ارسم الـ class diagram على ورقة: كل class كصندوق، الحقول تحت، الـ methods تحت كمان. ارسم سهم من الـ subclass للـ superclass. لو حصل عندك سهمان متقاطعان، مشكلة في التصميم، عدل قبل ما تفتح IDE.

  3. ابدا بالـ skeleton: افتح ملف لكل class، اكتب اسم الكلاس زائد الحقول زائد الـ method signatures فقط، بدون أي منطق داخلي. اعمل compile. لو فيه أخطاء صغرها هلا قبل ما تكبر.

  4. اشتغل class-by-class، اختبر كل وحدة قبل ما تمشي: لا تكتب كل الـ classes ثم تختبر. اكتب class، اعمل main صغير يجربه، تأكد إنه شغال، انتقل للـ class الجاي. هذي تكلفك 20 دقيقة إضافية وترجع لك ساعتين debugging.

  5. غطي edge cases اللي ذكرها الـ PDF: مدخلات فاضية، مدخلات سالبة، ملف ما موجود، array بحجم صفر. كل واحد ضيع نقاط في الـ rubric لو ما اتعامل معاه بشكل صحيح.

  6. اقرا الكود مرة أخيرة قبل التسليم: اقرا من فوق لتحت بصوت داخلي. كل سطر ما يخدم متطلب احذفه. كل اسم متغير غامض غيره. خذ 10 دقائق لهذي الخطوة، ترجع لك 5 درجات.

نصائح Blackboard وأدوات التطوير

في CPCS 203 الـ IDE اللي تستخدمه يفرق فرق ملموس على إنتاجيتك. أنا أرشح IntelliJ Community Edition على Eclipse لسبب بسيط: الـ refactoring في IntelliJ أذكى بكثير، والـ inline error hints تخليك تكتشف أخطاء OOP قبل ما تكمبايل. Eclipse مازال شغال، بس لو تبدا من الصفر اختر IntelliJ، خذ يوم تتعود عليه، وراح يوفر لك ساعات في كل واجب.

مثال محسوس: لما تكتب class اسمه Student extends Person ثم تنسى تستدعي super() في الـ constructor، IntelliJ يرسم خط متموج أحمر تحت اسم الـ constructor فورا ويعرض لك تنبيه “Call to super() is missing”. في Eclipse تكتشف نفس الخطأ بعد ما تشغل البرنامج وتشوف NullPointerException في الـ runtime. الفرق هذا وحده يوفر عليك 10-15 دقيقة debugging في كل لاب. بالنسبة للطلاب اللي عندهم Mac، IntelliJ أخف بكثير من Eclipse في استهلاك الذاكرة.

عادات تطويرية تنفعك في كل لاب وواجب: اعمل مجلد محلي لكل واجب وارفعه على git أو حتى Google Drive قبل التسليم، مرة واحدة يقع لك حاسوبك تفهم ليش. سمي ملفك بالشكل اللي يطلبه الدكتور بالضبط، PDF يقول Assignment1_StudentID.zip؟ سمه بالضبط، لا تتفلسف باسم تاني. جرب رفع الملف على Blackboard قبل آخر يوم بـ 24 ساعة، لو حصلت مشكلة في الرفع عندك متسع. خذ سكرين شوت بعد التسليم يوضح وقت الرفع، يحميك لو ادعى Blackboard إنك تأخرت.

💡 عادة تنقذك يوم التسليم

احفظ نسخة من كل واجب على git محلي حتى لو ما عندك حساب GitHub. أمر git init في مجلد الواجب و git commit كل ساعتين يعطيك رحلة كاملة لكودك تقدر ترجع لها لو خربت شي. ما تحتاج تتعلم Git متقدم، 4 أوامر تكفيك للسمستر كامل.

تكامل أكاديمي: متى نساعد ومتى لا

نقطة لازم نوضحها بشفافية. KAU تستخدم نظام SafeAssign على Blackboard اللي يقارن واجبك بكل التسليمات السابقة وبمصادر الإنترنت. لو سلمت كود شخص ثاني، النظام يكتشفه، وعقوبة الغش الأكاديمي في FCIT صريحة وممكن توصل لخصم درجة المادة كاملة.

موقفنا في زدني واضح: نشرح لك المفهوم، نمشي معك في تصميم الحل، نوضح لك ليش كودك ما يشتغل، ونتأكد إنك فهمت قبل ما تكتب أنت بنفسك. ما نحل واجب ونرسله لك جاهز. السبب مو فقط حماية لك من العقوبة، السبب الأهم إنك راح تجي اللاب النهائي وما عندك أي مهارة فعلية اكتسبتها من الواجب، وقتها ما حد يقدر يساعدك.

مثال على الفرق العملي: لو رسلت لنا واجبك وأنت ما فاهم ليش يطلع NullPointerException، الجلسة معاك تكون: نشرح لك ايش يعني null، نوريك في الـ debugger وين الحقل اللي قيمته null، نخليك تخمن ليش وصل null، ثم نتركك تكتب الإصلاح بنفسك ونتأكد إنك فهمت. لو رسلت لنا الواجب وقلت “حلوه لي”، نقول لك بصراحة إن هذي مو خدمة نقدمها، ونوجهك بدلها لجلسة شرح. الفرق صغير في الكلام كبير في النتيجة.

🔴 القاعدة الواضحة

شرح المفهوم وتوجيه الحل = تعلم. تسليم كود ما كتبته بنفسك = غش أكاديمي. الفرق هذا مو فقط أخلاقي، هو الفرق بين طالب راح ينجح اللاب النهائي وطالب راح يفشله ويعيد المادة في سمستر تاني.

الخلاصة والخطوة الجاية

أكثر شي يميز طلاب CPCS 203 اللي يحصلون درجات عالية مو الذكاء، هي العادة. عادة قراءة الـ PDF كامل قبل البدء، عادة الرسم على ورقة قبل الكود، عادة الاختبار بعد كل class، عادة المراجعة قبل التسليم. هذي العادات الأربع تعطيك ميزة على نص الفصل بدون ما تذاكر ساعة إضافية.

ولو فهمت OOP صح في 203، CPCS 204 هياكل البيانات راح يكون عليك أسهل بكثير، لأن كل بنية بيانات راح تتعلمها (LinkedList، Stack، Queue، Tree) مكتوبة بالـ classes والـ inheritance اللي درستها. عشان كذا الاستثمار في 203 يعطيك عائد لـ 5-6 مواد جاية، مو فقط درجة فصل واحد.

جلسة شرح خصوصية قبل اللاب النهائي

لو حاسس إن قاعدة CPCS 203 عندك مهتزة قبل اللاب النهائي بأسبوعين، جلسة شرح من ساعتين تمشي معك على الوراثة والـ Polymorphism تفرق فرق كبير في الدرجة. خصصنا فريق متابعة طلاب FCIT تحديدا لهذا الأمر.

احجز جلسة على واتساب

أسئلة شائعة

متى ينزل الواجب الأول في CPCS 203؟ +

عادة في الأسبوع الخامس أو السادس من الفصل، بعد ما يكون الدكتور غطى الـ Classes والـ Constructors. الموعد قد يختلف بسيط بين الشعب، تأكد من جدول المادة على Blackboard في أول أسبوعين.

ما هي اللغة المستخدمة في CPCS 203؟ +

Java هي اللغة الرسمية للمادة في FCIT. الكتاب المقرر هو Introduction to Java Programming للمؤلف Y. Daniel Liang. كل الواجبات واللابات تحل وتسلم بـ Java.

كم درجة الواجبات من العلامة النهائية في CPCS 203؟ +

الواجبان عادة 10-15% من الدرجة النهائية، اللابات 20-25%، اللاب النهائي حوالي 15%، والباقي اختبارات نظرية. النسب تتغير حسب الدكتور، تأكد من syllabus المادة في أول محاضرة.

هل اللاب النهائي في CPCS 203 مفتوح الكتاب؟ +

غالبا تستخدم النوتس والمراجع المسموحة من الدكتور، لكن مفيش وصول للإنترنت ولا لـ Blackboard أثناء الاختبار. الأفضل تتدرب على الحل بدون مساعدة عشان السرعة.

هل تحتاج خصوصي؟