Working program of the programming circle. Program of the “Programming and Graphics” club. Required mathematical and other knowledge

Club "Programming Fundamentals"
Head: computer science teacher

Davydova Ntalya Nikolaevna

Program implementation period: 2 years
Explanatory note

“It is argued that the directed and expanding impact of computer science, microelectronics and computer technology on education, science and technological culture and communications represents one of the most important interdisciplinary problems and challenges of our time...”

From the resolution of the 25th session of the UNESCO General Conference:

New information technologies are becoming the main driving force of development.

“...Their correct and incorrect use seriously affects competition, the economy, industry, the cost and quality of education, defense capability, and the ability to innovate in both economic and social spheres.”
Purpose This course is to study the basics of programming, i.e. basics of constructing algorithms.

Study objectives:

Increasing student interest in this topic and achieving the desired level of mastery of material on the topic “Programming Fundamentals”

Familiarity with the methods of structured and object-oriented programming as the most common and effective methods for developing software products;

Training in the development of algorithms based on a structural and object-oriented approach;

Consolidating algorithmization and programming skills by studying the programming language BASIC, Visual Basic; (Gambas)

Familiarity with basic data structures and typical methods for processing these structures

The program of the course "Fundamentals of Programming" involves a significant expansion of the topics of the material studied in comparison with a general education school, an increase in the level of education through the study of the basic principles of programming, a larger number of programming languages ​​compared to a general education school, and the practical use of the acquired knowledge to deepen basic school education.

The implementation of the program makes it possible to prepare a qualified PC user and ensures the social adaptation of students who do not have the opportunity to master modern computer technologies as part of the educational process at school.

The course "Programming Fundamentals" is designed for 144 hours for each programming language of instruction and involves the use of personal computers to solve practical problems, the formation of certain skills and abilities in working with the most common types of application software at the programmer level.

The course involves mastering and developing programmer skills in the currently most commonly used programming environments, creating web pages, and using ready-made software products that facilitate and automate accounting in various applied, practical areas of human activity.

In the process of studying the course, students become familiar with the basics and capabilities of a PC for solving applied problems, the use of a PC for analyzing situations in school, in the field of production, accounting operations on a PC, and computer office work.

Association with a constantly changing composition of listeners. The course is mainly attended by students in grades 6-11. Classes are held for two hours once a week.

Current monitoring of material assimilation should be carried out through oral/written questioning and practical assignments. Periodically, knowledge and skills on the topics covered are tested with computer test tasks. Participation in the CIT intellectual marathon.

Upon completion of this educational program, students should be able to create simple programs. Therefore, to assess the achievement of mandatory training, it is advisable to use a dichotomous (binary, alternative) scale such as pass or fail, etc. Analysis of children's works, which determines the creative growth of the student. Pedagogical observation during ongoing control. Analysis of the student’s motive for leaving and joining the circle. Methods for recording and summarizing children's practical achievements (participation in competitions is recorded in a journal).

The results for the best work on each topic are summed up. Participation in all kinds of competitions (district, regional and international).

During educational and practical classes, students' attention is drawn to compliance with labor safety, fire safety, industrial sanitation and personal hygiene requirements.

The specified goal and the above tasks can be achieved with a duration of study of 2 years (72 hours per year with 2 hours of classes). If desired, students can study one of the programming languages ​​or continue their studies after a 2-year course.
Technical training aids (minimal)

1. Computer class with computers of at least Pentium class

3. Software:

Operating system Windows (version 95 or higher) or Linux;

Programming language translators

Internet browsers;

Package for creating presentations;

Introduction. Safety precautions. The role of computers in modern society High-level languages
Algorithm (6 hours)

("top down" And "down up"). Basics of structured programming. A workshop on writing an algorithm in the form of a block diagram, verbally formulated, apparently, with a diagram.


Interpreters and compilers, interface (4 hours)
BASIC shell, launch, enter program text, execute, open and save file (2 hours)

Programming environment Q_BASIC. Program design Translator shell Function keys Text editor Basic techniques for working in the Alphabet environment language, arithmetic, concept of variable,

assignment operator (4 hours)

Q_BASIC programming language: language alphabet, recording of arithmetic operations, built-in mathematical functions.

PRINT output operator: purpose, functions, features.

Types, operations and expressions: simple and structured types, memory representation of data of basic types

Operations on data of basic types Strings, Compatibility and conversion of types
Data input and output (8 hours)

Operator structure, dialogue. Accessing a file. Entering data from a file.

Linear algorithm (4 hours)

Linear program. Operators TAB, LOCATE. Linear algorithm. Step-by-step execution of programs, working with files in an integrated environment. Analysis of example programs illustrating the linear algorithm. Auxiliary algorithm The concept of procedure and function. Localization of names. Subroutine structure Procedural types. Analysis of sample programs

Conditional and unconditional operators transitions (12 hours)

Branching operator IF...ТНEN: purpose, structure, recording of simple and complex conditions, nested branches. Complex (compound) conditions Selection operator SELECT CASE: purpose, structure, recording of conditions.

Loop statements (16 hours)

Cyclic FOR operator. Analysis of sample programs

Cyclic) operator with precondition. Analysis of sample programs

Cyclic) operator with postcondition Analysis of example programs

Library of algorithms. Euclid's algorithm Algorithms for finding numbers with given

properties on an integer interval: simple, perfect, palindromic, Pythagorean

threes.


Records and files (12 hours)

Record. The concept of a new complex variable and access to it.

Record as a structured data type. Description of entries. Join operator. Arrays of records. Programming algorithms using records. Typed Constants: Record Constants Files and Records

Access to files, procedures and functions for working with files, text files, typed files, untyped files. Procedures and functions for working with text files Direct and sequential access to file records. Files: binary

Analysis of examples of programs illustrating the main issues of the language: program structure, data types, descriptions, operations, control structures, records, files.

Graphic arts. Basic operators (12 hours)

Drawing geometric shapes: operators for drawing shapes: line, rectangle, ellipse, circle, arc, point, storing and reproducing an image.

Control of screen color and line thickness: color palette; line styles; shading. Construction of recursive figures.

Plotting function graphs: drawing axes; formation of function; plotting graph points.

