Building real solutions with Java, C++ & AI-assisted development
M.Eng. in ECE · Full-stack problem solver with hands-on programming experience across object-oriented design, algorithms, and type systems. I use tools like GitHub Copilot and Claude to accelerate delivery — and I love shipping software that matters.
Languages & Concepts Demonstrated
For less AI driven Projects, please refer to this link.
Java Programs + C++ Equivalents
The foundation of every language — standard output demonstration.
import java.io.*;
class Hello {
public static void main(String args[]) {
System.out.println("Hello World");
}
}#include <iostream>
using namespace std;
int main() {
cout << "Hello World" << endl;
return 0;
}Basic integer arithmetic — adding two values and printing the result.
import java.io.*;
class Add {
public static void main(String args[]) {
int a=2, b=7, c;
c = a + b;
System.out.println("C=" + c);
}
}#include <iostream>
using namespace std;
int main() {
int a=2, b=7, c;
c = a + b;
cout << "C=" << c << endl;
return 0;
}Reads three integers from command-line arguments and computes sum and average.
import java.io.*;
class Average {
public static void main(String args[]) {
int sum; float avg;
int x=Integer.parseInt(args[0]);
int y=Integer.parseInt(args[1]);
int z=Integer.parseInt(args[2]);
sum = x+y+z;
avg = sum/3;
System.out.println("Sum="+sum);
System.out.println("Average="+avg);
}
}#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
int x=atoi(argv[1]);
int y=atoi(argv[2]);
int z=atoi(argv[3]);
int sum = x+y+z;
float avg = sum/3;
cout << "Sum=" << sum << endl;
cout << "Average=" << avg << endl;
return 0;
}Calculates area of a circle given radius using scanner input.
import java.util.Scanner;
public class CirArea {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
System.out.println("Enter Radius:");
float r = s.nextFloat();
double area = 3.14 * r * r;
System.out.println("Area of "+r+" is:"+area);
}
}#include <iostream>
using namespace std;
int main() {
float r;
cout << "Enter Radius: ";
cin >> r;
double area = 3.14 * r * r;
cout << "Area of " << r
<< " is:" << area << endl;
return 0;
}Demonstrates widening/implicit type conversion across numeric types.
public class TypCon {
public static void main(String args[]) {
int i = 100;
long l = i;
float f = i;
double d = i;
System.out.println("INT:"+i);
System.out.println("LONG:"+l);
System.out.println("FLOAT:"+f);
System.out.println("DOUBLE:"+d);
}
}#include <iostream>
using namespace std;
int main() {
int i = 100;
long l = i;
float f = i;
double d = i;
cout << "INT:" << i << endl;
cout << "LONG:" << l << endl;
cout << "FLOAT:" << f << endl;
cout << "DOUBLE:" << d << endl;
return 0;
}Reads a double and converts it to all primitive types using explicit (narrowing) casting.
import java.util.Scanner;
public class AllTypConLab {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
System.out.println("Enter Number:");
double d = s.nextDouble();
byte b = (byte)d;
short sh= (short)d;
int i = (int)d;
long l = (long)d;
float f = (float)d;
System.out.println("BYTE:"+b);
System.out.println("SHORT:"+sh);
System.out.println("INTEGER:"+i);
System.out.println("LONG:"+l);
System.out.println("FLOAT"+f);
System.out.println("DOUBLE"+d);
}
}#include <iostream>
using namespace std;
int main() {
double d;
cout << "Enter Number: ";
cin >> d;
char b = (char)(int)d; // byte
short sh= (short)d;
int i = (int)d;
long l = (long)d;
float f = (float)d;
cout<<"BYTE:" <<(int)b <<endl;
cout<<"SHORT:" <<sh <<endl;
cout<<"INTEGER:"<<i <<endl;
cout<<"LONG:" <<l <<endl;
cout<<"FLOAT:" <<f <<endl;
cout<<"DOUBLE:" <<d <<endl;
return 0;
}Determines whether a given number is prime using a divisibility loop up to n/2.
class Prime {
public static void main(String args[]) {
int i, flag=0;
int x = Integer.parseInt(args[0]);
for(i=2; i<=x/2; i++) {
if(x%i==0) { flag=1; break; }
}
if(flag==0)
System.out.println("Prime");
else
System.out.println("Not Prime");
}
}#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
int x = atoi(argv[1]);
int flag = 0;
for(int i=2; i<=x/2; i++) {
if(x%i==0) { flag=1; break; }
}
cout << (flag==0 ? "Prime" : "Not Prime")
<< endl;
return 0;
}Reads numbers from command-line args, filters odds, and sums them.
class Oddsum {
public static void main(String args[]) {
int x[]=new int[100], ctr=0, i, sum=0;
int n = args.length;
for(i=0; i<n; i++) {
x[i] = Integer.parseInt(args[i]);
}
for(i=0; i<n; i++) {
if(x[i]%2 != 0) sum += x[i];
}
System.out.println("Sum of odds="+sum);
}
}#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
int n = argc - 1;
int x[100], sum = 0;
for(int i=0; i<n; i++)
x[i] = atoi(argv[i+1]);
for(int i=0; i<n; i++)
if(x[i]%2 != 0) sum += x[i];
cout << "Sum of odds=" << sum << endl;
return 0;
}Sorts an array in descending order using bubble sort algorithm.
class Desc {
public static void main(String args[]) {
int x[]=new int[100], t, i, j;
int n = args.length;
for(i=0; i<n; i++)
x[i] = Integer.parseInt(args[i]);
for(i=0; i<n-1; i++)
for(j=0; j<n-1-i; j++)
if(x[j] < x[j+1]) {
t=x[j]; x[j]=x[j+1]; x[j+1]=t;
}
for(i=0; i<n; i++)
System.out.print(x[i]+" ");
}
}#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]) {
int n = argc-1, x[100], t;
for(int i=0;i<n;i++)
x[i]=atoi(argv[i+1]);
for(int i=0;i<n-1;i++)
for(int j=0;j<n-1-i;j++)
if(x[j]<x[j+1]){
t=x[j];x[j]=x[j+1];x[j+1]=t;
}
for(int i=0;i<n;i++)
cout << x[i] << " ";
cout << endl;
return 0;
}Checks if a number is Armstrong (narcissistic): sum of each digit raised to power of digit count equals the number itself.
import java.util.*;
import java.math.*;
class Armstrong {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int x = s.nextInt();
int x1=x, x2=x, n, len=0, mod;
double power, sum=0;
while(x2!=0){ x2=x2/10; len++; }
for(n=len; n>0; n--) {
mod = x%10;
power = Math.pow(mod, len);
sum += power;
x = x/10;
}
if(sum==x1)
System.out.println("ARMSTRONG");
else
System.out.println("Not ARMSTRONG");
}
}#include <iostream>
#include <cmath>
using namespace std;
int main() {
int x; cin >> x;
int x1=x, x2=x, len=0, mod;
double sum=0;
while(x2!=0){ x2/=10; len++; }
for(int n=len; n>0; n--) {
mod = x%10;
sum += pow(mod, len);
x /= 10;
}
cout << (sum==x1
? "ARMSTRONG"
: "Not ARMSTRONG") << endl;
return 0;
}Generates the Fibonacci sequence up to n terms using iterative approach.
import java.util.Scanner;
class Fib {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int a=0, b=1, c;
System.out.print(a+" "+b+" ");
for(int i=2; i<n; i++) {
c = a+b;
System.out.print(c+" ");
a=b; b=c;
}
System.out.println();
}
}#include <iostream>
using namespace std;
int main() {
int n; cin >> n;
int a=0, b=1, c;
cout << a << " " << b << " ";
for(int i=2; i<n; i++) {
c = a+b;
cout << c << " ";
a=b; b=c;
}
cout << endl;
return 0;
}Searches for a target value in an array using sequential linear search.
import java.util.Scanner;
public class Lsearch {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++) arr[i]=s.nextInt();
int key = s.nextInt();
boolean found = false;
for(int i=0;i<n;i++) {
if(arr[i]==key){
System.out.println("Found at index "+i);
found=true; break;
}
}
if(!found) System.out.println("Not found");
}
}#include <iostream>
using namespace std;
int main() {
int n; cin >> n;
int arr[100];
for(int i=0;i<n;i++) cin>>arr[i];
int key; cin >> key;
bool found = false;
for(int i=0;i<n;i++) {
if(arr[i]==key) {
cout << "Found at index " << i;
found=true; break;
}
}
if(!found) cout << "Not found";
cout << endl;
return 0;
}Removes even digits from a number, keeping only odd digits in order.
import java.util.Scanner;
public class DelOdd {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int sum=0, num=0;
while(n>0) {
int no = n%10;
if(no%2!=0) sum=(sum*10)+no;
n=n/10;
}
while(sum>0) {
int t=sum%10;
num=(num*10)+t; sum=sum/10;
}
System.out.println(num);
}
}#include <iostream>
using namespace std;
int main() {
int n; cin >> n;
int sum=0, num=0;
while(n>0) {
int no = n%10;
if(no%2!=0) sum=(sum*10)+no;
n/=10;
}
while(sum>0) {
int t=sum%10;
num=(num*10)+t; sum/=10;
}
cout << num << endl;
return 0;
}Introduces class and object instantiation with a method call.
public class ClassObj {
public static void main(String args[]) {
Demo d1 = new Demo();
d1.display();
}
}
class Demo {
void display() {
System.out.println(
"Welcome to Class and Object"
);
}
}#include <iostream>
using namespace std;
class Demo {
public:
void display() {
cout << "Welcome to Class and Object"
<< endl;
}
};
int main() {
Demo d1;
d1.display();
return 0;
}Uses a class with getdata() and display() methods to encapsulate float addition.
import java.util.Scanner;
public class FloatSum {
public static void main(String args[]) {
Addition a1 = new Addition();
a1.getdata();
a1.display();
}
}
class Addition {
Scanner d = new Scanner(System.in);
float a, b;
void getdata() {
System.out.println("Enter A:"); a=d.nextFloat();
System.out.println("Enter B:"); b=d.nextFloat();
}
void display() {
System.out.println("Sum: "+(a+b));
}
}#include <iostream>
using namespace std;
class Addition {
public:
float a, b;
void getdata() {
cout << "Enter A: "; cin >> a;
cout << "Enter B: "; cin >> b;
}
void display() {
cout << "Sum: " << a+b << endl;
}
};
int main() {
Addition a1;
a1.getdata();
a1.display();
return 0;
}Uses a class method to compute average of three floats and returns the result.
import java.util.Scanner;
public class ClassAverage {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
float a,b,c,avg;
a=s.nextFloat(); b=s.nextFloat(); c=s.nextFloat();
Average a1 = new Average();
avg = a1.computeAverage(a,b,c);
System.out.println("Average:"+avg);
}
}
class Average {
float computeAverage(float x, float y, float z) {
return (x+y+z)/3;
}
}#include <iostream>
using namespace std;
class Average {
public:
float computeAverage(float x,float y,float z){
return (x+y+z)/3;
}
};
int main() {
float a,b,c;
cin >> a >> b >> c;
Average a1;
float avg = a1.computeAverage(a,b,c);
cout << "Average:" << avg << endl;
return 0;
}Manages an array of Employee objects with ID, name, and salary fields using a class structure.
import java.util.Scanner;
public class ClassEmployee {
public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
int n = s1.nextInt();
Employee e[] = new Employee[100];
for(int i=0;i<n;i++) {
e[i] = new Employee();
e[i].id = s1.nextInt();
e[i].name = s1.next();
e[i].salary = s1.nextDouble();
}
for(int i=0;i<n;i++)
System.out.println(e[i].id+" "
+e[i].name+" "+e[i].salary);
}
}
class Employee {
int id; String name; double salary;
}#include <iostream>
#include <string>
using namespace std;
struct Employee {
int id;
string name;
double salary;
};
int main() {
int n; cin >> n;
Employee e[100];
for(int i=0;i<n;i++)
cin >> e[i].id >> e[i].name
>> e[i].salary;
for(int i=0;i<n;i++)
cout << e[i].id << " "
<< e[i].name << " "
<< e[i].salary << endl;
return 0;
}Models a library of books with title, author, price — demonstrating data encapsulation.
import java.util.Scanner;
public class ClassBooks {
public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
int n = s1.nextInt();
Books b[] = new Books[20];
for(int i=0;i<n;i++) {
b[i] = new Books();
b[i].title = s1.next();
b[i].author = s1.next();
b[i].price = s1.nextDouble();
}
for(int i=0;i<n;i++)
System.out.println(b[i].title+" "
+b[i].author+" "+b[i].price);
}
}
class Books {
String title, author; double price;
}#include <iostream>
#include <string>
using namespace std;
struct Books {
string title, author;
double price;
};
int main() {
int n; cin >> n;
Books b[20];
for(int i=0;i<n;i++)
cin >> b[i].title >> b[i].author
>> b[i].price;
for(int i=0;i<n;i++)
cout << b[i].title << " "
<< b[i].author << " "
<< b[i].price << endl;
return 0;
}A menu-driven calculator supporting +, -, *, /, % operations using a switch statement.
import java.util.*;
class Calculator {
public static void main(String args[]) {
Scanner x = new Scanner(System.in);
int a = x.nextInt(), b = x.nextInt();
int s = x.nextInt(); // 1=Add 2=Sub..
switch(s) {
case 1: System.out.println(a+b); break;
case 2: System.out.println(a-b); break;
case 3: System.out.println(a*b); break;
case 4: System.out.println(a/b); break;
case 5: System.out.println(a%b); break;
default: System.out.println("Invalid");
}
}
}#include <iostream>
using namespace std;
int main() {
int a, b, s;
cin >> a >> b >> s;
switch(s) {
case 1: cout << a+b; break;
case 2: cout << a-b; break;
case 3: cout << a*b; break;
case 4: cout << a/b; break;
case 5: cout << a%b; break;
default: cout << "Invalid";
}
cout << endl;
return 0;
}Classifies a number as odd or even using modulus operator.
import java.util.Scanner;
public class OddEven {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
if(n%2 == 0)
System.out.println("Even");
else
System.out.println("Odd");
}
}#include <iostream>
using namespace std;
int main() {
int n; cin >> n;
cout << (n%2==0 ? "Even" : "Odd")
<< endl;
return 0;
}Finds and sums all prime numbers up to a given range using nested loop primality test.
import java.util.Scanner;
public class PrimeSum {
public static void main(String args[]) {
Scanner s = new Scanner(System.in);
int n = s.nextInt(), sum=0;
for(int x=2; x<=n; x++) {
int flag=0;
for(int i=2; i<=x/2; i++)
if(x%i==0){ flag=1; break; }
if(flag==0) sum+=x;
}
System.out.println("Prime Sum="+sum);
}
}#include <iostream>
using namespace std;
int main() {
int n, sum=0; cin >> n;
for(int x=2; x<=n; x++) {
int flag=0;
for(int i=2; i<=x/2; i++)
if(x%i==0){ flag=1; break; }
if(flag==0) sum+=x;
}
cout << "Prime Sum=" << sum << endl;
return 0;
}Computes both the sum of factors and verifies primality with a combined algorithm.
import java.util.Scanner;
public class FactorPrimeSum {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int factorSum=0, primeSum=0;
for(int i=1; i<=n; i++)
if(n%i==0) factorSum+=i;
for(int x=2; x<=n; x++) {
int flag=0;
for(int i=2;i<=x/2;i++)
if(x%i==0){flag=1;break;}
if(flag==0) primeSum+=x;
}
System.out.println("Factor Sum="+factorSum);
System.out.println("Prime Sum="+primeSum);
}
}#include <iostream>
using namespace std;
int main() {
int n; cin >> n;
int factorSum=0, primeSum=0;
for(int i=1;i<=n;i++)
if(n%i==0) factorSum+=i;
for(int x=2;x<=n;x++){
int flag=0;
for(int i=2;i<=x/2;i++)
if(x%i==0){flag=1;break;}
if(flag==0) primeSum+=x;
}
cout<<"Factor Sum="<<factorSum<<endl;
cout<<"Prime Sum=" <<primeSum <<endl;
return 0;
}Manages up to 50 students with roll numbers and marks, computing grades using OOP.
import java.util.Scanner;
public class Class50Students {
public static void main(String[] args) {
Scanner s1 = new Scanner(System.in);
int n = s1.nextInt();
Student st[] = new Student[50];
for(int i=0;i<n;i++) {
st[i] = new Student();
st[i].roll = s1.nextInt();
st[i].marks = s1.nextInt();
if(st[i].marks>=75) st[i].grade="A";
else if(st[i].marks>=50) st[i].grade="B";
else st[i].grade="C";
}
for(int i=0;i<n;i++)
System.out.println(st[i].roll+" "
+st[i].marks+" "+st[i].grade);
}
}
class Student {
int roll, marks; String grade;
}#include <iostream>
#include <string>
using namespace std;
struct Student {
int roll, marks;
string grade;
};
int main() {
int n; cin >> n;
Student st[50];
for(int i=0;i<n;i++){
cin >> st[i].roll >> st[i].marks;
if(st[i].marks>=75) st[i].grade="A";
else if(st[i].marks>=50) st[i].grade="B";
else st[i].grade="C";
}
for(int i=0;i<n;i++)
cout << st[i].roll << " "
<< st[i].marks << " "
<< st[i].grade << endl;
return 0;
}Simba Zuva
AI-enabled developer and ECE engineer with a Master's degree and demonstrated experience building software in Java, C++, and Python using AI-assisted tools including GitHub Copilot, Claude, and Perplexity in conjuction with the Comet browser. Proven ability to translate structured requirements into working solutions quickly, iterate based on feedback, and move prototypes to production. Background spans IT systems, SCADA/PLCs, technical support, and hands-on academic research — with a practical, curious problem-solving mindset that thrives in collaborative, fast-moving teams.
- Supported SCADA, PLC, and industrial automation systems — translating technical requirements into operational configurations and documentation
- Used scripting (Python, PowerShell) to automate routine support workflows, reducing manual processing time
- Coordinated with cross-functional teams to prototype and deliver internal tooling aligned with business architecture and service models
- Maintained systems documentation and assisted in moving proof-of-concept solutions to stable, production-ready deployments
- Leveraged AI-assisted tools to accelerate code review, documentation generation, and requirements analysis
- Delivered lab instruction and code reviews in Java, C++, and Python for undergraduate engineering courses
- Mentored students on algorithm design, OOP patterns, and debugging — reinforcing practical, working-software principles
- Collaborated with course instructors to rapidly iterate on lab material based on student feedback
- Designed and built an IoT-based driver safety monitoring system: from requirements to prototype to a published paper on ResearchGate
- Implemented embedded software components in C++ and Python; applied signal processing and sensor fusion logic
- Managed a homelab environment to test system architecture and iterate rapidly on design decisions
- Demonstrated ability to move independently from ambiguous spec to working, documented solution
- Provided Tier 1–2 IT support across Windows, M365, Active Directory, and networking environments
- Documented processes and escalation paths; contributed to internal knowledge base articles used by the team
- Worked within structured service models and ticketing systems (ITSM), adapting quickly to changing priorities
- Computer science focus — algorithms, software systems, embedded design
- Research: IoT-based driver safety monitoring system (published on ResearchGate)
I use GitHub Copilot to generate boilerplate, suggest completions, and speed up repetitive patterns. I use Claude to translate business requirements into code scaffolding, debug logic, and write documentation. I use Comet Browser for AI-pair programming in real time. This portfolio itself was prototyped and refined using AI-assisted development — the Java programs above were translated to C++ with AI assistance, then reviewed and corrected by hand. I treat AI as a force multiplier, not a replacement for judgment.