|
所在平台: Udemy |
课程主页: https://www.udemy.com/course/problem-solving-25-problems-solved-with-c-in-arabic/
课程评论:没有评论
## Course Summary: Problem Solving with C# [in Arabic] This Coursera course emphasizes that **problem-solving is a fundamental and highly beneficial skill for any programmer and developer**, enabling them to achieve almost anything in the field. The course defines problem-solving as a teaching strategy that encourages students to analyze, think, propose alternatives or hypotheses, and test them. It involves presenting a challenging question or problem, requiring students to examine it, observe related phenomena, form hypotheses, and then test these hypotheses to find the optimal solution. This approach aligns with the inductive teaching method. The course highlights **specific steps and strategies for problem-solving**, noting a close relationship with: * **Artificial Intelligence (AI):** In computer science and AI, problem-solving involves algorithmic methods, heuristics, and root cause analysis. This is part of a larger process including problem identification, removing redundancy, analysis, inspection, and repair. Techniques like linear and non-linear programming, queueing theory, and simulation are also discussed as problem-solving tools. A significant portion of computer science involves designing automated systems to solve specific problems, responding to input and providing correct or approximate solutions within a reasonable time. Debugging software is also mentioned as a time-consuming aspect of problem-solving in computer science. * **Logic:** Formal logic deals with issues of plausibility, truth, inference, argument, and proof. In problem-solving, logic can be used to formally represent a problem as a theorem to be proven, and the information needed to solve it as hypotheses supporting the proof of a solution. The use of computers to prove mathematical theorems through formal logic emerged in the 1950s as automatic theorem proving. This includes heuristic methods designed to simulate human problem-solving, as seen in programs like the Logic Theory Machine, and algorithmic methods like the resolution principle. Automatic theorem proving has also been used for formal verification in computer science. Early efforts, such as John McCarthy's Advice Taker program, aimed to represent information in formal logic and extract answers to questions. Cordell Green's work in 1969, using a resolution theorem prover for answering questions and for AI applications like robot planning, was a significant step. While this technique had some resemblance to human problem-solving, Robert Kowalski's work on logic programming and selective linear resolution introduced methods for analyzing problems and proposed the use of logic for both human and computational problem-solving, aiming to enhance human reasoning.
إذا تعرف تحل مشاكل تقدر تشتغل بأي مكان وابحث في الموضوع. من أهم المهارات والأكثر إفادة لأي مبرمج ومطور هي حل المشاكل , لأن بحل المشاكل يمكنك فعل أي شيء تقريبا في المجال.ما هو ال Problem solving ? حل المشكلات استراتيجية تدريسية، تعتمد على تحفيز الطلاب على التحليل والتفكير وطرح البدائل أو الفرضيات واختبارها. فيبدأ المعلم بطرح تساؤل أو مشكلة تمثل تحديا عقليا للطلاب، ويطلب منهم دراسة هذه المشكلة وملاحظة الظواهر المتعلقة بها. وبعد ذلك طرح فرضيات لتفسير أو حل تلك المشكلة. ثم يبدأ الطلاب باختبار تلك البدائل أو الفرضيات للوصول إلى الحل الأمثل. وتندرج هذه الاستراتيجية ضمن المنهج الاستقرائي للتدريس.وهنالك خطوات محددة لحل المشكلات واستراتيجيات أيضا ويوجد علاقة وثيقةبالنسبة للذكاء الاصطناعي: في علم الحاسوب وفي قسم الذكاء الصنعي الذي يتعامل مع الخوارزميات، يشمل حل المشكلات طرق الخوارزميات والحدس المهني وتحليل السبب الجذري. في هذه المجالات، حل المشكلات هو جزء من عملية أكبر تضم تحديد المشكلة وإزالة التكرار والتحليل والفحص والإصلاح وخطوات أخرى. البرمجة الخطية وغير الخطية ونظرية الأرتال والمحاكاة كلها أدوات أخرى لحل المشكلات. يتضمن جزء كبير من علم الحاسوب تصميم أنظمة آليّة كليًّا تقوم لاحقًا بحل بعض المشاكل المحددة وهي أنظمة تستجيب للبيانات المُدخلة، وخلال وقت معقول، تحسب الرد الصحيح أو تقدر تقريبيًا حلًا صحيحًا بما فيه الكفاية. إضافة إلى ذلك، يقضي الأشخاص في علم الحاسوب وقتًا كبيرًا بشكل مُدهش في تقصّي وإصلاح المشكلات في برامجهم (التنقيح البرمجي).وبالنسبة للمنطق Logic يهتم المنطق الشكلي بقضايا مثل المعقوليّة والحقيقة والاستدلال والمُحاجّة والبرهان. يمكن استخدامه في سياق حل المشكلات لتمثيل المشكلة من الناحية الشكلية على أنها نظرية يجب إثباتها، وتمثيل المعلومات التي نحتاجها لحل المشكلة على أنها فرضيات تُستخدم في إثبات أن للمشكلة حلًا. ظهر استخدام الحواسيب لإثبات النظريات الرياضيّة عن طريق المنطق الشكلي في خمسينيات القرن العشرين على أنه مجال إثبات النظرية التلقائي. تم تضمين استخدام أساليب الحدس المهني المُصممة لمحاكاة حل المشكلات البشرية، كما في برنامج جهاز نظرية المنطق، الذي استحدثه آلن نيويل وهيربرت آ. سيمون وجي.سي. شاو، وكما في أساليب الخوارزميات، مثل مبدأ القرار الذي أحدثه جون آلان روبينسون.[2]بالإضافة لاستخدامه في إيجاد براهين النظريات الرياضيّة، استُخدم إثبات النظرية التلقائي أيضًا للتحقق الشكلي في علم الحاسوب. على أي حال، قبل ذلك عام 1958، اقترح جون مكارثي برنامج أدفايس تيكر (آخذ النصيحة)، لتمثيل المعلومات في المنطق الشكلي واستخراج أجوبة للأسئلة باستخدام إثبات النظرية التلقائي. قُدّمت خطوة مهمة في هذا الاتجاه من قِبل كورديل غرين عام 1969، باستخدامه لمُبرهِن نظرية القرار للإجابة عن الأسئلة واستخدامه لتطبيقات أخرى في الذكاء الصنعي وإعداد تصميم الروبوت. حملت تقنية مُبرهِن نظرية القرار المُستخدمة من قِبل كورديل غرين تشابهًا ضئيلًا لطرق حل المشكلات البشرية. في الرد على انتقاد منهجه، المُنطلق من الباحثين في معهد ماساتشوستس للتكنولوجيا، وضع روبرت كوالسكي البرمجة المنطقية وشرط الحل الأكيد الخطي الانتقائي، الذي يحل المشكلات عن طريق تحليل المشكلة. ودعا إلى استخدام المنطق لحل المشكلات البشرية والحاسوبية واستخدام المنطق الحسابي لتحسين التفكير البشري.