Профессор Никишев В.К.
Современное программирование в образовательных
учреждениях
В настоящее время разработано
очень много различных языков программирования, некоторые из которых
используются как в высшей школе, так и в средних учебных заведениях. В школах
( лицеях, гимназиях) чаще всего обучают программированию на основе следующих
языков программирования QBasic, TPascal, а в некоторых школах начинают изучать
языки визуального программирования, например, VB, Delphi. В наиболее продвинутых
школах используют пакеты Visual Studio: VS 2008 ( VS 2010), в которых имеются
языки программирования VB.NET, VC#. Но какие бы языки программирования не использовались для обучения в
основном применяется структурный метод программирования. Если проанализировать существующие
стандарты обучения по программированию, то в них рекомендуются для обучения в
основном объектно-ориенированные методы программирования.
В связи с такой рекомендацией
у всех без исключения преподавателей возникает вопрос – как изучать. Можно
вначале изучить структурный подход для разработки программ, а потом объектно-
ориентированный метод. Но в таком случае обычно не хватает время или же после
изучения структурного подхода в памяти как базовый метод остается в лучшем
случае структурный метод разработки программ. Поэтому в данной статье
предлагается так называемый параллельный ( сравнительный ) метод обучения. Суть
метода состоит в том, что рассматриваются все методы последовательно на одном
примере: структурный консольный вариант и Windows-проект и затем объектно-ориетированый метод аналогично в
консольном варианте, а затем Windows-проект.
Консольный вариант используется только для обучения основам программирования,
поэтому после 2-3 проектов можно переходить сразу на Windows-проекты.
В качестве примера обучения основам программирования как структурным,
так и объектно-ориентированным методами программирования приводятся программы –
проекты для обучения языку программирования C#. Аналогичные программы имеются и для языка
программирования VB.NET. По данной методике в настоящее время написаны
лабораторные практикумы с теоретическими пояснениями для языков
программирования VC#.NET, VB.NET и проводятся занятия со студентами 1-го курса по
специальности муниципальное управление , а по языку программирования VB.NET будут
проводиться занятия для студентов по специальности математика и информатика.
Примеры программ.
Тема: Вычисление арифметических выражений.
Структурный метод программирования
Консольный вариант
Цель
занятия: Изучить структуру программ, основные операторы VC#.NET для вычислений.
Получить навыки работ по составлению простейших программ в консольном
варианте.
Условие
задачи: Составить программу для вычисления суммы С=А+В структурным методом.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str;
//
Титульный лист
Console.WriteLine("\n\n\n\n\n\n\n\n " +
" Программа
Калькулятор");
Console.WriteLine(" \n Выполнил Никишев
");
Console.ReadKey();
Console.ReadLine();
// Очистка экрана и переход на ввод данных
Console.Clear();
Console.WriteLine("Введите число а.");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("Вы ввели: " + a);
Console.WriteLine("Введите число
b.");
int b = int.Parse(Console.ReadLine());
Console.WriteLine("Вы ввели: " + b);
int c=a+b;
Console.WriteLine("результат с=:
" + c);
Console.WriteLine("\n нажми Enter для выхода из
программы");
str = Console.ReadLine();
Console.ReadKey();
}
}
Windows - проект
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// кнопка
начало
private void button1_Click(object sender, EventArgs e)
{
int a = Convert.ToInt16(textBox1.Text);
int b = Convert.ToInt16(textBox2.Text);
int c = a + b;
textBox3.Text = textBox3.Text + " c= " +
Convert.ToString(c) + "\n ";
}
// кнопка
выход
private void button2_Click(object sender, EventArgs e)
{
Close();
}
}
}
Объектно-ориентированный метод программирования
( Консольный вариант)
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
ConsoleApplication2
{
class Program
{
// новый
класс
class calcul
{
public int a;
public int b;
public int c;
// функция
ввода данных
public void input()
{
Console.WriteLine("Введите число а.");
int a = int.Parse(Console.ReadLine());
Console.WriteLine("Вы ввели: " + a);
Console.WriteLine("Введите число b.");
int b = int.Parse(Console.ReadLine());
Console.WriteLine("Вы ввели: " + b);
}
// функция
вывода данных
public void show()
{
int c = a + b;
Console.WriteLine("результат
с=: " + c);
}
}
// главная функция
static void Main(string[] args)
{
string
str;
// объект
calcul cl = new calcul();
// титульный лист
Console.WriteLine("\n\n\n\n\n\n\n\n " + "
Программа Калькулятор");
Console.WriteLine("
\n Выполнил Никишев ");
Console.ReadKey();
Console.ReadLine();
Console.Clear();
// вызов
функций через объект
cl.input();
cl.show();
Console.WriteLine("\n нажми Enter для выхода из программы");
str = Console.ReadLine();
Console.ReadKey();
} }}
Объектно-ориентированный метод программирования
Windows - проект
(
диалоговое окно Класс)
using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
WindowsFormsApplication3
{
class Class1
{
public int a;
public int b;
public int c;
// public Class1(int a, int b, int c)
//{
// this.a = a;
// this.b = b;
// }
//
Функция вычисления суммы чисел
public int sum (int a,int b)
{
c=a+b;
return c;
}
}
}
Программа для формы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//
объект
Class1 cal = new Class1();
//
кнопка вычислить
private void button1_Click(object sender, EventArgs e)
{
int a = Convert.ToInt16(textBox1.Text);
int b = Convert.ToInt16(textBox2.Text);
//int c = a + b;
cal.sum(a,b);
textBox3.Text = textBox3.Text + " c= " +
Convert.ToString(cal.c) + "\n ";
}
// кнопка выход
private void button2_Click(object sender, EventArgs e)
{
Close();
}
}
}
Программа с конструктором
Конструктор - имя метода-конструктора соответствует имени
класса .Данный метод называется конструктором, поскольку он помогает
«конструировать» или строить объект при первом его создании. Создание этого
метода в классах считается хорошей практикой.
using System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
namespace
WindowsFormsApplication3
{
class Class1
{
public int a;
public int b;
public int c;
public Class1(int a, int b)
{
//
два варианта построения
конструктора
//this.a = a;
//this.b = b;
a = 7;
b = 6;
}
public int sum (int a,int b)
{
c=a+b;
return c;
}
}
}
В последующих
проектах можно отказаться от консольного варианта, так как данный вариант
реализации под ДОС практически не используется в практике программирования.
Данный вариант можно использовать для обучения основам программирования и не
больше.
Навязывать методы и
формы проведения занятий по программированию нецелесообразно, а вот дать
рекомендации тем преподавателям, которые приступают к обучению или к изучению новых
языков программирования и методов по разработке программ можно особенно на
основе объектно-ориентированного метода. В качестве рекомендации предлагаю
использовать следующие советы молодым преподавателям в виде некоторых правил
1. Нельзя
навязывать всем без исключения самые модные или современные языки программирования.
Для каждой специальности практичнее использовать свои языки программирования.
Так для управленцев и прикладников можно посоветовать использовать язык
программирования С # как основной и C++, VB.NET в качестве вспомогательного языка
программирования. А для математиков и информатиков в качестве основного язык VB.NET, а в
качестве вспомогательного языка Pascal( PascalABC) - Delphi (
Рекомендации заведующему кафедрой должны дать предметный комиссии, а решение
принимает заведующий кафедрой для всех без исключения преподавателей. Новые
языки программирования, например, язык F, Pithon, Rube и т. д. можно вынести на факультатив
или дистанционные курсы обучения).
2. Нельзя давать
только структурный метод программирования или объектно-ориентированный метод
программирования. Так как один метод используется для разработки простых
программ, а другой для разработки сложных проектов, тем более если они
разрабатываются в коллективе программистов.
3. Наиболее
целесообразным подходом для изучения структурного и объектно-ориентированного
методов программирования – это параллельное обучение. Такой метод позволит
сэкономить время и понимания данных методов при наличии одинаковых примеров для
этих методов разработки программ.
4. Категорически
не пренебрегать методами алгоритмизации программ и проектов. Словесную форму
алгоритма лучше использовать до разработки программного кода, а для оформления
необходимо использовать блок-схему алгоритма. При составлении алгоритма
ориентируйтесь на стандарты построения алгоритмов, но
помните, что эти стандарты разрабатывались очень давно, когда
не было языков визуального программирования и тем более
объектно-ориентированного методов разработки программ.
( Профессионально программа должна разрабатываться 80% на
бумаге и 20 % на компьютере).
Пример составления блок-схемы
5. Перед тем
как приступать к обучению преподаватель должен иметь в наличии: учебные пособия
по данному языку программирования ( можно в электронном варианте ) и обязательно
лабораторный практикум по выполнению лабораторных работ по программированию на
конкретном языке программирования с примерами выполнения программ ( проектов)
по каждой теме и задания для программирования.
6. Каждый преподаватель
должен помнить, что все программы делаются для людей Поэтому все проекты должны
иметь комментарии для понимания смысла самой программы и обязательно данные о
программе: условие задачи и автор, когда сделана программа.
7. Перед тем
как давать задания необходимо акцентировать на наиболее трудных частей
программ и методов для их решения, обязательно рассмотреть алгоритм решения
задачи ( желательно у доски или с помощью презентации )
8. В конце
прохождения дисциплины давать всем студентам различные индивидуальные задания.
И только тем студентам, кто выполнит индивидуальную работу можно поставить
хорошую оценку.
9. Студентам,
которые проявили способности в разработке программ ( проектов) необходимо
давать задания повышенной трудности с ориентацией на научно-исследовательскую работу,
иначе они будут не развиваться , а наоборот все больше лениться.
10.
Необходимо помнить, что в настоящее время для
программирования используются пакеты программ VS 2013 ( VS 2015), которые « весят»
достаточно много по сравнению с такими программами, как ТР и даже VB, DELPHI. Поэтому надо организовать помощь в установке пакетов
программ на студенческих домашних компьютерах. Иначе студенты самостоятельно не
будут разрабатывать программы.
11. Учитывая современный уровень
подготовки студентов особенно первых курсов,
наверное,
более подходящим методом обучения является коллективный метод со-
ставления программ у доски или с помощью презентаций, но он менее успешен.
12. Если студенты изучают языки
программирования на основе метода ООП, то
преподаватели, которые обучают студентов на последующих курсах , например,
базы данных, информационные системы, методика преподавания информатики в
школе, численные методы, практика решения задач и вычислительная практика и
другие дисциплины и тем более разработка дипломных проектов должны использовать
дифференцированно именно объектно-ориентированный метод программирования,
иначе нет смысла изучать данный метод в дисциплине программирования.. А на
кафедре необходимо организовать факультативы по обучению как преподавателей,
так и учителей информатики.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.