Ruby/C3/Object-Oriented-Concept-in-Ruby/Kannada

From Script | Spoken-Tutorial
Revision as of 21:58, 20 January 2016 by Sandhya.np14 (Talk | contribs)

Jump to: navigation, search
Time Narration
00:01 Ruby ಯಲ್ಲಿ Object Oriented Concept (ಆಬ್ಜೆಕ್ಟ್ ಓರಿಯಂಟೆಡ್ ಕಾನ್ಸೆಪ್ಟ್) ಎಂಬ 'ಸ್ಪೋಕನ್ ಟ್ಯುಟೋರಿಯಲ್' ಗೆ ನಿಮಗೆ ಸ್ವಾಗತ.
00:06 ಈ ಟ್ಯುಟೋರಿಯಲ್ ನಲ್ಲಿ ನಾವು:
00:08 * 'ಕ್ಲಾಸ್'ಗಳನ್ನು ಬಳಸುವುದು
00:09 * 'ಆಬ್ಜೆಕ್ಟ್' ಗಳನ್ನು ಕ್ರಿಯೇಟ್ ಮಾಡುವುದು
00:10 * 'Ruby'ಯಲ್ಲಿ 'ಮೆಥಡ್'ಗಳನ್ನು ಡಿಫೈನ್ ಮಾಡುವ ವಿಭಿನ್ನ ರೀತಿಗಳು ಇವುಗಳನ್ನು ಕಲಿಯುವೆವು.
00:13 ಇಲ್ಲಿ ನಾವು:
00:14 * Ubuntu ಆವೃತ್ತಿ 12.04
00:16 * Ruby 1.9.3 ಇವುಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದೇವೆ.
00:19 ಈ ಟ್ಯುಟೋರಿಯಲ್ ಅನ್ನು ಅನುಸರಿಸಲು, 'Linux' ಕಮಾಂಡ್ ಗಳು, ‘ಟರ್ಮಿನಲ್’ ಮತ್ತು 'ಟೆಕ್ಸ್ಟ್-ಎಡಿಟರ್' ಗಳನ್ನು ನೀವು ತಿಳಿದಿರಬೇಕು.
00:24 ಇಲ್ಲದಿದ್ದರೆ, ಸಂಬಂಧಿತ ಟ್ಯುಟೋರಿಯಲ್ ಗಳಿಗಾಗಿ ದಯವಿಟ್ಟು ನಮ್ಮ ವೆಬ್ಸೈಟ್ ಗೆ ಭೆಟ್ಟಿಕೊಡಿ.
00:28 ಪ್ರಾರಂಭಿಸುವ ಮುನ್ನ, “ttt” ಎಂಬ ಡಿರೆಕ್ಟರೀಯನ್ನು ಈಮೊದಲು ನಾವು ಕ್ರಿಯೇಟ್ ಮಾಡಿದ್ದೆವು ಎಂಬುದನ್ನು ನೆನಪಿಸಿಕೊಳ್ಳಿ.
00:33 ನಾವು ಆ ಡಿರೆಕ್ಟರೀಗೆ,
00:35 'ruby hyphen tutorial' ಮತ್ತು 'classes' ಡಿರೆಕ್ಟರೀಗಳಿಗೆ ಹೋಗೋಣ.
00:41 'Ruby' (ರೂಬಿ), ಒಂದು ಆಬ್ಜೆಕ್ಟ್ ಓರಿಯಂಟೆಡ್ ಭಾಷೆಯಾಗಿದೆ.
00:44 'Ruby'ಯಲ್ಲಿ ವ್ಯಾಲ್ಯೂ, ಸ್ಟ್ರಿಂಗ್ ಅಥವಾ ಸಂಖ್ಯೆ ಎಲ್ಲವೂ ಆಬ್ಜೆಕ್ಟ್ ಗಳಾಗಿವೆ.
00:49 'ಕ್ಲಾಸ್' (class), ಸಂಬಂಧಿತ ಡೇಟಾ ಮತ್ತು ಫಂಕ್ಷನ್ ಗಳ ಒಂದು ಸಂಗ್ರಹವಾಗಿದೆ.
00:53 ಇದು ಮಾಹಿತಿಯನ್ನು ವ್ಯವಸ್ಠಿತವಾಗಿ ಇಡಲು ಸಹಾಯಮಾಡುತ್ತದೆ.
00:56 ಆಬ್ಜೆಕ್ಟ್, 'ಕ್ಲಾಸ್'ನ ಒಂದು ನಿದರ್ಶನವಾಗಿದೆ.
01:00 'ಕ್ಲಾಸ್'ನ ವ್ಯಾಖ್ಯಾನವು (definition), 'class' ಎಂಬ ಕೀವರ್ಡ್ ನಿಂದ ಆರಂಭವಾಗುತ್ತದೆ.
01:05 ಇದರ ನಂತರ 'ಕ್ಲಾಸ್'ನ ಹೆಸರು (class name) ಇರುತ್ತದೆ.
01:08 ಇದು “end” ನಿಂದ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ.
01:11 ನಾವು class ನ ಒಂದು ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ.
01:14 class Product
01:16 ruby code
01:17 end
01:20 'ಕ್ಲಾಸ್'ನ ಹೆಸರು ದೊಡ್ಡಕ್ಷರದಿಂದಲೇ ಆರಂಭವಾಗಬೇಕು.
01:24 ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಶಬ್ದಗಳನ್ನು ಹೊಂದಿರುವ ಹೆಸರುಗಳು ’ಕ್ಯಾಮಲ್ ಕೇಸ್’ (camelcase) ನಲ್ಲಿ ಇರಬೇಕು.
01:28 ಉದಾಹರಣೆಗೆ,
01:30 'UserInformation'
01:32 'ProductInformation'
01:34 ಅನಂತರದ ಫೈಲ್ ನ ಹೆಸರುಗಳು, ಶಬ್ದಗಳನ್ನು ಬೇರ್ಪಡಿಸಲು 'ಅಂಡರ್ಸ್ಕೋರ್'ಅನ್ನು ಹೊಂದಿರುವುವು:
01:37 'user underscore information' (ಯೂಸರ್ ಅಂಡರ್ಸ್ಕೋರ್ ಇನ್ಫರ್ಮೇಶನ್)
01:40 'product underscore information' (ಪ್ರೊಡಕ್ಟ್ ಅಂಡರ್ಸ್ಕೋರ್ ಇನ್ಫರ್ಮೇಶನ್)
01:45 ಪ್ರಾಥಮಿಕ ಹಂತದ 'Ruby tutorials'ನಲ್ಲಿ ತೋರಿಸಿದಂತೆ 'gedit'ನಲ್ಲಿ ಒಂದು ಹೊಸ ಫೈಲನ್ನು ಕ್ರಿಯೇಟ್ ಮಾಡಿ.
01:48 ಅದನ್ನು "class_definition.rb" ಎಂದು ಹೆಸರಿಸಿ.
01:52 ನನ್ನ ಹತ್ತಿರ 'classes' (ಕ್ಲಾಸಸ್)ಅನ್ನು ಜಾರಿಗೊಳಿಸುವ ಒಂದು ಉದಾಹರಣೆಯಿದೆ.
01:57 ನಾವು ಇದರಲ್ಲಿ ಮುಂದುವರಿಯುತ್ತಿದ್ದಂತೆ, ನೀವು ಟ್ಯುಟೋರಿಯಲ್ ಅನ್ನು ನಿಲ್ಲಿಸಿ ಕೋಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಬಹುದು.
02:02 ಈ ಉದಾಹರಣೆಯಲ್ಲಿ, ನಾನು 'Order' ಎಂಬ ಹೆಸರಿನ ಒಂದು 'class' (ಕ್ಲಾಸ್)ಅನ್ನು ಡಿಫೈನ್ ಮಾಡಿದ್ದೇನೆ.
02:05 ಈಗ, ನಾವು ಕೆಲವು ವೇರಿಯೇಬಲ್ ಗಳನ್ನು ಸೇರಿಸಿ ಕ್ಲಾಸ್ ಅನ್ನು ಉಪಯುಕ್ತಗೊಳಿಸೋಣ.
02:11 ಆಮೇಲೆ ನಾನು “myinstance” ಎಂಬ ಒಂದು ಇನ್ಸ್ಟನ್ಸ್ ವೇರಿಯೇಬಲ್ ಅನ್ನು ಡಿಫೈನ್ ಮಾಡಿದ್ದೇನೆ
02:15 ಹಾಗೂ ಅದಕ್ಕೆ ಒಂದು ವ್ಯಾಲ್ಯೂಅನ್ನು ಅಸೈನ್ ಮಾಡಿದ್ದೇನೆ.
02:18 ನಾನು “myclassvar” ಎಂಬ ಒಂದು ಕ್ಲಾಸ್-ವೇರಿಯೇಬಲ್ ಅನ್ನು ಸಹ ಡಿಫೈನ್ ಮಾಡಿದ್ದೇನೆ
02:21 ಹಾಗೂ ಅದಕ್ಕೆ ಒಂದು ವ್ಯಾಲ್ಯೂಅನ್ನು ಅಸೈನ್ ಮಾಡಿದ್ದೇನೆ.
02:24 ಈಗ, ಈ 'class'ಅನ್ನು ಉಪಯೋಗಿಸುವ ಸ್ವಲ್ಪ ಕೋಡ್ ಅನ್ನು ನಾವು ಸೇರಿಸೋಣ.
02:30 ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ: puts Order dot instance underscore variables
02:36 ಈ ಸಾಲಿನ ಮೊದಲು, 'puts' ಕೆಲವು ಅಕ್ಷರಗಳು ಹೊಸ ಪಂಕ್ತಿಗಾಗಿ ಸ್ಲ್ಯಾಶ್ 'n' ಅನ್ನು ಸೇರಿಸಿ.
02:43 ಇದನ್ನು ಕಾಪಿ ಮತ್ತು ಪೇಸ್ಟ್ ಮಾಡೋಣ ಮತ್ತು ನಾವು ಸೇರಿಸಿದ ಪಂಕ್ತಿಯ ಕೆಳಗೆ ಇದನ್ನು ಸೇರಿಸೋಣ ಹಾಗೂ ಸೇವ್ ಮಾಡೋಣ.
02:51 ಈಗ, ಈ ಕೋಡ್ ಅನ್ನು ನಾವು ಎಕ್ಸೀಕ್ಯೂಟ್ ಮಾಡೋಣ.
02:53 ಟರ್ಮಿನಲ್ ಗೆ ಬದಲಾಯಿಸಿ ಮತ್ತು ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ:
02:56 ruby space class underscore definition dot rb
03:02 ಹಾಗೂ ಔಟ್ಪುಟ್ ಅನ್ನು ನೋಡಿ.
03:05 ನೀವು ಡಿಫೈನ್ ಮಾಡಿದ 'ಇನ್ಸ್ಟನ್ಸ್ ವೇರಿಯೇಬಲ್'ಅನ್ನು ನೀವು ನೋಡುವಿರಿ.
03:09 ಈಗ, ಹೀಗೆ ಟೈಪ್ ಮಾಡೋಣ: puts Order dot class underscore variables
03:15 ಪಂಕ್ತಿಯ ಕೆಳಗೆ ಎಲ್ಲೆ ಗುರುತನ್ನು ಕಾಪಿ ಮತ್ತು ಪೇಸ್ಟ್ ಮಾಡಿ ಅದನ್ನು ಸೇವ್ ಮಾಡೋಣ.
03:21 ಈಗ, ಟರ್ಮಿನಲ್ ಗೆ ಬದಲಾಯಿಸಿ ಫೈಲನ್ನು ಈ ಮೊದಲು ಮಾಡಿದಂತೆ ಎಕ್ಸೀಕ್ಯೂಟ್ ಮಾಡೋಣ.
03:26 ನೀವು ಡಿಫೈನ್ ಮಾಡಿದ 'ಕ್ಲಾಸ್ ವೇರಿಯೇಬಲ್' ಸಹ ಕಾಣಿಸಿಕೊಳ್ಳುವುದನ್ನು ನೀವು ನೋಡುವಿರಿ.
03:32 ಈಗ ನಿಮಗೆ ನಿಮ್ಮ ಸ್ವಂತದ 'ಕ್ಲಾಸ್'ಅನ್ನು ಬರೆಯಲು ಸಾಧ್ಯವಾಗಬೇಕು.
03:35 ಇನ್ನುಮುಂದೆ, 'ಆಬ್ಜೆಕ್ಟ್' ಎಂದರೇನು ಎಂಬುದನ್ನು ನಾವು ನೋಡೋಣ.
03:40 'ಆಬ್ಜೆಕ್ಟ್', 'ಕ್ಲಾಸ್'ನ ಒಂದು ಇನ್ಸ್ಟನ್ಸ್ ಆಗಿದೆ.
03:43 ಎಂದರೆ, 'ಆಬ್ಜೆಕ್ಟ್'ಅನ್ನು ಕ್ಲಾಸ್ ನಿಂದ ಕ್ರಿಯೇಟ್ ಮಾಡಲಾಗುತ್ತದೆ.
03:46 'ಆಬ್ಜೆಕ್ಟ್', ಕ್ಲಾಸ್ ನಲ್ಲಿ ಡಿಫೈನ್ ಮಾಡಿದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮತ್ತು ಮೆಥಡ್ ಗಳನ್ನು ಹೊಂದಿರುವುದು.
03:52 ನೀವು 'ಆಬ್ಜೆಕ್ಟ್'ಅನ್ನು ಹೇಗೆ ಡಿಕ್ಲೇರ್ ಮಾಡುತ್ತೀರಿ?
03:54 "new" ಎಂಬ ಕೀವರ್ಡ್ ಅನ್ನು ಬಳಸಿ, ಒಂದು 'ಕ್ಲಾಸ್'ನ 'ಆಬ್ಜೆಕ್ಟ್'ಅನ್ನು ನಾವು ಡಿಕ್ಲೇರ್ ಮಾಡುತ್ತೇವೆ.
03:58 ಇಲ್ಲಿ, ನಾವು "Product" ಎಂಬ ಕ್ಲಾಸ್ ನ ಒಂದು 'ಆಬ್ಜೆಕ್ಟ್'ಅನ್ನು ಡಿಕ್ಲೇರ್ ಮಾಡುತ್ತಿದ್ದೇವೆ.
04:02 ಇಲ್ಲಿ, ಒಂದು 'ಆಬ್ಜೆಕ್ಟ್'ಅನ್ನು ಕ್ರಿಯೇಟ್ ಮಾಡಲಾಗುತ್ತದೆ.
04:05 'product = Product.new'
04:09 ಈ ಪ್ರಕ್ರಿಯೆಯನ್ನು 'ಆಬ್ಜೆಕ್ಟ್ ಇನಿಶಿಯಲೈಜೇಶನ್' (initialization) ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ.
04:12 ಈ 'ಆಬ್ಜೆಕ್ಟ್', 'Product' ಎಂಬ ಟೈಪ್ ನದ್ದು ಆಗಿದೆ.
04:16 ಈಗ, “initialize” ಮೆಥಡ್ ಎಂದರೆ ಏನು ಎಂಬುದನ್ನು ನಾವು ನೋಡೋಣ.
04:20 'ಆಬ್ಜೆಕ್ಟ್'ಅನ್ನು ಕ್ರಿಯೇಟ್ ಮಾಡುವ ಸಮಯದಲ್ಲಿ, 'ಇನಿಶಿಯಲೈಸ್' ಎಂಬ 'ಮೆಥಡ್'ಅನ್ನು ಕಾಲ್ ಮಾಡಲಾಗುವುದು.
04:26 ಒಂದು 'ಆಬ್ಜೆಕ್ಟ್'ನ ಮೇಲೆ "new" ಅನ್ನು ಕಾಲ್ ಮಾಡಿದ ಮೇಲೆ, ನಾವು 'ಇನಿಶಿಯಲೈಸ್ ಮೆಥಡ್'ಅನ್ನು ಇನ್ವೋಕ್ ಮಾಡುತ್ತೇವೆ.
04:31 'initialize (ಇನಿಶಿಯಲೈಸ್) ಮೆಥಡ್', ಪ್ಯಾರಾಮೀಟರ್ ಗಳ ಲಿಸ್ಟ್ ಅನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು.
04:37 ಇನ್ನಿತರ 'ರೂಬಿ' ಮೆಥಡ್ ಗಳಂತೆ, ಇದು “def” ಕೀವರ್ಡ್ ನಿಂದ ಆರಂಭವಾಗುತ್ತದೆ.
04:43 ನಾವು ಒಂದು ಉದಾಹರಣೆಯನ್ನು ನೋಡೋಣ.
04:46 ಪ್ರಾಥಮಿಕ ಹಂತದ 'Ruby Tutorials'ನಲ್ಲಿ ತೋರಿಸಿದಂತೆ 'gedit'ನಲ್ಲಿ ಒಂದು ಹೊಸ ಫೈಲನ್ನು ಕ್ರಿಯೇಟ್ ಮಾಡಿ.
04:50 ಮತ್ತು ಅದನ್ನು object underscore initialize dot rb ಎಂದು ಹೆಸರಿಸಿ.
04:55 ನನ್ನ ಹತ್ತಿರ 'ಆಬ್ಜೆಕ್ಟ್ ಇನಿಶಿಯಲೈಜೇಶನ್' ಕೋಡ್ ನ ಒಂದು ಉದಾಹರಣೆಯಿದೆ.
05:00 ನಾವು ಇದರಲ್ಲಿ ಮುಂದುವರಿಯುತ್ತಿದ್ದಂತೆ, ನೀವು ಟ್ಯುಟೋರಿಯಲ್ ಅನ್ನು ನಿಲ್ಲಿಸಿ ಕೋಡ್ ಅನ್ನು ಟೈಪ್ ಮಾಡಬಹುದು.
05:04 ಇಲ್ಲಿ, ನಾನು “Order” ಎಂಬ ಒಂದು ಕ್ಲಾಸ್ ಅನ್ನು ಡಿಫೈನ್ ಮಾಡಿದ್ದೇನೆ.
05:08 ನಂತರ, ನಾನು 'ಆರ್ಗ್ಯೂಮೆಂಟ್'ಗಳನ್ನು ಹೊಂದಿರದ 'initialize' ಮೆಥಡ್ ಅನ್ನು ಡಿಫೈನ್ ಮಾಡಿದ್ದೇನೆ.
05:13 “I have created an object” ಎಂಬ ಮೆಸೇಜನ್ನು ತೋರಿಸಲು, ನಾನು ಒಂದು 'puts' ಮೆಥಡ್ ಅನ್ನು ಡಿಫೈನ್ ಮಾಡಿದ್ದೇನೆ.
05:20 ನಂತರ, ನಾನು 'Order dot new' ಅನ್ನು ಡಿಫೈನ್ ಮಾಡಿದ್ದೇನೆ.
05:24 ಇದು, 'initialize' ಮೆಥಡ್ ಅನ್ನು ಇನ್ವೋಕ್ ಮಾಡುತ್ತದೆ.
05:27 ಟರ್ಮಿನಲ್ ಗೆ ಬದಲಾಯಿಸಿ ಮತ್ತು ಹೀಗೆ ಟೈಪ್ ಮಾಡಿ:
05:31 'ruby space object underscore initialize dot rb'
05:36 ಹಾಗೂ ಔಟ್ಪುಟ್ ಅನ್ನು ನೋಡಿ.
05:39 ನೀವು “I have created an object” ಎಂಬ ಮೆಸೇಜನ್ನು ನೋಡುವಿರಿ.
05:43 ಈಗ, ನಾವು 'gedit'ಗೆ ಹಿಂದಿರುಗೋಣ. ಮತ್ತು ಮೆಥಡ್ ಗೆ ಒಂದು 'ಆರ್ಗ್ಯೂಮೆಂಟ್'ಅನ್ನು ಸೇರಿಸೋಣ.
05:48 ನಾವು 'puts'ಅನ್ನು ಬದಲಾಯಿಸೋಣ.
05:51 ಅದು, ಪಾಸ್ ಮಾಡಿದ 'ಆರ್ಗ್ಯೂಮೆಂಟ್'ನ ವ್ಯಾಲ್ಯೂಅನ್ನು ತೋರಿಸಬೇಕು.
05:55 ನಂತರ, ಹೀಗೆ ಟೈಪ್ ಮಾಡೋಣ:
05:56 'Order dot new(“I have created an object”)'
06:04 ಇಲ್ಲಿ, ನಾವು "new" ಎಂಬ ಮೆಥಡ್ ಗೆ ಒಂದು 'ಆರ್ಗ್ಯೂಮೆಂಟ್'ಅನ್ನು ಕೊಟ್ಟಿದ್ದೇವೆ.
06:08 This argument gets passed on to the initialize method.
06:13 Switch to the terminal and type:
06:16 ruby space object underscore initialize dot rb
06:20 and see the output.
06:22 You will see the message “I have created an object” printed out.
06:29 Now, you would have understood what object initialization means.
06:33 Recall that in Ruby, methods are the functions that a class performs.
06:39 Each method in a class is defined within the “def” and “end” block.
06:45 A multiword method-name is separated with an underscore.
06:48 Some of the characters that can be appended to a method name are:
06:54 '?' (question-mark)
06:56 '=' (equal to).
06:58 Each of the characters add some meaning to the method.
07:02 Let us look at some examples.
07:05 Create a new file in gedit as shown in the basic level Ruby tutorials.
07:09 And name it: class underscore methods dot rb.
07:14 I have a working example of class methods code.
07:17 You can pause the tutorial and type the code as we go through it.
07:21 Here, I have defined a class named “Animal”.
07:23 Then I have two methods- “breathe” and “walk”.
07:28 They are both defined with the “def” and “end” keywords.
07:32 I have then initialized the object Animal.
07:36 I have assigned it to a variable called “animal” with lowercase “a”.
07:40 Then I have invoked the methods “breathe” and “walk” consecutively.
07:48 Now, let us execute the program.
07:51 Switch to the terminal and type:
07:53 ruby space class underscore methods dot rb
07:58 and see the output.
08:00 You will notice the lines:
08:02 “ I breathe”
08:03 “I walk”
08:04 printed out.
08:05 This is because you have invoked the two methods “breathe” and “walk”.
08:10 A “puts” statement defined within these methods gives the results you see.
08:16 Next, let us look at how to create methods with a trailing question mark.
08:21 Create a new file in gedit as shown in the basic level Ruby tutorials.
08:25 And name it class underscore methods underscore with underscore trailing underscore characters dot rb.
08:35 I have a working example of class methods with question mark code.
08:40 You can pause the tutorial and type the code as we go through it.
08:45 Here, I have taken the same class as before, as an example.
08:48 Here, the "breathe" method has a trailing question mark (?).
08:52 Such methods are generally used to return boolean values.
08:55 This is based on the method naming convention of Ruby.
09:00 The method gets invoked by declaring animal dot breathe question-mark.
09:06 Switch to the terminal and type:
09:09 ruby space class underscore methods underscore with underscore trailing underscore characters dot rb and see the output.
09:22 You will notice the output as : “true”
09:26 Next, let us define another method called “walk”.
09:30 Let us place an equal-to sign “=(value)” beside it.
09:36 Let us invoke this method by calling animal dot walk.
09:41 Then let us execute this method.
09:44 Switch to the terminal and type:
09:45 ruby class underscore methods underscore with underscore trailing underscore characters dot rb
09:52 and see the output.
09:56 It will give an “undefined method” error.
09:59 This is because the equal to sign has another meaning.
10:03 It is used to assign a value to a method.
10:08 So, let us invoke the method a little differently this time.
10:13 Type: puts animal dot walk equal to “ hops” .
10:17 Now, let us give it another try.
10:20 Switch to the terminal and run the command like before and see the output.
10:27 You will notice that the word “hops” get printed.
10:30 This demonstrates that the equal to sign next to a method means assignment.
10:36 Now you should be able to write your own methods.
10:42 In this tutorial, we have learnt-
10:44 * How to declare classes
10:46 * How to create objects of a class
10:48 * Different ways of defining methods in Ruby.
10:52 As an assignment:
10:54 Define a class Product
10:56 Define methods that you can use to get values of “myvar” and set values for “myvar”.
11:01 To set values, define the method using “=” sign.
11:05 Instantiate the object of the class and set and get values using the above 2 methods.
11:12 Watch the video available at the following link.
11:14 It summarizes the Spoken Tutorial project.
11:18 If you do not have good bandwidth, you can download and watch it.
11:22 The Spoken Tutorial project team:
11:24 * Conducts workshops using spoken tutorials.
11:27 * Gives certificates to those who pass an online test.
11:30 For more details, please write to:

contact@spoken-tutorial.org

11:36 Spoken Tutorial project is a part of the Talk to a Teacher project.
11:39 It is supported by the National Mission on Education through ICT, MHRD, Government of India.
11:46 More information on this mission is available at spoken hyphen tutorial dot org slash NMEICT hyphen Intro.
11:56 This is Anjana Nair, signing off. Thank you.

Contributors and Content Editors

NaveenBhat, Sandhya.np14