Friday 21 April 2017

PUCIT Faculty Wins HEC Research Grants Worth Rs.12.028 Million

PUCIT faculty has won three competitive research grants worth Rs. 12.028 million under HEC’s National Research Program for Universities (NRPU). One proposal from the college is still under review. The college faculty had submitted a total of six proposals. I congratulate Dr. Syed Waqar ul Qounain, Dr. Faisal Aslam, Dr. Fawaz Saleem Bukhari, Dr. Muhammad Murtaza Yousaf, and Dr. Khurram Shahzad for winning the highly sought after grants, and wish Dr. Shahzad Sarwar and Dr. Khurram Shahzad best on their under review proposal.
The University of the Punjab submitted at total of 91 research project proposals to HEC in May 2016 for funding under the NRPU. Out of these, 45 proposals passed initial screening and were considered for detailed review. Finally, only 12 proposals worth Rs. 39.5 million were accepted for funding. Of the remaining, 28 proposals were rejected and 5 are still under review.
Among all 83 departments, institutes, centers, and constituent colleges of the university, PUCIT has secured the top position in terms of the number of accepted proposals (three) as well as the amount of grant money (Rs.12.028 million). In other words, PUCIT faculty has won 25% of the total number of university’s funded proposals worth 30% of the total grant money given to the university.
Here are the details of PUCIT’s funded and under review research proposals:  
Funded Projects
Design and Evaluation of Humanistic Driver Agent
Principal Investigator:             Dr. Syed Waqar ul Qounain
Total Grant:                             Rs. 4,937,994
Duration:                                 Three Years
Funded Students:                   1 PhD, 4 MPhil

             A Versatile Wireless Sensor Network Test bed for Pakistani Scientists
Principal Investigator:              Dr. Faisal Aslam
Co-Principal Investigator:        Dr. Fawaz Saleem Bukhari
Total Grant:                              Rs. 4,995,418
Duration:                                  Two Years
Funded Students:                    1 PhD, 6 MPhil

             Process Model Data Warehouse (PMDW) for Multidimensional Analysis of Process Models
Principal Investigator:              Dr. Muhammad Murtaza Yousaf
Co-Principal Investigator:        Dr. Khurram Shahzad
Total Grant:                              Rs. 2,101,600
Duration:                                  Three Years
Funded Students:                    1 PhD, 2 MPhil

Project Under Review
             A Business Process Model Repository for Admissions Counseling
Principal Investigator:              Dr. Shahzad Sarwar
Co-Principal Investigator:        Dr. Khurram Shahzad
Total Fund Requested:            Rs. 8,936,213
Duration:                                  Three Years
Funded Students:                    2 PhD, 6 MPhil

Here is the department/institute/center/college wise break down of university’s 12 funded proposals:
PUCIT:                                                     3 out of 6
School of Biological Sciences:                 2 out of 2
CEMB:                                                     1 out of 6
Department of Mathematics:                   1 out of 1
Department of Political Science              1 out of 3
Institute of Chemistry:                             1 out of 3
Institute of Social and Cultural Studies:  1 out of 1
MMG:                                                      1 out of 6
Pharmacy:                                              1 out of 5
Once again, I congratulate the winners of the grants and the rest of my colleagues on another wonderful milestone achievement by the college.

DSA Lab - Cheat Sheet Time complexity (Big-O) of different searching and sorting algorithms

Array Sorting Algorithms

AlgorithmTime ComplexitySpace Complexity
BestAverageWorstWorst
QuicksortΩ(n log(n))Θ(n log(n))O(n^2)O(log(n))
MergesortΩ(n log(n))Θ(n log(n))O(n log(n))O(n)
TimsortΩ(n)Θ(n log(n))O(n log(n))O(n)
HeapsortΩ(n log(n))Θ(n log(n))O(n log(n))O(1)
Bubble SortΩ(n)Θ(n^2)O(n^2)O(1)
Insertion SortΩ(n)Θ(n^2)O(n^2)O(1)
Selection SortΩ(n^2)Θ(n^2)O(n^2)O(1)
Tree SortΩ(n log(n))Θ(n log(n))O(n^2)O(n)
Shell SortΩ(n log(n))Θ(n(log(n))^2)O(n(log(n))^2)O(1)
Bucket SortΩ(n+k)Θ(n+k)O(n^2)O(n)
Radix SortΩ(nk)Θ(nk)O(nk)O(n+k)
Counting SortΩ(n+k)Θ(n+k)O(n+k)O(k)
CubesortΩ(n)Θ(n log(n))O(n log(n))O(n)

DSA Lab - Time Complexity (Big-O) cheat sheet of different data structures

Common Data Structure Operations