Movement of objects on the screen: the idea of ​​animation; symbol movement; figure movement, object movement control, control keys; extended code (scan code).

Character cursor management: the role of the cursor; program (demo) about the size of the cursor. Tasks on movement and drawing of figures and graphs

Creating drawings (12 hours)

Coordinate method. The coordinate method as a universal way to encode graphic information using numbers. Cartesian rectangular coordinate system. Coordinate plane. 1st coordinate quarter.

Computer graphics operators. DROW operator. Commands B, M, II, B, L, K, E, N, O, P, 8, C and N. Commands for absolute and relative movement. Turns. Operator PAINT.

Arrays. (14 hours)

The concept of an array, initialization of arrays when describing the method of filling, access to array elements. Array constants Analysis of example programs Indexing multidimensional arrays, filling method, accessing array elements. Analysis of sample programs

Linear sorting. Bubble sort Analysis of example programs

Search - linear and binary Analysis of example programs

Exchange and exclusion of elements from an array. Analysis of sample programs

String values ​​(14 hours)

Strings, basic operations with strings. Modeling of text information processing processes - search, deletion, transformation, replacement. Analysis of sample programs

Software documentation (8 hours)

Rules for formatting program source codes. Preparation of work reports. Preparation and printing of the report. Defense of the report on the control practical work.

Creative project (6 hours)

Organization of multi-module programs: Header files. An example of a multi-module program. Project file. Compilation and linking. Using libraries (using the example of using a library for image processing).

What is needed to work with Visual Basic, installation and launch of the program. What will we learn?

Algorithm (6 hours)

The concept of an algorithm. Methods for presenting and developing algorithms. Structuring, block diagrams of algorithms and their construction Stages of program development. Program Design Methods ("top down" And "down up"). Basics of structured programming. A workshop on writing an algorithm in the form of a block diagram, verbal and formulaic, apparently, with a diagram.

Interpreters and compilers, interface (2 hours)

High level languages. Interpreters and compilers. The concept of structural and modular methods of program design History of the language

Visual Basic programming environment (5 hours).

GOE - integrated development environment. Toolbar, main menu, controls, user components. Project concept. Project window, properties window. Working with multiple projects

Help system (2 hours).

Help system, Menu concept. Using the menu.

Working with forms (5 hours)

Form designer, Object viewing window. Creating a simple program, creating a form that responds to events. Basic properties of the form. Working with multi-document forms.

Selection and use of control elements (18 hours).

Control elements. Buttons. Text fields. Inscriptions. Switches. Flags. Framework. Lists. Combined fields. Drawings. Graphic fields. Timers. Scroll bar Disk lists. Lists of files. Adding other elements to the panel. Windows style interface. Tree. Tabular lists. Lists of images. Status bar.

Working with modules and classes (5 hours)

Modules and classes. Creation of a software library. Procedures, Functions. Passing parameters to functions and subroutines. Working with modules.

Creating and using menus and toolbars (4 hours)

Purpose. Creating and using menus. Working with the menu editor. Menu structure design. Creating toolbars. Using non-standard elements in toolbars. Image and image lists. Improvement of panels.

Tina data (5 hours)

Variable types. Variables. Arrays. Constants. Control arrays, one-dimensional array, arrays of more than one dimension. Search and sorting, enumeration.

Logic and consistency (4 hours)

How does a computer think? Logical operators. Comparisons. Decision making in the program. Performing repetitive actions

Control structures (5 hours)

Cyclic operator Gog Cyclic operator with precondition. Cyclic operator with postcondition Library of algorithms. Creation of test tasks and games.

Write and read data (8 hours)

Working with files. Serial access. Random access. Binary access. Elements for working with databases. Anatomy of a database. Creation of databases.

Printing (2 hours)

Printing data. Direct calculation window. Working with reports in applications. Printing the source code of the program

Dialog boxes (4 hours)

Standard dialog boxes. Creating custom dialog boxes. Create a dialog box class. Using the dialog box.

Working with a mouse (5 hours)

Handling mouse events, drag and drop operations.

Debugging applications (4 hours)

Documenting the program. CF debugging tools Creation of text utilities

Creating and using help files (5 hours)

Using help files in applications. Creation of help files. Design and creation of content file. Creating a project file. Connecting help files to applications. Converting a help file to HTML format

Object-Oriented Programming (4 hours)

General information about OOP. Inheritance, encapsulation and polymorphism Code reuse. An example of creating and using a class. Working with the object viewing window. Compiling the project. Mac tab. Setting compilation options. Application Distribution

Expansion(2 hours)

Programming for the Internet on VB (21 hours)

Using the element. Application Development. Document design

Using HTML

Using BLX (8 hours)

Dynamic link libraries Calling rules API program Using AP1 functions in applications Creating a class Working with the system panel.

Projects (6 hours)

Organization of multi-module programs: Header files. Memory classes, prototyping. An example of a multi-module program. Project file. Compilation and linking. Using libraries (using the example of using a library for image processing).

Software documentation (4 hours)

Rules for formatting program source codes. Preparation of work reports. Preparation and printing of the report. Defense of the report on the control practical work.
REQUIREMENTS FOR KNOWLEDGE AND SKILLS.

Students must understand:

The importance of information processes in the life of society;

The essence of basic algorithmic structures (procedures, functions, loops, branches, recursion) and the meaning of their use;

The principles underlying mathematical methods for solving problems, advantages, disadvantages and limits of applicability of various methods;

» purpose and scope of application of various types of software.

Students must know:

Safety rules when working on computers, means and methods of protecting eyes from radiation;

Names, purposes and most important characteristics of the main computer devices;

“sequence of solving problems using computers;

Scope of applicability of various information technologies;

How to get started with Turbo Pascal

Help system, using menus

Program structure, function keys of the Thirbo Pasa! editing tool, basic techniques for working in the environment

The essence of compilation and linking

"algorithmic constructions of the Pascal programming language,

Data types and their representation in computer memory, operations on basic data types

The concept of structured modular programming in Pascal and its implementation

How parameters are passed to functions

Functions - dates and times, working with numbers, financial

Toolbar, controls, user components » how arrays and strings are described and represented in memory;

How pointers are described and how they are related to arrays;

String functions

The difference between text and binary files, features of the organization of text files;

