Top Banner
CSCI N241: CSCI N241: Fundamentals of Web Development Fundamentals of Web Development Copyright Copyright ©2006 ©2006 Department of Computer & Information Science Department of Computer & Information Science Introducing N241 Introducing N241
24
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: Introducing N241

CSCI N241:CSCI N241: Fundamentals of Web DevelopmentFundamentals of Web Development

Copyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

Introducing N241Introducing N241

Page 2: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

GoalsGoals

By the end of today’s lecture, you By the end of today’s lecture, you should …should …

• … … understand understand Computer Science as the Computer Science as the study of algorithmsstudy of algorithms..

• … … understand some of the tools we’ll understand some of the tools we’ll be using in the semesterbe using in the semester

• … … have created your Pegasus have created your Pegasus account.account.

Page 3: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

Computer use is PervasiveComputer use is Pervasive

• Banking Banking

• Air TrafficAir Traffic

• Space TravelSpace Travel

• CommerceCommerce

• MedicineMedicine

• Public SafetyPublic Safety

• EducationEducation

• AutomotiveAutomotive• MilitaryMilitary• GPSGPS• EntertainmentEntertainment• FinanceFinance• TelecommunicationsTelecommunications• What else?What else?

Page 4: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

What is Computer Science?What is Computer Science?

• NOT about coding or hardware or NOT about coding or hardware or software!software!

• Computer Science is about PROBLEM Computer Science is about PROBLEM SOLVINGSOLVING

• Computer Science is about DEVELOPING Computer Science is about DEVELOPING ALGORITHMS to solve complex problemsALGORITHMS to solve complex problems

• Computers are merely tools for solving Computers are merely tools for solving problems!problems!

Page 5: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

AlgorithmsAlgorithms

• Well-developed, organized approaches Well-developed, organized approaches to solving complex problemsto solving complex problems

• Test of a good algorithm:Test of a good algorithm:– Does the algorithm solve the stated problem?Does the algorithm solve the stated problem?– Is the algorithm well-defined?Is the algorithm well-defined?– Does the algorithm produce an output?Does the algorithm produce an output?– Does the algorithm end in a reasonable length Does the algorithm end in a reasonable length

of time?of time?

Page 6: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

Developing an AlgorithmDeveloping an Algorithm

1.1. Identify the InputsIdentify the Inputs– What data do I need?What data do I need?– How will I get the data?How will I get the data?– In what format will the data be?In what format will the data be?

2.2. Identify the Processes:Identify the Processes:– How can I manipulate data to produce meaningful How can I manipulate data to produce meaningful

results?results?

3.3. Identify Outputs:Identify Outputs:– What outputs do I need to return to the user?What outputs do I need to return to the user?– What format should the outputs take?What format should the outputs take?

Page 7: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

Developing an AlgorithmDeveloping an Algorithm

4.4. Develop a HIPO chartDevelop a HIPO chartPROBLEM

INPUT PROCESSES OUTPUT

MODULE MODULE MODULE MODULE MODULE MODULE

Page 8: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

Developing an AlgorithmDeveloping an Algorithm

5.5. Identify relevant modulesIdentify relevant modules– How can I break larger problems into How can I break larger problems into

smaller, more manageable pieces?smaller, more manageable pieces?– What inputs do the modules need?What inputs do the modules need?– What processes need to happen in the What processes need to happen in the

modules?modules?– What outputs are produced by the modules?What outputs are produced by the modules?

Page 9: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

ProgramsPrograms

• Sets of instructions that get the Sets of instructions that get the computer to do somethingcomputer to do something

• Instructions are translated, eventually, Instructions are translated, eventually, to machine language using an to machine language using an interpreter or a compilerinterpreter or a compiler

• Programs may be a few lines or Programs may be a few lines or millions of lines of codemillions of lines of code

Page 10: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

Programming TasksProgramming Tasks

• All computer programs are written so they can All computer programs are written so they can take data, manipulate and then produce a take data, manipulate and then produce a result.result.

• This process uses three distinct tasks:This process uses three distinct tasks:– INPUTINPUT – getting data from an external source (the user, a – getting data from an external source (the user, a

database, a file, etc.)database, a file, etc.)– PROCESSINGPROCESSING – actual manipulation of the data – actual manipulation of the data– OUTPUTOUTPUT – reporting the results of data manipulation back – reporting the results of data manipulation back

(using the monitor, writing information to a database, etc.)(using the monitor, writing information to a database, etc.)

Page 11: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

The Programming The Programming Development CycleDevelopment Cycle

• Done after identifying inputs, Done after identifying inputs, processing & outputsprocessing & outputs

• StepsSteps1.1. Analyze the problemAnalyze the problem

2.2. Plan a solution to the problem (algorithm)Plan a solution to the problem (algorithm)

3.3. Design the user interfaceDesign the user interface

Page 12: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

The Programming The Programming Development CycleDevelopment Cycle

• Steps (continued)Steps (continued)4.4. Code the solutionCode the solution

5.5. Test and debug the solutionTest and debug the solution

6.6. Complete program documentationComplete program documentation

7.7. Begin to plan for next release (start Cycle Begin to plan for next release (start Cycle again)again)

Page 13: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

1. Analyze the Problem1. Analyze the Problem

