Online Courses Offered

PUCIT Online Courses Offered

 

The spread of COVID-19 across the globe has impacted every one of us. The majority of us are staying at home, where we’re working, learning, and teaching remotely. But as the world rapidly changes around us, what hasn’t changed is PUCIT’s commitment to our students.

 

Following is the list of Online courses being offered at PUCIT.

The course start with learning Hardware Description Language (HDL), designing and implementing various combinational /sequential circuits  and simulating the behavior of the resulting chip specifications using a hardware simulator. In this course, we will design, build and write HDL for different components of a computer system like Arithmetic Logic Unit, CPU, its registers, RAM unit, busses, and so on. We will then design the instruction set architecture for the designed hardware, will design assembly instructions and its corresponding encoded instructions in the language of zeros and ones. After designing the assembly and machine language for the computer we will spend some time writing various assembly programs and then will use CPU Emulator (a computer program) to test and execute them. This experience will give the students the feel of low-level programming, as well as a solid hands-on overview of the Hack computer platform. We assemble all these building blocks into a general-purpose 16-bit computer called Hack, which will be a full-blown computer system capable of executing programs written in the Hack machine language. In order to enjoy the luxury of writing programs in assembly language, someone has to translate our symbolic programs into binary code that can execute as-is on the target computer. This translation service is done by an agent called an assembler. The assembler can be either a person who carries out the translation manually or a computer program that automates the process. We will finally write down an assembler of our own in C language. This will end the first part of the course. In the second half of the course, we will use all this background knowledge to learn the assembly of the all-time famous x86-64 architecture with the objective of reverse engineering and hacking.
Email: arif@pucit.edu.pk
Web: http://www.arifbutt.me

This course will give students an insight into the implementation of an operating system from a programmer’s perspective using C programming construct. It will help developing abilities in students to use a variety of components of system libraries in design of system application considering concurrency, communication, portability, optimization and security concerns. The major topics covered are: writing make files, using cmake, creating your own static/dynamic libraries, debugging techniques, versioning tools, file system architecture, inode structs, I/O redirection, advisory/mandatory file locks, hard/soft links, terminal attributes, canonical/non-canonical I/O, system configuration files, Process Creation, process scheduling, zombies, orphans, exec calls, designing of shell, daemon processes, writing/ignoring/masking signal handlers, programming CPU timer, PIPEs, FIFOs, message queues, shared memory, memory mapped files, threads, synchronizations using mutexes/condition variables/semaphores, socket programming, remote procedure calls, and operating system security.
Email: arif@pucit.edu.pk
Web: http://www.arifbutt.me
Sample Codes: https://bitbucket.org/arifpucit/spvl-repo/src

This course will give students to gain insight of the working of UNIX/Linux based systems. The main objective is to acquaint the students of undergraduate operating system course to map the concepts that they study in the class in the Linux environment. The course is also beneficial for the students who want to hunt the job of a system administrator in a Linux based environment or for those Lab admins who are already doing a job. The series of lectures start with the concept of UNIX shell, management of processes by UNIX based OS, how processes are created, scheduled, prioritized, terminated on the shell. The /proc and /dev directory contents are discussed in detail. How to install/uninstall binary and open source software on UNIX based systems. IPC on the shell using pipes/fifos/signals, user management and file permissions, overview of network management on Linux using tools like netcat, netstat, ping, ifconfig, route. The use of systemctl for managing daemon processes. Time and locale management, logging on UNIX based system and behind the curtain details of booting process of an operating system.
Email: arif@pucit.edu.pk
Web: http://www.arifbutt.me

This is a complete hands on course that will give students to practically see the installation, configuration and usage of various Networking services on UNIX based machines. This is a must do course for undergraduate students who wants have a hands on practice on the internetworking concepts. This is also beneficiary for those who want to hunt the job of a system or lab administrator in a Linux based environment or for those Lab admins who are already doing a job. It starts with a quick overview of networking concepts with detailed working of TCP/IP stack. Students are practically shown as how to assign TCP/IP configuration parameters to machines in a local area network statically or using a DHCP server. The remote login facility telnet and ssh are discussed in detail with an overview of the encryption protocols used by ssh daemon. The vulnerability of telnet is also shown using wireshark tool with man in the middle attack. The basic concepts of web architecture and DBMS are discussed and later implemented in depth using Apache web and MYSQL data base server. A special session also exist on designing and deploying a web application using LAMP architecture. The concepts of firewalls is discussed in implemented. The other servers that are installed, configured, and used are ftp, vsftpd, nfs, ntp, dns/bind, and proxy.
Email: arif@pucit.edu.pk
Web: http://www.arifbutt.me

This course is a refresher for C programming skills. Particularly designed for students who have done some programming course and want to learn the in-depth knowledge of C. It uses Linux command line environment with tools like gcc, gdb, objdump, readelf and nasm to give proof of different concepts. Starts with how data is represented inside the computer memory and then doing terminal I/O in C using the formatted as well as the unformatted I/O functions. Gives a quick overview of C-operators, type casting and scoping rules in C. The important and tricky C concepts of pointers, pointer arithmetic, pointer to arrays, array pointers, passing pointers to functions, function pointers, and dynamic memory allocation are given due time. Finally text/binary and sequential/random access of disk files are discussed with sample codes.
Email: arif@pucit.edu.pk
Web: http://www.arifbutt.me

An introduction to Basic Web Development

Email:shuja@pucit.edu.pk

An introduction to Cloud Computing

Email:waheed.iqbal@pucit.edu.pk

Life Skills and Self Development

Email: ejaz@pucit.edu.pk

Software Engineering

Email: ejaz@pucit.edu.pk

Project Management Online

Email: ejaz@pucit.edu.pk

Digital Logic Design

Email: tariq.butt@pucit.edu.pk

EAD

Email:shuja@pucit.edu.pk