DiplomaIntermediate

DACP - Diploma in Advanced Computer Programming

C++ OOP, Python programming, data structures, SQL/MySQL, Git, debugging and a database-backed application with reviewed AI assistance.

Talk to a counsellor about DACP - Diploma in Advanced Computer Programming

Fees, batch dates and timings are shared by a counsellor. No payment is needed to ask.

What you will cover
  • C++ OOP
  • Python programming
  • data structures
  • SQL/MySQL
  • Git
  • debugging
  • a database-backed application with reviewed AI assistance

Topic list from the institute's programme record.

Certification

Certificate terms for this programme are confirmed by the institute at admission. Any ADIVAS course-completion certificate is an institute certificate; it is not a university degree, an externally accredited qualification or a vendor certification (such as AWS or Microsoft) unless the institute states so in writing.

The programme title is as supplied in the institute's list. Please confirm the awarding body and recognition with the institute before enrolling.

Curriculum 0.1 · Draft: written for ADIVAS and awaiting academic review and approval. Topics and weeks may change before your batch starts.

Your skill trail

You move through 8 stations. Each week builds one skill you can show, not just a topic you have heard.

  1. Tools and C++ basics

    Set up the toolchain and Git, and write structured C++ programs with control flow and functions.

    • Week 1 Toolchain, Git basics and first C++ program
    • Week 2 Control flow and functions in C++
  2. C++ data and object-oriented design

    Handle arrays, strings, pointers and references, then model problems with classes and polymorphism.

    • Week 3 Arrays, strings and pointers
    • Week 4 Classes and objects in C++
    • Week 5 Inheritance and polymorphism
    • Week 6 STL containers and file streams
  3. Debugging and collaboration

    Find bugs methodically and collaborate through Git branches and reviews.

    • Week 7 Debugging and testing
    • Week 8 Git branches and collaboration
  4. Python programming

    Write clean Python with collections, classes, files, exceptions and tests.

    • Week 9 Python basics
    • Week 10 Functions and collections
    • Week 11 Object-oriented Python
    • Week 12 Files, exceptions and unit tests
  5. Data structures and algorithms

    Implement core structures and compare algorithms by cost.

    • Week 13 Complexity, arrays and linked lists
    • Week 14 Stacks and queues
    • Week 15 Hash tables and binary search trees
    • Week 16 Recursion, sorting and searching
  6. SQL and MySQL

    Design relational schemas and query them with joins, grouping, indexes and transactions.

    • Week 17 Relational model and basic SQL
    • Week 18 Keys, constraints and normalisation
    • Week 19 Joins, grouping and subqueries
    • Week 20 Indexes, transactions and views
  7. Database-backed application

    Combine Python and MySQL in a layered, tested application with reviewed AI assistance.

    • Week 21 Connecting Python to MySQL safely
    • Week 22 Application design and reviewed AI assistance
    • Week 23 Build and test the application
  8. Capstone

    Finish, present and defend the application with documentation and test evidence.

    • Week 24 Capstone delivery and review
  9. Shop Inventory and Sales Manager

    Your project, reviewed by a trainer.

The ADIVAS mastery ladder: how each skill is recognised
  1. Explored You have seen the idea and tried a first example.
  2. Practising You can do it with hints and keep improving.
  3. Proficient You complete the weekly practical task correctly on your own.
  4. Proven You apply it in a project reviewed by your trainer.

Skill-level tracking is being added to the learner workspace. Your trainer already reviews weekly practical work.

What you will be able to do

  • Write structured C++ programs using functions, arrays, strings, pointers and references.
  • Design C++ classes with encapsulation, inheritance and polymorphism, and use the STL.
  • Use Git to track changes, branch, merge and resolve simple conflicts.
  • Debug systematically using breakpoints, logging, sanitizers and written test cases.
  • Write Python programs with functions, collections, classes, files, exceptions and unit tests.
  • Implement and choose among lists, stacks, queues, hash tables and binary search trees, and reason about their cost.
  • Design relational tables and write SQL for CRUD, joins, grouping, indexes and transactions in MySQL.
  • Build a layered Python application on MySQL using parameterised queries.
  • Use an AI assistant to draft code, then review, test and correct its output before accepting it.

