Wednesday 5 November 2014

Automata & Compiler Design

DATABASE MANAGEMENT SYSTEMS

Important link for learning DBMS

INTRODUCTION : PPS
THE ENTITY RELATIONSHIP MODEL : PPS
THE RELATIONAL  MODEL: PPS

THE RELATIONAL  MODEL : PPS


ER TO RELATIONAL TRANSFORMATION : PPS
FUNCTIONAL DEPENDENCIES AND NORMALIZATION IN DATABASES : PPS


DESIGN, STORAGE, INDEXING : PPTp1  and  PPTp2
SYSTEM CATALOG AND QUERY OPTIMIZATION : PPS 

TRANSACTION PROCESSING AND CONCURRENCY CONTROL : PPS

RECOVERY : PPS

SECURITY : PPS

  • Dynamic Coalition Problem  - Overheads: PPT
DISTRIBUTED DBMS, DATA WAREHOUSES AND DATA MINING, WEB-BASED DB ARCHITECTURES
SOFTWARE  DESIGN, JAVA, REQUIREMENTS 
UML: UNIFIED MODELING LANGUAGE 
All the best

Design of Algorithms

Algorithms

Number Date Topic Source Text
1 1/16 Introduction, administration, time and space complexity --
2 1/18 Basics: asymptotic notation PPT 3.1-3.2
3 1/21 Basics: recurrences (mergesort) PPT 4.1
4 1/23 Basics: recurrences continued, master theorem PPT 4.3, 6.1-6.2
5 1/25 Sorting: intro to heapsort PPT 6, 7.1-7.3
6 1/28 Sorting: heapsort, priority queues PPT 7.4
7 1/30 Sorting: quicksort PPT 5.1-5.3
8 2/1 Sorting: quicksort average case analysis PPT 5.4 last section
9 2/4 Sorting: linear time sorting algorithms PPT 8.1-8.2
10 2/6 Sorting: linear time algorithms continued;
Order statistics: selection in expected linear time
PPT 8.3-8.4
9.1-9.2
11 2/8 Order statistics: selection in worst-case linear time PPT 9.3
12 2/11 Review for exam PPT
EXAM 2/13 EXAM 1: Basics, Sorting, Order Statistics
--
13 2/15 Structures: binary search trees PPT 12.1-12.3
14 2/18 Structures: red-black trees PPT 13.1-13.2
15 2/20 Structures: red-black trees (insertion) PPT 13.3-13.4
16 2/22 Structures: skip lists PPT --
17 2/25 Structures: skip lists, hash tables  PPT 11.1-11.2
18 2/27 Structures: hash tables (hash functions) PPT 11.3-11.4
19 3/1 Structures: hash tables (universal hashing) PPT 11.3-11.4
20 3/4 Augmenting structures: dynamic order statistics PPT 14.1-14.2
21 3/6 Augmenting structures: interval trees PPT 14.3
22 3/8 Graph algorithms: the basics PPT 22.1-22.3
-- -- SPRING BREAK
--
23 3/18 Graph algorithms: BFS PPT 22.3
24 3/20 Graph algorithms: DFS PPT 23.1
EXAM 3/22 EXAM 2: Data structures
--
-- 3/25 Go over exam
--
25 3/27 Minimum spanning trees PPT 23.2
26 3/29 Shortest paths: Bellman-Ford PPT 24.1-24.3
27 4/1 Shortest paths: DAG, Dijkstra's algorithm PPT
28 4/3 Finish Dijkstra's.  Kruskals algorithm; disjoint sets PPT 21.1-21.3, 23.2
29 4/5 Disjoint sets; amortized analysis PPT 17.1-17.2
30 4/8 Amortized analysis continued PPT 17.3-17.4
31 4/10 Dynamic programming  PPT 15.1, 15.3
32 4/12 Dynamic programming (longest common subsequence) PPT 15.4
33 4/15 Dynamic programming (knapsack problem) PPT
34 4/17 Greedy algorithms  PPT 16.1-16.2
35 4/19 NP-Completeness PPT 34.1-34.2
36 4/22 NP-Completeness continued PPT 34.1-34.2
37 4/24 NP-Completeness: reductions PPT 34.3-4
38 4/26 NP-Completeness: reductions PPT 34.3-4

Monday 3 November 2014

Digital Image Processing

  Notes On Digital Image Processing

Digital Image Processing
Introductions and Fundamentals   Lecture 01
Intensity Transformations and Spatial Filtering  Lecture 02
Filtering in the Frequency Domain  Lecture 03
Image Restoration & Reconstruction  Lecture 04
Morphological Image Processing   Lecture 05
Image Segmentation   Lecture 06
Color Image Processing  Lecture 07
Image Compression   Lecture 08
Wavelet Transform   Lecture 09

