JARED RYAN SHEREMAN's profile picture JARED RYAN SHEREMAN

Member of elearning.utm.my

HELLO, APA KHABAR, NI HAO, VAANAKAM

ROSES ARE RED,

IT'S HOT LIKE HELL,

MITOCHONDRIA IS THE POWERHOUSE OF THE CELL.

  • My name is Ryan, Jared Ryan.
  • 2000's child
  • Hardcore car enthusiast
  • Music Lover
  • Jack Of All Trades, kinda

 

TAEKWONDO

IMG-20171213-WA0071.jpg

IMG_20190508_221100.jpg

IMG-20171213-WA0109.jpg.IMG-20171214-WA0001.jpg

CARS

IMG_20191207_205707.jpg

IMG-20180419-WA0000.jpg

IMG_20181124_191746.jpg

Screenshot_20191116_224049.jpg

SHIPS

2.jpg

 

3.jpg

4.jpg

5.jpg

 

 

JARED RYAN SHEREMAN's Reflection RSS

PILIHANRAYA KAMPUS UTM 2019

PILIHANRAYA KAMPUS UTM 2019

This was a program organized by UTM to display the sheer support that the university has in order for UTM students to show their supports for the candidates. This program was conducted on the 4 December 2019 at UTM Johor campus. I have attended this particular event.

 

Mini Report:

In this program, I have decided to join as a guest during the 4th December in order to cast my vote and show support for the candidates who were participating in this event. I had to go to Block N28A and in one of the rooms at the ground floor, I had to cast my own vote. So that's what I exactly did. I had to switch off my mobile phone and follow each and every procedure accordingly, from walking into the room, to going to the booth and to even taking some refreshments provided.

 

Self-reflections:

This event requires trust and self discipline in order for the event to be successful and work to its full potential. For instance, if everyone does not comply with the procedures, the entire event will end up in a disaster.

Details

SEMESTER 1 (2019/2020 - 1)

  SHOWN BELOW

1. DIGITAL LOGIC

To me, Digital Logic reminds me a lot of high school physics but more focused on electronics and computing. It's a fun subject to learn especially since there are lab sessions and the lecturer who taught me, Mr Firoz is a very dedicated and enthusiastic when he is teaching. Overall, I'd say this subject was one I enjoyed and learnt some very important basics for my degree in software engineering.

DL 2.jpg
 

2. DISCRETE STRUCTURE

Discrete Structure is pretty much maths but not the usual one that we are used to. It focuses more on the computing side of maths (of course) and it wasn't really my favourite subject in this semester to be honest. With that being said, I had a very dedicated lecturer in Dr. Roselina, who made it a priority to ensure that all of us understood the concepts being taught. 

Discrete tutorial 4_1.jpg

Discrete tutorial 4_2.jpg

 

3. GRADUATE SUCCESS ATTRIBUTES

This subject was not at all what i expected it to be. I thought it was going to be a boring subject where I would just attend lectures and listen to the lecturer go on and on about nonsense, but I was pleasantly surprised to find that the class was not only interesting but also very interactive with many games, a lot of group work as well as presentations. I realise that the purpose of this subject is to teach students the important attributes we need to have as graduates to succeed in the working world. The lecturer Dr. Azlan was also very open minded and encouraged us to give our own thoughts.

GSA.jpg

 
 

4. MALAYSIAN DYNAMICS

I expected this subject to be similar to civic classes during my schooling days, but it turned out to be far much more than that. It ended up teaching us about our country, history, religion, and social sciences. Our lecturer, Mr. Hassan bin Hushin, is someone who is very experienced in the fields of social sciences and humanities and he always gave us his thoughts and encouraged us to share our opinions on certain issues and topics. The class was a good platform to learn, in more depth, things we may already have some knowledge about. The orphanage visit was also an experience I will highly value.

MD 2.jpg

MD 1.jpg

5. PROGRAMMING TECHNIQUE I

This subject was by far the toughest subject I learned this semester. It wasn't tough in the sense that i couldn't understand it, but more so in the sense that it was so different from anything that I have learned before. The course was very interesting and there was a lot of hands on activities in and out of class. The lecturer, Dr Adila was also very knowledgeable in the subject and provided us with many exercises to improve our programming skills. As an example, below is the complete code for a banking system for C++.