Commands, controls, direct and sequential access files, binary files

Standard I/O Operations

Basic concepts of object-oriented programming technology (encapsulation, inheritance, polymorphism).

» purpose of header files

the purpose and methods of organizing project files.

Students must be able to:

Use all available sources (interactive computer help systems, books, reference books, technical descriptions) to independently solve problems using computers;

Compose algorithms in verbal form to solve a variety of problems;

Apply the method of step-by-step detailing when creating algorithms

translate algorithms into programming language;

compose algorithms and programs for new methods of solving problems;

work with various data structures (array, record, file, set,

an object);


work with text and graphic information editors;

solve the problem, implement algorithmic designs on

Pascal programming language,

create game, educational, control programs

Publication date: 2016-10-18

Short description: ...

PRIVATE INSTITUTION OF GENERAL AND ADDITIONAL EDUCATION

« LYCEUM-BOARDING "PODMOSKOVNY" »

WORKING PROGRAMM

mug « PROGRAMMING »

Grade 11

basic general education

(Federal component of state

general education standard)

BUP-2004

Compiled by : Nedviga S.I.

IT-teacher

    Academic year 2017

Explanatory note

The work program was developed on the basis of the following regulatory documents:

    Federal Law No. 273-F3 “On Education in the Russian Federation”;

    Order of the Ministry of Education of the Russian Federation dated March 5, 2004 No. 1089 “On approval of the federal component of state educational standards of primary general, basic general and secondary (complete) general education” (as amended dated January 31, 2012 No. 2);

    Letter of the Ministry of Education and Science of the Russian Federation dated October 28, 2015 No. 08-1786 “On work programs of academic subjects”;

    The main educational program of basic general education of the Chuodo Educational Institution “Boarding Lyceum “Podmoskovny””;

    Regulations on the work program of the teacher of the CHOODO “Boarding Lyceum “Podmoskovny””;

    Curriculum of the Chuodo Educational Institution “Boarding Lyceum “Podmoskovny”” for the 2016-2017 academic year;

Federal list of textbooks

The course is designed for study in 11 classes of the boarding school "Podmoskovny". Its content corresponds to the general level of development and training of students of this age. This calendar and thematic plan was compiled for grade 11 according to the program of the head. Laboratory of Informatics, Moscow Institute of Open Education, Ph.D. N.D. Ugrinovich, adapted for the boarding school “Podmoskovny” in accordance with the textbook “Computer Science and Information Technologies: Textbook for 11 grades / N.D. Ugrinovich. – M.; BINOMIAL. Knowledge Laboratory, 2012.”

It is imperative for a modern specialist in the topic to have algorithmization and often programming skills. Therefore, consideration of this topic is possible in the training course “Programming in Turbo Pascal”. It should also be noted that the All-Russian Olympiads for schoolchildren in computer science and the tests of the Unified State Exam contain programming tasks. Thus, the introduction of an additional 1 hour per week to study the basics of algorithmization and programming in the Turbo Pascal language is a necessary and sufficient condition for the implementation of the task of training and educating a new generation that meets the conditions of the information society in its level of development and lifestyle. In addition, studying the basics of programming is associated with the development of a number of skills and abilities (organization of activities, planning, etc.) that are of a general intellectual nature and the formation of which is one of the priority tasks of a modern school.

Goals and objectives of the course

    Generating interest in studying a profession related to programming.

    Formation of algorithmic culture.

    Give the student the opportunity to realize his interest in the chosen course.

    To teach students structured programming as a method that involves creating understandable, locally simple and readable programs, the characteristic features of which are: modularity, the use of unified structures of sequence, selection and repetition, the rejection of unstructured transfers of control, limited use of global variables.

    Acquisition of knowledge and skills of algorithmization by students in its structural version.

    Mastering all possible methods for solving problems implemented in the Pascal language.

    Development of students' algorithmic thinking.

    Formation of competent program development skills.

    Deepening knowledge, skills and abilities to solve problems in programming and algorithmization.

As a result of learning the basics of programming, students should

know

    Program structure in Pascal language

    Concept of magnitude

    Mathematical functions and language operations

    Data types

    Operators and their syntax

    Rules for writing procedures and functions in Pascal; their differences

    Concept of one-dimensional and two-dimensional array

    Search and sorting algorithms

Write mathematical expressions in Pascal

Describe the work of operators verbally

Develop programs that require the investment of one or more operators

Identify auxiliary algorithms in complex problems.

Form procedures and functions. Correctly construct calls to procedures and functions.

Describe, fill and display arrays

Process arrays

    The algorithm and its formal executors

History of the development of computer technology. Personal computer architecture. Algorithm and formalization. Formalization. The main stages of developing and researching models on a computer. Research on interactive computer models. Study of physical models. Study of astronomical models. Study of algebraic models. Study of geometric models.

Computer workshop

    Linear algorithm.

Arithmetic expressions. Standard features. Rules for writing arithmetic expressions. Operations. Operands. Following..

Computer workshop

    Algorithmic structure "branching". Algorithmic structure of "choice"

Organization of branches in programs. Basic concepts of mathematical logic. Conditional operator. Unconditional jump operator.

Computer workshop

Programming cyclic algorithms, types of cycles. Operators for organizing loops. Nested Loops

    Turbo Pascal

String data type. Finding, replacing, displaying string elements subject to certain conditions using standard functions. Why the presence of full-fledged procedures and functions is fundamentally important for a structure-oriented high-level language. What are the rules for describing procedures in Pascal. How a procedure call is constructed. What are the fundamental differences between formal, local and global variables. What are the differences between variable parameters and value parameters, and in what situations is it advisable to use both. What are the differences between procedures and functions. Scope of descriptions in procedures. What is recursion basically and how is it implemented in Pascal. Identify auxiliary algorithms in complex problems. Form procedures and functions. Correctly build calls to procedures and functions

    Program structure. Basic operators

What structured data types are there in the Turbo Pascal language. Operator syntax. Details of the execution process of each of the operators. Describe verbally the work of each of the operators discussed. Develop programs for processing numeric and symbolic information that require the insertion of one or more basic operators.

    Logical Expressions and Relations