Who it suits

  • School Class 12 students with a first programming exposure who want a serious start in software development.
  • College Diploma and degree students who want strong practical programming, data structure and database skills beyond classroom labs.
  • Professional Career changers and working adults moving into software roles who need hands-on programming and database practice.

Prerequisites: Basic computer skills and school mathematics. Prior programming is helpful but not required; week 1 and 2 cover the starting points. Tools: g++ or clang with Make (or CMake), Python 3 with venv, pip and pytest, MySQL Community Server and MySQL Workbench, Git with a free hosting account, VS Code or CLion, An AI coding assistant (with review rules taught in the course).

Weekly plan

Tools and C++ basics Weeks 1–2

Week 1: Toolchain, Git basics and first C++ program

Theory
  • Compiling and linking: source, object file, executable
  • Git: init, add, commit, log
  • C++ program structure, types, input and output with iostream
Lab
Install g++ and Git, create a repository, write a C++ program that reads two numbers and prints sum and average, and commit it with a meaningful message.
Homework
Write three commits for three small programs and show git log --oneline.
Deliverable
A Git repository with three committed C++ programs.
Weekly checkpoint
Explain compile versus link; predict outputs of simple C++ snippets; describe what a commit stores.
You will be able to
Write structured C++ programs using functions, arrays, strings, pointers and references. Use Git to track changes, branch, merge and resolve simple conflicts.

Week 2: Control flow and functions in C++

Theory
  • if, switch, for, while
  • Functions, parameters, return values, overloading
  • Pass by value versus pass by reference
Lab
Write a menu-driven calculator and a prime/factorial utility built from separate functions in one file, then split declarations into a header.
Homework
Write a function that swaps two integers once by value and once by reference, and note the difference.
Deliverable
A calculator program with at least five functions and a header file.
Weekly checkpoint
Trace function calls by hand; spot why a swap by value fails.
You will be able to
Write structured C++ programs using functions, arrays, strings, pointers and references.
C++ data and object-oriented design Weeks 3–6

Week 3: Arrays, strings and pointers

Theory
  • Arrays and std::string
  • Pointers, addresses and dereferencing
  • Dynamic memory with new and delete; why raw pointers are risky
Lab
Write array routines (max, reverse, search) and a string utility, then trace pointer examples with printed addresses and fix a deliberate memory leak.
Homework
Rewrite the array routines to use pointer parameters and then to use std::vector.
Deliverable
A utility library for arrays and strings with a test main.
Weekly checkpoint
Predict values after pointer operations; identify a leak and a dangling pointer.
You will be able to
Write structured C++ programs using functions, arrays, strings, pointers and references.

Week 4: Classes and objects in C++

Theory
  • Class, object, access specifiers
  • Constructors, destructors and the member initialiser list
  • Encapsulation, const methods and static members
Lab
Implement a Product and Inventory class for a small shop, with validation of price and quantity and a stock report.
Homework
Add a method that lists products below a reorder level.
Deliverable
Inventory classes with a menu-driven main and sample report.
Weekly checkpoint
Read a class definition and predict constructor and destructor order.
You will be able to
Design C++ classes with encapsulation, inheritance and polymorphism, and use the STL.

Week 5: Inheritance and polymorphism

Theory
  • Base and derived classes
  • Virtual functions and overriding; abstract classes
  • Operator overloading basics and when not to use inheritance
Lab
Build a Shape base class with Circle and Rectangle subclasses that compute area through virtual functions held in a vector of base pointers; observe what breaks without virtual.
Homework
Add Triangle and a function that totals area for a mixed list of shapes.
Deliverable
A shape-hierarchy program with a short note explaining why virtual is needed.
Weekly checkpoint
Predict output with and without virtual; decide inheritance versus composition for two cases.
You will be able to
Design C++ classes with encapsulation, inheritance and polymorphism, and use the STL.

Week 6: STL containers and file streams

Theory
  • vector, map, set and algorithms such as sort and find
  • Iterators and range-based for
  • Reading and writing files with fstream
Lab
Extend the inventory program to save and load from a CSV file and report sales totals using map and sort with a lambda.
Homework
Count word frequency in a text file using std::map.
Deliverable
Inventory program that persists data to a file.
Weekly checkpoint
Pick the right STL container for a scenario; predict the output of a map-counting loop.
You will be able to
Write structured C++ programs using functions, arrays, strings, pointers and references. Design C++ classes with encapsulation, inheritance and polymorphism, and use the STL.
Debugging and collaboration Weeks 7–8

