Answers.Body: <p>Here is a possible solution.  The school can put up a Linux server, which supports a multiuser environment. In fact, it's the best environment in which to learn to program.  Ubuntu Server is free software.  A wireless network in a lab equipped with Chromebooks could be set. up for a relatively small expense.  A package manager can be used to obtain all of the compilers you need.</p>
  <p>Then students could shell in with an inexpensive Chromebook.  The server would hold their work and accounts are protected via login authentication.  While it's not ideal, it cuts the cost a lot.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-11T20:12:44.683Z
Answers.Text: If they could have computers as powerful as a chromebook, then there would be no need for the Linux server.
Answers.UserDisplayName: Solomon Slow
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-13T23:01:14.460Z
Answers.Text: Chromebooks are inexpensive but the cheap ones have limited memory.
Answers.UserDisplayName: ncmathsadist
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-10T23:36:21.127Z
Answers.LastActivityDate: 2021-12-10T23:36:21.127Z
Answers.UserDisplayName: ncmathsadist
Answers.Body: <p>I have two suggestions. The first is open to everyone, but the second depends on some local conditions and doesn't scale.</p>
  <p>First learn about <a href="https://en.wikipedia.org/wiki/Computational_thinking" rel="nofollow noreferrer">Computational Thinking</a> and especially <a href="https://www.csunplugged.org/" rel="nofollow noreferrer">CS Unplugged</a>. Quite a lot of educators have been thinking about this for a while, though mostly about teaching young students some principles with the expectation that they might be involved with programming at a later time.</p>
  <p>Second, though it requires a lot of work. I was once involved in social service projects (student days) in poor areas in Mexico. The group I was involved with had some success in exploiting local resources on behalf of poor people in the local area. Quite frankly we put a guilt trip on some of the rich folks around about doing more to advance conditions in their own community. We didn't do it quite like that sounds, but by giving example as well as talking to people with resources about the work we were doing they just, sort of naturally, decided to help. Our own &quot;sacrifice&quot; of working with the poor helped those who could help see that they, too, could do something.</p>
  <p>Perhaps someone local would donate some equipment when they upgrade. Perhaps local business would be willing to assist your students.</p>
  <p>Note, however, that this doesn't always work. One project I was part of was much less successful than another in this, but it was mostly due to local demographic features. Some places just don't have any resources beyond sweat.</p>
  <p>Along with local wealthy individuals, we also explored what governmental resources were available and taught the local poorer people how to effectively exploit them. Quite a lot was available if you only knew how to find it. So, we acted as a resource for finding resources.</p>
  <hr />
  <p>On Dec. 8, 2021, the New York Times published an article on how some people in the tech industry are starting to address this: <a href="https://www.nytimes.com/2021/12/08/us/politics/safety-net-apps-tech.html" rel="nofollow noreferrer">https://www.nytimes.com/2021/12/08/us/politics/safety-net-apps-tech.html</a> (may be paywalled)</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-10T15:27:45.120Z
Answers.LastActivityDate: 2021-12-10T20:25:06.093Z
Answers.LastEditDate: 2021-12-10T20:25:06.093Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>I am not experienced in this area so these may be naive ideas so take this with a grain of salt:</p>
  <ol>
  <li><p><strong>Study the limits of computers:</strong> &quot;What can computers do? what can't they do?&quot; We need citizens to understand the difference between what Hollywood movies say computers can do and what they actually can do (myths vs. reality).</p>
  </li>
  <li><p><strong>Teach algorithmic thinking:</strong> When I was little I helped my mother with the laundry.  I learned to match socks using various algorithms: linear search, grouping by size then searching within groups, etc.  I feel this experience helped me greatly when I was old enough to have access to a computer and needed to be able to describe tasks algorithmically.</p>
  </li>
  <li><p><strong>Teach that computers are literal:</strong> &quot;do what I say, not what I want&quot;.  An exercise like &quot;the exact instructions challenge&quot; can help younger students : <a href="https://www.youtube.com/watch?v=Ct-lOOUqmyY" rel="nofollow noreferrer">https://www.youtube.com/watch?v=Ct-lOOUqmyY</a></p>
  </li>
  <li><p><strong>Share the computers they do have:</strong> When I learned to code my school could only afford 1 computer for every 3 students in the class. The teacher created instructions based around this. We had to take turns, time how long we were using the computer, etc.</p>
  </li>
  <li><p><strong>Do it on the phone:</strong> Maybe there are programming assignments that can be done on their phones?  They might not have laptops but they might have Android or iPhones.</p>
  </li>
  </ol>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-12-10T15:06:08.543Z
