Platforms for Learning in Computer Science July 28, 2005.

Slides:



Advertisements
Similar presentations
MICHAEL MARINO CSC 101 Whats New in Office Office Live Workspace 3 new things about Office Live Workspace are: Anywhere Access Store Microsoft.
Advertisements

Programming Paradigms and languages
Teaching with Greenfoot
Lecture Roger Sutton 21: Revision 1.
Creating a Program In today’s lesson we will look at: what programming is different types of programs how we create a program installing an IDE to get.
Lecture Tagging and Search Motivation Ubiquitous Presenter (UP) is a system designed at UCSD to promote and demonstrate the concept of “active learning.”
Automating Tasks With Macros
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
The C++ Tracing Tutor: Visualizing Computer Program Behavior for Beginning Programming Courses Rika Yoshii Alastair Milne Computer Science Department California.
Microsoft Visio is diagramming software for Microsoft Windows. It uses vector graphics to create diagrams. The 2007 Standard and Professional editions.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
CS 206 Introduction to Computer Science II 01 / 23 / 2009 Instructor: Michael Eckmann.
Proposal 13 HUMAN CENTRIC COMPUTING (COMP106) ASSIGNMENT 2.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Understanding Task Orientation Guidelines for a Successful Manual & Help System.
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Label production Solution with Label Gallery programs Label Gallery is used for general label design and print GalleryData is used to create small database.
A Tour of the ELES Online Study Skills Handbook for Secondary Schools. This site will help your students improve their results.
V Avon High School Tech Club Agenda Old Business –Delete Files New Business –Week 16 Topics: Intro to HTML/CSS –Questions? Tech Club Forums.
Chapter 12: The Internet The ultimate direct. Internet Facts U.S. firms spend $14.7 billion on Internet advertising in 2005 By 2010, they are expected.
MrsBillinghurst. net A2 Computing A2 Computing Projects Game Animation in Pascal.
CS110/CS119 Introduction to Computing (Java)
Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Software: Building apps Suitable for: Advanced.
FUNDAMENTALS OF PROGRAMMING SM1204 SEMESTER A 2012.
CIS—100 Chapter 9—PowerPoint 1. The PowerPoint User Interface 2 There is a tall band across the screen that contains many, very visual commands arranged.
Advanced Web Design Scripting Tutorial Chapters. Scripting Intro The scripting part of the forthcoming Advanced Web Design textbook introduces you to.
IE 411/511: Visual Programming for Industrial Applications
CS1022 Computer Programming & Principles Lecture 1.2 A brief introduction to Python.
ABI Gradebook Training We are all in this together!
PHP meets MySQL.
The Effectiveness of Web Components Presented By: Geoffrey Zimmerman Computer Science Capstone Fall 2004/Spring 2005 Mentor: Dr. C. David Shaffer.
Computer Programming 12 Mr. Jean March 19 th, 2013.
Lecture 5: Using Computers: Important Ideas Tonga Institute of Higher Education IT 141: Information Systems.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 13: An Introduction to C++
REVIEW On Friday we explored Client-Server Applications with Sockets. Servers must create a ServerSocket object on a specific Port #. They then can wait.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
1 CSC 222: Object-Oriented Programming Spring 2013 Course goals:  To know and use basic Java programming constructs for object- oriented problem solving.
1 Visual Studio.NET.NET as a Teaching Tool John D. Haney John M. Lovely Northern Arizona University College of Business Administration.
1 CSC 321: Data Structures Fall 2013 See online syllabus (also available through BlueLine2): Course goals:  To understand.
University of Sunderland CIF 102/FIF102 Fundamentals of DatabasesUnit 15 Programming in Microsoft Access using VBA Using VBA to add functionality.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
C++ and Ubuntu Linux Review and Practice CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and.
1 Object-Oriented Programming (Java), Unit 24 Stand In Final Project Description Kirk Scott.
CS324e - Elements of Graphics and Visualization Java GUIs - Event Handling.
SD1230 Unit 6 Desktop Applications. Course Objectives During this unit, we will cover the following course objectives: – Identify the characteristics.
Human Centric Computing (COMP106) Assignment 2 PROPOSAL 23.
CIS Intro to JAVA Lecture Notes Set July-05 GUI Programming – Home and reload buttons for the webbrowser, Applets.
Sequencing The most simple type of program uses sequencing, a set of instructions carried out one after another. Start End Display “Computer” Display “Science”
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
Windows 8 A touch screen computer on a desktop. Windows Metro.
Introduction Mehdi Einali Advanced Programming in Java 1.
INTRODUCTION TO E-LEARNING. Objectives This chapter contains information on understanding the fundamental concepts of e-learning. In this chapter, e-learning.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
CSC 222: Object-Oriented Programming
CSC 222: Object-Oriented Programming
Algorithms and Problem Solving
CSC 321: Data Structures Fall 2016
CSC 321: Data Structures Fall 2015
CSC 222: Object-Oriented Programming
Software Programming J. Holvikivi 2014.
Learning to Program in Python
Lecture Topics: 11/1 General Operating System Concepts Processes
Event loops 17-Jan-19.
Algorithms and Problem Solving
Creative Project Revised 3/02
Presentation transcript:

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

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

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

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

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

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