What is a quantity and how is it characterized? What is an operation, an operand and their characteristics; what are the fundamental differences between structured and unstructured quantities; about data structures such as set, record, file, stack, queue, line. What can be included in an arithmetic expression; list of mathematical functions included in Turbo Pascal. About logical expressions and their operands, operations and functions. Write down examples of arithmetic and logical expressions of all attributes that may be included in them.

How to formally define the types “array”, “string”, “set”, “record”, “file” in a program. What properties do the data of these types have? What operations are possible on quantities of the indicated types. When solving meaningful problems in which it is advisable to use structured data, it is adequate to choose the appropriate one from the structures listed above. Use combinations of data structures (such as “array of records”, etc.). Reproduce algorithms for sorting linear numerical arrays and searching in an ordered array. Extend these algorithms to sort and search in non-numeric arrays, arrays of records

    Data types

Assignment of enumerated and interval data types. What restrictions are associated with these types. Examples of programs using these types. Create enumerated types. Describe variables of an enumerated type. Develop programs containing enumerated values. Construct an interval type based on an arbitrary ordinal type.

Requirements for knowledge and skills:

As a result of mastering the course, students

must know/understand:

    the essence of the algorithm, its main properties, illustrate them with specific examples of algorithms;

    basic data types and operators (procedures) of the Turbo Pascal programming language;

    purpose of procedures and functions, their differences;

    principles of working with text files;

    methods for specifying array elements;

    methods for sorting arrays and searching for elements in an array;

    principles of working with strings, records, sets;

must be able to:

    develop and write standard algorithms in Turbo Pascal;

    develop complex algorithms using the sequential detailing method (top-down) and the assembly method (bottom-up);

    use text files;

    sort one-dimensional arrays and search for elements of a given property;

develop processing algorithmsstrings, records, sets.

Number of hours per course : 11th grade – 1 hour per week, 34 hours in total.

Scope of discipline and types of academic work

Including by half-year

Total labor intensity of the work, including:

Thematic plan of the discipline

Lessons in control

Algorithmization Basics

Language programming basics Turbo Pascal

TOTAL IT

SCHEDULE PLANNING

Subject: programming

Grade: 11

Teacher: Nedviga S.I.

Chapter, paragraph, pages

Activities

date

carrying out

Note

Plan

Fact

Safety precautions. The algorithm and its formal executors.

Linear algorithm.

Conversation. Work in notebooks

Algorithmic structure "branching"

Conversation. Work at the board

Algorithmic structure of "choice"

Conversation. Working with the textbook

Algorithmic structure "cycle"

Basic concepts of a programming languageTurboPascal

Oral questioning, working with a textbook

Data types

Work at the board, putting forward hypotheses and then testing them

Program structure

Frontal work with the class

Data input

Data output

Practical work on the computer

Assignment Operators

Conversation

Arithmetic Expressions

Conversation. Frontal survey

Arithmetic operations.

Operators DIVMOD.

Working in a notebook

Arithmetic procedures and functions.

Types in Arithmetic Expressions

Practical work on the computer

Functions TRUNC And ROUND.

Type conversion. Overflow.

Practical work on the computer

Exponentiation.

Useful formulas.

Conversation, work in a notebook

Unconditional transition. OperatorGOTO.

Practical work on the computer

Procedure call operatorEmpty operator. Compound operator.

Work at the board.

Logical expressions and relations. Operation priority

Conversation.

Conditional operatorIF.

Practical work on the computer

Operator CASE

Practical work on the computer

Operator REPEAT

Practical work on the computer

Operator WHILE

Practical work on the computer

Operator FOR.

Nested loops.

Conversation. Work at the board

Description and use of arrays

Filling an Array with Data

Practical work on the computer

Array output

Actions with one-dimensional and two-dimensional arrays.

Individual tasks using cards, work at the board

Rearranging elements in an array

Work in a notebook, at the blackboard

Sort an array

Practical work on the computer

Data types CHAR And STRING

Practical work on the computer

Clutch operations

Individual tasks using cards, work at the board

Relation operations

Practical work on the computer

Test

Knowledge control

Final lesson

Summarizing

DEVICES AND EQUIPMENT

Hardware

    Computer

    Projector

  • Audio information output devices - headphones for individual work with audio information

    Devices for manually entering text information and manipulating screen objects - keyboard and mouse.

    Devices for recording (inputting) visual and audio information: scanner; camera;web-camera; voice recorder, microphone.

Software

    Operating system.

    Office application package.

    File manager (as part of the operating system or others).

    Antivirus program.

    Integrated office application that includes a text editor, raster and vector graphics editors, presentation software and spreadsheets.

    A simple database management system.

    Multimedia player (included in operating systems, etc.).

    Programming system.

    Mail client (included in operating systems, etc.).

    Browser (included in operating systems or others).

    Programming language Turbo Pascal 7.0.

An example program in Pascal.

Finding the roots of a quadratic equation

Var A, B, C, D, X1, X2: Real;

Begin

Writeln("Enter the coefficients of the quadratic equation: a,b,c");

Readln(A,B,C);

D:=B*B-4*A*C;

If D<0 Then Writeln (" RootsNo! ")

Else

Begin

X1:=(-B+SQRT(D))/2/A;

X2:=(-B-SQRT(D))/2/A;

Writeln("X1=", X1:8:3, " X2=",X2:8:3)

End;

End.

Bibliography:

    “Informatics: Textbook for grade 11 / N.D. Ugrinovich. – M.; BINOMIAL. Knowledge Laboratory. 2014.

    Computer science. Problem book - workshop in 2 volumes. / Ed. I.G. Semakina, E.K. Henner: Volume 1. – M.: Binom. Knowledge Laboratory, 2012

    "Computer science. Problem book-workshop in 2 volumes / L.A. Zalogova, M. Plaksin and others, edited by I. Semakin, E. Henner. – M.; BINOMIAL. Knowledge Laboratory. 2012.

    “Workshop on computer science and information technology. Textbook for educational institutions. / N.D. Ugrinovich. – M; BINOMIAL. Knowledge Laboratory. 2011.

    “Number systems and computer arithmetic” Andreeva E., Falin I. - M. BINOM. Knowledge Laboratory. 2011.

    Kultin N.B. Turbo Pascal in problems and examples. – St. Petersburg: BHV-Petersburg, 2013.

    Rapakov G.G., Rzheutskaya S.Yu. Turbo Pascal for students and schoolchildren. – St. Petersburg: BHV-Petersburg, 2011.

