the design and implementation of a first course in computer programming for computing majors,...

23
The Design and Implementation The Design and Implementation of a First Course in Computer of a First Course in Computer Programming for Computing Programming for Computing Majors, Non-Majors, and Majors, Non-Majors, and Industry Professionals within a Industry Professionals within a Liberal Education Framework Liberal Education Framework Ronald J. Harkins, Miami Ronald J. Harkins, Miami University University Hamilton, Ohio Hamilton, Ohio 1

Upload: thomasina-mcbride

Post on 31-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

The Design and Implementation of a The Design and Implementation of a First Course in Computer First Course in Computer

Programming for Computing Programming for Computing Majors, Non-Majors, and Industry Majors, Non-Majors, and Industry

Professionals within a Liberal Professionals within a Liberal Education FrameworkEducation Framework

Ronald J. Harkins, Miami UniversityRonald J. Harkins, Miami University

Hamilton, OhioHamilton, Ohio 1

Introduction to Computer Concepts and Introduction to Computer Concepts and Programming (CSA 163)Programming (CSA 163)

First course in problem solving/programming in First course in problem solving/programming in Visual BasicVisual Basic

Satisfies Liberal Education Requirement Satisfies Liberal Education Requirement (Mathematics, Formal Reasoning, Technology)(Mathematics, Formal Reasoning, Technology)

Enrolled studentsEnrolled students Computing majors preparing to take OOP course in JavaComputing majors preparing to take OOP course in Java Working professionals updating programming skillsWorking professionals updating programming skills Non-majors fulfilling liberal education requirementNon-majors fulfilling liberal education requirement

2

Miami PlanMiami Plan Liberal Education Principles Liberal Education Principles

Critical ThinkingCritical Thinking Understanding ContextsUnderstanding Contexts Engaging with Other LearnersEngaging with Other Learners Reflecting and ActingReflecting and Acting

3

Critical Thinking Critical Thinking Principle in CSA 163Principle in CSA 163

Algorithm DevelopmentAlgorithm Development Problem Solving/Logical ReasoningProblem Solving/Logical Reasoning Relevance of Input Data and Output InformationRelevance of Input Data and Output Information Debugging ProgramsDebugging Programs Appraisal of alternative algorithms/solutionsAppraisal of alternative algorithms/solutions

4

Critical Thinking Critical Thinking Principle in CSA 163Principle in CSA 163(cont.)(cont.)

Computing majors and Working Professionals Computing majors and Working Professionals seem to exhibit different levels of critical thinking seem to exhibit different levels of critical thinking skills than non-majorsskills than non-majors

Small groups and pair programming activities seem Small groups and pair programming activities seem to help non-majors with quantitative critical to help non-majors with quantitative critical thinking tasksthinking tasks

Socially relevant context in problem solving helps Socially relevant context in problem solving helps focus critical thinking of non-majorsfocus critical thinking of non-majors

5

Understanding Context Understanding Context PrinciplePrinciple in CSA 163 in CSA 163

Studying related computer concepts adds context to Studying related computer concepts adds context to computer programmingcomputer programming

Working professionals and computing majors are Working professionals and computing majors are familiar with many computer conceptsfamiliar with many computer concepts

Non-majors/liberal education students contribute to Non-majors/liberal education students contribute to technical topics under study by providing related technical topics under study by providing related cultural/societal implicationscultural/societal implications

6

Engaging With Other Learners Engaging With Other Learners Principle in Principle in CSA 163CSA 163

Improves confidence and self-esteemImproves confidence and self-esteem Helps dissolve classroom hierarchiesHelps dissolve classroom hierarchies Reduces student competitionReduces student competition Encourages cooperationEncourages cooperation

7

Pair Programming in CSA 163Pair Programming in CSA 163

““Driver” and “Navigator” share one computerDriver” and “Navigator” share one computer Roles change periodically to ensure both Roles change periodically to ensure both

experiences for each partnerexperiences for each partner Mixed constituency pairingsMixed constituency pairings