Programming Language PPL

Programming Languages

Programming Languages and Their Implementation Pro Instructor : Ruth Anderson
Textbook : The Scheme Programming Language R. Kent Dybvig Third Edition
 

Multimedia App Development

Multimedia Application Technology



Topic

The topic of the course is digital audio and video, different interchange formats, multimedia hardware, multimedia software, multimedia communications, video conference, and multimedia systems. The aim is to teach the basics of multimedia technology and its effects to communications and computation technology.

Staff

Prof. Petri Vuorimaa (email Petri.Vuorimaa@hut.fi) is the responsible teacher and the main assistant of the course is Jussi Teirikangas (email Jussi.Teirikangas@hut.fi).

Lecture Topics

The preliminary topics and dates of the lectures are (links to the lecture slides will be available later):

21.1 Arrangements (slides & handouts)

  • topic
  • staff
  • general
  • requirements
  • book
  • lectures hours
  • lectures
  • laboratory exercises

28.1 Introduction (slides & handouts)

  • What is multimedia
  • Multimedia systems
  • Quality of service
  • Synchronization & orchestration
  • Standards
  • Convergence
  • Value chain

11.2 Hardware (slides & handouts)

  • Multimedia computers
  • Video and graphics
  • Audio
  • Telephone, video conference, and networks
  • CD and DVD
  • USB and FireWire
  • Processors
  • Video for Windows, DirectX, and ActiveMovie

18.2 Software (slides & handouts)

  • Introduction
  • Browser based software architecture
  • Distributed software
  • Servers
  • Network
  • Terminals

25.2 Audio and Video I (slides & handouts)

  • Introduction
  • Digital audio
  • Psycho acoustics
  • Digital presentation of sound
  • Digital images
  • JPEG

11.3 Audio and Video II (slides & handouts)

  • Video signal
  • Camera sensors
  • Colors
  • Color television
  • Equipment
  • Compression systems
  • Basics of video compression
  • Methods
  • Algorithms

18.3 Interchange Formats (slides & handouts)

  • Introduction
  • Application areas
  • Requirements
  • Track and object model
  • Real-time transfer
  • Different transfer formats
  • Comparison

1.4 Authoring Tools (slides & handouts)

  • Introduction
  • Production process
  • Tools
  • Barriers
  • Development areas

8.4 Communications (slides & handouts)

  • QoS
  • ATM
  • QoS implementations
  • Integrated Services
  • Differentiated Services

22.4 Multicast (slides & handouts)

  • Introduction
  • Group control
  • Routing
  • Real-time transfer and control protocols
  • Resource reservation
  • Session control
  • MBone

29.4 Video Conference (slides & handouts)

  • Introduction
  • Standards
  • Products
  • Internet telephony
  • CTI (Computer Telephony Integration)

6.5 Access Networks (slides & handouts)

  • Introduction
  • Cable television
  • Digital subscriber lines
  • UMTS
  • Digital television
  • Conclusions

Software Design Engineering for MTech

Cohesion / Coupling in Software Engineering

  HIGH COHESION LOW COUPLING

Software Design

  • Software design is a creative process, just like designing anything else
  • To see a wrong design, we can check with the requirements in the analysis model
  • To see a bad design, we need to assess the design model and analyze the components, whether the performance can be improved by changing the modules or the interfaces
         In Analyzing the software Design many factors are used, such as Coupling, Cohesion, Factoring, System Shape, etc.

 Coupling

  • The degree of interdependence between two modules”
  • We aim to minimise coupling - to make modules as independent as possible
    Low coupling can be achieve by:
  • eliminating unnecessary relationships
  • reducing the number of necessary relationships
  • easeing the ‘tightness’ of necessary relationships

Types of Coupling

  • Data coupling       (Most Required)   
                               
  • Stamp coupling
     
  • Control coupling
     
  • Hybrid coupling
     
  • Common coupling
     
  • Content coupling  (Least Required)

Data Coupling 

  • Modules communicate by parameters
     
  • Each parameter is an elementary piece of data
     
  • Each parameter is necessary to the communication
     
  • Nothing extra is needed

Data coupling problems

  • Too many parameters - makes the interface difficult to understand and possible error to occur
     
  • Tramp data - data ‘traveling’ across modules before being used

Stamp coupling

  • A composite data is passed between modules
     
  • Internal structure contains data not used
     
  • Bundling - grouping of unrelated data into an artificial structure

