You are here

Introduction to Computer Programming (in English)

Schedule details

No scheduled events are available for enrollment at this moment.
We schedule training programs based on requests.
Request to schedule this training.


Developing a computer program requires one to specify the behavior of the program using at least one programming language. To use a programming language, one needs to know the vocabulary of the language, the arrangment of words from the vocabulary to make meaningful statements, and the orderly organization of the statements to get the desired behavior. This training introduces those topics to the learner using Python, a popular computer programming language. Where appropriate, examples from some other programming languages will also be used to strengthen the learner's knowledge about programming in general.

Training Objectives:

At the end of the training, participants will be able to

  1. Describe different generations of programming languages
  2. Work with variables and appropriate data types
  3. Use various program flow control mechanisms
  4. Use various operators
  5. Use error handling features of the language
  6. Use and write Python modules
  7. Use and create Python packages
  8. Demonstrate beginner level familiarity with the Python Standard Library
  9. Use comments to document the code
  10. Follow coding styles
  11. Describe object oriented programming concepts
  12. Write object-oriented code using Python
  13. Use an IDE to write and debug Python programs
  14. Write beginner level multi-threaded applications
  15. Write beginner level client-server software
  16. Write beginner level GUI applications

Target Groups:

  1. Programming enthusiasts
  2. Python language enthusiasts
  3. School children - at least in the 9th year is generally expected. This training however is aimed at professional skills development.
  4. System administrators, network administrators
  5. Undergraduate and graduate students seeking programming exposure
  6. Professionals within software industry or other industries seeking to gain computer programming competencies


  1. General familiarity in using computers. No prior programming experience is expected.

Communication Language:

English. There is a Sinhala version of the same training too: "පරිගණක ක්‍රමලේඛනයට ආරම්භයක්"


Online. Participants login to our Online Training Management System and follow the training. No realtime conference sessions. Lessons are mostly in written document format. Participants are supervised based on their assignment submissions. Participants can ask questions and get answered via the forum facility of the Online Traning Management System. Individual feedback and guidance is provided where appropriate.

System Requirements:

A PC with the Internet connectivity, web browser, headphones or speakers. No microphone is needed.


First time batch of participants will experience a duration of 2-3 months. Subsequent joiners will be able to follow the training at their own pace. A full-time self paced paticipant may generally spend about 2-3 weeks to complete the training.

Training fee:

Rs. 6000/= (Six thousand) (LKR) per participant for the participation in the online training.

Questions and Answers:

  1. Will a participant be able to get a job after following this training program?
    If this is the only programming related education received by a participant, there is only a rare chance of getting a job after following this training program. To be accepted as a good programmer by potential employers, one needs to possess knowledge and skills in additional areas as well. This training program is a good starting point for those who seek to learn more.
  2. How can the payment be made?
    Training registrants will receive our bank account details via email to deposit the payment into our bank account. After the payment is done, a clear photo of the payment slip or a soft copy of the payment receipt should be emailed back to us for us to confirm the receipt of the payment.
  3. What is the payment refund policy?
    Payments are non-refundable. If a payed registrant would inform us via email his or her desire to cancel the registration before starting to follow the training program, we would let the payment be used by another registrant named by the payed registrant.


Kamal Wickramanayake (Profile)

Training Content:

  1. Getting Familiar
    • What is involved in writing computer programs?
    • Generations of programming languages
    • Interpreted and compiled programs
    • Comparison of some popular programming languages
  2. Variables and Data Types
    • Declaration, initialization and default values
    • Scope of variables
    • Type casting
    • Numeric data types
    • Text data types
    • Date and time data types
  3. Flow Control
    • Branching
    • Looping
    • Subroutines
  4. Operators
    • Assignment operator
    • Arithmetic operators
    • Boolean operators
    • Comparison operators
    • Bitwise and bitshift operators
    • Unary, binary and ternary operators
    • Operator precedence
  5. Modules
    • Writing a module
    • Standard library
  6. Working with Numbers
    • Floating point calculation errors
    • Rounding
  7. Working with Text
    • String operations
    • Conversion to numbers
    • Output formatting
    • Pattern matching with regular expressions
  8. Working with Dates and Times
  9. Code Documentation
  10. Coding Styles
  11. Working with an Integrated Development Environment (IDE)
    • Widely used features of an IDE
    • Project organization
    • Running code
    • Debugging
  12. Object Oriented Programming
    • Fundamentals of Object Oriented Programming
    • Classes Vs objects
    • Attributes and methods
    • Garbage collection
    • Shallow/deep copy
  13. Error Handling
    • What leads to errors?
    • What to do when errors occur?
    • Catching and handling errors
  14. Data Structures
    • Lists
    • Tuples
    • Sequences
    • Sets
    • Dictionaries
  15. Input/Output
    • Standard in, out and error
    • Reading and writing files
  16. Packaging
  17. Multi-threaded Applications
    • Writing a basic multi-threaded application
  18. Networking
    • Writing a basic server and a client
  19. Graphical User Interface (GUI) Applications
    • Writing a basic GUI application