Non-majors provide “user considerations”Non-majors provide “user considerations” Majors provide technical expertiseMajors provide technical expertise Professionals provide real-life rationaleProfessionals provide real-life rationale

8

Pair Programming in CSA 163Pair Programming in CSA 163BenefitsBenefits

Students sometimes learn more from others than from a Students sometimes learn more from others than from a text…or professor!text…or professor!

Problem solving/programming is more socially Problem solving/programming is more socially enjoyable and satisfyingenjoyable and satisfying

Computing majors seem empoweredComputing majors seem empowered Professionals add “on the job” commentaryProfessionals add “on the job” commentary Non-majors seem more comfortable with peersNon-majors seem more comfortable with peers Team-programming extends naturally from pair Team-programming extends naturally from pair

programmingprogramming

9

Pair Programming in CSA 163Pair Programming in CSA 163ChallengesChallenges

Balancing work contribution between partnersBalancing work contribution between partners Completion of pair activities outside of classCompletion of pair activities outside of class Partner dependencyPartner dependency

10

Reflecting and Acting Reflecting and Acting PrinciplePrinciple in CSA 163 in CSA 163

Altering code and noting impact of modificationsAltering code and noting impact of modifications Testing programs with different data sets and noting Testing programs with different data sets and noting

accuracy of output informationaccuracy of output information Noting “real life” relevance of output informationNoting “real life” relevance of output information Adjusting interface to improve customer (user) Adjusting interface to improve customer (user)

friendlinessfriendliness Making code ‘forgiving’ for customers (users)Making code ‘forgiving’ for customers (users)

11

Reflecting and Acting Reflecting and Acting PrinciplePrinciple in CSA 163 (cont’d) in CSA 163 (cont’d)

Utilize societal issues/problems to encourage Utilize societal issues/problems to encourage reflection/action on program outputreflection/action on program output

Require written reflective commentary to Require written reflective commentary to accompany program outputaccompany program output

Consider requiring oral presentations, with Consider requiring oral presentations, with reflective review, for team programming projects reflective review, for team programming projects

12

Reflecting and Acting Reflecting and Acting PrinciplePrinciple in CSA 163 (cont’d) in CSA 163 (cont’d)

Writing opportunities can include:Writing opportunities can include: Short answer questions on exams, assignmentsShort answer questions on exams, assignments Extensive explanatory program documentationExtensive explanatory program documentation Short opinion/reflection paperShort opinion/reflection paper Short technical research paperShort technical research paper Meaningful writing experiences targeted to each Meaningful writing experiences targeted to each

student constituency groupstudent constituency group

13

Aligning Pedagogy with Objectives for Aligning Pedagogy with Objectives for Computing Majors, Non-Majors, and Computing Majors, Non-Majors, and

Industry Professionals in CSA 163Industry Professionals in CSA 163

Discovery learning challenges for majorsDiscovery learning challenges for majors Reflective activities for non-majorsReflective activities for non-majors Real-life applications with tangible results/skills Real-life applications with tangible results/skills

for working professionalsfor working professionals Student constituency diversity improves the Student constituency diversity improves the

coursecourse

14

Pedagogical Maxims for Mixed Pedagogical Maxims for Mixed Constituency Technology Constituency Technology

CoursesCourses Just Do ItJust Do It Mix It UpMix It Up Can I Help You?Can I Help You? Put It In WritingPut It In Writing Get RealGet Real But Does It (Always) Work?But Does It (Always) Work? How’s It Going?How’s It Going? Be ThereBe There 15

Pedagogical Maxims for Mixed Pedagogical Maxims for Mixed Constituency Technology CoursesConstituency Technology Courses

Just Do ITJust Do IT Online active learningOnline active learning Practice, mastery, discovery learningPractice, mastery, discovery learning

Mix It UpMix It Up Short, interruptive lecturesShort, interruptive lectures Demonstrations, lab activities, quizzesDemonstrations, lab activities, quizzes Whole class involvement (eg. group debugging)Whole class involvement (eg. group debugging)