Data StructureTime ComplexitySpace Complexity
AverageWorstWorst
AccessSearchInsertionDeletionAccessSearchInsertionDeletion
ArrayΘ(1)Θ(n)Θ(n)Θ(n)O(1)O(n)O(n)O(n)O(n)
StackΘ(n)Θ(n)Θ(1)Θ(1)O(n)O(n)O(1)O(1)O(n)
QueueΘ(n)Θ(n)Θ(1)Θ(1)O(n)O(n)O(1)O(1)O(n)
Singly-Linked ListΘ(n)Θ(n)Θ(1)Θ(1)O(n)O(n)O(1)O(1)O(n)
Doubly-Linked ListΘ(n)Θ(n)Θ(1)Θ(1)O(n)O(n)O(1)O(1)O(n)
Skip ListΘ(log(n))Θ(log(n))Θ(log(n))Θ(log(n))O(n)O(n)O(n)O(n)O(n log(n))
Hash TableN/AΘ(1)Θ(1)Θ(1)N/AO(n)O(n)O(n)O(n)
Binary Search TreeΘ(log(n))Θ(log(n))Θ(log(n))Θ(log(n))O(n)O(n)O(n)O(n)O(n)
Cartesian TreeN/AΘ(log(n))Θ(log(n))Θ(log(n))N/AO(n)O(n)O(n)O(n)
B-TreeΘ(log(n))Θ(log(n))Θ(log(n))Θ(log(n))O(log(n))O(log(n))O(log(n))O(log(n))O(n)
Red-Black TreeΘ(log(n))Θ(log(n))Θ(log(n))Θ(log(n))O(log(n))O(log(n))O(log(n))O(log(n))O(n)
Splay TreeN/AΘ(log(n))Θ(log(n))Θ(log(n))N/AO(log(n))O(log(n))O(log(n))O(n)
AVL TreeΘ(log(n))Θ(log(n))Θ(log(n))Θ(log(n))O(log(n))O(log(n))O(log(n))O(log(n))O(n)
KD TreeΘ(log(n))Θ(log(n))Θ(log(n))Θ(log(n))O(n)O(n)O(n)O(n)O(n)

DSA Lab Assignment 1 - Time and space complexity of different data structures & algorithms

Q 1:

Write the time and space complexity of the following data structures:

  • Array
  • Stack
  • Queue
  • LinkedList
  • HashTable
  • BinarySearchTree
  • AVL
Also write the time complexity of Insertions, Deletion and Access operations of above mentioned data structures.


Q 2:

Write the time and space complexity of the following algorithms:
  • Quick Sort
  • Selection Sort
  • Bubble Sort
  • Merge Sort
  • Insertion Sot
  • Linear Search
  • Binary Search

DSA Lab 4 - Recursion & Sorting Algorithems

Task 1:

Implement the following algorithms recursively:

  • sumOfArray()      // This function will take an integer array as input and output its sum.
  • computeFactorial()    //This function will take an integer as input and output its factorial
  • displayFibonacciSeries()    //This function will take an integer as input and output that many terms of fibonacci series. e.g input = 6 then output = 1 1 2 3 5 8

Task 2:

Implement the following sorting algorithms recursively:
  • mergeSort()
  • quickSort()
Note: we have implemented these sorting algorithms before in lab 2. This time we have to implement them recursively. 

DSA Lab 3 - Queue & Post-fix In-fix expressions

Task 1:

Write the complete implementation of double ended queue (as discussed in class) containing the following functions:

  • enqueueAtTail()
  • dequeueAtTail()
  • enqueueAtHead()
  • dequeueAtHead()
  • isEmpty()
  • isFull()
  • resizeQueue()    //This function will double the size of the queue when it is 75% full and half the size of it when it is 25% full.
Note: you have to implement queue with integer array (not with pointers).


Task 2:

Use the queue you have implemented in Task 1 and write a code to convert an in-fix expression into post-fix expression. You have to implement the following 2 functions:
  • convertInfixToPostfix()
  • evaluatePostfix()     //This function will take a post-fix expression as input and output its result.

Sunday 2 April 2017

DSA Lab 2 - Implementation of Sorting and searching algorithms

Task # 1:
Implement the following sorting algorithms:

  • Selection sort
  • Insertion sort
  • Quick sort
  • Merge sort
  • bubble sort
Note: Your Implementation should contain a class named "mySort". You have to write a separate function of all above mentioned sorting algorithms in your class "mySort". Then you can call and test your algorithms in Main as "mySort.selectionSort()". In your main function you have to take input from a file "input.txt" and show the results on console.

Task # 2:

Implement the following sorting algorithms:

  • Binary Search
Your have to perform binary search on strings this time. (Hint: convert word into number by adding up the ASCII code of each letter in the word.)

Note: Your Implementation should contain a class named "mySearch". You have to write a separate function of binary search algorithm in your class "mySearch". Then you can call and test your algorithms in Main as "mySearch.binarySearch()". In your main function you have to take input from a file "input.txt" and show the results on console.