The goal of the circle is to develop students’ algorithmic and abstract thinking, develop the ability to independently compose algorithms and implement them in programming and design systems. To achieve this goal, the following tasks are solved:

  • learning the basics of algorithmization and programming in C++ and Python;
  • training in working skills in programming systems Eclipse, Code::Blocks, QtCreator, IDLE Python;
  • conducting an analysis of the effectiveness of the solutions found;
  • familiarity with classical algorithms and their implementation in C++ or Python;
  • discussion and analysis of Olympiad problems;
  • preparation and participation in team or individual programming competitions

Why do we learn to program in C++?

  • For nearly two decades, C++ has been one of the top three compiled programming languages. Therefore, the wide demand for C/C++ specialists will continue for a long time.
  • C/C++ syntax is the basis for many modern and equally popular programming languages, such as Java, PHP, C#, Perl, Rust, D
  • This is a compiled language with static typing in which you can create programs of any level of complexity.
  • C++ has a rich and powerful standard library including classes supporting containers, algorithms, strings, I/O, mathematics, localization, and much more.
  • Availability. There are many implementations of the language for C++, both free (GCC) and commercial (Visual C++) and for various platforms
  • C++ is an actively developing language to this day! In 2017, a new language standard was adopted.
  • C++ supports many programming paradigms, including OOP (object-oriented). But this does not mean that when developing a programmer is limited to only one approach. During the implementation process, he can use different programming styles, thus turning program development into a creative process.
  • C++ is a huge country! Don't believe me? !

Timetable of classes

  • Tuesday
    • Bjarne Stroustrup. C++ programming language. Special edition. Per. from English - Ed. Bean, 2011
    • Deitel Harvey, Deitel Paul. How to program in C++. Publisher: Binom-Press, 2008
    • Josattis N.M. Standard C++ Library. Help Guide. Williams, 2014
    • Dewhurst S. C++. Sacred knowledge. – Per. from English – St. Petersburg: Symbol-Plus, 2012.
    • Laptev V.V. C++. Object-oriented programming - St. Petersburg: Peter, 2008.
    • Lippman B. Stanley, Josie Lajoie, Barbara E. Mu. C++ programming language. Basic course. Ed. 5th. M: LLC “I. D. Williams”, 2014
    • Prata, Stephen. C++ programming language. Lectures and exercises, 6th ed.: Trans. from English - M.: LLC “I.D. William”, 2012
    • Siddhartha Rao. Learn C++ on your own in 21 days, 7th edition. Williams, 2013
    • Stolyarov A.V. Introduction to the C++ language: 3rd ed. – M.: MAKS Press, 2012.
    • Effective use of C++. Third ed. 55 true tips to improve the structure and code of your programs. M.: DMK Press, 2006.

EXPLANATORY NOTE

A key feature of the course is its focus on developing students’ skills in finding their own solution to a given problem, drawing up a solution algorithm and implementing the algorithm using programming tools.

For schoolchildren, this course is an opportunity to develop programming skills in Pascal. Programming is the core of both basic and specialized computer science courses. As part of the proposed course “In-depth study of programming in the Pascal language”, studying the basics of programming in the Pascal language is not so much a means of preparing for future professional activities, but rather the formation of new general intellectual skills: dividing a problem into solution stages, constructing an algorithm, etc. Extremely great the role of programming for the formation of schoolchildren’s thinking, methods of mental action, the ability to build models, independently finding and drawing up algorithms for solving problems, the ability to clearly and concisely implement the stages of solving problems. The use of these opportunities for the formation of general intellectual and general educational skills of schoolchildren activates the process of individual and personal development of students.

The general pedagogical focus of the classes is the harmonization of individual and social aspects of learning in relation to information technologies. The ability to create solution algorithms and programming skills are elements of information competence - one of the key competencies of a modern school. The ability to find a solution, draw up a solution algorithm and implement it using programming languages ​​is a necessary condition for the training of modern schoolchildren. A special role is given to the system of reflective tasks widely presented in the course. Mastering reflection is aimed at making students aware of the important fact that, along with the products they develop in the form of computer programs, a fundamental educational product is born: the mastered tools. It is this educational product that will become the basis for students’ creative self-expression in the form of various programs.

Course learning objectives:

    understand the meaning of algorithmization as a method of understanding the world around us, the principles of structural algorithmization;

    master the basic concepts of the theory of algorithms;

    master the concept of an algorithm and the features of implementing algorithms in the form of programs written in the Pascal programming language.

Course objectives:

    get acquainted with the concepts of “algorithm”, “programming language”;

    develop skills in executing the technological chain of program development using the Pascal programming language;

    study the basic constructs of the Pascal programming language;

    learn to work with graphical tools of the Pascal programming language;

    learn to debug and test programs, draw conclusions about the operation of these programs.

Teaching methods

The selection of teaching methods is determined by the need to develop information and communication competencies in schoolchildren, implement student-centered learning, direct them to independently solve various problems, and develop research and creative abilities. The solution to these problems lies in the organization of an activity-based approach to learning, in the problematic presentation of the material by the teacher, in the transition from the reproductive type of work to independent, search and research activities. Therefore, the main teaching method in this elective course is the project method, and the main methodological setting is teaching high school students the skills of independent creative activity.

Planned course results

As part of the course “In-depth study of programming in the Pascal language,” students acquire the following knowledge, skills and methods of activity:

    know how to create algorithms for solving problems;

    are able to implement algorithms on a computer in the form of programs written in Pascal;

    have basic programming skills in Pascal;

    know how to debug and test programs written in Pascal.

Methods for assessing student achievement levels

The subject of diagnostics and control in the course“In-depth study of programming in the Pascal language” are the external educational products of students (created flowcharts, programs), as well as their internal personal qualities (mastered methods of activity, knowledge, skills), which relate to the goals and objectives of the course.

The pedagogical value of control lies in the fact that it provides comprehensive information about students’ abilities for analysis or synthesis, value judgments and allows one to assess the effectiveness of educational work for each of them.

