M
M
Marat Akhmetshin2014-03-04 20:31:14
Project management
Marat Akhmetshin, 2014-03-04 20:31:14

What can be done with children in computer science lessons?

Hello! I am a computer science teacher at school and I have a question for you.
What projects could you suggest that could be made with children (schoolchildren in grades 7-9). If there are any resources, opinions, suggestions, questions, answers, then write or post do not hesitate.
I myself am confused and do not quite understand what it is like to create applications. What stages is divided into and how to distribute roles between students.
Any opinions of both experienced and inexperienced programmers, teachers and just sympathizers are accepted.

Answer the question

In order to leave comments, you need to log in

3 answer(s)
R
rumkin, 2014-03-04
@rumkin

Give a real and useful task - this is so lacking in modern education!
Break them into groups-firms, where they will have to distribute the roles themselves - they will learn self-organization and interest all students, and not just picky nerds.
Let them launch, say, an application in the Google WebStore with some useful functionality - they will learn how to analyze the market.
By dividing the roles into managers, analysts and marketers, you will keep the interest of all participants throughout the training. It is important to give simple individual tasks.
Firms must compete for some prize, title or title.
Make knowledge valuable, let them compete every week for your help in their project or for high marks.
The application implementation process is divided into the following parts:
— Choice of the problem to be solved.
- Formation of the strengths of the distinctive aspects of the application.
— Description of functionality (design documentation).
— Stages and terms of implementation.
- Programming and verification (testing) of each stage.
- Checking the health of the entire application.
- Publication and launch of the project.
The task may be to implement an alarm clock or a calculator in html + js - everyone has browsers. If all firms implement one type of project, then this will also teach them competition, industrial espionage and so on. Let them vote at the end to determine the winners.

R
Rafael Osipov, 2015-02-01
@Rafael

In my opinion, it is necessary to proceed from the initial training of the guys. What they already know and can do. Based on the levels of training, form groups and set tasks for them.
The key aspect is that the task should be interesting.
Again, in my opinion, the choice of programming language by the guys is not fundamental. It is important that the task was solved correctly and that interest in further learning and solving more complex problems did not disappear.
Practically learning any programming language with a passion for this science is not difficult. And, the task of the teacher, in my opinion, is to maintain and develop this interest. Let them write at least in BASIC, if it causes a keen interest in them. The presence and maintenance of interest is much more important than the "correctness" of the chosen language. Tell about what programming languages ​​exist, how they differ, how and where they are used. Let them try and choose for themselves.
So, if simplified, then the creation of an application is divided into the following stages:
Beginners often design an application from the bottom up. If they design at all. That is, they start building a house without a general plan, but they want to make a porch, they start building it, then they start building the first floor, but it doesn’t really fit with the porch, they need to redo the porch, then redo the first floor again, and so on with all stops.
This leads them to dig into problems and eventually fail and lose interest in the project.
It is necessary to explain to them that the design is done from the top down. That is, we go from the general to the particular. First we design a house (a box), then a floor plan, then an apartment plan, then rooms, and so on. Until we descend to a level below which there is no point in descending.
In this case, there is no risk of missing anything important, and there is always a common vision of the project, what parts it consists of, and how the work is progressing.
The commissioning can be organized so that the guys accept each other's programs. It can be useful to see how a person unfamiliar with the program works with it. At the same time, they will be able to understand the importance of creating understandable interfaces and creating understandable descriptions for their products.
What tasks to give depends on the level of training. You can create a certain set of tasks, and invite them to choose the task that they would be interested in doing.
It could be games. For beginners - let there be logic games with console output. For example, the game Nim . For the more experienced, you can give more difficult games .
According to my observations, abstract matters are perceived by children without much interest, but if something "cool" can be done in the program, it is interesting, and they will do it.
In this regard, the various graphical and audio capabilities of the chosen programming language are useful. Let them implement tasks first with work in the text console, then rework them to work with graphics.
When the "bait" is swallowed, and the guys for the most part are well versed in the subject and tools, it will be possible to slowly move away from the game environment and move on to other, non-game tasks.
Tell about the various directions in development, about the tasks and how they are solved.
And let the guys choose which direction they are more interested in.
Someone will be interested in writing toys, someone may be interested in writing programs to automate any activity, someone will be interested in genetic algorithms and artificial intelligence.
There are enough materials on the Internet now, although most of them are in English.
Good luck in this difficult and important business :)

D
Dmitry Makarov, 2015-05-18
@DmitryITWorksMakarov

It's a very complicated thing for you =)
As for me, it was computer science at school that determined my current profession.
I think the most important thing is not to limit students to any one area.
The very first example is applications for desktop computers. Here, probably, the easiest way to motivate the guys is to create games.
Next: programming for mobile platforms. Again, games. Some useful applications, such as diaries, cheat sheets, note editor.
Next: programming for microcontrollers based on all sorts of raspberries / arduino. Robots and home automation. But here it is necessary to cooperate with the physicist and with the Trudovik. What a good thing!
Next: web-technologies. More or less complex web applications with advanced client and server parts.
Further: it is interesting to combine it all. Network games. Mobile applications that can work with the network. Robots controlled via the Internet, etc.
More. I think. It is very important to first let them boil in their own juice. Give to fill cones. Deal with the complexity of the tasks. Let them realize the iterative nature of the development process. Let there be a need for version control systems. Let some kind of bicycles / rakes / patterns arise, and then tell how it is solved by professionals.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question