إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

المسودة " مدخل الى عالم البرمجة "

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • [إعلان] المسودة " مدخل الى عالم البرمجة "

    السلام عليكم و رحمة الله :-

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


    كود:
    بسم الله الرحمن الرحيم
    اللهم صلي على محمد و ال محمد
    مدخــــــــــل الى عالم البرمجة
    اعداد
    
    علي آل ياسين
    [EMAIL="[email protected]"][email protected][/EMAIL]
    What is programming?
    Programs vs. Scripts
    Compiled vs Interpreted
    Dynamic vs. Static
    Source vs. binary
    Desktop vs. Web
    ServerSide vs. ClientSide
    What do you need?
    • Text Editor
    • Compiler or Interpreter

    What do you need ?
    Or just use and IDE:
    What do you need ?
    Or just use and IDE:
    What do you need ?
    Or just use and IDE:
    What do you need ?
    Or just use and IDE:
    What do you need ?
    Or just use and IDE:
    Program. Langs. Categorization --- my own classification for ease
    Microsoft(Windows): vb, asp, C#, .NET..etc
    Unix: C|C++, python, perl, php, ruby…etc
    Sun JVM: Java, Groovy, Fortress, Scala, Jython…etc.
    Programming Paradigm:
    A programming paradigm is a fundamental style of computer programming. (Compare with a methodology, which is a style of solving specific software engineering problems.) Paradigms differ in the concepts and abstractions used to represent the elements of a program (such as objects, functions, variables, constraints, etc.) and the steps that compose a computation (assignment, evaluation, continuations, data flows, etc.).
    • Programming Paradigms:
    • Procedural
    • Object Oriented
    • Event driven
    • Functional


    Procedural Prog.
    Sequenced
    Like get two numbers, add them, return the result.
    كود PHP:
    {my $number =1;
    my $number2 =2;
    print 
    $number+$number2;

    كود PHP:
    Control Structeres

    IF statement:
    if (
    $user eq "Ali")
    {print 
    "Access granted!"}
    Adding else:
    else{ print 
    "I don't know you"}
    Introducing more conditions:
    elsif($user eq "fatima")
    {print 
    "I love u!"}
    Control Structeres
    Unless
    :
    unless($a == 10)
    {
    print 
    "The number isn't 10";}

    if (
    $a != 10)
    {
    print 
    "The number isn't 10";
    }
    Control Structres:
    FOR
    for (
    1..10)
    {print 
    "looping 10 times!\n"}
    Long style:
    for (
    $a=0;$a<10;$a++)
    {print 
    "loop $a"}
    Control Structers
    Foreach :

    my @list = qw/Ali Sara Yosra Mamdoh/;

    foreach (@list){
    print 
    $_" You are a member of the family!\n";
    }

    Control Structers:
    WHILE
    $a10;
    while (
    $a != 0)
    {print 
    $a--;}

    Ouputs10987654321
    Control Structers
    :
    Introducing until:
    my $controller 10;

    until ($controller == 20)
    {
    print
    "going up unitl 19\n";
    $controller++;
    }

    Control Structers
    given
    $name ){
    when("Ali"){ say "welcome $name your are the 1st"}
    when("Saleh"){say "welcome $name your are the 2nd"}
    when("Hashem"){say "welcome $name your are the 3d"}
    default{
    say "I don't know you"}}
    Control Structures
    use Switch;
    switch ( 
    $name ){
    case 
    "Ali" say "welcome $name your are the 1st"}
    case 
    "Saleh" {say "welcome $name your are the 2nd"}
    case 
    "Hashem" {say "welcome $name your are the 3d"}
    else {
    say "I don't know you"}
    }
    Expression Modifiers
    use 5.010;
    $bool 1;
    $a 5;

    say "I am in love" if $bool;
    say "false" unless $bool;
    say "my name is", ($a++) while $a 9;
    Records
    Variable 
    can hold one item only;
    my $number 1;
    Array:  
    can hold more than one item
    my 
    @array = qw\ali yasser salman\;
    print 
    $array[0];

    Records
    Null value
    :

    if (
    defined($my_total)){}

    my $var undef;
    Records
    Hashes
    :
    my %hashqw/
    0555555 ali
    0666666 yasser
    0899999 basem
    /;
    foreach 
    $phoneNumber(keys %hash)
    {
    print 
    "$phoneNumber = $hash{$phoneNumber} \n"}
    Subroutines:
    Chunks of frequent used codelike headersfooters,..etc
    &hello(); sub hello(){
    print 
    "welcome to ali website";}
    Passing parameters:
    &
    hello("Visitor1"); sub hello(){
    $name shift;
    print 
    "welcome to ali website\n";
    print 
    "welcome $name";} 
    Subroutines:
    كود PHP:
    Passing more than one item:
    &
    hello("Visitor1","Visitor2");

    sub hello(){my ($name1$name2) = @_;
    print 
    "welcome to ali website\n";
    print 
    "welcome $name1";
    print 
    "welcome $name2";}
    Returning:
    print &
    hello();
        
    sub hello(){
    return 
    1;}





    Scoping:
    $total 10;
    $number 12;
    &
    adding($number);

    sub adding()
    {
    $number shift;
    $total $total + --$number;
    }

    print 
    $number;
    print 
    $total;
    Naked block Control Structer
    {
    my $name "Ali"$age="24"$location="SA";

    print 
    $name;
    print 
    $age;
    print 
    $location

    }

    Regular Expressions:
    if(
    $string =~ m/(A|E|I|O|U|Y|a|e|i|o|u|y)/)
      {print 
    "String contains a vowel!\n"}
    $string =~ s/Ali Yami/Ali Qahtani/;
    Change everything to upper case: $string =~ tr/[a-z]/[A-Z]/; 
    Change everything to lower case $string =~ tr/[A-Z]/[a-z]/; 
    Modules
    Ready to use libraries for the language:
    Like bindings for GUI libraries, or facilities to work with internet, etc.
    CPAN…
    Object Oriented
    Objects
    Data fields
    Methods
    Classes

    Inheritence
    Polymorphism
    Overloading vs OverRiding
    Pure OO vs Hybird
    GUI programing:
    Event Driven programing:
    Exceptions
    Exceptions:
    Eval
    $total = 13/0;
    print $total;
    Program fails with: Illegal division by zero

    Exceptions
    Defensive programming:
    $a= 10;
    $b = 0;
    if ($b == 0){ print"you are trying to divide by zero"}
    else { print $a/$b;}
    Extreme Programing
    Tests
    كود PHP:
    use Test::Simple tests => 2;

        use 
    Date::ICal;

        
    my $ical Date::ICal->new;         # create an object
        
    okdefined $ical );                # check that we got something
        
    ok$ical->isa('Date::ICal') );     # and it's the right class 
    • Test Driven Development
    • closures
    • recursion


    How to become a programer?
    “Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.”
    (Eric Raymond)

    Teach yourself prog. In ten years:
    Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in ten years.
    Talk to other programmers; read other programs. This is more important than any book or training course.
    Program. The best kind of learning is learning by doing.
    If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don't enjoy school, you can (with some dedication) get similar experience on the job. In any case, book learning alone won't be enough.
    Teach yourself prog. In ten years:
    Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others.
    Work on projects after other programmers. Be involved in understanding a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain it after you.

    Learn at least a half dozen programming languages.
    Remember that there is a "computer" in "computer science". Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk.
    Get involved in a language standardization effort.
    Have the good sense to get off the language standardization effort as quickly as possible.
    Programers virtues:
    Laziness - The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer.
    Impatience - The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to.
    Hubris - Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about.
    The END
    Any questions?
    Static files
    alyassen.github.io

  • #2
    اتشرف بأن اكون اول من يرد

    اكتبها بالعربى لأن فيها ناس هنا هاتقولك....اكتب بالعربى لاننا مش بنعرف غير العربى

    اما بالنسبة للهيكل, ربنا يعينك و تخلص اللى انت قلت هاتلتزم بيه d:
    If 386BSD had been available when I started on Linux, Linux would probably never had happened." --Linus Torvald"

    تعليق


    • #3
      اهلا اخي الفاضــــــــل ،،،

      بخصوص اللغة فالمحاضرة ستكون بالعربي ان شاء الله ،، اللهم السلايدات ستكون انجليزية لانها مجرد عناوين و بعض اكواد ، الاكواد سيتم شرحها بالعربي اما العناوين ايضا ستشرح بالعربي نظريا مع امثلتها ...الخ و لكن ستبقى في السلايدات بالانجليزية لانها موجهة لطلاب جامعة و الهدف الرئيسي من كل هذه المحاضرة هو التعريف باهم المصطلحات و المفاهيم البرمجية التي ستمر كثيرا على المهتمين بتخصص علوم الحاسب بحيث يكون هناك نوع من الفهم و ان كان كليا يساعد على التعمق لاحقا و يزيل رهبة المصطلحات الرنانة ...

      لك خالص احترامي و تقديري
      Static files
      alyassen.github.io

      تعليق


      • #4
        المشاركة الأصلية بواسطة علي آل ياسين مشاهدة المشاركة
        اهلا اخي الفاضــــــــل ،،،

        بخصوص اللغة فالمحاضرة ستكون بالعربي ان شاء الله ،، اللهم السلايدات ستكون انجليزية لانها مجرد عناوين و بعض اكواد ، الاكواد سيتم شرحها بالعربي اما العناوين ايضا ستشرح بالعربي نظريا مع امثلتها ...الخ و لكن ستبقى في السلايدات بالانجليزية لانها موجهة لطلاب جامعة و الهدف الرئيسي من كل هذه المحاضرة هو التعريف باهم المصطلحات و المفاهيم البرمجية التي ستمر كثيرا على المهتمين بتخصص علوم الحاسب بحيث يكون هناك نوع من الفهم و ان كان كليا يساعد على التعمق لاحقا و يزيل رهبة المصطلحات الرنانة ...

        لك خالص احترامي و تقديري

        طيب نفسنا نخدم يا سيدنا!

        ائمرنى
        If 386BSD had been available when I started on Linux, Linux would probably never had happened." --Linus Torvald"

        تعليق


        • #5
          المشاركة الأصلية بواسطة qmemo مشاهدة المشاركة
          طيب نفسنا نخدم يا سيدنا!

          ائمرنى

          شاكر لك اخلاقك استاذنا الغالي ،،،
          انا فعليا محتاج الى اراء و اقتراحات لذلك طرحت المسودة ..

          هل الهيكل الان شبه متكامل و يغطي الاشياء المهمة ؟
          هل الافضل التركيز على الشرح النظري مثلا ما مفهوم كذا و متى نستخدمه او من الافضل التركيز على الجانب العملي (الاكواد ...الخ)
          هل المواضيع المختارة متقدمة و من شأنها ان تنفر من ليس له دراية بالبرمجة ام انها بسيطة و يجب التعمق اكثر ؟؟
          هل توجد مواضيع مهمة ناقصة ؟ مثلا قواعد البيانات ، البرمجة المنطقية ...ألخ
          هل الهيكل طويل و لا يصلح لمحاضرة واحدة ( مثلا نلغي قسم البرمجة الحدثية) او انه يمكننا التوسع اكثر ...؟
          ...الخ

          تحية و اعتراف بجميل اخلاقكم ...
          Static files
          alyassen.github.io

          تعليق


          • #6
            السلام عليكم

            مرحبا علي، بالنسبة للإقتراحات لفتني تصنيفك للغات البرمجة ؟! لو تتجنب إعطاء وجهة نظرك في الموضوع أفضل أعتقد...

            كما أن الأمثلة تبدو دسمة قليلا لو تبسطها أكثر، عناوين Modules، Inheritence، Exceptions أعتقد لاداعي إليها

            هذا كل مالدي، بالتوفيق في إلقاء العرض

            تعليق


            • #7
              المشاركة الأصلية بواسطة علي آل ياسين مشاهدة المشاركة
              شاكر لك اخلاقك استاذنا الغالي ،،،
              انا فعليا محتاج الى اراء و اقتراحات لذلك طرحت المسودة ..

              هل الهيكل الان شبه متكامل و يغطي الاشياء المهمة ؟
              هل الافضل التركيز على الشرح النظري مثلا ما مفهوم كذا و متى نستخدمه او من الافضل التركيز على الجانب العملي (الاكواد ...الخ)
              هل المواضيع المختارة متقدمة و من شأنها ان تنفر من ليس له دراية بالبرمجة ام انها بسيطة و يجب التعمق اكثر ؟؟
              هل توجد مواضيع مهمة ناقصة ؟ مثلا قواعد البيانات ، البرمجة المنطقية ...ألخ
              هل الهيكل طويل و لا يصلح لمحاضرة واحدة ( مثلا نلغي قسم البرمجة الحدثية) او انه يمكننا التوسع اكثر ...؟
              ...الخ

              تحية و اعتراف بجميل اخلاقكم ...

              تكلمت مع مبرمج صديق لى من الخارج و أظن انكم على نفس المستوى المهم, هذة هى التعديلات التى يراها


              // note: Terry's comments for Mohamed
              // will look like this, e.g. // comment
              // more general stuff will just be indented with a tab.

              Programs vs. Scripts

              This could do with explanation: Program vs. Scripts is somewhat of a
              misnomer (http://wordnetweb.princeton.edu/perl/webwn?s=misnomer). A
              program *is* a script, therefore a script is also program in the
              formal context. The way the OS runs a .exe is also little different
              from how Ruby runs a script.

              If not intending to explain something along that line, the distinction
              is more likely intended between a program that's stand alone (like
              Mozilla) and a program meant to script the actions of another (like
              ********** on a web page).

              Compiled vs Interpreted

              This is just a common case, some languages utilize both compiler and
              interpreter. Unless you are choosing (or developing) an
              implementation, there's little concern for the difference.

              Common Lisp makes both available at run time, most quality
              implementations of common lisp are native code compilers, not unlike
              GCC and Visual C++. Some are byte code driven similar to
              javac+beanshell.

              Some otherwise interpreted languages also employ both a compiler and
              an interpreter face. Traditionally the Perl interpreter compiles the
              code in memory, then interprets the result. Like wise (C)Python can
              compile interpreted programs down into byte code representations as an
              optimization (for subsequent runs/imports).

              Some "Compiled" languages also merge it in other ways, e.g. javac
              compiles Java code to byte code to be interpreted by java (the vm) to
              be compiled just in time to native machine code.

              Dynamic vs. Static

              Depending on the target audience and depth desired it may be worth
              going into strict/non-strict evaluation as the next topic.

              Source vs. binary
              // I assume he either means things like Ruby/Python/Perl/**********
              // where the source is usually the program given, versus languages
              // like C/C++ where you have the chance to 'hide' your source behind a
              // compiled binary.
              //
              // Either way it just makes it harder to figure out the source, and
              // some people earn big bucks disassembling code.
              //
              // So I'm at somewhat of a loss here :-/

              Desktop vs. Web
              good

              Server Side vs. Client Side
              good

              What do you need

              Text Editor

              Compiler or Interpreter

              A more correct description would be "Runtime and development
              environments (for your language)".

              Most compiled programs are worthless without a runtime, this includes
              everything from hosted C to the typical lisp system. You also can't
              compile code without a development environment; I.e. the environment
              of tools needed for development. This is distinctly _different_ from
              an IDE. In C, the words compiler, assembler, and linker generally are
              the "Development environment"

              In interpreted languages the interpreter is typically the runtime and
              the development environment, but not necessarily (java (the vm) versus
              javac (the compiler))

              What do you need?
              Or just use and IDE:
              What do you need?
              Or just use and IDE:
              What do you need?
              Or just use and IDE:
              What do you need?
              Or just use and IDE:
              What do you need?
              Or just use and IDE

              The above place holders are mostly a crock. Learn to use the
              programming language :-P.

              Good IDEs will integrate the development environment, a debugger,
              project management, and interface to various non-essential but very
              worth while tools: like profilers and version control.

              // I've a notion for an IDE where the project management *is* the
              // version control system.

              Program. Langs. Categorization --- my own classification for ease
              Microsoft (Windows): vb, asp, C #,. NET .. etc
              Unix: C | C + +, python, Perl, php, ruby ... etc
              Sun JVM: Java, Groovy, Fortress, Scala, Jython ... etc

              This is a rather slanted and unrealistic way of grouping languages,
              but if it's for your own use.... knock yourself out.

              // "Go ahead and knock yourself out" is an idiom that basically means,
              // "Go ahead and do it if you really want", but in a more sarcastic
              // way.

              Programming Paradigm
              A programming paradigm is a fundamental style of computer programming. (Compare with a methodology, which is a style of solving specific software engineering problems.) Paradigms differ in the concepts and abstractions used to represent the elements of a program (such as objects, functions, variables, constraints, etc.) And the steps that compose a computation (assignment, evaluation, continuations, data flows, etc.).

              Close/fair enough.

              Programming Paradigms
              Procedural
              Object Oriented
              Event driven
              Functional

              That is a rather *bland* way of looking at it.

              Procedural / Event driven / Functional are probably the only ones in
              that list that can really be compared with the other. OO is just a
              form of structured programming, procedural could also be viewed that
              way, depending on your exposure to unstructured programming.

              Thoughts:

              Imperative versus Declarative // worth understanding from
              // a the design POV !
              structured versus unstructured
              meta(programming)
              parallel/concurrent

              // I could write volumes on this sort of crap

              Procedural Prog

              all these were marked with ':Code PHP' but they are clearly Perl 6.

              Modules
              Ready to use libraries for the language:
              Like bindings for GUI libraries, or facilities to work with internet, etc.
              CPAN ...

              This should probably be more abstract, e.g. focus on what a reusable
              library is, not what it can do (which is usually close to "Anything
              and everything")

              Object Oriented

              Perl is probably not the best choice for demonstrating Object Oriented
              Programming to those who are not familiar with it. A better choice
              would be something like C#, PHP5, or Java.

              // NOTE: I'm writing this from a Perl5 perspective.
              // Realistically only a Perl enthusiast is going
              // to have any *real* use for Perl 6 right now.
              //
              // and perl5 is only a good intro to OOP for C programmers and
              // their associates from classic Fortran, etc

              Objects
              Data fields
              Methods
              Classes
              Inheritance
              Polymorphism
              Overloading vs Overriding
              Pure OO vs Hybrid
              GUI programming:
              Event Driven programming:
              Exceptions
              Exceptions:
              Eval
              $ Total = 13 / 0;
              print $ total;
              Program fails with: Illegal division by zero

              This needs *a lot* more exposition. Exceptions are also more acline to
              "OMG the sky is falling" than to serious event driven programming. As
              the old saying goes, exceptions are not control flow.

              // they are actually closer to continuations and non-local GOTO with
              // stack magic applied

              Exceptions
              Defensive programming:
              $ A = 10;
              $ B = 0;
              if ($ b == 0) (print "you are trying to divide by zero")
              else (print $ a / $ b;)

              More programmers need to do this.

              Extreme Programming

              Probably to advanced a topic

              Tests

              Everyone should learn (and do) this
              If 386BSD had been available when I started on Linux, Linux would probably never had happened." --Linus Torvald"

              تعليق


              • #8
                وعليكم السلام ورحمة الله وبركاته،
                جازاك الله خيرا على هذا المجهود الرائع وجعله في ميزان حسناتك. لدي فقط بضع المقترحات:
                أ- يرجى أن يتم تبسيط وتنسيق جدول المحتويات وترقيمه، مثلا على النحو التالي:

                1 - ما هي البرمجة؟ ?What is programming

                1-1 - البرامج والسكربتات Programs vs. Scripts
                2-1 - المصرّف والمفسّر Compiled vs Interpreted
                ...

                ب- الاشارة إلى أن اللّغة التي سيقع التركيز عليها والأمثلة ستكون بلغة بيرل (وعلى منصة لينكس إذا أردت).

                ج- أتفق مع نقطة الأستاذ أمين حول تبسيط بعض المفاهيم المتقدمة أو حذفها (بما أنه مدخل للبرمجة وليس دليلا متقدما).

                د- أن تكون شرائح العرض بملف odp عوضا عن pptx لأنها لا تظهر جيدا على أوبن أوفيس (ومن الأفضل أن تكون الخلفية بيضاء والكتابة بلون داكن).

                وبالتوفيق إن شاء الله.

                تعليق


                • #9
                  السلام عليكم
                  مرحباً أستاذ علي

                  1. س: ألا يجب أن تكن المقدّم شاملة وأقل تخصّصاً؟ مثلاً، أن لا تقتصر على لغات programing & scripting بحيث تلمّح للغات الوصف والذكاء الاصطناعي (مع أن الأخيرة قد تكون ذات علاقة بالـscripting) إضافة إلى تقليل التعمّق في بعض القضايا البرمجيّة والتركيز على الخيارات المتاحة واختيار الأفضل لطبيعة العمل. يمكنك أيضاً أن تتحدث بشكل وجيز عن أنظمة التشغيل وإمكانياتها في مجالات معيّنة (كالخوادم، والأجهزة الكفية والمدمجة ...الخ)، والمنصات التي تعمل عليها لغات البرمجة التي ستذكرها.

                  2. س: لماذا قلت بأن لغات c, c++, php, python, ruby هي لغات يونكس (أعرف أنها أشهر على هذه المنصات)، المفترض أن نشجع استخدامها على كل المنصات وليس منصات يونكس فقط. إذا قلت بأنها لغات يونكس، فسيظن البعض أنها لا تعمل إلا عليه، وإذا قلت أنها تعمل على غيره، فسيظن البعض أن أداءها على ويندوز وماك لن يكون بالشكل المطلوب، أو على الأقل هذا ما أظنّه، فهل لك رأي آخر في الموضوع؟

                  3. كم مدّة المحاضرة؟ المحتوى كبير جداً، فهل هي مقسّمة؟ وهل فيها استراحة؟

                  4. السؤال الأهم: هل يمكننا الحصول على فيديو للمحاضرة بعد أن تنتهي منها ؟!
                  عبدالرحيم الفاخوري -- abdilra7eem
                  IRC: Fakhouri
                  فلسطين
                  مترجم ومبرمج ويب وفني شبكات وخوادم يحب البطاريق

                  كتاب الإدارة المتقدمة لجنو/لينكس:
                  https://librebooks.org/gnu-linux-adv...dministration/

                  تعليق


                  • #10
                    المشاركة الأصلية بواسطة أمين روخ مشاهدة المشاركة
                    السلام عليكم

                    مرحبا علي، بالنسبة للإقتراحات لفتني تصنيفك للغات البرمجة ؟! لو تتجنب إعطاء وجهة نظرك في الموضوع أفضل أعتقد...

                    كما أن الأمثلة تبدو دسمة قليلا لو تبسطها أكثر، عناوين Modules، Inheritence، Exceptions أعتقد لاداعي إليها

                    هذا كل مالدي، بالتوفيق في إلقاء العرض
                    و عليكم السلام و رحمة الله و بركاته :

                    بالنسبة للتنصيف ارجو قراءة ردي في المشاركة القادمة (تيري)...
                    بخصوص المواضيع المتقدمة التي ذكرتها سأحاول ان شاء الله ازالة بعضها ربما من مثل العودية و الكلوجرز و لكن مصطلحات البرمجة الشيئية هي بطلب من طلاب الجامعة ...

                    اشكرك استاذنا على المرور و التعقيب
                    Static files
                    alyassen.github.io

                    تعليق


                    • #11
                      [QUOTE=Albakry;343054]وعليكم السلام ورحمة الله وبركاته،
                      جازاك الله خيرا على هذا المجهود الرائع وجعله في ميزان حسناتك. لدي فقط بضع المقترحات:
                      أ- يرجى أن يتم تبسيط وتنسيق جدول المحتويات وترقيمه، مثلا على النحو ا
                      لتالي:

                      1 - ما هي البرمجة؟ ?What is programming

                      1-1 - البرامج والسكربتات Programs vs. Scripts
                      2-1 - المصرّف والمفسّر Compiled vs Interpreted
                      ...


                      --- ملاحظة جيدة و ان شاء الله في النسخة النهائية سيكون الترتيب اكثر وضوحا و سهولة ...

                      ب- الاشارة إلى أن اللّغة التي سيقع التركيز عليها والأمثلة ستكون بلغة بيرل (وعلى منصة لينكس إذا أردت).

                      --- ايضا ملاحظة جيدة و سيتم التنويه بهذا ....

                      ج- أتفق مع نقطة الأستاذ أمين حول تبسيط بعض المفاهيم المتقدمة أو حذفها (بما أنه مدخل للبرمجة وليس دليلا متقدما).

                      --- المشكلة مثلما اشرت سابقا ان بعض المواضيع هي من طلب الطلاب و لكن سيتم تفادي بعض المواضيع الاقل اهمية و التي تستهلك وقتا كثيرا ...

                      د- أن تكون شرائح العرض بملف odp عوضا عن pptx لأنها لا تظهر جيدا على أوبن أوفيس (ومن الأفضل أن تكون الخلفية بيضاء والكتابة بلون داكن).

                      --- فكرة ممتازة اخي الكريم و لاني سيء في تصميم العروض سأحاول ان اسند المهمة الى شخص جيد في الاوبن اوفيس ،

                      وبالتوفيق إن شاء الله.

                      --- شكرا لك جزيلا على هذا المرور الكريم
                      Static files
                      alyassen.github.io

                      تعليق


                      • #12
                        اخي عبدالرحيم و عليكم السلام و رحمة الله :-

                        1- بصراحة لم افهم النقطة جيدا ، هل تقصد ان اضيف قسم بلغات الذكاء الاصطناعي ؟ و برمجة الاجهزة الكفية باستخدام لغات البرمجة مثل جافا؟
                        2- ارجو قراءة ردي على هذه النقطة في تعقيبي على رسالة تيري ..
                        3- مدة المحاضرة لم تحدد بعد و ستكون بحسب اختيار اصحاب الشأن و ربما تجرأ الى جزأين ، انا سأرفع لهم السلايد النهائي و المدة المقترحة و هم سيعدلون عليها ..
                        4- في الاغلب سيكون هناك تسجيل و اذا كان هكذا الامر فسأرفقه هنا في المنتدى لمن يحب الاطلاع عليها ...

                        دمتم في حفظ الرحمن اخي الكريم
                        Static files
                        alyassen.github.io

                        تعليق


                        • #13
                          المشاركة الأصلية بواسطة علي آل ياسين مشاهدة المشاركة
                          اخي عبدالرحيم و عليكم السلام و رحمة الله :-

                          1- بصراحة لم افهم النقطة جيدا ، هل تقصد ان اضيف قسم بلغات الذكاء الاصطناعي ؟ و برمجة الاجهزة الكفية باستخدام لغات البرمجة مثل جافا؟
                          2- ارجو قراءة ردي على هذه النقطة في تعقيبي على رسالة تيري ..
                          3- مدة المحاضرة لم تحدد بعد و ستكون بحسب اختيار اصحاب الشأن و ربما تجرأ الى جزأين ، انا سأرفع لهم السلايد النهائي و المدة المقترحة و هم سيعدلون عليها ..
                          4- في الاغلب سيكون هناك تسجيل و اذا كان هكذا الامر فسأرفقه هنا في المنتدى لمن يحب الاطلاع عليها ...

                          دمتم في حفظ الرحمن اخي الكريم
                          اجعل الرد فى مكان منفصل حتى استطيع ان اسنخه و الصقه له

                          تشكرات مقدما و ربنا يجعلنا فى رمضان من الفائزين
                          If 386BSD had been available when I started on Linux, Linux would probably never had happened." --Linus Torvald"

                          تعليق


                          • #14
                            السلام عليكم و رحمة و الله
                            عزيزي محمد ...
                            اولا اود ان تبلغ صديقك عني جزيل شكري له ،،
                            رده جميل و رائع و لكن في بعض الامور حملها ما لا تطيق و ذلك اعتقد لانه لم توضح له فكرة العرض بالشكل المطلوب … هنا بعض تعقيباتي على الرد ...

                            Programs vs. Scripts

                            This could do with explanation: Program vs. Scripts is somewhat of a
                            misnomer (http://wordnetweb.princeton.edu/perl/webwn?s=misnomer). A
                            program *is* a script, therefore a script is also program in the
                            formal context. The way the OS runs a .exe is also little different
                            from how Ruby runs a script.

                            If not intending to explain something along that line, the distinction
                            is more likely intended between a program that's stand alone (like
                            Mozilla) and a program meant to script the actions of another (like
                            ********** on a web page).


                            هنا قام مشكورا بتوضيح النقطة

                            Compiled vs Interpreted

                            This is just a common case, some languages utilize both compiler and
                            interpreter. Unless you are choosing (or developing) an
                            implementation, there's little concern for the difference.

                            Common Lisp makes both available at run time, most quality
                            implementations of common lisp are native code compilers, not unlike
                            GCC and Visual C++. Some are byte code driven similar to
                            javac+beanshell.

                            Some otherwise interpreted languages also employ both a compiler and
                            an interpreter face. Traditionally the Perl interpreter compiles the
                            code in memory, then interprets the result. Like wise (C)Python can
                            compile interpreted programs down into byte code representations as an
                            optimization (for subsequent runs/imports).

                            Some "Compiled" languages also merge it in other ways, e.g. javac
                            compiles Java code to byte code to be interpreted by java (the vm) to
                            be compiled just in time to native machine code.


                            هنا ايضا قام مشكورا بالشرح المفصل و هذا ما كنت سأتكلم عنه بالعربي

                            Dynamic vs. Static

                            Depending on the target audience and depth desired it may be worth
                            going into strict/non-strict evaluation as the next topic.


                            لانه مبرمج محترف توقع انني سأتكلم عن التقييم لاحقا و لكن لا اعتقد ان الموضوع مناسب للعرض مبدئيا
                            كنت فقط سأتكلم عن الكتابة و الانواع
                            Source vs. binary
                            // I assume he either means things like Ruby/Python/Perl/**********
                            // where the source is usually the program given, versus languages
                            // like C/C++ where you have the chance to 'hide' your source behind a
                            // compiled binary.
                            //
                            // Either way it just makes it harder to figure out the source, and
                            // some people earn big bucks disassembling code.
                            //
                            // So I'm at somewhat of a loss here :-/


                            لا فقط كنت سأتكلم عن الفرق بين السورس و هو ما نفهمه نحن و البناري و هو ما يفهمه الحاسب

                            Desktop vs. Web
                            good

                            Server Side vs. Client Side
                            good

                            What do you need

                            Text Editor

                            Compiler or Interpreter

                            A more correct description would be "Runtime and development
                            environments (for your language)".

                            Most compiled programs are worthless without a runtime, this includes
                            everything from hosted C to the typical lisp system. You also can't
                            compile code without a development environment; I.e. the environment
                            of tools needed for development. This is distinctly _different_ from
                            an IDE. In C, the words compiler, assembler, and linker generally are
                            the "Development environment"

                            In interpreted languages the interpreter is typically the runtime and
                            the development environment, but not necessarily (java (the vm) versus
                            javac (the compiler))


                            ملاحظات قيمة

                            What do you need?
                            Or just use and IDE:
                            What do you need?
                            Or just use and IDE:
                            What do you need?
                            Or just use and IDE:
                            What do you need?
                            Or just use and IDE:
                            What do you need?
                            Or just use and IDE

                            The above place holders are mostly a crock. Learn to use the
                            programming language :-P.

                            Good IDEs will integrate the development environment, a debugger,
                            project management, and interface to various non-essential but very
                            worth while tools: like profilers and version control.

                            // I've a notion for an IDE where the project management *is* the
                            // version control system.


                            وجهة نظره احترمها و لكن طلاب الجامعة و من يطمح في سوق العمل لا يستطيع الا ان يتعلم هذه البرامج “بيئات التطوير المدمجة”

                            Program. Langs. Categorization --- my own classification for ease
                            Microsoft (Windows): vb, asp, C #,. NET .. etc
                            Unix: C | C + +, python, Perl, php, ruby ... etc
                            Sun JVM: Java, Groovy, Fortress, Scala, Jython ... etc

                            This is a rather slanted and unrealistic way of grouping languages,
                            but if it's for your own use.... knock yourself out.

                            // "Go ahead and knock yourself out" is an idiom that basically means,
                            // "Go ahead and do it if you really want", but in a more sarcastic
                            // way.


                            نعم كما اشار الاخوة هناك اعتراض على تصنيفي هذا ..
                            و هو فعلا ليس تصنيفا صحيحا و انما وضعته لتقريب الفكرة باختيار العامل المشترك الاكبر
                            مثلا كائن ربما تكون كلمة مبهمة كما لاحظت عند اغلب الطلاب
                            و لكن عندما اخبرهم انهم يمكن ان يتخيلوها على انها هاش رفرنس تبدا الامور بالوضوح
                            بالطبع كلامي ليس دقيقا هنا ايضا فانا قلت هذا لاني مبرمج بيرل و لكن الفكرة توضحت ان الكائن في حقيقة الامر ليس شيء سحري و انما نوع من البيانات المعقدة..
                            على كل حال ربما الغي هذا التصنيف فانه يبدو بدلا من ان يسهل الامور عقدها هههه…

                            Programming Paradigm
                            A programming paradigm is a fundamental style of computer programming. (Compare with a methodology, which is a style of solving specific software engineering problems.) Paradigms differ in the concepts and abstractions used to represent the elements of a program (such as objects, functions, variables, constraints, etc.) And the steps that compose a computation (assignment, evaluation, continuations, data flows, etc.).

                            Close/fair enough.
                            لا ادري ماذا يقصد بقريب ! هذا التعريف منقول من الويكيبيديا
                            Programming Paradigms
                            Procedural
                            Object Oriented
                            Event driven
                            Functional

                            That is a rather *bland* way of looking at it.

                            Procedural / Event driven / Functional are probably the only ones in
                            that list that can really be compared with the other. OO is just a
                            form of structured programming, procedural could also be viewed that
                            way, depending on your exposure to unstructured programming.

                            Thoughts:

                            Imperative versus Declarative // worth understanding from
                            // a the design POV !
                            structured versus unstructured
                            meta(programming)
                            parallel/concurrent

                            // I could write volumes on this sort of crap


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

                            Procedural Prog

                            all these were marked with ':Code PHP' but they are clearly Perl 6.


                            نعم لانك اخي الكريم نسخت له الموضوع من المنتدى فظهرت الاكواد تحت مسمى بي اتش بي
                            و على فكرة هي ليست بيرل 6 كما يقول انما هي بيرل 5 و لكني في اغلب الامثلة كنت اكتب باستايل بيرل 6 الاجمل و هذا شي ممكن في بيرل 5

                            Modules
                            Ready to use libraries for the language:
                            Like bindings for GUI libraries, or facilities to work with internet, etc.
                            CPAN ...

                            This should probably be more abstract, e.g. focus on what a reusable
                            library is, not what it can do (which is usually close to "Anything
                            and everything")


                            ملاحظة قيمة على التجريد اشكره عليها …

                            Object Oriented

                            Perl is probably not the best choice for demonstrating Object Oriented
                            Programming to those who are not familiar with it. A better choice
                            would be something like C#, PHP5, or Java.


                            ملاحظة ممتازة و انا فعلا كنت ساضيف الاكواد البرمجية في هذا القسم ببيرل 6 او جافا

                            // NOTE: I'm writing this from a Perl5 perspective.
                            // Realistically only a Perl enthusiast is going
                            // to have any *real* use for Perl 6 right now.
                            //
                            // and perl5 is only a good intro to OOP for C programmers and
                            // their associates from classic Fortran, etc
                            انا لا اشكك ابدا بقدرات هذا المبرمج و كما اشرت لديه فهم ممتاز و ملاحظات ثاقبة و لكن في هذه اسمح لي ان اعارضه بقوة فهو يقول انه يتكلم من منظار مبرمج بيرل5 و لكنه قبل قليل لم يستطع التميز بين بيرل6 و بيرل5 فلا اعتقد ان له الحق في ان يحكم في هذه النقطة
                            لا اريد ان يصبح الموضوع نقاشا برمجيا ولا اهدف لذلك و لكن كل مبرمجين بيرل يعلمون ان البرمجة الشيئية باستخدام موس سهلة جدا بشكل سخيف …

                            Objects
                            Data fields
                            Methods
                            Classes
                            Inheritance
                            Polymorphism
                            Overloading vs Overriding
                            Pure OO vs Hybrid
                            GUI programming:
                            Event Driven programming:
                            Exceptions
                            Exceptions:
                            Eval
                            $ Total = 13 / 0;
                            print $ total;
                            Program fails with: Illegal division by zero

                            This needs *a lot* more exposition. Exceptions are also more acline to
                            "OMG the sky is falling" than to serious event driven programming. As
                            the old saying goes, exceptions are not control flow.

                            // they are actually closer to continuations and non-local GOTO with
                            // stack magic applied


                            ايضا ملاحظات في محلها

                            Exceptions
                            Defensive programming:
                            $ A = 10;
                            $ B = 0;
                            if ($ b == 0) (print "you are trying to divide by zero")
                            else (print $ a / $ b;)

                            More programmers need to do this.

                            Extreme Programming

                            Probably to advanced a topic


                            نعم لم اختاره الا لان طلاب الجامعة سيدرسونه بالتاكيد

                            Tests

                            Everyone should learn (and do) this

                            هههه صدق و الله لا ارى الكثير منا يعملها !....


                            مشاركة قيمة اتحفتنا بها اخي محمد ارجو ان تبلغ شكري الجزيل لهذا الصديق و امتناني اللامتناهي ..




                            دمتم في حفظ الرحمن
                            Static files
                            alyassen.github.io

                            تعليق


                            • #15
                              يوصل إن شاء الله
                              If 386BSD had been available when I started on Linux, Linux would probably never had happened." --Linus Torvald"

                              تعليق

                              يعمل...
                              X