16

Pedagogical Maxims for Mixed Pedagogical Maxims for Mixed Constituency Technology CoursesConstituency Technology Courses

Can I Help You?Can I Help You? Encourage peer learningEncourage peer learning Act as a “helicopter instructor” during pair Act as a “helicopter instructor” during pair

programming activitiesprogramming activities((Engaging with other learners Engaging with other learners principle)principle)

Put It In WritingPut It In Writing Integrate writing into course activitiesIntegrate writing into course activities Incorporate reflection/action into writing directivesIncorporate reflection/action into writing directives Connect major written paper with objectives of each Connect major written paper with objectives of each

student constituencystudent constituency17

Pedagogical Maxims for Mixed Pedagogical Maxims for Mixed Constituency Technology CoursesConstituency Technology Courses

Get RealGet Real Include ‘real-life’ problems for program solutionInclude ‘real-life’ problems for program solution Direct applications to needs of enrolled constituenciesDirect applications to needs of enrolled constituencies Use analogies for difficult programming topics Use analogies for difficult programming topics

(Understanding contexts principle)(Understanding contexts principle) Try to include problems with societal/ethical issues Try to include problems with societal/ethical issues

((Reflecting and acting Reflecting and acting principle)principle)

18

Pedagogical Maxims for Mixed Pedagogical Maxims for Mixed Constituency Technology CoursesConstituency Technology Courses

But Does It (Always) Work?But Does It (Always) Work? Require extensive testing to encourage development of Require extensive testing to encourage development of

robust, reliable, algorithmsrobust, reliable, algorithms In pair programming labs, have one partner ‘break’ the In pair programming labs, have one partner ‘break’ the

program, while the other tries to fix it (program, while the other tries to fix it (Critical Critical thinking thinking principle)principle)

Ask students to comment on relevance of output Ask students to comment on relevance of output information (information (Reflecting and acting Reflecting and acting principle)principle)

19

Pedagogical Maxims for Mixed Pedagogical Maxims for Mixed Constituency Technology CoursesConstituency Technology Courses

How’s It Going?How’s It Going? Assess frequentlyAssess frequently Include formative evaluationInclude formative evaluation Use a variety of evaluative techniquesUse a variety of evaluative techniques Focus certain evaluation methods to certain class Focus certain evaluation methods to certain class

constituenciesconstituencies Try peer evaluation (student and instructor led)Try peer evaluation (student and instructor led)

20

Pedagogical Maxims for Mixed Pedagogical Maxims for Mixed Constituency Technology CoursesConstituency Technology Courses

Be ThereBe There Encourage attendance with a ‘class session event’Encourage attendance with a ‘class session event’ Try posting ‘incomplete’ lecture notes to be completed Try posting ‘incomplete’ lecture notes to be completed

in classin class Try to incorporate active learning into every class Try to incorporate active learning into every class

sessionsession

21

ConclusionConclusion A technology-driven course, while focused on A technology-driven course, while focused on

problem solving and skill acquisition, can problem solving and skill acquisition, can nonetheless be structured to incorporate the nonetheless be structured to incorporate the critical thinking, understanding contexts, critical thinking, understanding contexts, engaging with other learners, and the engaging with other learners, and the reflection/action educational principles to produce reflection/action educational principles to produce a course rich in both liberal education and a course rich in both liberal education and technical skill acquisition. This mix is very technical skill acquisition. This mix is very appropriate for today’s students preparing for appropriate for today’s students preparing for tomorrow’s careers in an increasingly technical tomorrow’s careers in an increasingly technical and culturally diverse society.and culturally diverse society.

22

Thank You…Thank You…

Dr. Ronald J. HarkinsDr. Ronald J. Harkins

Associate Professor, Department of Computer Associate Professor, Department of Computer and Information Technologyand Information Technology

Miami UniversityMiami University

Hamilton, OhioHamilton, Ohio

Email: [email protected]: [email protected]

23