ten reasons to use c# to teach introductory computer programming kyle lutes, [email protected] jack...

33
Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, [email protected] Jack Purdum, [email protected]

Upload: noah-butler

Post on 17-Dec-2015

223 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Ten Reasons to Use C# to Teach Introductory

Computer Programming

Kyle Lutes, [email protected] Purdum, [email protected]

Page 2: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Background

Kyle Lutes

Associate ProfessorDepartment of Computer TechnologyPurdue UniversityWest Lafayette, Indiana

Page 3: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Introductory Programming Language Choices

Basic Pascal Cobol C C++ Visual Basic Java others C#

Page 4: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

C# is a “true” object-oriented programming language – C# supports:

EncapsulationInheritancePolymorphism

– In C#, all types are derived from System.Object

– Constructors, garbage collection, method overloading, interfaces, multi-threading, etc.

Page 5: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

In addition to Windows forms-based applications, Visual Studio .NET and C# can be used to easily develop:– Web applications using ASP.NET– Client/Server and enterprise applications– Class library DLL components– Pocket PC PDA and Smart Phone applications– Windows Services– Console applications– Graphical and Game applications

Page 6: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Easy to create Windows forms-based applications– More interesting to students– More real-world than console-based

applications– Helps enforce object-oriented

programming through reuse of GUI controls

Page 7: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Visual Studio .NET IDE helps make programming enjoyable:– A form designer for designing Graphical User

Interfaces– Interactive debugging makes it easier to see

how code executes (breakpoints, stepping through code, examining the contents of variables, etc.)

– Next version of Visual Studio .NET supports “edit and continue” debugging

Page 8: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Microsoft makes it easy for educational institutions and students to get Visual Studio .NET– MSDN Academic Alliance– Microsoft Campus Agreements– Visual Studio.NET bundled with textbooks

Page 9: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Microsoft will soon release Visual C# Express– “Visual C# 2005 Express Edition is a simple,

lightweight, integrated development environment designed for beginning programmers and non-professional developers interested in building Windows Forms, class libraries, and console-based applications.”

– http://lab.msdn.microsoft.com/express/vcsharp/default.aspx

Page 10: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Visual Basic is widely accepted as an easy language for beginners to learn, its opponents label Visual Basic as a “toy” programming language limited to simple programming tasks – We have found many students share this uninformed

opinion and object to having to learn Visual Basic– Students would rather learn new technology– Using C# reduces the “I-already-know-all-this”

attitude

Page 11: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Visual Basic gets more complex with each new version, and so loses its advantage over more complex development environments– C# has a smaller keyword set, yet still

offers a robust development language

Page 12: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

More coding examples exist for C# than do for Visual Basic.NET and other .NET languages– Especially true for the MSDN help

examples

Page 13: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Software developers who use C# earn higher salaries than those who use Visual Basic– “Developers who program primarily in C#

earn 26 percent more than those who develop primarily in Visual Basic .NET”

– http://www.ftponline.com/vsm/2003_06/magazine/features/salarysurvey/

Page 14: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

Language used Average salary

C# $98,813

Visual Basic .NET $72,959

Visual Basic 4.0, 5.0, or 6.0 $72,461

Visual C++ 6.0 $75,500

“C# Gets the Big Bucks. Last year, C# developers earned around $5,000 more than Visual Basic .NET developers. This year that gap has widened to an astounding $26,000. It literally pays to know C#—whereas salaries for developers who program primarily in Visual C++ remain flat with last year's numbers.”

Page 15: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

C# uses C-like language syntax making it easier for students to learn Java and/or C++ in post-requisite courses

Page 16: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Why we use C# in our introductory programming course

C# is available for non-Microsoft platforms– “Mono is a comprehensive open source development

platform based on the .NET framework that allows developers to build Linux and cross-platform applications with unprecedented productivity. Mono's .NET implementation is based on the ECMA standards for C# and the Common Language Infrastructure.”

– www.mono-project.com

Page 17: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Jack Purdum, Ph.D.

Assistant ProfessorDepartment of Computer TechnologyPurdue UniversityColumbus, Indiana

Page 18: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Fall 2004 and Spring 2005: >125 students Course assumed no prior programming

experience Pace of material covered was fast Basic terminology: objects, classes, properties,

methods, variables, constants Programming concepts: data types, math

operators and methods, relational operators, logical operators, decisions, loops, arrays, lists, files, classes

Page 19: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Daily quizzes served as incentive to keep up with reading

Weekly programming assignments gave regular practice applying course topics

Participation/attitude Four exams

– two objective (multiple choice)– two coding exams in a lab setting

Team programming project

Page 20: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Team programming project– Create a C# application for a high school athletic

director to manage the athletic event schedules and related information of all high school sports

– Assigned teams had 3-4 students (one had 5)– Flexibility given to teams to refine problem statement

and customize their program for the target user– Bonus points given for creativity, resourcefulness,

addition of value-added features

Page 21: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Team programming project– Attempt to balance skill-level of teams as

evenly as possible All teams had at least one strong student and one

student who was experiencing some difficulty Where possible, teams had students from different

background – few female students on different teams– few minority students on different teams

Page 22: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Student seem more excited learning C#. Especially those who have used Visual Basic because they feel they are learning something new

Former CS students tell us how nice it is to develop with Visual Studio .NET rather than command-line tools

Page 23: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

When we used Visual Basic .NET, students who knew VB 6 assumed VB .NET was the same. Required some “unlearning”

With Visual Basic, many student assumed that because they saw the word class in their code they were doing object-oriented programming. More “unlearning” was necessary

Page 24: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

We don’t have to spend weeks teaching the IDE instead of programming concepts

We believe the reduced keyword count found in C# compared to Visual Basic is a plus

Page 25: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Transition between the intro course and subsequent courses appears easier

What they learn in C# is valuable in the web and Java courses

Page 26: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Because there are fewer preconceived notions about the language by students, we feel it’s been easier to teach the course

Crisp syntax helps, too

Page 27: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

C# syntax makes the movement from design to implementation fairly easy

The students seem more willing to actual think about a lab assignment before they start writing the solution to it!

Page 28: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Our experiences using C# in our introductory programming course

Non-traditional students believe there is value added using C#

(It appears that most felt they would never use VB in “real life”…not so with C#)

Page 29: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Recommended Textbook

An Information Systems Approach to Object-Oriented Programming using Microsoft Visual C# .NET– Kyle Lutes, Alka Harriger, Jack Purdum

Available March 2005!

Page 30: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Recommended Textbook

Highlights:– Teaches computer programming from an application

developer perspective– Object-oriented programming integrated throughout – Teaches object-oriented programming with no prior

programming experience assumed– Use C# as the programming language– Uses Windows forms-based applications (rather than

console applications) – Each chapter divided into Essentials and Bonus

sections

Page 31: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Summary

We believe C# and Visual Studio .NET provide many advantages over Visual Basic .NET and Java for teaching introductory computer programming

Page 32: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Summary

1. True Object-Oriented Language2. Easy to create GUI applications like students are used to using3. Can be used to create many other types of applications4. Visual Studio .NET makes programming enjoyable5. Easy for educational institutions to get Visual Studio .NET6. C# not seen as a "toy" language like VB7. VB gets more complex with each new version8. More coding examples for C#9. C# software developers earn more than Java developers10. C-like language syntax aids transition to Java and C++

Page 33: Ten Reasons to Use C# to Teach Introductory Computer Programming Kyle Lutes, kdlutes@purdue.edu Jack Purdum, jpurdum@purdue.edu

Questions and Answers

Kyle Lutes, [email protected] Purdum, [email protected]