Platforms for Learning in Computer Science

advertisement
Platforms for Learning
in Computer Science
July 28, 2005
In an Ideal Computer Science Program:

Students would:
 Be
able to easily relate topics from different
courses and areas of computer science
 Feel programming assignments are meaningful
 Feel inspired and able to explore further into
topics than required
 Gain experience with larger programs and
maintaining and integrating code more like they
will find in the workforce
The Visualization of Such a Program:

We feel that we could create a program to
meet these needs through a Platform for
Learning
What is a Platform for Learning?
“A platform for learning is a set of
common, unifying objects or experiences
that weave together the various classes in a
curriculum.”
Students begin with a simple version of the
platform project when they start the
program.
 As the student progresses, they continue
adding the new things they learn to the
platform, allowing them to relate many topics
back to one place.

Key Principles in Platforms for Learning

Context for Learning
 Students
can apply topics they learn in lecture to
actual implementation in the platform, reinforcing
lecture topics

Integration between Courses
 The
same platform is used throughout several
different classes, so students can see how different
topics connect together more easily

Personal Ownership
 Students
are more motivated to do well in their
work with their platform, because it is something
that belong to them and they will keep.
More Key Principles

Learning Community
 Students,
even at different stages in their
studies, share a common point of interest,
building a community of learners who share a
common focus

Flexibility
 The
platform supports additions and changes as
the students come up with ideas they would like
to try, encouraging innovation and further
learning.
How Might a Computer Science Platform
Look?
A computer science platform would most likely
be a program that students create and add
functionality to
 There are numerous types of programs that it
could be

A
game, personal organizer, web browser, operating
system and many others are all possible
 Each type of program has its pros and cons (Some
students would find many games very inspiring, but
others would be put off by them.)
An Example Progression of a CS
Platform for the First Two Years
A platform would complement and support
the line of topics already included in the
current curriculum
 Students would begin with a program using a
text-based interface in the imperative
programming paradigm
 They would then add a simple graphical
interface and use the object-oriented paradigm
 They would learn to utilize algorithms and
consider their complexity

More Advanced Possibilities
The platform should support connection to
the web and online interactivity and security
 It should be able to be networked between
other local computers
 It should be able to utilize artificial
intelligence
 Students should be able to add a more
advanced graphical user interface and other
graphics

Platform Style
More important at these beginning stages
than the actual type of program
implemented would be how the platform is
provided to students
 We have identified 3 key forms a CS platform
program could take:

 Entirely
Student Implemented
 Student Implemented with a Library of Helper
Functions/Objects
 Modifications to an Already Working Program
Entirely Student Implemented



In this style, students start out with nothing but an
objective and guidelines on how it could be
implemented using concepts learned in lecture
The idea is that students will be able to completely
understand and be able to implement everything that
is needed in the program
One drawback would be that the program would be
limited to what the students completely understand
and it could be more difficult to create something
inspiring.
Example: An Organizer’s To Do List



This example is a program in C that CS151
(Beginning C Programming) students might
be expected to write completely on their own.
Students start by writing a program that can
print a simple to do list
By the end of the term, the list is user input,
can be saved to and loaded from disk, and can
be sorted using different methods
To Do List Example Continued
Added Functionality
Structural Changes
Topics Learned
1
Write welcome message
Printf, defined
constants
2
Prints list
Arrays, for loops
3
Prompts user for input,
repeats
Hard coded list to user
input
User input, while
loops
4
Gives choice on actions
Move code to functions
Select, userdefined functions
5
Sort tasks by date
6
Checks current date, sort
tasks by priority
Parallel arrays to
structures
Structures,
algorithm design
7
Save/Load list, creative
functions
Change sorts to use
pointers
File I/O, pointers
Sorting algorithm
Student Implemented with a Helper
Library



In this style, students would start with a library that
helps students achieve tasks they don’t yet know
enough to complete on their own
They would each write their own program and would
have access to this library just like they would use a
standard library, in order to make it easier to add more
advanced functionality.
A drawback would be that students are working with
ideas they don’t yet understand, and the current
curriculum may need to be rearranged to
accommodate it.
Example: An Organizer’s Calendar
This example is a program in Java that
students might be expected to write in CS161
(Beginning Java Programming) that students
would write with the help of Helper Methods
to make the graphical interface.
 It starts with a simple program to display a
welcome screen and calendar.
 A final version would use a graphical interface
to input tasks and events onto a calendar,
remind the user of events, and save the
calendar to and load it from a file.

Calendar Example Continued
Added Functionality
Structural Changes
Topics Learned
1
Show welcome message,
calendar object
Object creation,
methods, variables
2
Color, animation, text screen, Move objects to show
input line
in a single screen
Arrays, static
methods, variables
3
Change animation, print text
from input to text screen
For loops, user
input, output
4
Listens for clicking on dates,
add/view notes, color dates
5
Buttons to change months
6
Load/Save calendar
7
Add and view events
Change object from
static to an instance,
create methods
User methods,
constructors,
switch, interfaces
ActionListeners
Change days from
strings to objects
User defined
Objects, File I/O
Polymorphism,
threads
Modifications to an Already Working
Program
In this style, students are given a working
program with much of the code provided. Some
sections would be incomplete and need filling in
and some sections would need to be reworked.
Students could also add additional functionality.
 One thing this allows is for students to create
more meaningful programs and practice working
with existing code.
 A drawback is that students may not understand
much of the code in their program and feel less
personal ownership of it.

Example: An Organizer’s Address
Book
This example is a program in Java that
students might be expected to work with and
further develop in CS161 (Beginning Java
Programming).
 They could start with an address book
program that runs, but only displays a single,
hard-coded contact and non-functioning GUI
interface
 The final version would be a multi-page
address book that can be loaded and saved and
organized.

Address Book Example Continued
Added Functionality
Structural Changes Topics Learned
1
Change author name, screen size
Constants,
variables
2
Phone numbers added, more
contacts, display all contacts and
show more info when clicked
Arrays, for-loops,
simple graphical
output
3
Turn pages
Event-driven
programming
4
Sort contacts alphabetically,
accept contacts through text
fields
Sorting algorithm,
String functions,
graphical input
5
Add different kinds of contacts
for business associates and
friends
6
Load/Save address books
Move arrays to
objects
Object Oriented
Programming,
Polymorphism
File I/O
Pros & Cons: A Summary
Style
Pros
Cons
Student
Implemented
Personal Ownership, More
Limited Possibilities in
Complete Understanding,
Early Courses, Could
Matches Current Curriculum Well Be Less Interesting
Student
More Complex Things Possible,
Implemented with Possibly More Interesting, Lots
Helper Library
of Practice Using Libraries
Less Understanding,
May Require Topics
Covered in a Different
Order, Increased
Development Time
Modifications to
Very Complex Things Possible,
Working Program Progressive Versions May Be
Available, Practice Interfacing
with Existing Code
Less Understanding,
Little Personal
Ownership, Difficult
for Beginners to Make
Meaningful Additions,
Increased
Development Time
What Next?
The next step will be to decide which of these
styles of platform or what combination of
them to use.
 After that, we will need to decide on the type
of program to use.

 The
Organizer shown in the examples today is only
one possible solution and may not be the best one.

Once these decisions are made, work can begin
designing and implementing the platform that
complements the current course curriculum for
the first few courses students take.
How Can Microsoft Help?
Continued Advice on Style of Platform Choice
 Suggestions on Type of Platform
 Help Arrange Face to Face Meeting at
Microsoft to Discuss Platforms for Learning
with Microsoft Employees
 ???

Related documents
Download