#include <fstream>
#include <iostream>
#include <iomanip>
#include <cstdlib>

using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */


//***************************************************************
// function for LOGIN OR REGISTRATION PAGE (main page)
//****************************************************************
int Mpage ()
{
char test;
int choice, firstloop =0;

do
{
cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<BANKING SYSTEM>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"<< endl;
cout << " Key in 'A' to login. " << endl;
cout << " Key in 'B' to register. " << endl;
cout << " Key in 'C' to end the program. " << endl;


cout << "Selection: ";
cin >> test;

if (test == 'A') //Login
{
choice = 1;
firstloop = firstloop + 1;
return choice;
}

else if (test == 'B') //Register
{
choice = 0;
firstloop = firstloop + 1;
return choice;
}

else if (test == 'C')
{
cout << " PROGRAM ENDED! CLICK ANY KEY TO CONTINUE! \n";
cin.ignore();
cin.get();
return 3;
}


cout << "Please enter an option again.\n\n"; //Invalid option
cin.get();

} while (firstloop == 0);


}


//***************************************************************
// function to login
//****************************************************************

int login ()
{
string password, name2, icnum3, ic5, icnum11,ic4, pw2;
ifstream fromfile;
ifstream refreshinfo;
float balance2;

cout<< "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<LOGIN PAGE>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" << endl;

cout << "Enter RETURN to return to main page.\n"; //return to main page
cout << "Enter your IC number: ";
cin >> ic4;
cin.ignore();

if (ic4 == "RETURN") //return to main page
{
cout << " RETURNING TO MAINPAGE! \n\n";
return 0;
}
ic5=ic4;
ic4 += ".txt";
fromfile.open(ic4.c_str()); //check for existing file

if (fromfile.fail()) //file not found
{
cout << ic5<< " is not registered.\n\n";
return 0;
}

fromfile >> name2 >> icnum3 >> pw2 >> balance2; //file found
fromfile.close();

while (password != pw2 && password != "RETURN") //incorrect password
{

cout << "\n\nEnter RETURN to return to main page .\n";
cout<< "Enter your password : "; // get password
cin >> password;
cin.ignore();

if (password==pw2) // correct password
{
cout << "LOGIN SUCCESSFUL! \n\n";
int homepage (string nameX, string icnum6, string pwX, float balance3);

icnum11 = icnum3;
icnum11+= ".txt";
refreshinfo.open(icnum11.c_str());
refreshinfo >> name2 >> icnum3 >> pw2 >> balance2; //Update info
refreshinfo.close();

return homepage(name2, icnum3, pw2, balance2);
}
else if (password == "RETURN") // return to main page
{
cout << " RETURNING TO MAIN PAGE! \n\n";
return 0;
}



cout << " Please enter the correct password! \n\n"; //loop for correct password


}



}


//***************************************************************
// function to register
//****************************************************************

int regis()
{
string name , password;
string ic, ic2;
int count=0;
float balance=0.00;
cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<REGISTRATION>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"<< endl;


do
{
cout << "Enter RETURN to return to main page.\n\n";
cout << "Enter your full name (USING UNDERSCORE AS SPACE): ";
cin >> name;
cout << endl;
cin.ignore();

if (name == "RETURN") //return to mainpage
{
cout << "RETURNING TO MAINPAGE ! \n\n";
return 0;
}
cout << "Enter your IC number(ONE WORD): ";
cin >> ic;
cout << endl;
cin.ignore();

if (ic == "RETURN") //return to main page
{
cout << "RETURNING TO MAINPAGE! \n\n";
return 0;
}

ic2 = ic;
ic += ".txt";

ifstream fromfile (ic.c_str());
fromfile.open(ic.c_str()); // check existing file

if(fromfile.is_open()) // account already registered
{
cout << ic2 << " HAS ALREADY REGISTERED! .\n" << endl;
fromfile.close();
}
else //not registered
{


cout << "Enter your password (USING UNDERSCORE AS SPACE): ";
cin >> password;
cout << endl;
cin.ignore();

if (password == "RETURN") //return to main page
{
cout << " RETURNING TO MAINPAGE! \n";
return 0;
}

ofstream tofile (ic.c_str());
tofile << name << " "<< ic2 << " "<< password << " " << balance; //create account
tofile.close();
cout << " RESGISTERED! \n";
cin.get();
count= count + 1;
}
} while (count=0);
return 0;
}

 

