Presentation is loading. Please wait.

Presentation is loading. Please wait.

Platforms for Learning in Computer Science July 28, 2005.

Similar presentations


Presentation on theme: "Platforms for Learning in Computer Science July 28, 2005."— Presentation transcript:

1 Platforms for Learning in Computer Science July 28, 2005

2 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

3 The Visualization of Such a Program: We feel that we could create a program to meet these needs through a Platform for Learning

4 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.”

5 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.

6 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.

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

8 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

9 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

10 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

11 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.

12 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

13 To Do List Example Continued Added FunctionalityStructural ChangesTopics Learned 1Write welcome messagePrintf, defined constants 2Prints listArrays, for loops 3Prompts user for input, repeats Hard coded list to user input User input, while loops 4Gives choice on actionsMove code to functionsSelect, user- defined functions 5Sort tasks by dateSorting algorithm 6Checks current date, sort tasks by priority Parallel arrays to structures Structures, algorithm design 7Save/Load list, creative functions Change sorts to use pointers File I/O, pointers

14 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.

15 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.

16 Calendar Example Continued Added FunctionalityStructural ChangesTopics Learned 1Show welcome message, calendar object Object creation, methods, variables 2Color, animation, text screen, input line Move objects to show in a single screen Arrays, static methods, variables 3Change animation, print text from input to text screen For loops, user input, output 4Listens for clicking on dates, add/view notes, color dates Change object from static to an instance, create methods User methods, constructors, switch, interfaces 5Buttons to change monthsActionListeners 6Load/Save calendarChange days from strings to objects User defined Objects, File I/O 7Add and view eventsPolymorphism, threads

17 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.

18 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.

19 Address Book Example Continued Added FunctionalityStructural ChangesTopics Learned 1Change author name, screen sizeConstants, variables 2Phone numbers added, more contacts, display all contacts and show more info when clicked Arrays, for-loops, simple graphical output 3Turn pagesEvent-driven programming 4Sort contacts alphabetically, accept contacts through text fields Sorting algorithm, String functions, graphical input 5Add different kinds of contacts for business associates and friends Move arrays to objects Object Oriented Programming, Polymorphism 6Load/Save address booksFile I/O

20 Pros & Cons: A Summary StyleProsCons 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

21 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.

22 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 ???


Download ppt "Platforms for Learning in Computer Science July 28, 2005."

Similar presentations


Ads by Google