Diagnostics and control are necessary parts of the educational process, but increasing their share inevitably leads to a reduction in time for studying the material. Therefore, it is so important to extract maximum information about students in a minimum time. Monitoring and diagnostics must be effective. Therefore, it is necessary to analyze the test results and take measures to correct the educational process. This determines whether methods for assessing students' achievement levels will be effective.

It is advisable to evaluate the quality of external educational products according to the following parameters:

    the algorithm must be optimal in terms of execution speed and as simple as possible to implement in a programming language;

    the program must fulfill its objectives;

    according to the degree of “readability of the code” (indentation must be observed, comments on the program code must be present, etc.).

Students can supplement their own portfolios with created external educational products.

The results achieved by students are checked in the following forms:

    current reflective self-analysis, control and self-assessment of students’ tasks;

    current diagnostics and assessment by the teacher of schoolchildren’s activities;

    final assessment of the student’s activities and educational products in accordance with his individual educational program for mastering the course;

    final qualitative assessment of the individual activities of schoolchildren by the teacher in the form of feedback or recommendations.

Knowledge control is organized in the form of three tests. The final grade is assigned based on the test results.

Hardware:

    IBM PC-compatible computer.

    Processor no lower than Pentium-100.

    RAM no less than 64 MB.

Software:

    Operating system: WindowsXP (or higher).

    One from development environments:

Borland Pascal 7.0,

Turbo Pascal 7.0,

Free Pascal 2.0 (or higher).

Thematic course plan

Name of sections and topics

Quantity

hours

date

Introducing Pascal

Pascal program structure

Numeric data types

Conditional operator.

Nested conditional statements.

Conditional operators, logical operations AND, OR, NOT

Selection operator.

Loops with preconditions

Loops with postconditions

Loops with parameters

Nested Loops

Problem solving

One-dimensional arrays

Information retrieval algorithms

Two-dimensional arrays

Sorting algorithms

String data type

Procedures for working with string data type

Problem solving

File data type

Basic file operations

Examples of working with files

Text files

Total:

Course content

Introducing Pascal

Topic 1. Pascal program structure

:

    purpose and main commands of the development environment;

    general structure of the program;

    purpose and types of inference operator.

Students must be able to:

    use the Borland / Turbo Pascal or Free Pascal programming environment interface

    use editor commands;

    compose and run programs;

    organize data output.

Pa scal programming language and its characteristic features. Program structure in Pa scal language. The simplest program. Development environments. Elements of the Pascal language. Creation and execution of programs in the development environment. Write and WriteLn output operators.

Practical work: creating, saving, launching a simple program in a development environment.

Topic 2. Numeric data types

Students must know/understand:

    concept of data type;

    integer, real data types and operations on them;

    concept of variable;

    assignment operator;

    purpose and types of input operator.

Students must be able to:

    determine the type of numeric data;

    declare the necessary variables;

    write arithmetic expressions.

Variables. Data types in Pascal. Simple data types. Integer and real types. Meanings. Assignment operator. Operations allowed on variables and values ​​of integer and real types.

Practical work: compilation of computer programs.

Basic algorithmic constructions

Topic 1. Cycles

Students must know/understand:

    concept and purpose of the cycle;

    loop with counter;

    conditional loops;

    the concept of a random number generator;

    concept of symbolic type;

    purpose and capabilities of the module CRT ;

    concept of key code, extended key code.

Students must be able to:

    use all types of loops to repeat a block of actions in a program;

    determine the optimal type of loop operator to solve the problem;

    use a random number generator;

    use symbolic variables and constants;

    accept codes and extended key codes: symbolic and service.

Cycle. Loop with a counter. A loop with a precondition and a loop with a postcondition.

Random number generator.

Character data type Uses the capabilities of the CRT module to receive and process key signals.

Practical work: creating programs that use different types of loops.

Topic 2. Conditional operator. Selection operator

Students must know/understand:

    concept and purpose of a conditional operator;

    assigning a select operator;

    algorithm for finding the maximum/minimum element;

    logical expressions;

    methods of testing programs.

Students must be able to:

    use a conditional operator, a selection operator when composing programs;

    select the type of conditional operator/selection operator to optimally solve the problem;

    compose complex logical expressions;

    use an algorithm for finding the maximum/minimum element of a sequence;

    draw up a test table, test the finished program.

Conditional operator. Full and incomplete forms of the conditional operator. Selection operator.

Algorithm for finding the maximum/minimum element of a sequence.

Testing a finished program.

Practical work: creating programs that use branching algorithms.

Structured Data Types

Topic 1. Arrays

Students must know/understand:

    the concept of an array;

    the concept of a two-dimensional array as an array of arrays;

    ways to find the maximum/minimum element of an array;

    Sorting methods: selection sort and bubble sort.

Students must be able to:

    declare one-dimensional and two-dimensional arrays;

    use arrays to store data in a program;

    search for the maximum/minimum element in a one-dimensional array;

    sort a one-dimensional array in one of two ways: selection sort or bubble sort.

Array. One-dimensional array. Two-dimensional array. Declaration of arrays. Array processing: searching for an element based on specified characteristics, filling the array, displaying the array on the screen.

Sorting an array. Sorting by selection. Bubble sort.

Practical work: creation and processing of arrays.

Topic 2. String data type

Students must know/understand:

    string data type;

    the concept of strings as an array of characters;

    allowed actions on string data.

Students must be able to:

    declare and use values ​​of string type in the program;

    use standard string processing procedures and functions.

String data type. Strings as an array of characters. Standard string procedures and functions.

Practical work: processing string type data.

Topic 3: File Data Type

Students must know/understand:

    concept of file type;

    differences and scope of application of typed and text file types;

    procedure for working with file type data.

Students must be able to:

    determine the optimal type of file data to solve a specific problem;

    associate a file variable with a file on disk;

    open a file for reading or writing;

File data type. Typed files. Text files.

Practical work: creating programs that allow you to store data on disk.

Educational materials

    Fundamentals of algorithmization and programming in Pascal: Textbook. manual / L. A. Tatarnikova; Ed. T. B. Korneeva. – Tomsk, 2008. – 139 p.

    Tatarnikova, L. A. Fundamentals of algorithmization and programming in Pascal: Methodological recommendations. – Tomsk, 2008. – 28 p.

    Timoshevskaya N.E., Peryshkina E.A. Basics of algorithmization and programming in Pascal. Workbook: Textbook. allowance. – Tomsk, 2004. – 116 p.

