c++ code generation for high school visual development cpsc501 james maxlow november 26 th, 2002

8
C++ Code Generation C++ Code Generation For High School For High School Visual Development Visual Development CPSC501 CPSC501 James Maxlow James Maxlow November 26 November 26 th th , 2002 , 2002

Upload: garry-clarke

Post on 27-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

C++ Code Generation For C++ Code Generation For High School Visual High School Visual

DevelopmentDevelopment

CPSC501CPSC501

James MaxlowJames Maxlow

November 26November 26thth, 2002, 2002

Page 2: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

ProposalProposal

Visual tools will be created to aid in Visual tools will be created to aid in code writing for high school code writing for high school programming studentsprogramming students

Tools will generate C++ code for Tools will generate C++ code for those new to C++ programming, those new to C++ programming, breaking the syntax barrierbreaking the syntax barrier

Achieved through the development Achieved through the development of plugins for two leading visual IDEsof plugins for two leading visual IDEs

Page 3: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

ReasoningReasoning

C++ is often C++ is often not not the first language the first language used by h.s. students due to its used by h.s. students due to its relative syntactic complexityrelative syntactic complexity

C++ C++ is is often the language of often the language of advanced h.s. students, and of the advanced h.s. students, and of the industryindustry

Time is lost learning other languages Time is lost learning other languages (Fortran, Pascal, Basic variants) that (Fortran, Pascal, Basic variants) that could be better spent on C++could be better spent on C++

Page 4: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

ReasoningReasoning

The syntax barrier can be removed The syntax barrier can be removed through visual development toolsthrough visual development tools

Students can learn core Students can learn core programming concepts from the startprogramming concepts from the start

There will be no repetition of learning There will be no repetition of learning equivalent language constructsequivalent language constructs

Students can benefit from using Students can benefit from using complex, working code without complex, working code without having to create it on their ownhaving to create it on their own

Page 5: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

ExampleExample

1: User selects 1: User selects constructconstruct

2: User selects all 2: User selects all associated parametersassociated parameters

3: Code is generated, cursor 3: Code is generated, cursor is placed within constructis placed within construct

Page 6: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

Code Generation = Bad Programming?Code Generation = Bad Programming?

Students learn universal programming Students learn universal programming conceptsconcepts

Students are introduced to code Students are introduced to code generatorsgenerators

Students Students learn syntaxlearn syntax through through interaction with code generatorinteraction with code generator

Students move towards coding by hand Students move towards coding by hand as they become more experiencedas they become more experienced

Code Generation != Bad ProgrammingCode Generation != Bad Programming

Page 7: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

What Would I What Would I Actually Do?Actually Do?

Choose which language structures will Choose which language structures will be generatedbe generated

Learn plugin framework for Visual StudioLearn plugin framework for Visual Studio Write code generation pluginsWrite code generation plugins TestTest Learn, Write, Test for CodeWarriorLearn, Write, Test for CodeWarrior Release under GPLRelease under GPL Gather feedback from usage by studentsGather feedback from usage by students

Page 8: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002

SummarySummary

C++ C++ is notis not introduced to beginning introduced to beginning programming students yet programming students yet isis one of one of two main languages used in advanced two main languages used in advanced h.s. and industry programmingh.s. and industry programming

Visual code generation tools can ease Visual code generation tools can ease beginning students into C++, focusing beginning students into C++, focusing their h.s. experience on one languagetheir h.s. experience on one language

Such tools can be written and Such tools can be written and integrated into IDEs under a plugin integrated into IDEs under a plugin frameworkframework