• Questions to ask:Questions to ask:– Who is my intended audience?Who is my intended audience?– What SPECIFIC outcomes does my audience What SPECIFIC outcomes does my audience

expect?expect?– What business rules is my audience What business rules is my audience

expecting to have incorporated into the expecting to have incorporated into the solution?solution?

– What is the SCOPE of the problem? What is the SCOPE of the problem?

Page 14: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

2. Plan a Solution (Algorithm)2. Plan a Solution (Algorithm)

• What types of programming structures are What types of programming structures are needed?needed?– Sequential structuresSequential structures

– Conditional structuresConditional structures

– Looping structuresLooping structures

• What data structures are needed?What data structures are needed?– VariablesVariables

– ListsLists

– ArraysArrays

Page 15: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

3. Design the User Interface3. Design the User Interface

• AKA – The “UI”AKA – The “UI”• Is the UI “learnable”?Is the UI “learnable”?• Is it simple? (Limit user choices)Is it simple? (Limit user choices)• Does the UI promote error-proof use?Does the UI promote error-proof use?• Is the layout of the UI arranged in a Is the layout of the UI arranged in a

fashion conducive to the user’s fashion conducive to the user’s culture and expectations?culture and expectations?

Page 16: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

4. Code the Solution4. Code the Solution

• Develop an actual program from an Develop an actual program from an algorithmalgorithm

• Should be the “easiest” part of the Should be the “easiest” part of the process – all the work should already process – all the work should already be done!be done!

Page 17: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

5. Test & Debug the Solution5. Test & Debug the Solution

• Alpha Testing – Internal testing done with Alpha Testing – Internal testing done with expected client data (NOT LIVE DATA)expected client data (NOT LIVE DATA)

• Beta Testing – Testing done at the client Beta Testing – Testing done at the client site with their data (USUALLY LIVE DATA)site with their data (USUALLY LIVE DATA)

• Try to predict common user errorsTry to predict common user errors

• Test subjects should be Power Users, Test subjects should be Power Users, Normal Users and NeophytesNormal Users and Neophytes

Page 18: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

6. Complete Documentation6. Complete Documentation

• User Documentation:User Documentation:– User ManualUser Manual– Technical Documentation (for System Administrators)Technical Documentation (for System Administrators)

• Internal Documentation:Internal Documentation:– Documentation commentsDocumentation comments– Code commentsCode comments– Procedural commentsProcedural comments– Should be done while coding!Should be done while coding!

Page 19: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

7. Plan Next Release7. Plan Next Release

• What bugs need to be fixed?What bugs need to be fixed?– Are bugs “critical”? (Need to be fixed in a Are bugs “critical”? (Need to be fixed in a

minor releaseminor release))– If bugs are not critical, they can be fixed in If bugs are not critical, they can be fixed in

next next major releasemajor release

• What product enhancements do the What product enhancements do the users want for the next release?users want for the next release?

Page 20: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

ToolsTools

• The Pegasus ServerThe Pegasus Server– Address: Address: pegasus.cs.iupui.edupegasus.cs.iupui.edu– Uses Unix (more on that later …)Uses Unix (more on that later …)

• Suggested Text Editors:Suggested Text Editors:– Notepad++ for WindowsNotepad++ for Windows– syn Text Editor for Windowssyn Text Editor for Windows– jEdit for Macintosh/Windows/LinuxjEdit for Macintosh/Windows/Linux– Emacs/xEmacs for Emacs/xEmacs for

Macintosh/Windows/LinuxMacintosh/Windows/Linux

Page 21: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

ToolsTools

• Graphics PackagesGraphics Packages– The Gimp (It’s FREE – The Gimp (It’s FREE – http://www.gimp.orghttp://www.gimp.org))– Paint Shop ProPaint Shop Pro– FireworksFireworks– PhotoShopPhotoShop

Page 22: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

ToolsTools

• STRONGLYSTRONGLY Suggested Browser:Suggested Browser:– Mozilla Firefox (Mozilla Firefox (http://www.getfirefox.comhttp://www.getfirefox.com))– Firefox Extensions:Firefox Extensions:

• DOM InspectorDOM Inspector• HTML ValidatorHTML Validator• ColorzillaColorzilla• Web DeveloperWeb Developer

Page 23: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

Questions?Questions?

Page 24: Introducing N241

N241: Fundamentals of Web DevelopmentN241: Fundamentals of Web DevelopmentCopyright Copyright ©2006 ©2006 Department of Computer & Information ScienceDepartment of Computer & Information Science

ResourcesResources

• Bob Molnar, Bob Molnar, N201 Lecture NotesN201 Lecture Notes• Visual Basic.NET Primer PlusVisual Basic.NET Primer Plus by Jack by Jack

Purdum (Sams Publishing, 2003)Purdum (Sams Publishing, 2003)• An Introduction to Programming Using An Introduction to Programming Using

Visual Basic.NET Fifth EditionVisual Basic.NET Fifth Edition by David I. by David I. Schneider (Prentice Hall, 2003)Schneider (Prentice Hall, 2003)

• C: How to ProgramC: How to Program by Deitel & Deitel by Deitel & Deitel (Prentice Hall, 2004)(Prentice Hall, 2004)