ENCT153

Advanced Computer Programming

Syllabus

  1. Programming Paradigms (2 hours)
    1. Introduction
    2. Different programming paradigms
    3. Advantages, disadvantages of different paradigms and examples
  2. Introduction to Python Programming (3 hours)
    1. Need of Python
    2. History
    3. Features and limitations of Python
    4. Python with respect to other languages (C, C++, Java, JavaScript)
    5. Top Python implementations
  3. Basic Programming Concept in Python (5 hours)
    1. Keywords
    2. Basic data types
    3. Variables and inputs
    4. Logic and comparison operations
    5. Conditional statement
    6. Loop
    7. Functions
    8. Recursion function call
  4. Advanced Data Types and Operation in Python (8 hours)
    1. Mutable and immutable data types
    2. List and tuple data types
    3. Dictionary data types
    4. Sequence data types
    5. Two-dimensional lists
    6. Set data types
    7. Lambda
    8. Operation of mutable and immutable data types
  5. Object Oriented Programming (12 hours)
    1. Concepts of object-oriented programming
    2. Classes and objects: attributes and methods, the __init__() and __str__() methods, delete properties and objects, iterator in a class
    3. Aggregation and composition
    4. Inheritance: parent and child classes, __init__() in child class, the super() function, member overriding, forms of inheritance (single, hierarchical, multiple, multilevel)
    5. Polymorphism and dynamic binding: abstract class and concrete class, abstract methods and abstract attributes
    6. Operator overloading in Python: arithmetic, bitwise and shift, comparison, assignment and unary operators
  6. Exceptions and File Handling in Python (5 hours)
    1. Types of errors
    2. Types of exceptions
    3. Catching and handling exceptions
    4. User-defined exceptions
    5. Debugging programs with the assert statement
    6. Logging the exceptions
    7. Introduction to file handling
    8. Opening and closing a file
    9. Working with text and binary files
    10. Random file access
  7. Python Libraries and Maths (10 hours)
    1. Modules, packages and libraries
    2. The standard library and library functions
    3. Adding more Python libraries
    4. Python frameworks
    5. Introduction to the NumPy library
    6. Creating, indexing and slicing NumPy arrays
    7. Copying and editing NumPy arrays
    8. Stacking and restructuring NumPy arrays
    9. Arithmetic operations with NumPy arrays
    10. Operations with NumPy arrays of different shapes
    11. Concatenation, reversion and persistence of NumPy arrays
    12. Applications of NumPy random number generation
    13. Applications of NumPy statistics
    14. Applications of NumPy linear algebra

Practicals

Ten laboratory exercises covering all the topics. At the end of the course students must submit a programming project report.