Week 7: Debugging and testing

Theory
  • Reading compiler errors and warnings
  • Breakpoints, stepping and watching variables in a debugger
  • AddressSanitizer, assertions and boundary test cases
Lab
Debug a provided C++ program with four seeded bugs (off-by-one, uninitialised variable, leak, wrong condition), recording symptom, cause, fix and test for each.
Homework
Write a table of 8 test cases (normal, boundary, invalid) for the grade-calculator function.
Deliverable
A bug report log with before and after evidence.
Weekly checkpoint
Given a failing program and a stack of symptoms, choose the most likely cause and the fastest check.
You will be able to
Debug systematically using breakpoints, logging, sanitizers and written test cases.

Week 8: Git branches and collaboration

Theory
  • Branches, merge and merge conflicts
  • .gitignore, tags and readable commit history
  • Pull requests and code review etiquette
Lab
In pairs, create a feature branch each on the same file, create a conflict deliberately, resolve it and open a pull request with a review comment.
Homework
Review a peer's pull request with three specific comments.
Deliverable
A repository showing branches, a resolved conflict and a merged pull request.
Weekly checkpoint
Sequence a feature-branch workflow; explain what a conflict means and how to resolve it.
You will be able to
Use Git to track changes, branch, merge and resolve simple conflicts.
Python programming Weeks 9–12

Week 9: Python basics

Theory
  • Dynamic typing, numbers, strings and f-strings
  • Conditions, loops and range
  • Virtual environments and running scripts
Lab
Port the C++ calculator to Python and compare the two versions; write an ATM-style program with a PIN retry limit.
Homework
Write a function that checks whether a year is a leap year and test it with six years.
Deliverable
Python calculator and PIN program with notes on differences from C++.
Weekly checkpoint
Predict Python outputs involving integer and float division, strings and loops.
You will be able to
Write Python programs with functions, collections, classes, files, exceptions and unit tests.

Week 10: Functions and collections

Theory
  • Functions, default and keyword arguments
  • Lists, tuples, dictionaries and sets
  • Comprehensions and sorting with key functions
Lab
Analyse a CSV of 30 student marks: compute topper, average and grade counts using lists and dictionaries.
Homework
Group a list of transactions by category with a dictionary and print totals.
Deliverable
A marks-analysis script with at least five functions.
Weekly checkpoint
Predict list and dictionary operations; spot mutable default argument and aliasing issues.
You will be able to
Write Python programs with functions, collections, classes, files, exceptions and unit tests.

Week 11: Object-oriented Python

Theory
  • Classes, __init__ and instance methods
  • Inheritance, __str__ and properties
  • Composition and when to use a dataclass
Lab
Model a Library with Book and Member classes supporting issue and return with a fine calculator.
Homework
Translate the C++ Shape hierarchy into Python and compare how polymorphism works in each.
Deliverable
A library model with a runnable demo script.
Weekly checkpoint
Read a class and predict output; compare Python and C++ approaches to polymorphism.
You will be able to
Write Python programs with functions, collections, classes, files, exceptions and unit tests.

Week 12: Files, exceptions and unit tests

Theory
  • Reading and writing text, CSV and JSON files
  • try/except and custom exceptions
  • Unit tests with pytest and test-first thinking
Lab
Add file persistence and error handling to the Library model and write ten pytest tests including failure cases.
Homework
Increase test coverage by adding tests for two untested edge cases.
Deliverable
A tested Python package with a passing pytest run.
Weekly checkpoint
Read a failing test and find the defect; order the steps of test-first development.
You will be able to
Debug systematically using breakpoints, logging, sanitizers and written test cases. Write Python programs with functions, collections, classes, files, exceptions and unit tests.
Data structures and algorithms Weeks 13–16

Week 13: Complexity, arrays and linked lists

Theory
  • Counting operations and Big-O intuition
  • Array versus linked list trade-offs
  • Singly linked list insert, delete and traverse
Lab
Implement a linked list in C++ or Python with append, insert, delete and print, and time linear search against binary search on 100000 sorted values.
Homework
Reverse a linked list and explain the cost.
Deliverable
A tested linked list implementation plus a timing table.
Weekly checkpoint
Compare costs of operations on arrays and linked lists; trace a list deletion.
You will be able to
Implement and choose among lists, stacks, queues, hash tables and binary search trees, and reason about their cost.