//***************************************************************
// function of withdrawal inside main menu
//****************************************************************

int withdrawal(string nameW, string icnumW, string pwW, float balanceW)
{
string icnumW2 = icnumW, icnumR = icnumW;
float withdraw;
int withdrawcount=0;
ofstream touserfile;
ifstream balancerefresh;

while (withdrawcount == 0)
{
icnumR += ".txt";
balancerefresh.open(icnumR.c_str());
balancerefresh>> nameW >> icnumW >> pwW >> balanceW; /* ENSURE THAT USER'S INFO ARE ALWAYS UP TO DATE */
balancerefresh.close();

cout << "Enter '0' to return to main menu.\n\n" << endl;
cout << "Your maximum withdrawal limit is RM" << setprecision(2) << fixed << balanceW << "\n\n" << endl; /* REQUEST FOR USER'S WITHDRAWAL AMOUNT */
cout << "Insert amount want to withdraw? RM: ";
cin >> withdraw;
cin.ignore();

if (withdraw == 0) /* RETURN USER TO MAIN MENU FUNCTION */
{
cout<< " Returning to main menu! \n\n";
return 0;
}

else if (withdraw > balanceW) /* INVALID AMOUNT BECAUSE OVER USER'S BALANCE AMOUNT, PROMPT USER TO ENTER ANOTHER AMOUNT. */
{
cout << " YOU HAVE EXCEEDED YOUR WITHDRAWAL LIMIT! \n\n" << endl;
withdrawcount = 0;
}

else if (balanceW >= withdraw) /* VALID AMOUNT TO WITHDRAW, CONTINUE WITH WITHDRAWAL */
{
balanceW = balanceW - withdraw;
icnumW += ".txt";

touserfile.open(icnumW.c_str());

if (touserfile.fail()) /* IN CASE FAIL TO LOCATE USER'S FILE */
{
cout << "Our apologies, an error has occured. Please try again.\n\n";
return 0;
}
else
{
touserfile << nameW << " " << icnumW2 << " " << pwW << " " << setprecision(2) << fixed << balanceW; /*UPDATE REMAINING BALANCE INTO USER'S ACCOUNT*/
touserfile.close();
cout << "Withdrawal successful, you have withdrawn RM" << setprecision(2) << fixed << withdraw << " ! \n\n" << endl;
cout << "Your account balance is RM" << setprecision(2) << fixed << balanceW << endl; /* NOTIFY USER ABOUT HIS/HER BALANCE */
cout << "Thanks for your transaction! You will now be returned to the main menu.\n\n" << endl;
withdrawcount = 1;
cin.get();
return 0; /* RETURN USER TO MAIN MENU FUNCTION */
}
}
}



}

//***************************************************************
// function to deposit
//****************************************************************

int deposit (string nameD, string icnumD, string pwD, float balanceD)
{
string icnumD2 = icnumD, nameZ, icnumZ, pwZ;
int depositcount = 1;
float depo ,balanceZ;
ofstream Dposit;
ifstream refreshB;

do
{
cout << "Enter '0' to return to main menu.\n\n" << endl;
cout << "Please enter the amount you wish to deposit. RM:";
cin >> depo;


if (depo == 0) /* BRING USER BACK TO MAIN MENU FUNCTION */
{
cout << "Returning to main menu! \n\n";
depositcount = 0;
return 0;
}


else if (depo < 0) /* DEPOSIT AMOUNT CANNOT BE LESS THAN 0, PROMPT USER TO ENTER ANOTHER AMOUNT */
{
cout << " You have entered an invalid amount! \n\n" << endl;
depositcount = 1;
}

else if (depo > 0) /* VALID AMOUNT TO DEPOSIT, PROCEED WITH THE PROCESS */
{
icnumD += ".txt";
refreshB.open(icnumD.c_str());
refreshB >> nameZ >> icnumZ >> pwZ >> balanceZ; /* ACQUIRE USER'S BALANCE FROM TXT FILE. */
refreshB.close();

balanceZ = balanceZ + depo; /* INCREAMENT OF USER'S BALANCE */


Dposit.open(icnumD.c_str());

if (Dposit.fail()) /* IN CASE FAIL TO LOCATE USER'S FILE */
{
cout << "Our apologies, an error has occured. Please try again.\n\n";
depositcount = 1;
}

else /* USER'S FILE LOCATED, PROCEED WITH UPDATING THE INFO TO USER'S FILE */
{
Dposit << nameZ << " " << icnumZ << " " << pwZ << " " << setprecision(2) << fixed << balanceZ;
Dposit.close();
cout << "Your deposit has been accepted!\n\n" << endl;
cout << "Your account balance is RM" << setprecision(2) << fixed << balanceZ << " ! \n" << endl;
cout << "Returning to main menu! \n\n" << endl;
cin.get();
depositcount = 0;
return 0; /* BRING USER BACK MAIN MENU FUNCTION */
}
}
} while (depositcount == 1);

}


