25767: برنامه‌سازی شیءگرا
نام درس: برنامه‌سازی شیءگرا (Object Oriented Programming)
شماره درس: 25767
پیش‌نیاز(ها): 25768 (مبانی برنامه‌سازی)
هم‌نیاز(ها): -
تعداد واحد: 3
مقطع: کارشناسی
آخرین ویرایش: آذر 1397

توضیحات:
هدف این درس آشنایی دانشجویان با برنامه‌سازی شیءگرا است. این درس بر مبنای زبان Java تدریس می‌شود و تنها در انتهای نیم‌سال و در حد یک آشنایی اولیه با زبان Python نیز برای دانشجویان فراهم می‌گردد. همچنین در حین نیم‌سال تحصیلی مباحث ساده ساختمان داده و الگوریتم نیز در لابه‌لای مباحث و تمرین‌ها گنجانده می‌شود.
 
سرفصل‌ها:
  • Outline:
    • Course outline, rules, homework and project submission system (recommended: Quera), grading, etc.
  • Java basics:
    • Basic concepts of Java, JVM, JRE, JDK, platform independence, installation, Java IDE (recommended: IntelliJ Community)
  • Basic Syntax:
    • CamleCase style, data types, variables, assignment, casting, final, conditional statements (if-else, switch-case), for, while, do-while, break and continue
    • Comments for Java Doc
    • Methods, Scan, print (print, printf, println)
    • Debugging in IDE
  • Simple Java data structures:
    • Arrays, multidimensional arrays, pass/return array to/from methods, modify array inside a method
    • String class and its methods, regular expression (regex)
  • Basics of OOP:
    • Concepts of class and object, field, method, create new object, encapsulation
    • this, constructor, multiple constructors, private and protected, setter and getter, modify an object field, pass/return object to/from methods
  • Package:
    • Package and import
  • Java data structures:
    • LinkedList, two-way LinkedList, ArrayList, List, Heap, Stack, Queue, and their complexity analysis
  • Basic sort & search algorithms:
    • Bubble sort, insertion sort, merge sort, quick search
  • OOP:
    • Static methods, statics fields, why cannot use static fields in non-static methods, when to use static
    • Overloading methods
    • Inheritance (is a), class hierarchies, super, overriding methods
    • Abstract class, abstract method, inheritance for abstract classes
    • Polymorphism
    • Interfaces, difference of abstract class and interface, inheritance for interfaces
    • Inner class (has a), why and when to use inner class
    • Cloning objects and arrays, how to write a clone function for an object
    • Four principles of OOP
  • Exception:
    • Exception, throw, try-catch-finally
  • Memory management:
    • Garbage collection
  • IO:
    • OS, file read/write, how to create files and folders, and how to check the existence of files and folders.
  • GUI:
    • Introduction to Swing
  • Python:
    • Introduction to Python programming

مراجع:

 
آخرین به‌روزرسانی: 3 / 3 / 1403