Your SlideShare is downloading. ×
Introducing N241
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Introducing N241

191
views

Published on


0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
191
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Introducing N241
  • 2. Goals
    • By the end of today’s lecture, you should …
    • … understand Computer Science as the study of algorithms .
    • … understand some of the tools we’ll be using in the semester
    • … have created your Pegasus account.
  • 3. Computer use is Pervasive
    • Banking
    • Air Traffic
    • Space Travel
    • Commerce
    • Medicine
    • Public Safety
    • Education
    • Automotive
    • Military
    • GPS
    • Entertainment
    • Finance
    • Telecommunications
    • What else?
  • 4. What is Computer Science?
    • NOT about coding or hardware or software!
    • Computer Science is about PROBLEM SOLVING
    • Computer Science is about DEVELOPING ALGORITHMS to solve complex problems
    • Computers are merely tools for solving problems!
  • 5. Algorithms
    • Well-developed, organized approaches to solving complex problems
    • Test of a good algorithm:
      • Does the algorithm solve the stated problem?
      • Is the algorithm well-defined?
      • Does the algorithm produce an output?
      • Does the algorithm end in a reasonable length of time?
  • 6. Developing an Algorithm
    • Identify the Inputs
      • What data do I need?
      • How will I get the data?
      • In what format will the data be?
    • Identify the Processes:
      • How can I manipulate data to produce meaningful results?
    • Identify Outputs:
      • What outputs do I need to return to the user?
      • What format should the outputs take?
  • 7. Developing an Algorithm
    • Develop a HIPO chart
    PROBLEM INPUT PROCESSES OUTPUT MODULE MODULE MODULE MODULE MODULE MODULE
  • 8. Developing an Algorithm
    • Identify relevant modules
      • How can I break larger problems into smaller, more manageable pieces?
      • What inputs do the modules need?
      • What processes need to happen in the modules?
      • What outputs are produced by the modules?
  • 9. Programs
    • Sets of instructions that get the computer to do something
    • Instructions are translated, eventually, to machine language using an interpreter or a compiler
    • Programs may be a few lines or millions of lines of code
  • 10. Programming Tasks
    • All computer programs are written so they can take data, manipulate and then produce a result.
    • This process uses three distinct tasks:
      • INPUT – getting data from an external source (the user, a database, a file, etc.)
      • PROCESSING – actual manipulation of the data
      • OUTPUT – reporting the results of data manipulation back (using the monitor, writing information to a database, etc.)
  • 11. The Programming Development Cycle
    • Done after identifying inputs, processing & outputs
    • Steps
      • Analyze the problem
      • Plan a solution to the problem (algorithm)
      • Design the user interface
  • 12. The Programming Development Cycle
    • Steps (continued)
      • Code the solution
      • Test and debug the solution
      • Complete program documentation
      • Begin to plan for next release (start Cycle again)
  • 13. 1. Analyze the Problem
    • Questions to ask:
      • Who is my intended audience?
      • What SPECIFIC outcomes does my audience expect?
      • What business rules is my audience expecting to have incorporated into the solution?
      • What is the SCOPE of the problem?
  • 14. 2. Plan a Solution (Algorithm)
    • What types of programming structures are needed?
      • Sequential structures
      • Conditional structures
      • Looping structures
    • What data structures are needed?
      • Variables
      • Lists
      • Arrays
  • 15. 3. Design the User Interface
    • AKA – The “UI”
    • Is the UI “learnable”?
    • Is it simple? (Limit user choices)
    • Does the UI promote error-proof use?
    • Is the layout of the UI arranged in a fashion conducive to the user’s culture and expectations?
  • 16. 4. Code the Solution
    • Develop an actual program from an algorithm
    • Should be the “easiest” part of the process – all the work should already be done!
  • 17. 5. Test & Debug the Solution
    • Alpha Testing – Internal testing done with expected client data (NOT LIVE DATA)
    • Beta Testing – Testing done at the client site with their data (USUALLY LIVE DATA)
    • Try to predict common user errors
    • Test subjects should be Power Users, Normal Users and Neophytes
  • 18. 6. Complete Documentation
    • User Documentation:
      • User Manual
      • Technical Documentation (for System Administrators)
    • Internal Documentation:
      • Documentation comments
      • Code comments
      • Procedural comments
      • Should be done while coding!
  • 19. 7. Plan Next Release
    • What bugs need to be fixed?
      • Are bugs “critical”? (Need to be fixed in a minor release )
      • If bugs are not critical, they can be fixed in next major release
    • What product enhancements do the users want for the next release?
  • 20. Tools
    • The Pegasus Server
      • Address: pegasus.cs.iupui.edu
      • Uses Unix (more on that later …)
    • Suggested Text Editors:
      • Notepad++ for Windows
      • syn Text Editor for Windows
      • jEdit for Macintosh/Windows/Linux
      • Emacs/xEmacs for Macintosh/Windows/Linux
  • 21. Tools
    • Graphics Packages
      • The Gimp (It’s FREE – http://www.gimp.org )
      • Paint Shop Pro
      • Fireworks
      • PhotoShop
  • 22. Tools
    • STRONGLY Suggested Browser:
      • Mozilla Firefox ( http://www.getfirefox.com )
      • Firefox Extensions:
        • DOM Inspector
        • HTML Validator
        • Colorzilla
        • Web Developer
  • 23. Questions?
  • 24. Resources
    • Bob Molnar, N201 Lecture Notes
    • Visual Basic.NET Primer Plus by Jack Purdum (Sams Publishing, 2003)
    • An Introduction to Programming Using Visual Basic.NET Fifth Edition by David I. Schneider (Prentice Hall, 2003)
    • C: How to Program by Deitel & Deitel (Prentice Hall, 2004)