Municipal budgetary educational institution "Secondary school in the village of Yakovlevka, Bazarno-Karabulak municipal district, Saratov region."

Working programm
extracurricular activities in grades 9-11.

Circle "Basics of programming
in Pascal
»

Head: Damaev R.Kh., computer science teacher.

2016-17 academic year

Explanatory note.

Studying the topic of algorithmization and the basics of programming in a computer science course is one of the most difficult within the subject. Considering the relatively small amount of instructional time allocated to this block, as well as the fact that for most students it is difficult to independently study the principles of algorithmization and programming from textbooks and teaching aids, the computer science teacher faces the problem of developing methods and techniques that will help children better understand the essence of algorithmization, learn to program in one or more languages, perhaps help high school students make professional decisions.

To solve these problems, a club “Basics of Programming in Pascal” can be organized for students in grades 9-11. Why Pascal!?

Pascal was developed in 1970 by Niklaus Wirth as a strongly typed language with an intuitive syntax. It was named after the French mathematician, physicist and philosopher Blaise Pascal.

One of the goals of creating the Pascal language, Niklaus Wirth, considered teaching students structured programming. Until now, Pascal is deservedly considered one of the best languages ​​for initial programming training. Its modern modifications, such as Object Pascal, are widely used in industrial programming (Delphi environment). The most popular solution for personal computers in the 80s and early 90s was the Borland compiler and integrated development environment Turbo Pascal. The built-in compiler ensured high compilation speed and high code quality (hence the Turbo prefix). The Turbo Pascal environment also provided code debugging and contained a rich set of examples. All these qualities allowed Turbo Pascal to become the de facto Pascal standard. The most famous free implementation of the Pascal language is Free Pascal. In addition to the openness of the source code, its main advantage is multi-platform, as well as support for various Pascal dialects. Based on FreePascal, the free multi-platform environment Lazarus, similar to the Delphi environment, was created. However, the poor console interface of the integrated environment of Free Pascal, which has not changed for decades, is not compatible with modern desktop interfaces of operating systems, increasingly alienates students, incorrectly forming in them the idea that Pascal is an outdated language. On the other hand, as it developed, the Delphi environment became more and more cumbersome and unsuitable for teaching programming. Additionally, there is no free version of Delphi, even for academic use. These factors led to the almost complete disappearance of Delphi from the education sector, and for the Lazarus environment, despite its free nature, such cases are rare.

Finally, the advent of the Java and .NET platforms, which included a powerful programming language and powerful standard libraries, weakened the position of the Delphi language. To teach programming, languages ​​such as Java, C, C++, C#, Visual Basic, Python, and Haskell have become increasingly used.

One of the brightest events associated with the development of the Pascal language was the appearance of the Oxygene language and compiler from RemObjects, which the creators deservedly called the modern Pascal of the 21st century. Oxygene can generate code for various platforms, including the .NET and Java platforms. Its main disadvantage is the lack of a free compiler and environment for educational purposes. In addition, Oxygene is quite different from the canonical Pascal language (class methods instead of procedures and functions), which reflects its purely professional orientation.

The PascalABC.NET language and programming system are designed to change this situation and return the Pascal language to its former attractiveness for both education and professional programming, multiplying it with the power of the .NET platform. Of course, this program does not use all the capabilities of the PascalABC.NET system, but this is not required to achieve the goals set for it.

It is proposed to start studying Pascal immediately with specific examples. Step by step, students will go through all the stages of programming and will feel confident and understand: “If I could write one program, then I can write a second one!”

The “user” aspect associated with the formation of computer literacy, information culture, and the preparation of schoolchildren for practical activities in the context of the widespread use of information technologies.

Algorithmic (programming) aspect associated with the development of students' algorithmic thinking style.

The cybernetic aspect associated with the formation of worldview ideas about the role of information in management, the patterns of information processes.

The club program is based on an integrated approach to the study of topics, which allows students to gain a deeper mastery of the necessary knowledge. Integration is carried out in three areas: mathematics, physics and computer science.

The main task of the circle is to develop an algorithmic style of thinking. Students must gain an understanding of one of the programming languages, learn to use this language to write algorithms for solving simple problems at the 1st level and quite complex ones at the 2nd level.

Relevance of the program.

Nowadays, it is important that a person not only knows how to work on a computer, but also understands how the programs with which he works on it work. The circle should become a starting point for learning the object-oriented programming language. Classes will help students learn more deeply one of the programming languages ​​(in our case, Pascal) and acquire the necessary skills in writing programs. For students who tend to quickly master the basic principles of programming, individual Olympiad-type tasks can be given.

For career guidance purposes, the club will help students choose a future profession.

According to the results of the Unified State Exam, computer science in the field of programming is considered the most difficult section, and the club can also serve as another option for preparing for this form of testing students’ knowledge.

The requirements of higher educational institutions for school graduates have increased significantly and expanded, so the goal of the circle is also to provide assistance in learning the basics of programming and preparing students for admission and successful study at technical universities.

Program goals.

To reinforce in students the concepts of an algorithm, the properties of algorithms, ways of writing algorithms, basic algorithmic structures (linear, branching, loop), auxiliary algorithms.

Pay special attention to algorithmic programming: basic types and data structures (variables, arrays), procedures and functions.

To give students an idea of ​​solving complex programming problems and applying programming in practice.

This program is designed to attract students to independently and meaningfully compose complete programs in the Pascal language, instilling basic skills in algorithmic and programming literacy: a clear and understandable style, reliability of solutions, saving calculations, organizing searches, etc.

Program objectives.

  • Educational

Expand students' knowledge of algorithmization and programming.

Provide students with the skills to solve simple programming problems.

Learn to solve complex problems using the method of dividing into subtasks.

  • Developmental

The program is designed to develop students' cognitive abilities, deepen interest in programming, and instill an algorithmic style of thinking. The program is also designed to prepare some students for programming competitions.

  • Educational