Control coupling

  • A module controls the logic of another module through the parameter
     
  • Controlling module needs to know how the other module works - not flexible!

Hybrid coupling

  • A subset of data used as control
     
  • Example: account numbers 00001 to 99999
  • If 90000 - 90999, send mail to area code of last 3 digit (000 - 999)

Common coupling

  • Use of global data as communication between modules
     
  • Dangers of
  • ripple effect
     
  • inflexibility
     
  • difficult to understand the use of data

Content coupling

  • A module refers to the inside of another module
     
  • Branch into another module
     
  • Refers to data within another module
     
  • Changes the internal workings of another module
     
  • Mostly by low-level languages

 

Cohesion

  • “The measure of the strength of functional relatedness of elements within a module”
     
  • Elements: instructions, groups of instructions, data definition, call of another module
                                                                                                   
  • We aim for strongly cohesive modules
  • Everything in module should be related to one another - focus on the task
     
  • Strong cohesion will reduce relations between modules - minimise coupling

      Types of Cohesion

  • Functional cohesion (Most Required)
     
  • Sequential cohesion
     
  • Communicational cohesion
     
  • Procedural cohesion
     
  • Temporal cohesion
     
  • Logical cohesion
     
  • Coincidental cohesion (Least Required)

Functional cohesion

  • All elements contribute to the execution of one and only one problem-related task
     
  • Focussed - strong, single-minded purpose
     
  • No elements doing unrelated activities
  • Examples of functional cohesive modules:
  • Compute cosine of angle
     
  • Read transaction record
     
  • Assign seat to airline passenger

Sequential cohesion

  • Elements are involved in activities such that output data from one activity becomes input data to the next
     
  • Usually has good coupling and is easily maintained
     
  • Not so readily reusable because activities that will not in general be useful together
     
  • Example of Sequential Cohesion
     
  • module format and cross-validate record
     
  •    use raw record
     
  •     format raw record
     
  •    cross-validate fields in raw record
     
  •    return formatted cross-validated record
                 end module

Communicational Cohesion

  • Elements contribute to activities that use the same input or output data
     
  • Not flexible, for example, if we need to focus on some activities and not the others
     
  • Possible links that cause activities to affect each other
     
  • Better to split to functional cohesive ones
     
  • Example of Communicational Cohesion
     
  • module determine customer details
     
  •    use customer account no
     
  •    find customer name
     
  •    find customer loan balance
     
  •    return customer name, loan balance
end module
 

Procedural cohesion

  • Elements are related only by sequence, otherwise the activities are unrelated
     
  • Similar to sequential cohesion, except for the fact that elements are unrelated
     
  • Commonly found at the top of hierarchy, such as the main program module
     
  • Example of Procedural Cohesion
  • module write read and edit something
  •    use out record
     
  •    write out record
     
  •    read in record
     
  •    pad numeric fields with zeros
     
  •    return in record
         end module

Temporal cohesion

  • Elements are involved in activities that are related in time
     
  • Commonly found in initialisation and termination modules
     
  • Elements are basically unrelated, so the module will be difficult to reuse
     
  • Good practice is to initialise as late as possible and terminate as early as possible
     
  • Example of Temporal Cohesion
  • module initialise
  •    set counter to 0
     
  •    open student file 
     
  •    clear error message variable
     
  •    initialise array
       end module
 

Logical cohesion

  • Elements contribute to activities of the same general category (type)
     
  • For example, a report module, display module or I/O module
     
  • Usually have control coupling, since one of the activities will be selected
     
  • Example of Logical Cohesion
  • module display record
      use record-type, record
      if record-type is student then
             display student record
      else if record-type is staff then
             display staff record
end module
 

Coincidental cohesion

  • Elements contribute to activities with no meaningful relationship to one another
     
  • Similar to logical cohesion, except the activities may not even be the same type
     
  • Mixture of activities - like ‘rojak’!
     
  • Difficult to understand and maintain, with strong possibilities of causing ‘side effects’ every time the module is modified
  • Example of Coincidental Cohesion
module miscellaneous functions
   use customer record
   display customer record
   calculate total sales
   read transaction record
   return transaction record
end module
 
Determining Module Cohesion
cohesion
 
 
Other Design Factors to Consider
  • Factoring: reduce module size, clarifying system,minimise duplication of code, separating work from management, creating useful modules, simplifying
     
  • System Shape (Structure)
     
  • Redundancy
     
  • Fan-in/Fan-out
     
  • Restrictivity/Generality
 

Wonderful quote

Nothing felling