Answers.LastActivityDate: 2021-12-10T15:06:08.543Z
Answers.UserDisplayName: TomOnTime
Body: <p>Many developing countries are having a large population that does not have access to computers/laptops. In such cases, what are the innovative ideas to teach and select students who like to study computer science and programming further?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-09T17:19:04.530Z
Comments.Text: I'm not going to make this an "answer" because I am not actually an educator, but I would search for ways in which students can _share_ work stations. When I was learning the basics, back in the 1970s, I did a lot of design and debugging on paper, and then I waited my turn to sit down in front of a keyboard for ten or fifteen minutes to type my program in, and give it a try.
Comments.UserDisplayName: Solomon Slow
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-09T18:00:00.673Z
Comments.Text: Also, consider having students work in pairs—have them "walk-through" each other's paper programs before taking them to the work station. But, IMO, you can't do it without _some_ computer hardware. Computer programming is an art form. You can't become skilled at it just by reading. You need to practice it. And finally, don't forget the printer: If each student can't have their own screen, then they're going to want a print-out to take back to their desk after they get their turn to try their luck at the keyboard.
Comments.UserDisplayName: Solomon Slow
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-09T19:41:55.870Z
Comments.Text: What equipment is typically available to them? And when?
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-09T19:43:12.350Z
Comments.Text: Are these kids normally in urban or rural environments?
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-10T06:23:17.623Z
Comments.Text: Thanks, @SolomonSlow, I understand that sharing resources could be one way. But that may be the next stage. I agree that the computer is like learning to cycle which can't be done without a bicycle. Though looking for some ways to reach out to kids who don't have access to computers also.
Comments.UserDisplayName: Vikas Jain
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-10T06:25:09.967Z
Comments.Text: @Buffy, Kids do not have access to computers. They can be urban and rural. I am currently looking for solutions for rural. Currently, they don't have access to laptops/computers. But they may have access to "Smartphones" of their parents.
Comments.UserDisplayName: Vikas Jain
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-10T09:38:07.013Z
Comments.Text: @GuyCoder I have Raspberry PI but did not know about its history. My target audience is a low-income family which does not yet have the resources to buy a laptop/computer. Even making them purchase a $50 items which additionally would need a monitor, mouse keyboard to work upon. For a medium-income group, especially for Tinkering, I am sure Respberry PI is a great idea. Thanks for your input 
  
  Based on this discussion, 1. I am seeing that some paper-pen puzzles that can set the foundation for computer programming 2. A mobile app might lead us to some solution.