The club program is designed to instill in students a sense of responsibility, analysis of the situation and search for measures to resolve it. Drawing up algorithms and programs allows the student to evaluate a problem and search for options for solving it, which will allow him to do the same in other life situations. Working in small groups promotes the development of communication skills, mutual assistance, and the ability to develop a unified approach to solving a problem.

Conditions for achieving goals and objectives.

To achieve the set goals, club classes are conducted in the “from simple to complex” format. Students recall their knowledge of the basics of algorithmization and programming and, on their basis, deepening it, learn to compose simple and complex programs.

When developing the program, the age of the students was taken into account; a combination of theoretical material and practical exercises on the computer is used.

For practical work, the PascalABC.NET environment is installed on each computer, where students can implement their programs, see the results of their execution, and make corrections.

Educational results:

Students should know:

What is an algorithm, properties, types of algorithms, ways of writing algorithms;

Basic data types and operators (procedures);

Purpose of auxiliary algorithms, technologies for constructing simple and complex algorithms; - - sequential detailing method and reverse block collection method.

Students should be able to:

Build information structures (models) to describe objects and systems, be able to translate problems from reality into an adequate optimal model (informational, physical, mathematical), operate with this model in the process of solving a problem using the conceptual apparatus and the means of the science to which the constructed one belongs model, correctly interpret the results obtained;

Organize a search for information necessary to solve a problem;

Apply linear, branching and cyclic constructions of the Pascal language;

Select subtasks; define and use auxiliary algorithms;

Be able to solve programming problems at various levels;

Compile, edit, use help in the PascalABC.NET programming environment.

Organization of student activities.

forms:

in groups

individual

individual-group.

training mode:

    total number of hours per year - 35;

    Frequency of classes - 1 time per week.

    number of hours and classes per week - 1.

Forms of classes:

    1. Seminar classes

      Practical lessons

Forms of control:

Current control - based on the results of current practical work.

Final control is based on the results of the implementation of programs created by students independently.

1. Introduction. Introduction to the Pascal language. Program structure. PascalABC.NET program window. To introduce students to the history of the Pascal language, its alphabet, and program structure. Consider the PascalABC.NET programming environment window, interface, menu, how to use help, show an example program, input and output of variable values.

Consider safety issues and health-saving technologies when working at a computer.

2. I/O operators. Recording the program. Program structure, blocks.

Introduce students to variables and their types, consider input-output and assignment operators. Working with a ready-made program.

3. Drawing up the first program (on your own). Linear algorithms and programs. Debugging.

Mathematical functions in Pascal: abc(x), sqr(x), sqrt(x), mod, div. Programs using them.

4. Algorithms with branching. Solving the problem of calculating the values ​​of a polynomial.

Introduce students to branching algorithms and consider problems of complete and incomplete branching.

5. Cyclic algorithms and programs.

Introduce an idea of ​​cyclic algorithms. Consider their types.

6. Arrays. Array processing. Specifying an array.

Introduce students to the definition of an array. Present ways to define an array and display its members on the screen.

7. Programs for entering and processing array elements.

Reinforce with students the concept of an array. Consider the basic problems with arrays.

Two-dimensional arrays.

Provide students with an understanding of two-dimensional arrays. Consider filling them out and displaying them on the screen.

8. String data. Features of working with string data. String arrays.

9. Library modules. Standard modules. A set of standard modules: system, crt, graph, dos, printer.

Methods for connecting modules and working with them.

10. Text files. Input and output using text files.

11. Solving complex problems

In this section, you can use solving problems from Section 2 of the Unified State Exam, as well as Olympiad problems.

12. Final lesson

As a final lesson, you can use a small programming Olympiad or solve tasks from Section 2 of one of the Unified State Exam options.

Educational and thematic planning.

p/p

LESSON TOPIC

Number of hours

date

Plan

Fact

Safety briefing. PascalABC.NET environment. Interface elements. Using Help. Program structure.

I/O operators. Recording the program. The first program in PascalABC.NET. Linear algorithms and programs.

Syntax of the language. Execution of the program. Debugging. Error messages. Typical mistakes.

Data. Data types. Variable description block. Description of the constants.

Arithmetic expressions. Format of the calculation result. Examples of programs for calculations.

Assignment operator. Executing the statement. Input and output operators. Output text messages. Comments in the program.

Step-by-step execution of the program.

Logical data type. Recording conditions. Composite conditions and their recording.

Algorithms with branching. Branching in PascalABC.NET. Conditional operator. Complete and incomplete branching.

Nested branches.

Verification work

Cyclic algorithms. Loop with parameter (for).

Loop with precondition (while)

Loop with postcondition (repeit)

One-dimensional arrays. Description of an array, main types of tasks with arrays (search, replacement, sorting, summing)

Two-dimensional arrays. Description of the array.

Nested loops.

String data. Functions for working with string data. String arrays.

Verification work

Procedures and functions. General information.

Library modules. Standard modules. Connection. Examples.

The concept of a file. Reading and writing a file. Text files. File I/O.

Solving Olympiad problems and problems from Section 2 of the Unified State Exam.

Final project (solving a problem of the student’s choice)

Hardware and software:

Computer, projector, interactive whiteboard, PascalABC.NET environment (teacher's workstation).

Computer, PascalABC.NET environment (student workstation).

Literature and Internet resources:

Ushakov D.M., Yurkova T.A. - Pascal for schoolchildren. -SPb.: Peter, 2006. - 256s.:

Shpak Yu.A. - Turbo Pascal is just like 2x2. - Eksmo, 2008. - 400 pp.:

Chernov A.F. - Olympiad problems with solutions and detailed analysis. - Volgograd: Teacher, 2007. - 207 p.:

Rapakov G.G., Rzheutskaya S.Yu. - Turbo Pascal for students and schoolchildren. - St. Petersburg: BHV-Petersburg, 2007.-352 p.:

Tsvetkov A.S. - PASCAL programming language ABC Pascal programming system. Textbook for schoolchildren, St. Petersburg, 2015. -46 p.

Uskova O.F. - Programming in Pascal language Problem book. Ed. Peter. 2002. -336 p.

Potopakhin V.V. Turbo Pascal. Solving complex problems. Publisher: “BHV-Petersburg”, 2006, - 12 p.