//***************************************************************
// function to check balance
//****************************************************************

int checkbalance (string namecb, string icnumcb, string pwcb, float balancecb)
{
string icnumcb2 = icnumcb;
ifstream userfilebalance;

icnumcb += ".txt";

userfilebalance.open(icnumcb.c_str());

if (userfilebalance.fail()) /* IN CASE FAIL TO LOCATE USER'S FILE */
{
cout << "We are sorry, an error has occured when obtaining your information.\n\n";
cout << "Returning to main menu! \n\n";
return 0; /* BRING USER BACK TO MAIN MENU FUNCTION */
}

else /* LOCATED USER'S FILE, PROCEED WITH BALANCE ENQUIRY */
{
userfilebalance >> namecb >> icnumcb2 >> pwcb >> balancecb; /* EXTRACT LATEST USER INFO FROM USER'S FILE */
userfilebalance.close();
cout << "Your account balance is RM" << setprecision(2) << fixed << balancecb << "\n" << endl; /* DISPLAY USER'S BALANCE */
cin.ignore();
cin.get();
return 0;
}

}

//***************************************************************
// IMPORTANT FUNCTIONS
//****************************************************************

int main(int argc, char** argv)

{ int choice=0;

while (choice == 0)
{
choice = Mpage();
if (choice == 3)
{
return 0;
}


if (choice==0 || choice==1) //valid choice
{

if (choice == 0) //register
{
choice = regis();
}

else //login
{
choice = login();
}
}
else //invalid option
{
cout << "Please select again.\n\n";
choice=0;
}
}
return 0;
}

//***************************************************************
// function to edit account information
//****************************************************************

int editacc (string nameE, string icnumE, string pwE, float balanceE)
{
ifstream rnacc;
ofstream edacc;
string newname, rnname, newicnum=icnumE, rnicnum, newicnum2=icnumE, newpw, rnpw;
float balanceE2 , rnbalance;

newicnum += ".txt";
rnacc.open(newicnum.c_str());
rnacc >> rnname >> rnicnum >> rnpw >> rnbalance; /* EXTRACT LATEST INFO FROM USER'S ACCOUNT */
rnacc.close();

cout << "Enter CANCEL to return to main menu.\n\n";
cout << "Name: " << nameE << "\n" << endl; /* DISPLAY USER'S CURRENT NAME */
cout << "New Name (ONE WORD WITH ALL CAPS): ";
cin>> newname; /* RECEIVE USER'S NEW NAME */
cin.ignore();
cout << "\n\n";

if(newname== "CANCEL") /* BRING USER BACK TO MAIN MENU FUNCTION */
{
cout<< "CANCELATION SUCCESSFUL, RETURNING TO MAIN MENU! \n\n";
return 0;
}

cout << "Identification Card Number (UNCHANGEABLE): " << icnumE << "\n\n"; /* DISPLAY USER'S IC NUMBER */
cout<< "Password: " << pwE << "\n\n"; /* DISPLAY USER'S CURRENT PASSWORD */
cout << "New Password (USE UNDERSCORE AS SPACE): ";
cin>> newpw; /* RECEIVE USER'S NEW PASSWORD */
cin.ignore();
cout << "\n\n";

if(newpw== "CANCEL") /* BRING USER BACK TO MAIN MENU FUNCTION */
{
cout<< "CANCELLATION SUCCESS!, RETURNING TO MAIN MENU! \n\n";
return 0;
}

edacc.open(newicnum.c_str());

if(edacc.fail()) /* IN CASE FAIL TO LOCATE USER'S FILE */
{
cout << "We are sorry, an error has occured. Please try again later.\n\n";
return 0;
}

else /* LOCATED USER'S FILE, PROCEED TO UPDATE USER INFO */
{

edacc << newname << " " << newicnum2 << " " << newpw << " " << rnbalance; /* UPDATE USER INFO INTO USER'S FILE */
edacc.close();
cout << "Edit successful, your account is updated!\n\n";
cout << "New Name: " << newname << "\n\n"; /* DIPLAY USER'S NEW NAME */
cout << "IC Number: " << newicnum2 << "\n\n"; /* DISPLAY USER'S IC NUMBER */
cout << "New Password: " << newpw << "\n\n"; /* DISPLAY USER'S NEW PASSWORD */
cout << "Please login again to refresh the program.\n\n";
cin.get();
return 1; /* LOG OUT OF USER'S ACCOUNT */

}
}