Comments.UserDisplayName: Vikas Jain
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-12-10T14:24:28.707Z
Comments.Text: Is the goal for them to be able to write software professionally or to teach the fundamentals of computer science? Teaching how a Turing machine works would be possible with very minimal resources. https://teachinglondoncomputing.org/turingmachine/
Comments.UserDisplayName: logicaldiagram
Tags: <programming>
Title: How to teach programming to underprivilege kids who are not having access to laptop?
ThreadText: # How to teach programming to underprivilege kids who are not having access to laptop?
  
  (Asked by: username_0 on 2021-12-09)
  
  Many developing countries are having a large population that does not have access to computers/laptops. In such cases, what are the innovative ideas to teach and select students who like to study computer science and programming further?
  
  **Tags:** programming
  
  > **Comments:**
  > **username_1**: I'm not going to make this an "answer" because I am not actually an educator, but I would search for ways in which students can _share_ work stations. When I was learning the basics, back in the 1970s, I did a lot of design and debugging on paper, and then I waited my turn to sit down in front of a keyboard for ten or fifteen minutes to type my program in, and give it a try.  
  > **username_1**: Also, consider having students work in pairs—have them "walk-through" each other's paper programs before taking them to the work station. But, IMO, you can't do it without _some_ computer hardware. Computer programming is an art form. You can't become skilled at it just by reading. You need to practice it. And finally, don't forget the printer: If each student can't have their own screen, then they're going to want a print-out to take back to their desk after they get their turn to try their luck at the keyboard.  
  > **username_2**: What equipment is typically available to them? And when?  
  > **username_2**: Are these kids normally in urban or rural environments?  
  > **username_0**: Thanks, @username_1, I understand that sharing resources could be one way. But that may be the next stage. I agree that the computer is like learning to cycle which can't be done without a bicycle. Though looking for some ways to reach out to kids who don't have access to computers also.  
  > **username_0**: @username_2, Kids do not have access to computers. They can be urban and rural. I am currently looking for solutions for rural. Currently, they don't have access to laptops/computers. But they may have access to "Smartphones" of their parents.  
  > **username_0**: @GuyCoder I have Raspberry PI but did not know about its history. My target audience is a low-income family which does not yet have the resources to buy a laptop/computer. Even making them purchase a $50 items which additionally would need a monitor, mouse keyboard to work upon. For a medium-income group, especially for Tinkering, I am sure Respberry PI is a great idea. Thanks for your input   Based on this discussion, 1. I am seeing that some paper-pen puzzles that can set the foundation for computer programming 2. A mobile app might lead us to some solution.  
  > **username_3**: Is the goal for them to be able to write software professionally or to teach the fundamentals of computer science? Teaching how a Turing machine works would be possible with very minimal resources. https://teachinglondoncomputing.org/turingmachine/  
  
  ---
  
  ## 3 answers
  
  ### Answer by username_2 on 2021-12-10. Score: 2
  
  I have two suggestions. The first is open to everyone, but the second depends on some local conditions and doesn't scale.
  
  First learn about [Computational Thinking](https://en.wikipedia.org/wiki/Computational_thinking) and especially [CS Unplugged](https://www.csunplugged.org/). Quite a lot of educators have been thinking about this for a while, though mostly about teaching young students some principles with the expectation that they might be involved with programming at a later time.
  
  Second, though it requires a lot of work. I was once involved in social service projects (student days) in poor areas in Mexico. The group I was involved with had some success in exploiting local resources on behalf of poor people in the local area. Quite frankly we put a guilt trip on some of the rich folks around about doing more to advance conditions in their own community. We didn't do it quite like that sounds, but by giving example as well as talking to people with resources about the work we were doing they just, sort of naturally, decided to help. Our own "sacrifice" of working with the poor helped those who could help see that they, too, could do something.
  
  Perhaps someone local would donate some equipment when they upgrade. Perhaps local business would be willing to assist your students.
  
  Note, however, that this doesn't always work. One project I was part of was much less successful than another in this, but it was mostly due to local demographic features. Some places just don't have any resources beyond sweat.
  
  Along with local wealthy individuals, we also explored what governmental resources were available and taught the local poorer people how to effectively exploit them. Quite a lot was available if you only knew how to find it. So, we acted as a resource for finding resources.
  
  ---
  
  On Dec. 8, 2021, the New York Times published an article on how some people in the tech industry are starting to address this: <https://www.nytimes.com/2021/12/08/us/politics/safety-net-apps-tech.html> (may be paywalled)
  
  
  ---
  
  ### Answer by username_5 on 2021-12-10. Score: 2
  
  I am not experienced in this area so these may be naive ideas so take this with a grain of salt:
  
  1. **Study the limits of computers:** "What can computers do? what can't they do?" We need citizens to understand the difference between what Hollywood movies say computers can do and what they actually can do (myths vs. reality).
  2. **Teach algorithmic thinking:** When I was little I helped my mother with the laundry. I learned to match socks using various algorithms: linear search, grouping by size then searching within groups, etc. I feel this experience helped me greatly when I was old enough to have access to a computer and needed to be able to describe tasks algorithmically.
  3. **Teach that computers are literal:** "do what I say, not what I want". An exercise like "the exact instructions challenge" can help younger students : <https://www.youtube.com/watch?v=Ct-lOOUqmyY>
  4. **Share the computers they do have:** When I learned to code my school could only afford 1 computer for every 3 students in the class. The teacher created instructions based around this. We had to take turns, time how long we were using the computer, etc.
  5. **Do it on the phone:** Maybe there are programming assignments that can be done on their phones? They might not have laptops but they might have Android or iPhones.
  
  
  ---
  
  ### Answer by username_4 on 2021-12-10. Score: 0
  
  Here is a possible solution. The school can put up a Linux server, which supports a multiuser environment. In fact, it's the best environment in which to learn to program. Ubuntu Server is free software. A wireless network in a lab equipped with Chromebooks could be set. up for a relatively small expense. A package manager can be used to obtain all of the compilers you need.
  
  Then students could shell in with an inexpensive Chromebook. The server would hold their work and accounts are protected via login authentication. While it's not ideal, it cuts the cost a lot.
  
  > **Comments:**
  > **username_1**: If they could have computers as powerful as a chromebook, then there would be no need for the Linux server.  
  > **username_4**: Chromebooks are inexpensive but the cheap ones have limited memory.  
  
  ---
  
  