IS'97.5 ­ Programming, Data and Object Structures

2427

CATALOG This course presents object oriented and procedural software engineering methodologies in data definition and measurement, abstract data type construction and use in developing screen editors, reports and other IS applications using data structures including indexed files.

2430

SCOPE This course provides an understanding of classes and objects as well as algorithm development, programming, computer concepts and the design and application of data and file structures. The increasing complexity of applications requires an understanding of the logical and physical structures of both programs and data.

2434

TOPICS Data structures and representation: characters, records, files, multimedia; precision of data; information representation, organization and storage; algorithm development; classes, ADTs and objects; event driven representations; data flow notation; programming control structures; program correctness, verification and validation; file and database structures, definition, representation, and access; screen and report structures.

EXPLANATION AND EXPECTATIONS

2440

Students will gain in-depth understanding of defining and measuring events which produce data, both simple and complex, and principles, concepts and practices of successful software development.

2442

Formal problem solving strategies will be presented. Program design methods and strategies including top down implementation will be discussed and implemented. Graphic programming environments will be explored. Capabilities of a number of programming languages will be presented. Skill will be developed in at least one language supporting an indexed file system.

2446

Software engineering principals will be practiced in a systems view. Students will learn to recognize objects and abstract data types, concepts of event driven and data flows, module identification, modularity including parameters, module naming, cohesion, coupling desired and erroneous practices, and testing. Correctness, verification and validation methods will be presented and practiced in generation of small modules and larger programs.

2451

Specific data structures including arrays, records, stacks, queues, and trees will be incorporated into ADTs and used in creating IS applications including menus, screen record editors -- list boxes, dialog boxes, buttons, and menu structures, file and database definition and access modules, transaction posting mechanisms, and simple and control break reports.

Students completing this course will have mastered the following learning units:

2456

Learning

Unit

Number



Learning Unit Goal


Learning Unit Objectives
Competency Level and Body of Knowledge

Elements in Learning Units

2 to present the concept that data is a representation and measurement of real-world events explain the concept of measurement and information, information representation, organization, storage and processing (LO-0009)

describe the concept that data is a representation and measurement of real-world events and the process of capturing it in machine readable forms (LO-0079)

