c++ code generation for high school visual development cpsc501 james maxlow november 26 th, 2002
TRANSCRIPT
![Page 1: C++ Code Generation For High School Visual Development CPSC501 James Maxlow November 26 th, 2002](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022072013/56649e4a5503460f94b3e891/html5/thumbnails/8.jpg)
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