Week 14: Stacks and queues

Theory
  • Stack: push, pop, LIFO
  • Queue: enqueue, dequeue, FIFO and circular buffers
  • Applications: bracket matching, undo history, ticket queue
Lab
Implement stack and queue classes and use them to check balanced brackets and simulate a ticket counter queue.
Homework
Evaluate a postfix expression with a stack.
Deliverable
Stack and queue implementations with a bracket checker.
Weekly checkpoint
Sequence stack operations and predict contents; choose stack or queue for a scenario.
You will be able to
Implement and choose among lists, stacks, queues, hash tables and binary search trees, and reason about their cost.

Week 15: Hash tables and binary search trees

Theory
  • Hashing, collisions and load factor
  • Dictionary and set internals in Python
  • Binary search tree insert, search and in-order traversal
Lab
Build a simple hash table with chaining and a BST that stores student IDs, then print IDs in order.
Homework
Compare lookup timing of a list, a dict and a BST for 50000 IDs.
Deliverable
Hash table and BST implementations with a timing comparison.
Weekly checkpoint
Insert values into a BST by hand and list the in-order output; explain a collision.
You will be able to
Implement and choose among lists, stacks, queues, hash tables and binary search trees, and reason about their cost.

Week 16: Recursion, sorting and searching

Theory
  • Recursion: base case and recursive case
  • Bubble, insertion, merge and quick sort at concept level
  • Binary search and its precondition
Lab
Implement insertion sort and merge sort, count comparisons for sizes 100 to 5000 and plot or tabulate the growth.
Homework
Write recursive functions for factorial, Fibonacci and sum of digits and note where recursion is a poor choice.
Deliverable
Sorting benchmark table and a one-page conclusion.
Weekly checkpoint
Trace a merge sort on eight numbers; find the missing base case in a recursive function.
You will be able to
Implement and choose among lists, stacks, queues, hash tables and binary search trees, and reason about their cost.
SQL and MySQL Weeks 17–20

Week 17: Relational model and basic SQL

Theory
  • Tables, rows, columns and primary keys
  • CREATE, INSERT, SELECT, UPDATE, DELETE
  • WHERE, ORDER BY, LIMIT, LIKE and NULL
Lab
Install MySQL, create a college database with students and courses tables and practise the full CRUD cycle with 15 queries.
Homework
Write queries that list students in a city, sorted by name, and update one record safely using WHERE.
Deliverable
A SQL script that creates and fills the database plus 15 solved queries.
Weekly checkpoint
Read a query and describe its result; spot an UPDATE missing WHERE.
You will be able to
Design relational tables and write SQL for CRUD, joins, grouping, indexes and transactions in MySQL.

Week 18: Keys, constraints and normalisation

Theory
  • Primary and foreign keys, NOT NULL, UNIQUE, CHECK
  • One-to-many and many-to-many relations
  • 1NF, 2NF and 3NF with examples
Lab
Normalise an Excel-style order sheet into customers, products, orders and order_items tables with proper keys, then insert sample data and test constraint violations.
Homework
Draw an ER diagram for a library or clinic and write its CREATE TABLE statements.
Deliverable
ER diagram and DDL script for a normalised schema.
Weekly checkpoint
Identify a repeating-group violation; choose the correct key for a relation.
You will be able to
Design relational tables and write SQL for CRUD, joins, grouping, indexes and transactions in MySQL.

Week 19: Joins, grouping and subqueries

Theory
  • INNER and LEFT JOIN
  • GROUP BY, HAVING and aggregate functions
  • Subqueries and common mistakes with duplicated rows
Lab
Write queries on the shop schema: monthly sales by product, customers with no orders, top five products, and verify row counts by hand on a small dataset.
Homework
Solve ten reporting questions with joins and grouping.
Deliverable
A query workbook with expected result next to each query.
Weekly checkpoint
Predict the row count of a join; choose WHERE or HAVING.
You will be able to
Design relational tables and write SQL for CRUD, joins, grouping, indexes and transactions in MySQL.

Week 20: Indexes, transactions and views

Theory
  • How an index speeds lookup and what it costs
  • Transactions, COMMIT, ROLLBACK and ACID idea
  • Views, users and least privilege; backups with mysqldump
