Design of an Admission Placement System for Faculties of Computing and Physical Sciences

1. Introduction

Admission placement in universities involves assigning qualified candidates to departments based on performance and preferences while satisfying institutional constraints. This work presents a systematic algorithmic solution for automating admission into the Faculty of Computing and the Faculty of Physical Sciences.

The system ensures fairness and consistency by considering student performance, departmental cut-off marks, and capacity limitations.

2. Problem Definition

Design an algorithm that assigns students to departments in:

Each student provides:

Each department has:

The system must:

3. Inputs

The system accepts:

4. Outputs

The system produces:

5. System Structure

Faculty of Computing

Faculty of Physical Sciences

6. Constraints

7. Algorithm Design

Step-by-Step Natural Language Description

  1. Start
  2. Input all student records, department cut-offs, and capacities
  3. Validate inputs (ensure scores and preferences are valid)
  4. For each student:
    • Compute total score = JAMB + Post-UTME
  5. Sort students in descending order of total score
    • If scores are equal, break ties using Post-UTME score
  6. For each student:
    • Set admission status to false
    • For each preferred department:
      • If:
        • Student score ≥ department cut-off AND
        • Department capacity > 0
      • Then:
        • Assign student to department
        • Decrease department capacity by 1
        • Mark student as admitted
        • Stop checking further preferences
    • If no assignment is made:
      • Mark student as not admitted
  7. End

8. Pseudocode

BEGIN

INPUT students
INPUT cutoffs

INITIALIZE capacity for each department = 500

// Step 1: Validate inputs
FOR each student:
    IF student.jamb < 0 OR student.post_utme < 0 THEN
        MARK student as "INVALID"
        CONTINUE

// Step 2: Compute total score
FOR each student:
    student.total = student.jamb + student.post_utme

// Step 3: Sort students (descending order)
SORT students BY total DESC
IF tie THEN sort by post_utme DESC

// Step 4: Admission process
FOR each student:

    admitted = FALSE

    FOR each choice IN student.preferences:

        IF student.total >= cutoffs[choice] AND
           capacity[choice] > 0 THEN

            ASSIGN student TO choice
            capacity[choice] = capacity[choice] - 1
            admitted = TRUE
            BREAK

    IF admitted == FALSE THEN
        MARK student AS "NOT ADMITTED"

END FOR

END

9. Flowchart

10. Sample Data

Name Score 1st Choice 2nd Choice Result
Musa 260 CS Math CS
Aisha 210 CS Physics Physics
John 150 CS Math Not Admitted

11. Algorithm Techniques Used

12. Algorithm Analysis

Time Complexity

Let:

Step 1: Score Computation

Each student’s score is computed once.

→ Number of operations =
→ Complexity = O(n)

Step 2: Sorting

Students are sorted based on total score.

→ Sorting complexity = O(n log n)

Step 3: Admission Process

Each student is processed and compared with their preferences.

→ Outer loop runs times
→ Inner loop runs times

Total operations =

→ Complexity = O(n × p)

Since is small and constant:

O(n × p) ≈ O(n)

Final Complexity

Combine all steps:


O(n) + O(n \log n) + O(n)

Dominant term:


\mathbf{O(n \log n)}

Correctness

The algorithm is correct because:

13. Conclusion

The proposed admission placement system provides a structured and efficient method for assigning students to departments based on merit, preferences, and institutional constraints. The use of sorting ensures fairness, while iterative and conditional logic guarantees adherence to admission rules. The algorithm is efficient, scalable, and suitable for real-world implementation in university admission systems.