//***************************************************************
// Main Menu function
//****************************************************************

int homepage (string nameX, string icnum6, string pwX, float balance3)
{
char action;
int countX=0;
ifstream namerefresh;
string icnumN = icnum6, newnameX;

do
{
icnumN+= ".txt";
namerefresh.open(icnumN.c_str());
namerefresh >> newnameX >> icnum6 >> pwX >> balance3; /* ACQUIRE USER'S LATEST ACCOUNT INFO FROM USER'S FILE */
namerefresh.close();



cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MAIN MENU~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~n";
cout << "\nWELCOME " << newnameX << "!" <<endl;
cout << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ " << endl;
cout << " 1 : Withdrawal " << endl;
cout << " 2 : Deposit " << endl;
cout << " 3 : Balance Enquiry " << endl;
cout << " 4 : Update Account Information " << endl;
cout << " 5 : Logout " << endl;
cout << " ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl;

cout << "Please select an action! : ";
cin >> action;


switch (action)
{

case'1':{
cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<WITHDRAWAL>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<< endl; /* BRING USER TO WITHDRAWAL FUNCTION */

countX = withdrawal (nameX, icnum6, pwX, balance3);
icnumN+= ".txt";
namerefresh.open(icnumN.c_str());
namerefresh >> newnameX >> icnum6 >> pwX >> balance3;
namerefresh.close();
break;
}
case'2':{ cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~DEPOSIT~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl; /* BRING USER TO DEPOSIT FUNCTION */
countX = deposit (nameX, icnum6, pwX, balance3);
icnumN+= ".txt";
namerefresh.open(icnumN.c_str());
namerefresh >> newnameX >> icnum6 >> pwX >> balance3;
namerefresh.close();
break;
}

case'3':{ cout << "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~BALANCE ENQUIRY~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl; /*BRING USER TO CHECK BALANCE FUNCTION*/
countX = checkbalance (nameX, icnum6, pwX, balance3);
icnumN+= ".txt";
namerefresh.open(icnumN.c_str());
namerefresh >> newnameX >> icnum6 >> pwX >> balance3;
namerefresh.close();
break;
}


case'4':{ cout << "~~~~~~~~~~~~~~~~~~~~~~~~~EDITOR FOR ACCOUNT INFORMATION -~~~~~~~~~~~~~~~~~~~~~~~~~~~~" << endl; /*BRING USER TO EDIT ACCOUNT FUNCTION*/
countX = editacc ( nameX, icnum6, pwX, balance3);
if (countX == 1)
{
return 0;
}
break;
}


case'5':{
cout << "YOU HAVE LOGGED OUT, THANKS FOR BANKING WITH US!\n\n\n" << endl; /*BRING USER BACK TO LOGIN OR REGISTER FUNCTION*/
cin.get();
return 0;
}

default :{ cout << "YOU HAVE ENTERED INVALID INFORMATION." << endl; /* USER ENTERED AN INVALID OPTION, LOOP UNTIL OPTION IS VALID */
countX = 0;
icnumN+= ".txt";
namerefresh.open(icnumN.c_str());
namerefresh >> newnameX >> icnum6 >> pwX >> balance3;
namerefresh.close();
break;
}

}
} while (countX==0);
return 0;
}