Lab
Compare EXPLAIN output on a 100000-row table with and without an index, and run a fund-transfer transaction that rolls back on failure.
Homework
Create a read-only reporting user and a view for monthly sales.
Deliverable
A short performance and transaction report with EXPLAIN evidence.
Weekly checkpoint
Explain why a transfer needs a transaction; pick a column worth indexing.
You will be able to
Design relational tables and write SQL for CRUD, joins, grouping, indexes and transactions in MySQL.
Database-backed application Weeks 21–23

Week 21: Connecting Python to MySQL safely

Theory
  • Connectors, cursors and result sets
  • Parameterised queries and SQL injection
  • Configuration and secrets outside source code
Lab
Write a data-access module with create, read, update and delete functions using parameterised queries, then demonstrate and block an injection attempt on a login query.
Homework
Move database settings to environment variables and add a .gitignore for secrets.
Deliverable
A data-access module with tests against a test database.
Weekly checkpoint
Rewrite an unsafe string-built query safely; explain why escaping by hand is not enough.
You will be able to
Build a layered Python application on MySQL using parameterised queries.

Week 22: Application design and reviewed AI assistance

Theory
  • Layers: interface, services, data access
  • Writing a good prompt with context, constraints and examples
  • Reviewing AI code: correctness, security, tests, licensing and privacy
Lab
Ask an AI assistant to draft the service layer for the capstone, then review it line by line against a checklist, write tests that expose at least two defects, and fix them.
Homework
Record every AI suggestion accepted, changed and rejected with the reason.
Deliverable
A design note and an AI review log with test evidence.
Weekly checkpoint
Given an AI-written function, list defects and tests that would catch them.
You will be able to
Build a layered Python application on MySQL using parameterised queries. Use an AI assistant to draft code, then review, test and correct its output before accepting it.

Week 23: Build and test the application

Theory
  • Input validation and error messages
  • Integration tests with a test database
  • Logging and simple reports
Lab
Complete the capstone features (CRUD, search, report) on MySQL, add logging and run an integration test set.
Homework
Fix all issues raised in peer review and update the README.
Deliverable
A working application with tests and a feature checklist.
Weekly checkpoint
Demonstrate one feature end to end and one handled error.
You will be able to
Debug systematically using breakpoints, logging, sanitizers and written test cases. Build a layered Python application on MySQL using parameterised queries.
Capstone Weeks 24

Week 24: Capstone delivery and review

Theory
  • Documentation: README, schema diagram and usage guide
  • Presenting technical decisions
  • Next steps: further learning paths
Lab
Final demo, code walkthrough and viva where each learner modifies a query or function on the spot.
Homework
Submit the final repository with a release tag and a one-page reflection.
Deliverable
Tagged repository, schema diagram, test report and demo.
Weekly checkpoint
Final practical and viva.
You will be able to
Use Git to track changes, branch, merge and resolve simple conflicts. Build a layered Python application on MySQL using parameterised queries. Use an AI assistant to draft code, then review, test and correct its output before accepting it.

Sample lessons

Week 5

Polymorphism with virtual functions in C++

Polymorphism lets one piece of code work with many related types. If a base class function is declared virtual, C++ decides at run time which derived version to call, based on the real object, even when you hold a pointer to the base class. Without virtual, the base version is always called, which is a very common source of surprising bugs. This is how a single loop can total the area of circles and rectangles together.

  1. Shape* pointer in main()
  2. Virtual call area()
  3. Run-time lookup of real type
  4. Circle::area or Rectangle::area runs

Step by step

  1. Create a Shape base class with a virtual double area() const.
  2. Create Circle and Rectangle classes that override area().
  3. Store pointers to several shapes in a vector of Shape*.
  4. Loop through the vector and call area() on each element.
  5. Remove the word virtual and compare the output, then restore it and add a virtual destructor.

In real life

A billing system holds Invoice objects of many kinds (retail, wholesale, export). One print loop calls the same method and each invoice type formats itself correctly.

Worked example

Problem. Shape* s = new Circle(2); What does s->area() call when area is virtual, and when it is not?

Solution. With virtual it calls Circle::area (about 12.57). Without virtual it calls Shape::area because the pointer type decides, so the result is the base version.

