Programming and Java Fundamentals
Introduction to Programming
You are viewing a free preview lesson.
Lesson Overview
Programming হলো একটি computer-কে নির্দিষ্ট কাজ করানো বা কোনো সমস্যা সমাধান করার জন্য ধাপে ধাপে instruction দেওয়ার প্রক্রিয়া।
একটি computer খুব দ্রুত data process করতে পারে, কিন্তু আমরা কী চাই, সেটি সে নিজে থেকে বুঝতে পারে না। Programmer-কে পরিষ্কার, নির্দিষ্ট এবং সঠিকভাবে প্রতিটি instruction লিখে দিতে হয়।
এই lesson-এ আমরা জানব:
- Programming কী
- Source code কী
- Program কীভাবে সমস্যা সমাধান করে
- Algorithm কী
- Program এবং application-এর পার্থক্য
- Programming error-এর সাধারণ ধরন
Learning Objectives
এই lesson শেষ করার পর আপনি পারবেন:
- Programming কী, তা ব্যাখ্যা করতে
- Source code কী, তা বুঝতে
- Program কীভাবে সমস্যা সমাধান করে, তা বলতে
- Algorithm-এর সংজ্ঞা দিতে
- Program এবং application-এর পার্থক্য বুঝতে
- Syntax error, runtime error এবং logical error শনাক্ত করতে
Programming কী?
Programming হলো computer-এর জন্য instruction design এবং লেখার প্রক্রিয়া।
এই instruction ব্যবহার করে computer-কে বিভিন্ন কাজ করানো যায়।
যেমন:
- কোনো calculation করা
- Screen-এ information দেখানো
- Data save করা
- অনেক data-এর মধ্য থেকে কিছু খুঁজে বের করা
- Payment process করা
- Email পাঠানো
- Video চালানো
- কোনো device নিয়ন্ত্রণ করা
- অন্য system-এর সঙ্গে যোগাযোগ করা
Programming language ব্যবহার করে লেখা instruction-এর সমষ্টিকে source code বলা হয়।
উদাহরণ:
System.out.println("Welcome to Java");
এই Java instruction একটি message display করবে।
Output:
Welcome to Java
এই code একজন developer সহজে পড়তে পারে। কিন্তু computer-এর processor সরাসরি Java source code বুঝতে পারে না।
Java source code-কে প্রথমে এমন একটি format-এ translate করতে হয়, যা computer execute করতে পারে।
Java কীভাবে এই কাজ করে, তা আমরা পরবর্তী lesson-এ বিস্তারিত জানব।
Programming Language কী?
Programming language হলো একটি structured language, যার মাধ্যমে computer-এর জন্য instruction লেখা হয়।
কিছু জনপ্রিয় programming language হলো:
- Java
- Python
- JavaScript
- Go
- C
- C++
- C#
- Rust
- Kotlin
প্রতিটি programming language-এর নিজস্ব:
- Syntax
- Keyword
- Rule
- Data type
- Code structure
রয়েছে।
Java-তে text print করার উদাহরণ:
System.out.println("Hello");
Python-এ একই ধরনের কাজ করা হয় এভাবে:
print("Hello")
দুটি code প্রায় একই কাজ করে, কিন্তু দুটি ভিন্ন programming language-এর নিয়ম অনুসরণ করে।
Program কীভাবে সমস্যা সমাধান করে?
অধিকাংশ software কোনো না কোনো সমস্যা সমাধান করার জন্য তৈরি হয়।
যেমন:
- একটি school-এর student grade calculate করতে হবে
- একটি bank-এর account-এর মধ্যে money transfer করতে হবে
- একটি online shop-এর customer order process করতে হবে
- একটি hospital-এর patient record সংরক্ষণ করতে হবে
- একটি learning platform-এর lesson progress track করতে হবে
- একটি company-এর user-দের notification পাঠাতে হবে
একজন programmer প্রথমে পুরো সমস্যাটি বোঝেন।
তারপর সমস্যাটিকে ছোট ছোট step-এ ভাগ করেন।
ধরা যাক, আমাদের একজন student-এর average mark calculate করতে হবে।
এই কাজটি করার জন্য step হতে পারে:
- Student-এর mark গ্রহণ করা
- সব mark যোগ করা
- Subject-এর সংখ্যা নির্ধারণ করা
- Total mark-কে subject-এর সংখ্যা দিয়ে ভাগ করা
- Average result display করা
এই ধাপে ধাপে solution-কে algorithm বলা হয়।
Algorithm কী?
Algorithm হলো কোনো problem solve করা বা কোনো task সম্পন্ন করার জন্য সাজানো, পরিষ্কার এবং নির্দিষ্ট step-এর একটি sequence।
Algorithm লেখার জন্য programming language জানা বাধ্যতামূলক নয়।
উদাহরণ হিসেবে চা বানানোর একটি algorithm হতে পারে:
- পানি গরম করা
- কাপে চা রাখা
- কাপে গরম পানি ঢালা
- কিছুক্ষণ অপেক্ষা করা
- প্রয়োজন হলে দুধ বা চিনি যোগ করা
- চা পরিবেশন করা
একটি ভালো algorithm-এর instruction হতে হবে:
- পরিষ্কার
- সম্পূর্ণ
- সঠিক ক্রমে সাজানো
- বাস্তবে সম্পাদনযোগ্য
Programming-এও একই নিয়ম প্রযোজ্য।
Code লেখার আগে programmer-এর problem solve করার stepগুলো বোঝা উচিত।
উদাহরণ: Rectangle-এর Area নির্ণয়
ধরা যাক, আমাদের একটি rectangle-এর area calculate করতে হবে।
Formula:
area = length × width
Algorithm হতে পারে:
- Rectangle-এর length গ্রহণ করা
- Rectangle-এর width গ্রহণ করা
- Length এবং width গুণ করা
- Result store করা
- Result display করা
পরবর্তী সময়ে এই algorithm Java code-এ লেখা যেতে পারে:
int length = 10;
int width = 5;
int area = length * width;
System.out.println(area);
Output:
50
এখানে শুধুমাত্র Java syntax গুরুত্বপূর্ণ নয়।
তার আগে programmer-কে বুঝতে হয়েছে:
- কী calculate করতে হবে
- কোন input প্রয়োজন
- কোন formula ব্যবহার করতে হবে
- কী output দেখাতে হবে
Input, Processing এবং Output
অনেক program-কে তিনটি basic stage-এর মাধ্যমে বোঝা যায়:
- Input
- Processing
- Output
Input
Input হলো program যে information গ্রহণ করে।
উদাহরণ:
- User-এর দেওয়া name
- Product price
- Student mark
- Login email এবং password
- অন্য application থেকে পাওয়া data
- Keyboard থেকে দেওয়া number
ধরা যাক, user তার age লিখল:
25
এটি program-এর input।
Processing
Processing হলো input-এর ওপর program যে কাজ করে।
উদাহরণ:
- দুটি value যোগ করা
- Password compare করা
- Average calculate করা
- Product search করা
- Email validate করা
- Tax calculate করা
- User eligible কি না, তা নির্ধারণ করা
ধরা যাক, program দুটি number গ্রহণ করল:
10
20
তারপর program value দুটি যোগ করল:
10 + 20
এটি processing।
Output
Output হলো program যে final result তৈরি করে।
উদাহরণ:
- Screen-এ message দেখানো
- Calculated total
- Generated report
- Confirmation email
- Error message
- Search result
- Payment receipt
উপরের দুটি number যোগ করার output হবে:
30
Grade Calculator-এর Input, Processing এবং Output
একটি grade calculator-এর ক্ষেত্রে:
Input
80, 75, 90
Processing
- Markগুলো যোগ করা
- Subject-এর সংখ্যা গণনা করা
- Average বের করা
Output
Average mark: 81.67
Input-processing-output model ব্যবহার করে অনেক programming problem সহজে বোঝা যায়।
Program এবং Application-এর পার্থক্য
Program এবং application শব্দ দুটি সম্পর্কিত হলেও সবসময় একই অর্থ প্রকাশ করে না।
Program কী?
Program হলো instruction-এর একটি collection, যা একটি নির্দিষ্ট task সম্পন্ন করে।
উদাহরণ:
- Calculator program
- File rename করার program
- Grade calculate করার program
- Email পাঠানোর program
- Temperature convert করার program
একটি program খুব ছোটও হতে পারে।
উদাহরণ:
public class Main {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}
এই program শুধু একটি message print করে।
Application কী?
Application সাধারণত user-এর জন্য তৈরি বড় ধরনের software।
উদাহরণ:
- Banking application
- Web browser
- Learning platform
- Food delivery application
- Messaging application
- E-commerce application
একটি application-এর মধ্যে থাকতে পারে:
- একাধিক program
- User interface
- Database
- Backend service
- External integration
- Authentication system
- Payment system
- Notification system
একটি ছোট Java program হয়তো একটি task সম্পন্ন করে।
অন্যদিকে, একটি complete Java application-এ হাজার হাজার class থাকতে পারে এবং সেটি লাখ বা কোটি user-এর request handle করতে পারে।
Source Code কী?
Source code হলো programming language ব্যবহার করে programmer-এর লেখা human-readable instruction।
Java source code সাধারণত .java extension-এর file-এ সংরক্ষণ করা হয়।
উদাহরণ:
Main.java
GradeCalculator.java
BankAccount.java
Student.java
একটি Java source file-এর মধ্যে থাকতে পারে:
- Class
- Method
- Variable
- Condition
- Loop
- Object-related code
উদাহরণ:
public class Main {
public static void main(String[] args) {
System.out.println("My first Java program");
}
}
এই code-এর প্রতিটি অংশ এখনই পুরোপুরি বুঝতে না পারলেও সমস্যা নেই।
পরবর্তী lesson গুলোতে ধাপে ধাপে আমরা শিখব:
- Class
- Method
- Variable
- Object
- Condition
- Loop
Programming Process
Programming শুধু code লেখার বিষয় নয়।
একটি simplified programming process-এর মধ্যে কয়েকটি গুরুত্বপূর্ণ step থাকে।
Step 1: Problem বোঝা
Code লেখার আগে বুঝতে হবে program-টি কী করবে।
কিছু গুরুত্বপূর্ণ প্রশ্ন:
- Program-টি কে ব্যবহার করবে?
- Program কী input গ্রহণ করবে?
- কী output তৈরি করবে?
- কোন rule follow করতে হবে?
- কোন situation-এ error হতে পারে?
- User ভুল input দিলে কী হবে?
Problem সঠিকভাবে না বুঝে code লিখলে, code technically run করলেও ভুল result দিতে পারে।
Step 2: Input নির্ধারণ করা
Program-এর কাজ করার জন্য কোন information প্রয়োজন, তা নির্ধারণ করতে হবে।
একটি grade calculator-এর input হতে পারে:
- Student name
- Mathematics mark
- English mark
- Science mark
একটি login system-এর input হতে পারে:
- Password
Step 3: Expected Output নির্ধারণ করা
Program কী result তৈরি করবে, তা আগে থেকে পরিষ্কার করতে হবে।
Grade calculator-এর output হতে পারে:
- Total mark
- Average mark
- Letter grade
- Pass বা fail status
Login system-এর output হতে পারে:
Login successful
অথবা:
Invalid email or password
Step 4: Algorithm Design করা
Input থেকে expected output তৈরি করার জন্য প্রয়োজনীয় stepগুলো লিখতে হবে।
উদাহরণ:
- Student-এর mark গ্রহণ করা
- Mark validate করা
- সব mark যোগ করা
- Average calculate করা
- Grade নির্ধারণ করা
- Result display করা
Step 5: Code লেখা
Algorithm-কে programming language-এর মাধ্যমে প্রকাশ করতে হবে।
উদাহরণ:
int mathematics = 80;
int english = 90;
int science = 85;
int total = mathematics + english + science;
System.out.println(total);
Step 6: Program Run করা
Code লেখার পর program execute করতে হবে।
Program run করলে দেখা যাবে:
- Code compile হচ্ছে কি না
- Program start হচ্ছে কি না
- কোনো error হচ্ছে কি না
- Expected output পাওয়া যাচ্ছে কি না
Step 7: Program Test করা
Program বিভিন্ন input দিয়ে test করতে হবে।
Grade calculator-এর ক্ষেত্রে test করা যেতে পারে:
- সাধারণ mark
0mark- সর্বোচ্চ mark
- Negative mark
100-এর বেশি mark- Invalid text input
- Empty input
শুধু একটি input দিয়ে program run করলেই program পুরোপুরি correct প্রমাণিত হয় না।
Step 8: Error Fix করা
Code-এর problem খুঁজে বের করে fix করার প্রক্রিয়াকে debugging বলা হয়।
Debugging-এর সময় programmer:
- Error message পড়েন
- Code-এর relevant অংশ খুঁজে বের করেন
- Variable-এর value পরীক্ষা করেন
- Logic যাচাই করেন
- Code পরিবর্তন করেন
- আবার program run করেন
Step 9: Solution Improve করা
Program কাজ করার পরও code improve করা যায়।
যেমন:
- Code আরও readable করা
- Duplicate code কমানো
- Better variable name ব্যবহার করা
- Validation যোগ করা
- Error handling improve করা
- Code ছোট method-এ ভাগ করা
- Performance উন্নত করা
Professional software development-এ এই stepগুলো একাধিকবার repeat করা হয়।
Debugging কী?
Debugging হলো program-এর error খুঁজে বের করা, error-এর কারণ বোঝা এবং সেটি ঠিক করার প্রক্রিয়া।
একটি program fail করতে পারে বিভিন্ন কারণে।
যেমন:
- Syntax ভুল
- Calculation ভুল
- Required value নেই
- Unexpected input এসেছে
- ভুল condition ব্যবহার করা হয়েছে
- File পাওয়া যাচ্ছে না
- External system unavailable
- Network connection কাজ করছে না
Debugging programming-এর স্বাভাবিক একটি অংশ।
Experienced engineer-রাও নিয়মিত এমন code লেখেন যেখানে error থাকতে পারে।
একজন ভালো programmer কখনো ভুল করেন না—এটি সত্য নয়।
বরং একজন ভালো programmer:
- Error message বুঝতে পারেন
- Systematically problem খুঁজে বের করেন
- Hypothesis তৈরি করেন
- Test করেন
- Correct fix করেন
Programming Error-এর ধরন
Programming error-এর তিনটি সাধারণ category হলো:
- Syntax error
- Runtime error
- Logical error
Syntax Error
Syntax error ঘটে যখন code programming language-এর grammatical rule follow করে না।
উদাহরণ:
System.out.println("Hello")
উপরের statement-এর শেষে semicolon নেই।
Correct code:
System.out.println("Hello");
আরেকটি উদাহরণ:
int age = ;
এখানে assignment operator-এর পরে value নেই।
Correct code হতে পারে:
int age = 25;
Syntax error সাধারণত Java program run হওয়ার আগেই compiler detect করে।
Runtime Error
Runtime error ঘটে program চলার সময়।
উদাহরণ:
int result = 10 / 0;
Integer value-কে zero দিয়ে divide করলে program runtime-এ fail করবে।
Runtime error হতে পারে:
- Invalid calculation-এর কারণে
- Missing file-এর কারণে
- Invalid user input-এর কারণে
- Network problem-এর কারণে
- Missing data-এর কারণে
- Unexpected system state-এর কারণে
পরবর্তী module-এ আমরা Java exception ব্যবহার করে runtime error handle করা শিখব।
Logical Error
Logical error ঘটে যখন program successfully run করে, কিন্তু ভুল result দেয়।
উদাহরণ:
int mathematics = 80;
int english = 90;
int total = mathematics + english;
int average = total / 3;
System.out.println(average);
এই program run করবে।
কিন্তু result ভুল হবে।
কারণ এখানে subject আছে দুটি:
- Mathematics
- English
কিন্তু total-কে 3 দিয়ে ভাগ করা হয়েছে।
Correct code:
int average = total / 2;
Logical error খুঁজে পাওয়া তুলনামূলক কঠিন হতে পারে।
কারণ:
- Program crash নাও করতে পারে
- কোনো error message নাও দেখাতে পারে
- Output দেখতে believable মনে হতে পারে
এই কারণে testing অত্যন্ত গুরুত্বপূর্ণ।
Programming মানে Problem Solving
Programming-এর মূল বিষয় শুধু syntax মুখস্থ করা নয়।
Programming-এর জন্য প্রয়োজন:
- Problem বোঝা
- Problem-কে ছোট অংশে ভাগ করা
- Required information শনাক্ত করা
- Logical solution তৈরি করা
- Solution-কে code-এ প্রকাশ করা
- Result test করা
- ভুল ঠিক করা
- Solution improve করা
Programming language একটি tool।
একজন developer যদি problem ভালোভাবে বুঝতে পারেন, তাহলে প্রয়োজনীয় syntax শিখে solution তৈরি করতে পারবেন।
কিন্তু কেউ যদি শুধু syntax মুখস্থ করেন, তাহলে নতুন বা পরিবর্তিত problem solve করতে অসুবিধা হতে পারে।
উদাহরণ: Voting Eligibility
ধরা যাক, আমাদের determine করতে হবে একজন ব্যক্তি vote দেওয়ার জন্য eligible কি না।
Requirement:
একজন ব্যক্তি vote দিতে পারবেন যদি তার age অন্তত 18 হয়।
Input
ব্যক্তির age।
Processing
Age-এর সঙ্গে 18 compare করা।
Output
ব্যক্তি eligible কি না, তা display করা।
Algorithm
- ব্যক্তির age গ্রহণ করা
- Age
18-এর সমান বা বেশি কি না check করা - Condition true হলে
"Eligible to vote"display করা - অন্যথায়
"Not eligible to vote"display করা
একটি Java implementation হতে পারে:
int age = 20;
if (age >= 18) {
System.out.println("Eligible to vote");
} else {
System.out.println("Not eligible to vote");
}
Condition কীভাবে কাজ করে, তা আমরা পরবর্তী lesson-এ বিস্তারিত শিখব।
উদাহরণ: Product Total
ধরা যাক, একজন customer তিনটি product কিনেছেন।
Price:
- Product 1:
500 - Product 2:
750 - Product 3:
250
Algorithm
- প্রথম product-এর price store করা
- দ্বিতীয় product-এর price store করা
- তৃতীয় product-এর price store করা
- তিনটি price যোগ করা
- Total display করা
Java code:
int firstProductPrice = 500;
int secondProductPrice = 750;
int thirdProductPrice = 250;
int totalPrice =
firstProductPrice
+ secondProductPrice
+ thirdProductPrice;
System.out.println(totalPrice);
Output:
1500
ভালো Instruction এবং খারাপ Instruction
Computer-এর জন্য instruction precise হতে হয়।
নিচের instruction বিবেচনা করুন:
Result calculate করো।
এই instruction অসম্পূর্ণ।
Computer-কে জানতে হবে:
- কোন value ব্যবহার করতে হবে?
- কোন calculation করতে হবে?
- Value কোথায় আছে?
- Result কোথায় রাখতে হবে?
- Result কীভাবে display করতে হবে?
একটি better algorithm হবে:
- দুটি number গ্রহণ করো
- Number দুটি যোগ করো
- Sum একটি variable-এ store করো
- Sum display করো
Programming আমাদের precise communication শিখতে সাহায্য করে।
গুরুত্বপূর্ণ Terms
Programming
Computer-এর জন্য instruction design এবং লেখার প্রক্রিয়া।
Program
একটি নির্দিষ্ট task সম্পন্ন করার জন্য instruction-এর collection।
Application
User-এর জন্য তৈরি বড় ধরনের software, যেখানে একাধিক program এবং component থাকতে পারে।
Source Code
Programming language ব্যবহার করে লেখা human-readable instruction।
Programming Language
Computer-এর জন্য instruction লেখার structured language।
Algorithm
কোনো problem solve করার জন্য সাজানো step-এর sequence।
Input
Program যে information গ্রহণ করে।
Processing
Input-এর ওপর program যে operation চালায়।
Output
Program যে result তৈরি করে।
Debugging
Program-এর error খুঁজে বের করা এবং fix করার প্রক্রিয়া।
Syntax Error
Programming language-এর grammatical rule ভাঙার কারণে হওয়া error।
Runtime Error
Program চলার সময় হওয়া error।
Logical Error
Program run করলেও ভুল result তৈরি হওয়ার error।
Practice Exercise 1: একটি Algorithm লিখুন
তিনটি product-এর total price calculate করার জন্য একটি algorithm লিখুন।
আপনার algorithm-এ থাকতে হবে:
- Required input
- Calculation
- Expected output
Example format:
1. ...
2. ...
3. ...
4. ...
Practice Exercise 2: Rectangle Area
একটি rectangle-এর area calculate করার algorithm লিখুন।
Formula:
area = length × width
নিচের বিষয়গুলো আলাদা করে লিখুন:
- Input
- Processing
- Output
Practice Exercise 3: Login Process
একটি simple login process-এর algorithm লিখুন।
ধরা যাক, user দেয়:
- Password
Application এই valueগুলো stored account information-এর সঙ্গে compare করবে।
লিখুন কী হবে যখন:
- Email এবং password দুটিই correct
- Email incorrect
- Password incorrect
- Email empty
- Password empty
Practice Exercise 4: Error Type শনাক্ত করুন
প্রতিটি example syntax error, runtime error নাকি logical error, তা শনাক্ত করুন।
Example 1
System.out.println("Java")
Example 2
int result = 100 / 0;
Example 3
int price = 500;
int quantity = 2;
int total = price + quantity;
Example 4
int age = ;
Practice Exercise 5: একটি Problem ভেঙে লিখুন
নিচের যেকোনো একটি system নির্বাচন করুন:
- Library management system
- Food delivery application
- Student management system
- Online shopping application
- Learning platform
লিখুন:
- Systemটি কোন problem solve করে
- তিনটি possible input
- তিনটি processing operation
- তিনটি possible output
এখানে Java code লেখার প্রয়োজন নেই।
Knowledge Check
Question 1
Programming কী?
Question 2
Source code কী?
Question 3
Algorithm কী?
Question 4
একটি simple program-এর তিনটি main stage কী?
Question 5
Program এবং application-এর মধ্যে পার্থক্য কী?
Question 6
Debugging কী?
Question 7
Syntax error এবং logical error-এর মধ্যে পার্থক্য কী?
Question 8
Code লেখার আগে problem বোঝা কেন গুরুত্বপূর্ণ?
Question 9
Runtime error কখন ঘটে?
Question 10
Input-processing-output model বলতে কী বোঝায়?
Knowledge Check Answers
Answer 1
Programming হলো computer-এর জন্য instruction design এবং লেখার প্রক্রিয়া।
Answer 2
Source code হলো programming language ব্যবহার করে লেখা human-readable instruction-এর collection।
Answer 3
Algorithm হলো কোনো problem solve করা বা task সম্পন্ন করার জন্য সাজানো step-এর sequence।
Answer 4
তিনটি main stage হলো:
- Input
- Processing
- Output
Answer 5
Program হলো একটি task সম্পন্ন করার instruction-এর collection। Application সাধারণত বড় software, যেখানে একাধিক program, component, database এবং service থাকতে পারে।
Answer 6
Debugging হলো program-এর error খুঁজে বের করা, কারণ বোঝা এবং error fix করার প্রক্রিয়া।
Answer 7
Syntax error programming language-এর grammatical rule ভাঙে। Logical error-এর ক্ষেত্রে program run করে, কিন্তু ভুল result তৈরি করে।
Answer 8
Problem ভালোভাবে বুঝলে programmer সঠিক input, output, rule এবং algorithm নির্ধারণ করতে পারেন।
Answer 9
Runtime error program execute হওয়ার সময় ঘটে।
Answer 10
Input-processing-output model-এ program প্রথমে information গ্রহণ করে, তারপর সেই information process করে এবং শেষে result তৈরি করে।
Lesson Summary
এই lesson-এ আমরা শিখেছি:
- Programming হলো computer-এর জন্য instruction লেখার প্রক্রিয়া
- Programming language ব্যবহার করে source code লেখা হয়
- Program সাধারণত কোনো problem solve করার জন্য তৈরি হয়
- Algorithm problem solve করার stepগুলো প্রকাশ করে
- অনেক program input, processing এবং output stage follow করে
- Program একটি task সম্পন্ন করে
- Application-এর মধ্যে অনেক program এবং component থাকতে পারে
- Debugging programming-এর স্বাভাবিক অংশ
- Syntax error, runtime error এবং logical error একে অন্যের থেকে আলাদা
- ভালো programming শুরু হয় problem সঠিকভাবে বোঝা থেকে