6. SCIENCE AND TECHNOLOGY THINKING

This subject explored science and technology from an almost philosophical perspective. We learned how and why humanity progressed in a certain way by looking back at the history of how we have progressed as a species. The class was very lively with many activities and presentations. Our lecturer, Dr. Abdul Hafiz bin Haji Abdullah, was very entertaining and made the class truly enjoyable and interesting. Honestly, this has been one of my favourite subjects this semester, although not the most important one.

WhatsApp Image 2019-12-18 at 14.54.28.jpeg
 
Our Project on the Industrial Revolution ---->  https://www.youtube.com/watch?v=qkk07c7Obig

7. TECHNOLOGY INFORMATION SYSTEM

This was a subject that I thought I had a lot of knowledge about already, but after attending classes, it became clear to me that there was still more than meets the eye. Our lecturer, Dr Haswadi, was able to explain the content very well and also made us present certain topics in groups to help us have a better understanding of the subject. The course really helped to deepen my knowledge in many computer related things which I already had basic knowledge.

FIRST TIS PROJECT - POSTER ON UTM NALI 2019

POSTER.png

 

TIS INDUSTRIAL VISIT

REFLECTIONS

  1. a) Our goal regarding this program is to become a successful and a capable programmer. Successful is a vague term, but for us it means that we succeed in our studies, work and also in our personal lives. We also aim to have the capability to take on and complete any task that is given to us and, if necessary, adapt to any changes in situation and overcome any challenges that may arise.
  2. b) When we entered the room, all of us were completely flabbergasted due to the simple fact that what we were looking at were once essential and cutting edge technology and also due to the ever expanding and wide range of field in computer science, this industrial visit has undeniably brought us to a deeper understanding of computers whereby we are more motivated to pursue our goals and dreams of becoming well-renown software engineers.
  3. c) With the purpose of improving our potential in this industry, we need to be a better all-rounder including things like expanding our knowledge of computers and programs but also our communication and problem-solving skills to become the best version of ourselves in the future.

CAMERA TIS.jpg

SEM 2 (2019/2020 - 2)

  1. Computational Mathematics (SCSI 1113)
  2. Computer Organization & Architecture (SECR 2033)
  3. Philosophy & Current Issues (UHIS 1022)
  4. Probability & Statistical Data Analysis (SCSI 2143)
  5. Programming Technique 2 (SECJ 1023)

SEM 3 (2020/2021 - 1)

  1. WoodCraft (UKQF 2072)
  2. Human Computer Interaction (SECV 2113)
  3. Data Structure & Algorithm (SECJ 2013)
  4. Database (SECD 2523)
  5. System Analysis & Design (SECD 2613)
  6. Network Communications (SECR 1213)

SEM 4 (2020/2021 - 2)

  1.  Academic Communication Skills (UHLB 2122)
  2. Object Oriented Programming (SECJ 2154)
  3. Operating Systems (SECR 2043)
  4. Requirement Engineering & Software Modelling (SECJ 2253)
  5. Software Engineering (SECJ 2203)
  6.  Web Programming (SECV 1223)

SEM 5 (2021/2022 - 1)

  1. Applications Development (SECR 3104)
  2. Internet Programming (SECJ 3303)
  3. Software Design & Architecture (SECJ 3323)
  4. Artificial Intelligence (SECJ 3553)
  5. Professional Communication Skills (UHLB 3132)

SEM 6 (2021/2022 - 2)

  1. Computational Intelligence (SECJ 3563)
  2. Computer Science Theory (SECJ 3203)
  3. ExCel (UKQE 3001)
  4. Mobile Application Programming (SECJ 3623)
  5. Final Year Project 1 (SECJ 3032)
  6. Software Quality Assurance (SECJ 3343)
  7. Web Technology (SECJ 3483)

SEM 7 (2022/2023 - 1)

SEM 8 (2022/2023 - 2)