After successful completion of the course the student would be able to apply acquired computer programming skills to the solution of problems, specially engineering related problems. More specifically, the student would be able to: 
• Construct an algorithm for the solution of problems by means of program design tools, e.g., top-down design, flowcharts, pseudocode. 
• Analyze and/or debug the programming and logic of a given piece of flowchart, pseudocode or code through desktop checking and debugging tools. 
• Develop clear, robust and efficient code using conditional statements. 
• Develop clear, robust and efficient code using loop statements. 
• Construct codes by means of basic data structures, e.g., codes that involve creation and manipulation of arrays. 
• Design a solution to a complex problem through division into simpler problems and implement it using modular design, e.g. library functions, user-defined functions, modules, and/or subroutines.