Lesson Plan Title : Introduction to Computer Programming and C++

Overview and Purpose: We introduce students to the world of computer programming using a widely available language and resources.

The nature of a programming language shall be defined, as well as the difference between natural and formal languages. The various operations that make up the general structure of a computer program will be introduced as part of engendering an understanding of the algorithm as the basis for program flow. In addition there will be a basic introduction to program errors, syntactic, semantic and runtime.

Goals:

Computer programming is a broad discipline. The goal of this lesson is to broach a gentle introduction to what a computer programming language is, what a program does, and what steps all programs ultimately take to achieve their objectives.

1.At the end of the lesson, students must know how to choose the appropriate database technology for Visual C++ applications

2.They must be able to understand the difficulties of trying to invent their own database system and how to work with this difficulties

3.They must learn how to take advantage of existing database technology to make database development efforts more productive and successful

Objectives:

At the conclusion of this lesson, students should be able to do the following:

1.The student will be able to define a formal language, the differences between high and low level computer languages, and give examples of each. The student will be able to describe the advantages/disadvantages of the different language levels, and perhaps give examples where one should be used over another.

2.The student will be able to demonstrate an algorithm using a real world paradigm (i.e.. Tying shoes,making a peanut butter sandwich).

3.The student will be able to describe the components that make up the average structure of an imperative program and how they might map to a real world paradigm.

4.The student will be able to describe and give full examples of the different types of errors that can occur in a computer program, and attempt to map them to the same real world paradigm developed above.

5. (Possible) The students will learn how a program is broken down into execution code that runs on the microcomputer, possible mentions of tokenizers, lexical analyzers, and relevant assemblers. This is not necessary and dependent on time. The binary nature of instruction execution will likely be introduced with the introduction of the array data structure.

6. Successfully perform database programming using C++.

7. Write the correct and running source code for a given database using Visual C++.

8. Choose the appropriate Database technology in connection with C++ programming.

Resources:

Brains. Writing implements and paper for possible flow charts and modeling. Projector/Computer for demonstrating examples.

Methods

Introduction:

1.Lecture on the brief history of computer programming and the development of formal languages while comparing and contrasting them to natural languages. And explain why computer languages are necessarily formal.

2.Lecture on the nature of an algorithm and why it's necessary from a computing perspective.

3.Introduce the makeup of a computer program (i.e. input,output,math,conditional execution,repetition).

4.Describe how the above can encounter errors of either programmer or environmental origin.

5. Possible lecture relating the objective #4 above.

Engagement:

1. During lecture ask for supportive examples from the students, assuming said examples are not forthcoming, the instructor will attempt to provide them.

2.Before asking the students to develop their own, the instructor will give basic examples of real computer programs that demonstrate the nature of an algorithm.

Class Practice:

1. Ask the students to develop an algorithm for a mundane task that integrates the programming components described in the lecture portion via a flow chart. This will be done as a group.

2.Instructor will introduce errors into the student developed algorithm in an attempt to elicit corrective responses from the students.

Independent Practice:

1.The students will develop a simple computer program model of their own choosing demonstrating the minimal sets of elements that construe a program, in a fashion to that demonstrated in class. They will then deliver a short essay on what errors they believe their program may be vulnerable to and offer ideas for improvement.

2. The student will be responsible for studying an instructor provided vocabulary list and should be able to define all terms thereto.

Accommodations (Differentiated Instruction):

To be determined as per the requirements of the students.

Learning Checkup:

A short quiz will be delivered at the end of the lesson, and students will be queried for specific points in which they may feel they lack understanding.

Wrap Up:

Once it has been demonstrated that the students understand the abstracted program model, syntactic elements of the language of instruction will be introduced.

As part of the quiz students will be required to grade the instructor on his delivery of material and give a short suggestion of improvement.