2 1.1.1 Fundamental data representation: non-numeric, numeric (integers, reals, errors...

1 1.1.2 Physical representation of digitized information: e.g., data, text, image, voice...

2 1.2.3 Complex data structures: e.g. of data, text, voice, image, video, hypermedia

1 1.6.1 DBMS: features, functions, architecture

1 1.6.2 Data models: relational, hierarchical, network, object, semantic object

2 1.7.1 Knowledge representation

2 1.7.2 Knowledge engineering

2 1.7.3 Inference processing

1 1.7.4 Other techniques: fuzzy logic, CASE-based reasoning, natural language and...

2 1.7.5 Knowledge-based systems

2 2.2.10 Strategic use of IS: e.g., competitive advantage and IS, process re-engineering...

2 2.3.1 Measurement and modeling

43 to show and explain the logical and physical structure of data to represent characters, records, files, and multimedia objects identify, explain and discuss the data hierarchy and identify all primary operations associated with each level of the hierarchy (LO-0078) 3 1.1.1 Fundamental data representation: non-numeric, numeric (integers, reals, errors...

3 1.1.2 Physical representation of digitized information: e.g., data, text, image, voice...

3 1.2.3 Complex data structures: e.g. of data, text, voice, image, video, hypermedia

3 1.2.4 Abstract data types

44 to explain the concepts of classes, abstract data types (ADT), and objects discuss classes which involve elements of the "hierarchy of data" (bit, byte, fields, records, files, database), and use these definitions as a basis for the solutions to problems; describe program structures and their usage relating to each data structure (LO-0086) 4 1.1.1 Fundamental data representation: non-numeric, numeric (integers, reals, errors...

3 1.2.2 Basic data structures: lists, arrays, strings, records, sets, linked lists, stacks...

45 to explain and illustrate with IS examples of formal synthetic and analytic problem solving explain and give examples of the concept of writing computer programs and using software development languages and application development facilities to solve problems (LO-0015) 1 1.2.1.4 Software design process; from specification to implementation

1 1.2.1.5 Problem recognition statement and algorithmic determination; procedural...

1 1.2.1.6 Implementation strategies (top-down, bottom-up; teams vs individual...

2 2.3.1 Measurement and modeling

1 3.9.7 Software development

3 3.10.3 Software integration: e.g., packages

46 to present a systems view of object representations and compare with data flow models discuss and explain a systems view of an object representation; explain the similarity of an object representation to conventional data flow notation (LO-0200) 2 1.2.1 Formal problems and problem solving

3 1.3.6 Object oriented extensions to languages

2 1.3.7 Programming languages, design, implementation and comparison

3 1.3.7.28 Object-oriented design, languages, and programming

3 3.1.4 System components and relationships

2 3.3.5 Behavior oriented (event modeling) methodologies

2 3.3.6 Object oriented methodologies

47 to develop skills in developing an algorithmic solution to a problem and be able to represent it with appropriate program and data objects design algorithms and translate them into working solutions in a programming language for many component problems involved in complete information system applications (LO-0199) 3 1.2.1 Formal problems and problem solving

3 1.2.4 Abstract data types

3 1.6.2 Data models: relational, hierarchical, network, object, semantic object

3 1.6.3 Normalization

3 1.6.5 Data definition languages

2 1.6.6.1 Function supported by typical database system; access methods, security...

2 1.6.6.2 DML, query, QBE, SQL, etc.: database query language; data definition...

3 1.6.6.3 Application and user interfaces (DML, query, QBE, SQL)

3 3.9.1 Design: logical, physical

48 to present top-down implementation strategies design and implement programs in a top-down manner, building first the top levels, stubbing the lower levels; successively complete lower levels in the same manner; identify the concept of continued success in this method (LO-0205) 2 1.2.1 Formal problems and problem solving

3 1.2.1.4 Software design process; from specification to implementation

3 1.2.1.5 Problem recognition statement and algorithmic determination; procedural...

3 1.2.1.6 Implementation strategies (top-down, bottom-up; teams vs individual...

3 3.2.5 Selecting a systems development approach

3 3.9.1 Design: logical, physical

49 to present object implementation concepts explain and implement modular structures; show the relation of data flow and object representations to the produced code (LO-0090) 3 1.2.4.4 Modules, cohesion, coupling; data flow diagrams, and conversion to hierarchy...
50 to present modular design, cohesion, and coupling concepts develop and translate a data flow representation of a problem solution to a hierarchical and/or object representation (LO-0081)

use algorithmic and modular design in the solution of a problem and implement the solution with a procedural language (LO-0087)

use parameter passing in implementing a modular solution to a problem; explain the importance of high cohesion and low coupling (LO-0089)

apply concepts of modular design to define cohesive modules of appropriate size (LO-0143)

apply programming control structures and verify correctness (LO-0144)

demonstrate ability to test and validate the solution (LO-0146)

4 1.2.1 Formal problems and problem solving

4 1.2.1.4 Software design process; from specification to implementation

4 1.2.1.5 Problem recognition statement and algorithmic determination; procedural...

4 1.2.1.6 Implementation strategies (top-down, bottom-up; teams vs individual...

3 1.2.2 Basic data structures: lists, arrays, strings, records, sets, linked lists, stacks...

2 1.2.3 Complex data structures: e.g. of data, text, voice, image, video, hypermedia

4 1.2.4 Abstract data types

4 1.2.4.3 Formal specifications, preconditions and post-conditions, algebraic...

4 1.2.4.4 Modules, cohesion, coupling; data flow diagrams, and conversion to hierarchy...

4 1.2.4.5 Correctness, verification and validation: pre- and post-conditions, invariants...

4 1.2.4.6 Control structures; selection, iteration, recursion; data types and their uses in...

3 1.2.5.1 Files (structure, access methods): file layouts; fundamental file concepts...

3 1.3.3.3 Procedures, functions, and parameters; arrays and records

3 1.3.7.12 Parameter passing mechanisms; reference, value, name, result, etc.

3 3.1.2 Systems concepts: e.g., structure, boundaries, states, objectives

3 3.1.4 System components and relationships

3 3.9.1 Design: logical, physical

3 3.9.7 Software development

3 3.10.1 Systems construction

3 3.10.2 Software systems construction: e.g., programming, unit testing, load module...

51 to present a systems view of verification and validation explain the verification and validation process; verify code by manual re-engineering to both procedural and/or object representations (LO-0091)

develop data flow designs and translate these designs to pseudocode or fourth GLs (LO-0141)

4 1.2.1 Formal problems and problem solving

4 1.2.1.4 The software design process; from specification to implementation

4 1.2.1.5 Problem recognition statement and algorithmic determination; procedural...

3 1.2.1.6 Implementation strategies (top-down, bottom-up; teams vs individual...

3 1.2.4 Abstract data types

3 1.2.4.1 Purpose and implementation of abstract data types

4 1.2.4.4 Modules, cohesion, coupling; data flow diagrams, and conversion to hierarchy...

3 1.2.4.5 Correctness, verification and validation: pre- and post-conditions, invariants...

3 1.3.5 Fourth-generation languages

4 3.9.7 Software development

52 to present and expose students to a variety of programming environments, development tools and graphics development environments demonstrate ability to evaluate and use existing GUI components in construction of an effective user interface for an application (LO-0145) 3 1.2.4 Abstract data types

3 1.4.10 OS support for human interaction: e.g., GUI, interactive video

3 3.9.6 Human-computer interaction (e.g., ergonomics, graphical-user interfaces...

53 to introduce the concepts and techniques used to represent and operate on data and file structures, with simple examples explain the ADTs necessary to access records in an indexed data file; show examples of each type of operation required (LO-0203) 2 1.2.4 Abstract data types

3 1.2.5 File structures: sequential, direct access, hashing, indexed

2 1.2.6 Sorting and searching data structures and algorithms

54 to explain how to develop structures using abstract data types representing arrays, lists, trees, records and files, and demonstrate how they are applied as components of programs and applications use array representations to simulate accessing an indexed file, and use the representations in designing an abstract data type for insert, delete-current, find, next, and previous operations (LO-0085) 3 1.2.1 Formal problems and problem solving

3 1.2.1.4 Software design process; from specification to implementation

3 1.2.2 Basic data structures: lists, arrays, strings, records, sets, linked lists, stacks...

3 1.2.4.3 Formal specifications, pre-conditions and post-conditions, algebraic...

3 1.2.4.4 Modules, cohesion, coupling; data flow diagrams, and conversion to...

3 1.2.4.5 Correctness, verification and validation: pre- and post-conditions, invariants...

3 1.2.4.6 Control structures; selection, iteration, recursion; data types and their uses in...

55 to present and use index file structures, including key organizations discuss and explain the concept of indexed files; describe key construction and compare data management requirements involved in selecting optimal keys; explain the functions that are necessary to implement and access indexed records; explain the similarity of arrays and indexed files in terms of similarities of functions in ADTs (LO-0202) 2 1.2.5 File structures: sequential, direct access, hashing, indexed
56 to explain a variety of fundamental structures that are building blocks for the development of programs and IS applications apply application software to solve small scale problems (LO-0084)

develop user and system documentation for a program solution to a problem of moderate complexity (LO-0088)

3 1.2.1 Formal problems and problem solving

3 1.2.1.4 Software design process; from specification to implementation

3 1.2.1.5 Problem recognition statement and algorithmic determination; procedural...

3 1.2.1.6 Implementation strategies (top-down, bottom-up; teams vs individual...

2 1.2.2 Basic data structures: lists, arrays, strings, records, sets, linked lists, stacks...

3 1.2.4 Abstract data types

3 2.2.16 Security and control, viruses and systems integrity

2 2.10.2 Interviewing, questioning and listening

3 2.10.5 Writing skills

3 3.2.2 Package acquisition and implementation

2 3.7.8 Systems documentation

2 3.7.9 User documentation (e.g., reference manuals, operating procedures, on-line...

57 to provide the foundations for applications of data structures and file processing techniques use abstract data types involved in common IS applications to implement solutions to problems involving indexed file processing techniques. (LO-0198) 3 1.2.1 Formal problems and problem solving

3 1.2.1.4 Software design process; from specification to implementation

3 1.2.1.5 Problem recognition statement and algorithmic determination; procedural...

3 1.2.1.6 Implementation strategies (top-down, bottom-up; teams vs individual...

3 1.2.2 Basic data structures: lists, arrays, strings, records, sets, linked lists, stacks...

3 1.2.4 Abstract data types

3 1.2.4.1 Purpose and implementation of abstract data types

3 1.2.4.2 Informal specifications

3 1.2.4.3 Formal specifications, pre-conditions and post-conditions, algebraic...

3 1.2.4.4 Modules, cohesion, coupling; data flow diagrams, and conversion to...

3 1.2.4.5 Correctness, verification and validation: pre- and post-conditions; invariants...

3 1.2.4.6 Control structures; selection, iteration, recursion; data types and their uses in...

3 1.2.5 File structures: sequential, direct access, hashing, indexed

3 1.2.5.1 Files (structure, access methods): file layouts; fundamental file concepts...

3 1.2.5.2 Files (structure, access methods): directories, contents and structure, naming...

2 1.2.6 Sorting and searching data structures and algorithms

2 1.2.6.1 Sorting algorithms (shell sort, bucket sort, radix sort, quick sort), editing...

58 to present and ensure problem solving involving files and database representations use indexed files and ADTs to solve simple problems involving files used as elements of a database solution. (LO-0204) 3 1.2.4 Abstract data types

3 1.2.4.3 Formal specifications, pre-conditions and post-conditions, algebraic...

3 1.2.4.4 Modules, cohesion, coupling; data flow diagrams, and conversion to hierarchy...

3 1.2.4.5 Correctness, verification and validation: pre- and post-conditions, invariants...

3 1.2.4.6 Control structures; selection, iteration, recursion; data types and their uses in...

3 1.2.5 File structures: sequential, direct access, hashing, indexed

2 1.6.1 DBMS: features, functions, architecture

2 1.6.2 Data models: relational, hierarchical, network, object, semantic object

2 2.3.1 Measurement and modeling

2 3.3.2 Data modeling: e.g., entity-relationship diagrams, normalization

59 to present and develop useful structured file (database) editors, posting mechanisms, and reports (simple, control break) build and document several applications using indexed files, screen editors, and reports (LO-0093) 3 1.2.1 Formal problems and problem solving

3 1.2.4 Abstract data types

3 1.2.5 File structures: sequential, direct access, hashing, indexed

3 3.7.8 Systems documentation

2 3.9.6 Human-computer interaction (e.g., ergonomics, graphical-user interfaces, voice...

60 to continue the development of programming techniques, particularly in the design, testing and debugging of IS related programs of some complexity define, explain and present the process of stating and solving formal analytic problems (LO-0080) 3 1.2.1 Formal problems and problem solving

3 1.2.1.4 Software design process; from specification to implementation

3 1.2.1.5 Problem recognition statement and algorithmic determination; procedural...

3 1.2.1.6 Implementation strategies (top-down, bottom-up; teams vs individual...

3 1.2.2 Basic data structures: lists, arrays, strings, records, sets, linked lists, stacks...

3 1.2.4 Abstract data types

3 1.2.4.3 Formal specifications, pre-conditions and post-conditions, algebraic...

3 1.2.4.4 Modules, cohesion, coupling; data flow diagrams, and conversion to hierarchy...

3 1.2.4.5 Correctness, verification and validation: pre- and post-conditions, invariants...

3 1.2.4.6 Control structures; selection, iteration, recursion; data types and their uses in...

2 1.2.6.1 Sorting algorithms (shell sort, bucket sort, radix sort, quick sort), editing, report...

2 1.2.6.2 Searching algorithms (serial search, binary search, and binary search tree)

2 1.2.6.3 Searching, hashing, collision resolution

3 3.1.3 Properties of open systems

3 3.9.1 Design: logical, physical

3 3.9.7 Software development

3 3.10.2 Software systems construction: e.g., programming, unit testing, load module...

61 to develop an awareness of the relative capabilities and limitations of most common programming languages explain the capabilities and differences for programming environments and language (LO-0094) 1 1.2.8 Recursive algorithms

1 1.2.9 Neural networks and genetic algorithms

1 1.2.10 Advanced considerations

2 1.3.1 Fundamental programming language structures; comparison of languages and...

2 1.3.2 Machine and assembly level languages

2 1.3.3 Procedural languages

2 1.3.4 Non-procedural languages: logic, functional

2 1.3.5 Fourth-generation languages

1 1.3.6 Object oriented extensions to languages

2 1.3.7 Programming languages, design, implementation and comparison

2 1.4.10 OS support for human interaction: e.g., GUI, interactive video

1 1.6.10 Database machines







IS'97.6 ­ Information Technology Hardware and Software

2480

CATALOG Principles and application of telecommunication and computer systems hardware and software will be presented through lecture, installation, configuration and operations experiences. (Prerequisite: IS'97.2)

2482

SCOPE The course provides the hardware-software technology background to enable systems development personnel to understand tradeoffs in computer architecture for effective use in the business environment.

2484

TOPICS Hardware: CPU architecture, memory, registers, addressing modes, busses, instruction sets, multi processors versus single processors; peripheral devices: hard disks, CDs, video display monitors, device controllers, input/output; operating systems functions and types; operating system modules: processes, process management, memory and file system management; examples of hardware architectures; examples of operating systems.

EXPLANATION AND EXPECTATIONS

2490

Students who are knowledgeable of and have developed personal information systems will gain an in-depth exposure to information technology hardware and software components and their interaction.

2492

A systems view of computer systems will be utilized in identification of computer and telecommunication system components. Peripheral devices will be identified and principles of operation will be studied and learned. The operating system software, including I/O drivers, and telecommunication applications and extensions to the operating system will be examined, learned and utilized.

2496

Organization of the operating system will be studied to understand how concurrent processes, scheduling, memory management, and I/O are accomplished. The flow of information in the operating system in relation to the computer and to the application software will be considered.

2499

Telecommunication devices will be identified and system integration considerations will be presented. Switches, multiplexers, and media -- wire, glass fiber and radio -- will be explored as basic components of telephone, LAN and WAN systems.

2502

Standards, standard organizations and resulting hardware and software consequences will be identified and studied. General principles will be expressed.

2504

Students will gain practical experience with cabling, installing, configuring and multi-user operating systems and LANs.



Students completing this course will have mastered the following learning units:

2506

Learning

Unit

Number



Learning Unit Goal


Learning Unit Objectives
Competency Level and Body of Knowledge

Elements in Learning Units

62 to explain in systems terms the fundamental characteristics and components of computer and telecommunications hardware, and system software, and demonstrate how these components interact use the systems approach to explain the hardware and software components of a telecommunications system, and to diagram and discuss the nature of the interactions of the components; explain in systems terms the purpose, expectations and the quality of a telecommunications system, and show how the components work purposefully together (LO-0230) 2 1.1.2 Physical representation of digitized information: e.g., data, text, voice, video

3 1.1.3 CPU architectures: CPU, memory, registers, addressing modes, instruction sets

2 1.1.3.1 Basic organization; von Neumann, block diagram, data paths, control path...

2 1.1.4.1 Peripherals: I/O and interrupts

2 1.1.4.2 Peripherals: input/output control methods, interrupts

2 1.1.4.3 Peripherals: external storage, physical organization and drives

2 1.1.5 Multiprocessor architectures

1 1.1.6 Digital logic and systems

1 1.1.6.3 Demultiplexers, multiplexers, decoders, encoders, adders, subtractors...

1 1.1.6.8 Tristates and bus structures

2 1.4.1 Architecture, goals and structure of an operating system; structuring methods...

2 1.4.2 Interaction of operating system and hardware architecture

2 1.4.3 Process management: concurrent processes, synchronization

2 1.4.3.1 Tasks, processes, dispatching context switchers, role of interrupts

2 1.4.5 Resource allocation and scheduling

1 1.4.5.1 Protocol suites (communications and networking); streams and datagrams

1 1.4.5.2 Internetworking and routing; servers and services

1 1.4.5.3 Types of operating systems: single user, multi-user, network

1 1.4.5.6 Operating system utilities

1 1.4.8 Protection and security

1 1.4.11 OS interoperability and compatibility: e.g., open systems

1 1.4.12 Operating system utilities, tools, commands and shell programming

1 1.4.13 System administration and management

2 1.5.1.2 Network design and management: network architectures (ISO, SNA, DNA)...

2 1.5.2 Data transmission: media, signaling techniques, transmission impairments...

2 1.5.2.1 Communications system technology: transmission media, analog-digital...

2 1.5.3 Line configuration: error control, flow control, multiplexing

2 1.5.4 Local area networks

2 1.5.4.2 Local area networks and WANs: topology, gateways, uses (functions and...

2 1.5.5 Wide area networks: switching techniques, broadcast techniques, routing

2 1.5.6 Network architectures and protocols

2 1.5.8 Network configuration, performance analysis and monitoring

1 1.5.10 High-speed networks: e.g., broadband ISDN, SMDS, ATM, FDDI

1 1.5.12 Application: e.g., client server, EDI, EFT, phone network, e-mail, multimedia...

2 2.2.5 Determining goals and objectives of the IS organization

1 2.2.8 IS as a service function: performance evaluation -- external/internal market...

1 2.2.10 Strategic use of IS: e.g., competitive advantage and IS, process re-engineering...

1 2.2.13 Backup, disaster planning and recovery

1 2.2.15.1 Telecommunications management

1 2.2.15.7 Quality management: e.g. reliability and quality engineering; QC teams

1 2.2.16 Security and control, viruses and systems integrity

3 3.1.1 General systems theory

3 3.1.2 Systems concepts: e.g., structure, boundaries, states, objectives

2 3.1.3 Properties of open systems

63 to provide an overview of peripheral devices and their function identify major classes of peripheral devices and explain the principles of operation and software requirements and functions provided for each type of device; give specific examples of each device identified, and discuss the installation requirements for the hardware and required software (LO-0213) 2 1.5.4 Local area networks
64 to introduce the concepts of computer hardware architectures define data and communication requirements to access local (the hard-disk, or server) and remote data (e.g., via internet) to solve individual problems (LO-0024)

describe and explain the major hardware and software components of a computing system and how they interact (LO-0095)

2 1.1.3 CPU architectures: CPU, memory, registers, addressing modes, instruction sets

2 1.1.4 Computer system components: busses, controllers, storage systems, peripheral...

2 1.1.6 Digital logic and systems

2 1.5.1 International telecommunication standards, models, trends

1 1.5.2 Data transmission: media, signaling techniques, transmission impairments...

1 1.5.4 Local area networks

3 1.5.5 Wide area networks: switching techniques, broadcast techniques, routing

2 1.5.6 Network architectures and protocols

2 1.5.12 Application: e.g., client server, EDI, EFT, phone network, e-mail, multimedia...

3 3.1.5 Systems control: standards, control theory, feedback, loops, measurement...

65 to introduce the concepts of system software components and interactions describe and explain the major components of an operating system and how they interact (LO-0096)

explain the control of input/output functions; install and configure drivers (LO-0101)

2 1.4.2 Interaction of operating system and hardware architecture

2 1.4.3 Process management: concurrent processes, synchronization

2 1.4.6 Secondary storage management

2 1.4.7 File and directory systems

2 1.4.8 Protection and security

2 1.4.10 OS support for human interaction: e.g., GUI, interactive video

2 2.2.2 Control of the IS function: e.g., EDP auditing, outsourcing

3 3.1.2 Systems concepts: e.g., structure, boundaries, states, objectives

2 3.9.3 Design objectives: e.g., usability, performance

2 3.10.2 Software systems construction: e.g., programming, unit testing, load module...

67 to introduce the major concepts in operating systems, including process definition, concurrent processing, memory management, scheduling, interrupt processing, security, and file systems explain the concept of tasks and processes (LO-0097)

explain the concept of concurrency and multi- tasking (LO-0098)

explain routine behavior of task schedulers, priority queues, interrupt processing, memory management and file system (LO-0099)

2 1.4.2 Interaction of operating system and hardware architecture

2 1.4.3 Process management: concurrent processes, synchronization

2 1.4.4 Memory management

1 1.4.5 Resource allocation and scheduling

2 1.4.6 Secondary storage management

2 1.4.7 File and directory systems

2 1.4.8 Protection and security

3 3.1.4 System components and relationships

68 to introduce a variety of operating environments (traditional, GUI, multimedia) and resource requirements describe and discuss several computer system operating environments including traditional, graphical user interface, and multi-media; estimate the hardware and software items and approximate cost for each environment; discuss relative advantages for each environment (LO-0212) 2 1.4.10 OS support for human interaction: e.g., GUI, interactive video

3 1.4.12 Operating system utilities, tools, commands and shell programming

3 1.4.13 System administration and management

2 1.5.12 Application: e.g., client server, EDI, EFT, phone network, e-mail, multimedia...

69 to discuss, explain and install multimedia facilities discuss and explain the hardware and software requirements necessary to support multimedia (LO-0181)

explain development software tools which support multimedia environments; discuss the advantages and shortcomings of various development tools and environments (LO-0182)

install multimedia sound and video hardware and software components; install development environments and demonstrate use of the installed software systems (LO-0183)

3 1.4.10 OS support for human interaction: e.g., GUI, interactive video
70 to introduce the requirements for interoperability and systems integration explain concepts of interoperability and systems integration in relation to policies and practices (LO-0177)

explain components of hardware and software to connect and implement networked solutions for PC networks and more advanced LAN and WAN environments.

explain installation and configuration of a distributed system

explain OS considerations to enable a client server environment

2 1.4.9 Distributed operating systems

2 1.4.11 OS interoperability and compatibility: e.g., open systems

2 3.10.5 Systems integration and system testing: verification and validation, test plan...

71 to install, configure and operate a multi-user operating system build system software command structures (e.g. JCL) for both mainframe and microcomputer systems involving the macro facilities of the operating system (LO-0100)

install, configure and operate a multi-user operating system (LO-0103)

3 1.3.7.28 Object-oriented design, languages, and programming

3 1.4.2 Interaction of operating system and hardware architecture

3 1.4.5 Resource allocation and scheduling

3 1.4.6 Secondary storage management

3 1.4.7 File and directory systems

3 1.4.8 Protection and security









IS'97.7 ­ Analysis and Logical Design

2520

CATALOG Students with information technology skills will learn to analyze and design information systems. Students will practice project management during team oriented analysis and design of a departmental level system. (Prerequisites: IS'97.4, IS'97.5, and IS'97.6)

2523

SCOPE This course provides an understanding of the system development and modification process. It enables students to evaluate and choose a system development methodology. It emphasizes the factors for effective communication with users and team members and all those associated with development and maintenance of the system.

2527

TOPICS Life cycle phases: requirements determination, logical design, physical design, test planning, implementation planning and performance evaluation; communication, interviewing, presentation skills; group dynamics; risk and feasibility analysis; group based approaches: JAD, structured walkthroughs, design and code reviews; prototyping; database design; software quality metrics; application categories; software package evaluation and acquisition; professional code of ethics.

EXPLANATION AND EXPECTATIONS

2533

Students with the basic skills of information technology will learn to gather information in order to identify problems to be solved. They will determine system requirements and a logical design for an information system, while participating as team members in a project beginning in this course and continuing over a coordinated four course project sequence (IS'97.7, IS87.8, IS/97.9 and IS'97.10).

2537

Students will investigate alternative solutions, and will determine feasibility of solutions. They will identify value added by the completion of the system.

2539

Students will be exposed to case or other tools which have the same functionality. Tools which facilitate each stage of the life cycle should be used. While CASE tools are not a substitute for understanding of the processes involved, they may be used to ensure that a particular methodology is used rigorously. If manual methods are used, it is important to define the methodology thoroughly.

2543

Project management will be taught and used to control the team project. Team concepts including personal and interpersonal skills will be discussed and monitored. Empowerment concepts will be used and measured. Scheduling and completing individual and group actions will be used to ensure project milestone completion.

2547

A departmental information system will be designed during this course. The instructor, in addition to lecturing, may wish to adopt a role within the project phase: CIO, project manager, consultant, or client are all possible roles.

Students completing this course will have mastered the following learning units:

2551

Learning

Unit

Number



Learning Unit Goal


Learning Unit Objectives
Competency Levels and Body of Knowledge

Elements in Learning Units

72 to present necessary concepts to provide the skills necessary to do the analysis, modeling, and definition of information systems problems explain IS life cycle phases and concepts and alternatives (LO-0057)

detect problem to solve, re-engineer physical flow (LO-0108)

3 2.10.10 Fostering creativity and opportunity finding

2 3.6.1 Feasibility assessment

2 3.6.2 Risk management principles

3 3.8.1 Problem opportunity identification: e.g., service requests, from planning process

73 to give students exposure to using commercial program products to implement information systems demonstrate ability to analyze alternative approaches to applications including packages, tailoring or customizing packages, adding modules to packages, and building unique applications (LO-0110)

explain the concepts of acquiring computer hardware and software (LO-0167)

explain the process of writing bids and contracts (LO-0174)

explain all phases of contracts and write realistic examples for consultant relationships, software and hardware acquisition, or other relevant examples (LO-0175)

2 2.8.1 Software sales, licensing, and agency

3 2.8.2 Contract fundamentals

3 2.8.3 Privacy law

2 2.8.4 Agencies and regulatory bodies

2 2.8.5 Protection of intellectual property rights

3 2.8.7 Risks, losses and liability in computing applications

3 3.7.11 Scoping and scope control

74 to show how to collect and structure information in the development of requirements and specifications conduct an information gathering interview with individuals and with a group (LO-0106)

conduct a JAD session using a GDS tool (either manual or electronic) (LO-0111)

3 2.10.1 Communication skills

3 2.10.2 Interviewing, questioning and listening

3 2.10.5 Writing skills

3 3.4.2 Group-based methods: e.g., JAD, structured walkthroughs, design and code...

75 to show how to develop a logical design, and develop and analyze alternatives involving implementation using packages, tailoring of packages, constructing software, or CASE tools use CASE , I-CASE or other automated or non-automated tools (LO-0112)

be able to use a commercial CASE tool to generate "upper case" documentation (LO-0113)

3 3.4.1 CASE
76 to develop a functional understanding of rapid prototyping and other similar alternative mechanisms for rapid development of information systems use rapid prototyping and other similar alternative mechanisms for rapid development of information systems (LO-0114) 3 3.2.1 Systems development models: e.g., SDLC, prototyping

3 3.2.5 Selecting a systems development approach

77 to show how to assess risks and feasibility identify IS requirements and specifications and tentative logical design alternatives; evaluate proposed competitive advantage, feasibility and risk (LO-0109) 2 3.5.1 Infrastructure planning: hardware, communications, database, site

3 3.6.1 Feasibility assessment

3 3.8.3 Requirements determination and specification

3 3.9.1 Design: logical, physical

78 to show students how to analyze organizational systems to determine how the systems might be improved compare several proposed systems solutions, based on criteria for success (LO-0061)

identify, explain and use development methodologies compatible with the concept of process of continuous improvement (LO-0107)

apply systems, decision and quality theory and information systems development techniques and methodologies to initiate, specify and implement a relatively complex multi-user information system originating in a quality conscious organization involved in continuous improvement of its processes (LO-0149)

at an enterprise or multi-department level, develop physical flows as well as a complete work flow design

3 2.2.6 Managing IS as a business: e.g., customer definition, defining IS mission, IS...

3 2.2.10 Strategic use of IS: e.g., competitive advantage and IS, process re-engineering...

3 2.3.1 Measurement and modeling

2 2.10.8 Principle centered leadership

2 2.10.10 Creative problem solving and opportunity identification

3 3.1.5 Systems control: standards, control theory, feedback, loops, measurement...

3 3.10.7 Software project management: scoping, scheduling, configuration manage...

79 to develop skills for effective interpersonal communication to develop consensus using classical techniques as well as computer facilitated groupware explain the concept of shared vision in developing effective solutions to organizational process (LO-0052)

explain common forms of behavior that can lead to lack of communication

3 2.3.4 Decision models and IS: optimizing, satisficing

3 2.3.5 Group decision process

2 3.9.4 Techniques to enhance the creative design process

80 to demonstrate and analyze small group dynamics as related to working with users explain group and team behavior in an IS context (LO-0051)

explain how groups and teams should work together, empower co-workers, and apply team methods; measure and prove empowerment and effectiveness; participate effectively in cooperative team work; and evaluate success of work (LO-0154)

3 2.3.4 Decision models and IS: optimizing, satisficing

3 2.3.5 Group decision process

4 2.4.3 Group dynamics

4 2.4.4 Teamwork, leadership and empowerment

2 2.4.5 Use of influence, power and politics

4 2.4.8 Consensus building

81 to develop application skills for implementing databases and

applications by operating and testing these databases

design and implement an information system within a database environment (LO-0118)

develop dataflow and/or an event driven models of the components of an information system, and design the implementation of the concepts

develop the corresponding database and implement the schema with a DBMS package

develop event driven screens corresponding with the database design; develop report designs for necessary documentation and reporting; resolve the database indexes and construct the appropriate application

3 1.6.1 DBMS: features, functions, architecture

3 1.6.2 Data models: relational, hierarchical, network, object, semantic object

3 1.6.3 Normalization

3 1.6.4 Integrity (referential, data item, intra-relation): representing relationships; entity...

3 1.6.5 Data definition languages

3 1.6.7 Intelligent query processors and query organization

3 1.6.12 Data dictionary, encyclopedia, repository

3 3.9.2 Design methodologies: e.g., real time, object oriented, structured

2 3.9.5 Information presentation alternatives; cognitive styles

82 to present and use complexity metrics to assess developed solutions apply system software functions to analyze resource use and performance characteristics for an application (LO-0102) 3 1.4.1 Architecture, goals and structure of an operating system; structuring methods...

3 1.4.2 Interaction of operating system and hardware architecture

2 3.5.4 Metrics for size, function points, control of complexity

3 3.7.9 User documentation (e.g., reference manuals, operating procedures, on-line...

3 3.7.13 System development quality assurance

2 3.9.7 Software development

83 to develop quality metrics for assessment of software development and project control of software development explain how written standards describing each phase of the life-cycle can evolve; explain the relevance of written standards, and the desirability of developing quality assurance procedures

describe and explain the use of quality metrics in assessment of software development and in facilitating project control of the development activities (LO-0206)

2 1.2.7 Algorithm efficiency, complexity and metrics

3 2.2.15.7 Quality management: e.g. reliability and quality engineering; QC teams

2 3.5.4 Metrics for size, function points, control of complexity

2 3.7.10 System metrics

2 3.7.13 System development quality assurance

2 3.9.7 Software development

84 to develop quality metrics for assessment of customer satisfaction at all phases of the life cycle use quality metrics and performance benchmarks to ensure customer satisfaction for each phase of the life cycle. Test the metrics during system development activities (LO-0115) 3 3.7.10 System metrics

3 3.7.13 System development quality assurance

2 3.9.3 Design objectives: e.g., usability, performance

85 to explain the use of a professional code of ethics to evaluate specific IS actions identify and describe professional organizations (LO-0043)

explain setting an ethical standard (LO-0044)

explain and examine ethical issues and arguments and failed approaches as a function of power and social context

identification of stakeholders in a given IS development context, and the effect of development on these individuals

describe use of the codes of ethics and ensure that project actions are consistent with these prescriptions (LO-0127)

2 2.8.3 Privacy law

3 2.8.5 Protection of intellectual property rights

2 2.8.6 Ethics: Personal and professional responsibilities; ethical models, ...

2 2.9.1 Current literature periodicals, professional, academic journals

2 2.9.2 Certification issues

3 2.9.3 Professional organizations: e.g., DPMA, ACM, TIMS, ASM, DSI, ACE, IEEE...

2 2.9.4 Professional conferences

2 2.10.6 Proactive attitude and approach