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