Advanced Programming (AP)

About Us.

Advanced Programming (AP) (Educational Course) Course Homepage

First Group: Wednesday 17:00 - 19:00 Thursday 10:00 - 12:00
Room: 104
Tuesdays 10:00 - 12:00 and Wednesday 08:00 - 10:00 Second Group: Wednesday 17:00 - 19:00 Thursday 10:00 - 12:00
Room: 104

Instructors

Instructor: Mohammad Reza Razian
Website: mrazian.com
Email: [MyFamilyName].mr [AT] gmail

Teacher Assistants (TAs)


Description:

Although the principles of structured programming improved the clarity, reliability, and ease of maintenance of programs, large-scale programming still remains a challenge. OOP brings a new approach to that challenge. Unlike procedural programming, which emphasizes algo- rithms, OOP emphasizes the data. Rather than try to fit a problem to the procedural approach of a language, OOP attempts to fit the language to the problem. The idea is to design data forms that correspond to the essential features of a problem (References: C++ Primer Plus (6th Edition) (Developer's Library) 6th or 5th Edition, by Stephen Prata).

Prerequisites

FTP

    References:

    Syllabus
    C Plus Plus How to Program, 8th Edition by Paul Deitel and Harvey Deitel
    C++ Primer Plus, 5th Edition, by Stephen Prata

Policies:

Grading policy is as follows. This is tentative.
12 Final
6 Homework and Project
1 workshop
1 Discipline (Class Participation and Following rules)

There will be no exceptions to the following rules:

  1. If you turn in your assignment one or more day late you will loose grade.

  2. Cell Phones must be turned off (or be silent) when you are in class.

  3. Policy for cheating/copying HWs. Providing your assignment to someone else is considered cheatingon your behalf. All participants will receive -100 for the task at hand.

  4. Your dress should be adopted to Dress code of Semnan University.

Important Info
  • HW Grades-1-2-3: [XLSX]
  • 1-HW-Grade: [XLSX]
  • Face to Face Delivery v1.0 for HW1 [PDF]

TA section
  • Think Like a Programmer: An Introduction to Creative Problem Solving: [PDF]

Homework
  • Qt, C++ Android AND SOA Homework 4 - v1.0 : [PDF] Due Tir 19th, 23:59:59
  • Qt, C++ OOP Homework 3 - v1.0 : [PDF] Due Khordad 07th, 23:59:59
  • C++ OOP Homework 2 - v1.0 : [PDF] Irainian Election [PDF] Due Farvardin 21th, 23:59:59
  • C++ OOP Homework 1 - v1.0 : [PDF] Due Esfand 23th, 23:59:59

Course Material
  1. 11/19: const variable
    1. Introduction to Course
    2. Difference between Arrays and Pointers [array.cpp]
  2. 11/20:
    1. Const variables [const.cpp]
    2. Const pointers [constAdv.cpp]
  3. 11/26:
    1. Storage classes (auto, register, static, extern, mutable)
    2. static [static.cpp]
    3. extern [firstProject.zip]
    4. Call by value
    5. Reference by reference by pointer parameters
    6. Alias [alias.cpp]
    7. Call by reference by reference parameters
  4. 11/27:
      returnReference.cpp
    1. Return reference [ref.cpp] [returnReference.cpp]
    2. Unstructured (Before we learn functions)
    3. Procedural programming is a programming paradigm, derived from structured programming,
      based upon the concept of the procedure call. From wiki

    4. Modular programming is a software design technique
    5. Introduction to object oriented programming
      • Abstraction
      • Encapsulation
      • Inheritance
      • Polymorphism
      • Overloading




  5. 11/28:
    1. Looking to world as related Objects
    2. Example of objects
    3. Object attribute and Object behaviour
    4. Data Members and Member Functions
    5. What is a class?
  6. 12/03:
    1. Example of our first class [intro2class.zip]
    2. Account class [account.cpp]
    3. set and get function
    4. Constructor function definition and characteristics [account-constructor.cpp]
  7. 12/04:
    1. Public and private
    2. Concept of encapsulation
    3. Compile a program with command line
  8. 12/10:
    1. Separating interface from implementation
    2. Means of Client code and Class designer programmer
    3. .h and .cpp files [12-05.zip]
    4. How client uses .o files [mrazian.zip]
  9. 12/11:
    1. Constructor
    2. Set and get functions and Data hiding (encapsulation) concept
    3. Destructor [constructorAndDest.rar]
  10. 12/17:
    1. Default Constructor
    2. Static members
    3. Static Functions
    4. Class Composition [classComposition.rar]
  11. 12/18:
    1. Const member Functions [constFunction.rar]
    2. Const Objects
    3. Mutable storage class
    4. Introduction to Free Software
    5. GUI Prog.
    6. Intro. to Qt [Qt.rar]
  12. 12/25
    1. Pointer Objects and new
    2. Array of objects
    3. Pointer Objects
    4. Utility (Helper) functions [sales.zip]
    5. Inheritance concept
    6. Example of inheritance [inherit.zip]
    7. protected access specifier
  13. 12/26
    1. Type of inheritance
    2. Type of inheritance
    3. define, not define and endif
  14. 01/15:
    1. Different way to pass object (function call)
    2. Copy Constructor [Copy Constructor.zip]
  15. 01/16:
    1. this pointer
    2. friend function [friend function.zip]
  16. 01/23:
    1. Operator overloading
    2. Additive operator overloading
    3. Using friend function to overload an operator
  17. 01/29:
    1. insertion operator ovrloading [ov-coutPlus.zip]
    2. additive operator
  18. 01/30:
    1. Rules and restrictions in operator overloading
    2. extraction operator overloading [ov-cinPlusPlus.zip]
    3. Prefix and postfix ++ operator overloading
  19. 02/06:
    1. [] operator overloading [suVector.zip]
    2. Class Template
  20. 02/12:
    1. Exception Handling in C++ [suVector-Error.zip]
  21. 02/13:
    1. Standard Exception classes example [standard-exception.cpp]
    2. Polymorphism [inheritanceAndPolymorphism.cpp]
    3. Abstract function
    4. Pure virtual function (Abstract class) [polymorphism.cpp]
  22. 02/19:
    1. Node
  23. 02/20:
    1. List
    2. Add to list
    3. Display
    4. Destructor [linkedList.zip]
  24. 02/26:
    1. Queue [queue-stack.zip]
  25. 02/27:
    1. Stack [queue-stack.zip]
  26. 03/02:
    1. Introduction to Tree
    2. Binary Tree
    3. Binary Search Tree (BST)
  27. 03/09:
    1. BST (add to BST and Tree Traversal) [Tree-2.zip]
    2. Tree Traverse (Inorder, Preorder, Postorder
    3. Introduction to Multi Thread Programming
  28. 03/10:
    1. Multi Thread examples [thread.cpp]
    2. Define a namespace [namespace.cpp]
    3. Delete from BST
      • Leaf Node
      • Node with one child
      • Node with two childeren
Useful Resources

In this section you will introduce to so,e additional resources to read them when you have problem or challenges to discussion topics

C++ How to Program (8th Edition)
Paul Deitel, Harvey Deitel
C++ Primer Plus (6th Edition) (Developer's Library)
Stephen Prata
C++: The Complete Reference, 4th Edition
Herbert Schildt
Best Student of week

Your firstname and lastname - 1

- More Info -

firatname and lastname - 2

- More Info -

Q&A

Piazza question and answer: AP