Thursday, January 3, 2008

CSE 2011 Lecture 1

Course Information

Website: http://www.cse.yorku.ca/course/2011/

Workload: 3 reports(6%,7%,7%), 2 class tests(20%,20%) and a final exam(40%).

Course directly for prism: prism:/cse/course/2011

  • Found here:
    • Java files for assignments
    • Answers for assignments
  • To find your grade:
    • Console: courseInfo 2011 [2007-08 W]


 

  • Data structures
    • A systematic way to organize and access data
      • That is easy to retrieve
    • Algorithm
      • Step by step procedure for performing some task in a finite amount of time
      • "Sometimes you want to use the slower algorithms because they are faster"
    • Programs = Data Structures + Algorithms
      • The course forms a framework for developing useful programs
  • Principles of public design
    • Principle of use
      • Programs will be used by people
      • They are public
      • Must be designed for people
    • Principle of misuse
      • Programs will be misused by people
    • Principle of evolution
      • Programs will be changed by people
      • If you want to modify it you'll have to know how it works
    • Principle of migration
      • Programs will be moved to new environments by people
  • Software quality
    • Readable and understandable
      • All design artifacts – program text included – are primarily to be read and used by people
      • Execution is incidental
    • Correct and complete
      • It works – it is useable
      • Works correctly for all possible inputs that one might encounter within a domain of interest
    • First write correct programs then worry about efficiency
      • A fast program that is wrong is worse than useless
      • Speed up where necessary after instrumentation
      • Always design to be as efficient as you wanted to be and no more
    • Efficient as it needs to be
      • Use an appropriate amount of resources for the task
        • Space for storing data and temporary results
        • Execution time
        • Space – time tradeoff
        • Communications bandwidth
    • Modifiable
      • All programs evolve over time
      • Make plausible modifications easy
        • One sign of a good design is it is easy to modify and adapt to changing circumstances
    • On time and on budget
      • Time is money
        • Pay back on investment
      • Imbedded systems
        • Programs are only a part of the system
  • Basic data structures
    • Array
      • Single type of data
      • Fixed size
      • homogeneous
    • Tuple
      • Collection of different types of data
      • Heterogeneous
  • We want to store things in a container of the basic data structures
  • We want to organize data structures
  • A container should be able to:
    • Add
    • Remove
    • Retrieve
    • Find size
      • How big the container is
      • How many things are in the container
      • If it contains something
    • organize
  • A fundamental organization of a collection
    • Iteration
    • Move elements
  • Fundamental property of a sequence
    • The beginning and the end of the sequence
    • There is a front a sequence and a rear to a sequence
  • A list is the organization of a container

No comments: