Top Banner
Platforms for Learning in Computer Science July 28, 2005
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Platforms for Learning in Computer Science July 28, 2005.

Platforms for Learningin Computer ScienceJuly 28,

2005

Page 2: 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

Page 3: Platforms for Learning in Computer Science July 28, 2005.

The Visualization of Such a Program:

We feel that we could create a program to meet these needs through a Platform for Learning

Page 4: Platforms for Learning in Computer Science July 28, 2005.

What is a Platform for Learning?

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.

“A platform for learning is a set of common, unifying objects or experiences that weave together the various classes in a curriculum.”

Page 5: Platforms for Learning in Computer Science July 28, 2005.

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 CoursesThe same platform is used throughout several

different classes, so students can see how different topics connect together more easily

Personal OwnershipStudents are more motivated to do well in

their work with their platform, because it is something that belong to them and they will keep.

Page 6: Platforms for Learning in Computer Science July 28, 2005.

More Key Principles

Learning CommunityStudents, even at different stages in

their studies, share a common point of interest, building a community of learners who share a common focus

FlexibilityThe platform supports additions and

changes as the students come up with ideas they would like to try, encouraging innovation and further learning.

Page 7: Platforms for Learning in Computer Science July 28, 2005.

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 beA 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.)

Page 8: Platforms for Learning in Computer Science July 28, 2005.

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

Page 9: Platforms for Learning in Computer Science July 28, 2005.

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

Page 10: Platforms for Learning in Computer Science July 28, 2005.

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 ImplementedStudent Implemented with a Library of

Helper Functions/ObjectsModifications to an Already Working

Program

Page 11: Platforms for Learning in Computer Science July 28, 2005.

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.

Page 12: Platforms for Learning in Computer Science July 28, 2005.

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

Page 13: Platforms for Learning in Computer Science July 28, 2005.

To Do List Example ContinuedAdded 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, user-defined functions

5 Sort tasks by date Sorting algorithm

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

Page 14: Platforms for Learning in Computer Science July 28, 2005.

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.

Page 15: Platforms for Learning in Computer Science July 28, 2005.

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.

Page 16: Platforms for Learning in Computer Science July 28, 2005.

Calendar Example ContinuedAdded Functionality Structural Changes Topics Learned

1 Show welcome message, calendar object

Object creation, methods, variables

2 Color, animation, text screen, input line

Move objects to show 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

Change object from static to an instance, create methods

User methods, constructors, switch, interfaces

5 Buttons to change months

ActionListeners

6 Load/Save calendar Change days from strings to objects

User defined Objects, File I/O

7 Add and view events Polymorphism, threads

Page 17: Platforms for Learning in Computer Science July 28, 2005.

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.

Page 18: Platforms for Learning in Computer Science July 28, 2005.

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.

Page 19: Platforms for Learning in Computer Science July 28, 2005.

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

Move arrays to objects

Object Oriented Programming, Polymorphism

6 Load/Save address books File I/O

Page 20: Platforms for Learning in Computer Science July 28, 2005.

Pros & Cons: A SummaryStyle Pros Cons

Student Implemented

Personal Ownership, More Complete Understanding, Matches Current Curriculum Well

Limited Possibilities in Early Courses, Could Be Less Interesting

Student Implemented with Helper Library

More Complex Things Possible, Possibly More Interesting, Lots of Practice Using Libraries

Less Understanding, May Require Topics Covered in a Different Order, Increased Development Time

Modifications to Working Program

Very Complex Things Possible, 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

Page 21: Platforms for Learning in Computer Science July 28, 2005.

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.

Page 22: Platforms for Learning in Computer Science July 28, 2005.

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

???