Common mistakes

  • Forgetting a virtual destructor in the base class, so derived cleanup is skipped.
  • Slicing: storing derived objects by value in a vector of the base type.

Try it yourself

  • Add a Triangle and total the areas of five mixed shapes.
  • Explain what happens if a derived class spells the function name differently.

Week 21

Safe database access with parameterised queries

When a program builds an SQL statement by joining text from the user, an attacker can type SQL instead of data and change what the statement does. This is SQL injection. A parameterised query sends the statement and the values separately, so the database always treats the values as data. This is the standard defence and it is easier to write than manual escaping.

Unsafe: joined text

  • User input becomes part of SQL
  • Attacker can change meaning
  • Data can leak

Safe: parameters

  • SQL and values sent separately
  • Input always treated as data
  • Easy to read and test

Step by step

  1. Write an unsafe login query using string concatenation and test it with the input ' OR '1'='1.
  2. Observe that it returns rows without a valid password.
  3. Rewrite it using placeholders such as %s and pass the values as a separate tuple.
  4. Run the same malicious input and confirm no rows return.
  5. Add a test that keeps this protection in place.

In real life

A student portal login box is a typical target. One unsafe query can expose every user's records, which is why reviewers check every query for string-built SQL.

Worked example

Problem. Fix: cur.execute("SELECT * FROM users WHERE name='" + name + "'")

Solution. Use cur.execute("SELECT * FROM users WHERE name = %s", (name,)). The value is sent separately and is never parsed as SQL.

Common mistakes

  • Using an f-string to build SQL because it looks tidy.
  • Trying to protect only the password field and leaving other inputs unchecked.

Try it yourself

  • Convert an INSERT built with + into a parameterised INSERT.
  • Explain why table names cannot be passed as parameters and how to handle that safely with a fixed list.

Try the questions

The same skills are asked at three levels: School (Classes 6–12), College and Professional. Switch the level and the language (English or Tamil), and say how sure you are before you check: knowing what you are unsure about is part of learning.

Classes 6–12: everyday examples, no prior knowledge. Practice only. Nothing here is graded or saved.

Question 1 / 4 · Understand version history

A tool saves a named snapshot of your project each time you finish a part, like a game checkpoint, so you can go back. This is the idea behind which tool?

A tool saves a named snapshot of your project each time you finish a part, like a game checkpoint, so you can go back. This is the idea behind which tool?
How sure are you?

Projects

Shop Inventory and Sales Manager

Build a layered Python application on MySQL that a small shop could use to manage products, customers and sales, with reports and tests. AI assistance may be used for drafts only, and every AI-written piece must pass the learner's own review and tests.

Tasks

  1. Design a normalised schema with at least four tables and write the DDL script.
  2. Write a data-access layer using parameterised queries for create, read, update and delete.
  3. Implement a service layer that validates input and records a sale inside a transaction that updates stock.
  4. Build a console or simple menu interface with search and a monthly sales report using joins and grouping.
  5. Write at least 15 pytest tests including invalid input and out-of-stock cases.
  6. Keep an AI review log and a Git history with feature branches.

Sample input

Sell 3 units of product P102 to customer C07 when 2 units are in stock.

Expected output

The sale is rejected with a clear message, no stock or sales rows change, and the test for this case passes.

How it is assessed

CriterionWeight
Schema design and SQL quality20%
Correct, safe database access20%
Application features and error handling20%
Tests and debugging evidence20%
Git history and AI review log10%
Documentation and demo10%

Stretch challenge: Add an index justified by EXPLAIN output and a simple low-stock alert report.

How you are assessed

Each week has a 25-minute checkpoint of 6 questions covering code reading, output prediction, debugging and one design or SQL item, plus a lab submission checked against written test cases.

Practical work. Two live practicals (end of week 12 and week 24): solve unseen problems, debug a seeded failure, write SQL against a given schema and explain a design choice in a viva.

What trainers look forWeight
Correctness against test cases30%
Code quality and design20%
Debugging, testing and Git practice20%
SQL and database design20%
Explanation and responsible AI use10%

Where this can lead

  • Prepares you for junior programmer and software trainee roles in C++, Python or database work.
  • Prepares you to build and maintain small database-backed tools for businesses.
  • Gives a base for further study in software engineering, backend development or data work.

These describe skills you will build. ADIVAS does not guarantee jobs, placement or salary.