March 11, 2013

KBP Chapter 2


Rickvian Aldi / 01PBT / 1601253441
Assignment By Mr. Tri Djoko Wahjono

Review Questions

1. In what year was Plankalkul designed? In what year was that design published?
-Designed 1945, published at 1972

2. Mention an interesting feature of Zuse's programs.
-The inclusion of mathematical expressions showing the current relationships between program variables. These expression stated what would be true during execution at the points in the code where they appreared.

3.What does plankakul mean?
-Plankalkul means program calculus.

4.Speedcoding was invented to overcome two significant shortcomings of the computer hardware of early 1950s. What were they?
-The system included prseudoinstructions for the four arithmetic operations on floating-point data, as well as operations such as square root, sine arc tanget exponent. On the other hand, Speedcoding included the novel facility of automatically incrementing address registers.

5.What is the number of bits in a single word of the UNIVAC  I's memory? How are the bits grouped?
-The words of the UNIVAC I's memory had 72 bits, grouped as 12 six-bit bytes.

6.What hardware capability that first appeared in the IBM 704 computer strongly affected the evolution of programming languages? Explain why.
-Because of its capabilities prompted the development of FORTRAN.
With both indexing and floating-point instructions in hardware, heralded the end of the interpretive era, at least for scientific computation.

7.Who developed the speedcoding system for the IBM 701?
-John Backus 1954

8.Who developed Short Code? Why Short Code called automatic programming?
-Developed by John Mauchly in 1949.
-Short code was not translated to machine code; rather, it was implemented with a pure interpreter.

9.Under what enviromental consideration was Fortran developed? Which is the first version of the Fortran?
-The environment in which Fortran was developed was as follows:
-Computers had small memories and were slow and relatively unreliable
-The primary use of computers was for scientific computations
-There were no existing efficient and effective ways to program computers
-Because of the high cost of computers compared to the cost of programmers, speed of the generated object code was the primary goal of the first FORTRAN compilers.
The first version of FORTRAN is fortran 0.

10.What was the most significant feature added to fortran I to get Fotran II?
-The most important being the independent compilation of subroutines. Without independent compilation, any change in a program required that the entire program be recompled.

11.What control flow statements were added to Fortran IV to get Fortran 77?
-Fortran 77 retained most of the features if Fortran IV and added character string handling, logical loop control statements, and an if with an optional else clause.

12.Which version of Fortran was the first to have any sort of dynamic variables?
-Fortran 90.

13.Which version of Fortran was the first to have character string handling?
-Fortran 77.

14.Why were linguist interested in artificial intelligence in the late 1950s?
-Linguists were concerned with natural language processing.

15.What are the different data types and structures in Common LISP?
-records, arrays, complex number, character strings, many more.

16.In what way are Scheme and Common LISP opposites of each other?
-Scheme is small language with simple sytax and semantics.
-Common LISP is relatively large and complex language.

17.What dialect of LISP is used for introductory programming courses at some universities?
-Scheme is well suited to educational applications, such as courses in functional programming and general introductions to programming.

Problem set

1. What features of Fotran IV do you think would have had the greatest influence on Java if the Java designers had been familiar with Fotran?
-Amon its most important additions were explicit type declaration for variables, a logical if construct and capability of passing subprograms as paramaters to others subprograms.

3.Write a short history of the Fotran 0, Fotran I, Fotran II, and Fotran IV systems.
-Fotran 0:
Even before the 704 sysetem was announced, plans were begun for Fortran. John Backus and his group at IBM had produced the report titled "The IBM Mathematical FORmula TRANsalating System: FORTRAN". This document described the first version of Fortran, the first fortran compiler included little syntax error checking.
Fortran 0 was modified during the implementation periond, which began in january 1955.

-Fortran I :
The implemented language, which we called Fortran I, is described in the first Fortran Programmer's Reference Manual, published October 1956.
the most audacious claim made by the fortran development group during the design of the language was that the machine code produce by the compailer would be about half as efficient as what could be produced by hand.

- Fortran II :
compiler was distributed on 1958. It fixed many bugs in the Fortran I and added some significant features to the language, the most important being the independent compilation of subroutines. Few years after, it also added support for double precision and complex data types

Fortran IV :
- Fortran IV was developed in 1961 and released in 1962. It became the most used programming language of its time. IT contains many improvements from Fortran II, like explicit type declarations for variables, logical if construct and capability of passing subprograms as parameters to other subprograms

4. As a research project, compare the features of C with those of the BASIC.
-BASIC was easy for beginners to learn, especially those who were not science oriented, and its smaller dialects can be implemented on computers with very small memories.
-C has adequate control statements and data-structuring facilities to allow its usee in many applications areas. It also has a rich set of operators that provide a high degree of expressiveness.

5.Which of the three original goals of the Fotran design commitee, in your opinion, was most difficult to achieve at that time?
-Speed of the generated object was the most difficult to achieve because of computers at that time has slow and not reliable performances.

6.Make an educated guess as to the most common syntax error in C programs.
-C has lack of complete type checking, this will cause syntax error difficult to found. For example, in versions before C99, functions could be written for which parameters were not type checked

7.LISP began a a pure functional language but gradually acquired more and more inverative features. Why?
-LISP-The first functional programming language was invented to provide language features for list processing. Interest in AI grew out liguistics were concerned with natural language processing, pyschologist were interested in modeling human information storage and retrieval, mathematiicians were interested in mechanizing certain intelligent processes.
Some method must be developed to allow computers to process symbolic data in linked lists which make LISP gradually developed.

9. Why, in your opinion, did Fortran allow names that began with I,J,K,L,M, and N as implicitly integer type?
-Scientists and engineers, used those alphabets to represent an unknown number as variable so they can process the problem. In my pure opinion, it is because it’s easier to use those alphabets as names since most likely Fortran was not yet used to develop a program that is too complex / has too many parts that using such variable name would confuse the programmer

13. What is the primary reason why C became more widely used than Fortran ?
-Fortran can’t allocate new variables or space during execution time. This made recursive subprograms to run and made it difficult to implement a data structure that change shape dinamically. Kinds of program being built were simpler than recent. Thus Fortran are not able to accomodate the requirements of recent software developments. But, C is able to cover most of Fortran’s weakness on developing software that has advanced requirements. That is why C is more widely used.

March 4, 2013

KBP Chapter 1


Rickvian Aldi / 01PBT / 1601253441
Assignment By Mr. Tri Djoko Wahjono
1. Why is useful for a programmer to have some background in language design,  even though her or she may never actually design a programming language?

-Increased capacity to express ideas
-improved background for choosing appropriate languages
-Increased ability to learn new languages
-better understanding of the significance of implementation
-better use of languages that already known
-overall advancement of computing.

2. How can knowledge of programming language characteristic benefit the whole
computer community?

-If those who choose languages were better informed, perhaps better languages would squeeze out poorer ones.

3. What programming language has dominated scientific computing over the past 50 years?

-Fortran.

4. What programming language has dominated business applications over the past 50 years?

-COBOL

5. What programming language has dominate artificial intelligence over the past 50 years?

-LISP

6. In what language is UNIX written?

-C

7. What is the disadvantage of having too many features in a language?

-Programmers who must use a large language often learn a subset of the language and ignore its other features.

8. How can user-defined operator overloading harm the readability of a program?

-In which a single operator symbol has more than one meaning, this simplicity
makes assembly language programs less readable because they lack more complex control statements, program structure is less obvious

9. What is one example of a lack of orthogonality in the design of C?

-C has 2 structured data types, arrays and records (structs), records can be returned from functions but arrays cannot.

10. What language used orthogonality as a primary design choice?

-ALGOL 68

11. What primitive control statement is used to build more complicate control statements in languages that lack them?

-selection statement plus GOTO is used to build more complicated control statements such as FOR loop.

12. What construct of a programming language provides process abstraction?

-Subprograms

13. What does it mean for a program to be reliable?

-A program is said to be reliable if it performs to its specifications under all conditions.

14. Why is type checking the parameter of a subprogram important?

-to avoid bugs and syntax error, the earlier errors in program detected, the less cost it is to make the required repairs.

15. What is aliasing?

-is having two or more distinct names that can be used to access the same memory cell.

16. What is exception handling?

-The ability of a program to intercept run time errors.

17. Why is readability important to writability?

-Both readability and writability influence reliability. Programs that are difficult to read are difficult both to write and to modify.




PROBLEM SET

1. Do you believe that solving a problem in a particular algorithmic step requires programming language skills? Support your opinion.

solving problem don't require programming language skills, algorithmic steps are steps that procedurely done, which usually has different case depending on the condition. For example you have problem to make instant cereal. First step is preparing glass and the cereal sachet. Second, open the cereal sachet. Next pour the cereal into the glass. If you have boiled water / hot water dispenser, pour hot water into the glass, else boil water until boiled then pour it into the glass. This problem doesn't require programming language skills.

2. Who is said to be the first programmer in human history? use the Internet for help.

Augusta Ada Byron and now commonly known as Ada Lovelace, born 10 December 1815 was an English mathematician and writer. Her notes on the engine include what is recognized as the first algorithm intended to be processed by a machine.
Because of this, she is often considered the world's first computer programmer.

3. What are the disadvantages of multiple programming languages?

Programmers will needed to know each programming language they need, diffrent
syntax and diffrent system cause programmers need to study other way to code,
which is take more time to study each of programming language.

4. In what way do the languages for scientific applications differ from the languages for business applications? Support your view.


Languages for scientific applications uses relatively simple data structures, but require large numbers of floating-point arithmetic computations. The most common data structures were arrays and matrices; the most common control , structures were counting loops and  selections.
But in languages for business applications is typically used for producing elaborate reports, precise ways of describing and storing decimal numbers and character data, and the ability to specify decimal arithmetic operations.

5. In what way do the languages for artificial intelligence differ from the languages for web software ? Support your view.

In languages for artificial intelligence is characterized by the use of symbolic computations rather than numeric computations. Symbolic computation means that  symbols, consisting of names rather than numbers, are manipulated. Also, symbolic computation is more conveniently done with linked lists of data rather than arrays. languages for web software supported by an eclectic collection of languages,
Because of the pervasive need for dynamic Web content, some computation capability is often included in the technology of content presentation provided by such as HTML, JavaScript, or PHP. There also some markup-languages that have been extended to include constructs that control document processing.

6. Which characteristics of programming languages do you think are the most important and why?

The most important is Reliability. Reliability consists of Type Checking, Exception Handling, Aliasing and Readability and Writability. A programming language needs to check whether the type of the parameters passed and expected are compatible or not. If it is not compatible and it is not checked, the output will be a nonsense. On the other hand, if a program meets a run-time error, it needs to be able to correct the error and resume its work (exception handling). A Language also need to be simple but at the same time orthogonal on a balanced scale. This is so that a program written in a certain language will be easy to maintain in case if there’s an error and also not confusing to other programmers in manners of education.

7. Java uses a semicolon to mark the end of all statements. What are the advantages for and against this design?

advantage of it is semicolon to mark the end of all statements is one good way to increase program readability, to end each statements and decrease program ambigous. the disadvantage of it is without this semicolon, the compiler will be error. and adding extra semicolon unintentionally will terminate a unfinished statement and doesn't showing syntax error, which in large program cause programmer need to difficultly find out what cause the logical problem.

10. Make a comparative study of the cost of software and hardware!

software and hardware cost are now variative depending on
hardware:
performance
manufacturing cost
Branded
capatibility

software:
the use (for personal, or bussines company use)
development cost
brand of the software

there are a lot of hardware that sold cheap nowdays, large number of manufacturer and brands cause brands to compete each other. But some of hardware are exclusive and expensive for example database server for large worldwide company.
Some personal software sold cheap nowdays, easy access and purchasing lower the
cost, but some expensive software are for spesific purpose and developed by
company.

15. Name some languages which use preprocessor directives and some which don’t.

What are the advantages and disadvantages of preprocessor directives ?
Some languages that use preprocessor directives : C, C++ and C#
Advantages of preprocessor directives :

1. Reduces length of the code and time spent for writing the codes
2. Increases execution speed of the program
3. Increases Readability and Writability of the program
Disadvantages :
1. Increases size of the program
2. Unlike functions, macros can only return the last value processed
3. Causes an error since there’s no variable type check, unlike functions

January 17, 2013

PTI Assignment Chapter 15


True/False
1. True
2. False
3. True
4. True
5. False
6. False
7. True
8. True
9. True
10. False

Multiple Choice
1. A     
2. C
3. C
4. A
5. D
6. B
7. D
8. B

Matching
1. E
2. D
3. J
4. G
5. H
6. B
7. F
8. I
9. A
10. C

Short Answer
1.- Cost
This is pretty obvious, and even more important with our economy fluctuating everyday. Trade schools can cost only about an 1/8 of the price for a four year degree.
-A Job Waiting For You When You Graduate
Vocational schools give you the exact skills you need for the job market after you graduate.
-Hands-On Training
Tech schools teach you what you need to know…not all the extra stuff like at other colleges.
-Job Security
Most of the programs offered at trade schools are for careers that need to be done in person, by the people who are closest.
- A Successful Future
After graduating, you will always have a career and you will be making good money, without having to pay off college debt.

Factors should you consider when selecting a trade school :
- Find out of the hours of instruction meet or exceed the minimum requirements to get a job (or state-approved certification, if this is the main criteria needed to get a job).
- Make sure they are current with industry standards.
- Get feedback from other sources.
- Compare the price of tuition.
- Make sure this is what you want to do.

2.-The benefits of professional growth and continuing education is keeping up to date information about new products and services in the computer industry , because nowdays technology changes so rapidly.
-One way to stay informed is to participate in professional growth and continuing education activities such as workshops, seminars, conferences, conventions, and trade shows. Another way to keep up to date about industry trends and technologies is to read one or more computer industry publications regularly or visit news, blogs, wikis, or technical Web sites.

3. Consider your career path during the long term. Then, assess your background knowledge and experience. Finally, research certifications to find those that best match your needs.
Four options for preparing for certification are
1) Self-study: Flexible self-study programs help professionals prepare for certification at their own pace and supplement other training methods.
2) Online training classes: Online training allows students to set their own pace in an interactive environment and combines the technological advantages of computer-based training with the connectivity of the Internet or a company’s intranet.
3) Instructor-led training: Instructor-led training is available in a variety of forms, including seminars, which typically are held for several days during a week; boot camps, which immerse students in intensive course work for up to two weeks; and academicstyle classes, which span a period of several weeks or months. Some sponsors hold their own training sessions and also authorize independent training centers.
4) Web resources: The certification sponsor’s Web site generally contains descriptions of the available certifications, with FAQs and links to authorized training and testing centers.

4. The focus of programmer/developer certification is to verify whether a person is capable as a programmer or a developer. Other types of certification are beneficial to those interested in programmer/developer certification are Networking and Web design certification.

-People in the following jobs may be interested in a programmer/developer certification:
• Java programmers
• Mobile application developers
• Oracle database managers
• Programming consultants
• SQL programmers
• Web software developers
• XML developers

5. Hardware certification is the process through which computer hardware is tested to ensure it is compatible with specific software packages, and operates as intended in critical situations.

-People in the following careers may be interested in hardware certification:
• Cable installation technicians
• Computer repair technicians
• Corporate trainers
• Help desk specialists
• IT consultants
• System engineers and administrators

PTI Assignment Chapter 14


Rickvian Aldi / 01PBT / 1601253441

True/False

1. True
2. False
3. False
4. True
5. False
6. False
7. True
8. True
9. True
10. True

Multiple Choice

1. C     
2. B
3. A
4. B
5. A
6. D
7. A
8. D

Matching

1. H     
2. F
3. B
4. E
5. D
6. G
7. A
8. J
9. I
10. C

Short Answer

1.- There are many specific duties that will vary widely depending on what type of activity the manager is responsible for. But in general terms, managers are usually responsible to ensure that the people assigned to them are doing their tasks correctly. The definition of “correctly” is where there is a good degree of variation from job to job, but it usually involves managing a budget for the people assigned to the manager, ensuring that the tasks of those people are completed on whatever schedule has been established, working through personnel issues like training if necessary, salary issues, bad performance, etc.
-Four activities managers perform to coordinate resources are planning, organizing, leading, and controlling.

2. A content management system (CMS) is an information system that is a combination of databases, software, and procedures that organizes and allows access to various forms of documents and other files, including images and multimedia content.
They are based on the user’s actions, the content management system processes content, categorizes the content, indexes the content so that it later can be searched, and stores the content.

3. Types of virtualization :
1) Server virtualization provides the capability to divide a physical server logically into many virtual servers.
2) Storage virtualization provides the capability to create a single logical storage device from many physical storage devices.

Grid computing is where more than one computer coordinates to solve a problem together. Often used for problems involving a lot of number crunching, which can be easily parallelisable.
Cloud computing is where an application doesn’t access resources it requires directly, rather it accesses them through something like a service. So instead of talking to a specific hard drive for storage, and a specific CPU for computation, etc. it talks to some service that provides these resources. The service then maps any requests for resources to its physical resources, in order to provide for the application. Usually the service has access to a large amount of physical resources, and can dynamically allocate them as they are needed.
As the demand for computing resources increases, companies may find that using outside computing resources is more economical than building new computing capacity internally. Cloud and grid com puting are two new technologies that provide flexible and massive online computing power.

4. Five types of e-commerce are Business to Business, Business to Consumer, Consumer to Business, Consumer to Consumer, and Mobile E-commerce

-Business to Business
Business to business, or B2B, e-commerce consists of online transactions between companies, with no involvement of either company’s retail consumers. For example, an automobile manufacturer that requires 50,000 lug nuts orders them through the vendor’s website. Both the automobile manufacturer and the lug nut manufacturer sell their products to individual consumers through other outlets, but the automobile manufacturer’s order excludes both companies’ retail consumers. B2B e-commerce reduces errors while enhancing efficiency.

-Business to Consumer
The type of e-commerce most easily recognized by most people, business to consumer (B2C) e-commerce consists of online transactions between consumers and online retailers or service providers. B2C typically operates in one of two ways. In one approach, the company operates a website where customers can buy the products or services directly from the company. The other model consists of a company maintaining a website that third-party companies use to sell products or services.

-Consumer to Business
A classic example of consumer to business (C2B) e-commerce is a person taking bids from different construction companies to build a home. The Internet opens the door for a much wider variety of C2B transactions. C2B e-commerce typically means that a person needs a professional to accomplish a task. The consumer posts a job description to a forum or website dedicated to C2B transactions, and solicits bids from businesses. After selecting a bidder, the consumer typically pays the business through an electronic medium. Websites that cater to C2B transactions frequently offer or require the consumer to use the site’s secure financial services.

5. The location of backup data, supplies, and equipment, The personnel responsible for gathering backup resources and transporting them to the alternate computer facility, and a schedule indicating the order in which, and approximate time by which, each application should be up and running.
For a backup plan to be successful, the organization must back up all critical resources. Also, additional people, including possibly nonemployees, must be trained in the backup and recovery procedures because organization personnel could be injured in a disaster.

PTI Assignment Chapter 13

Rickvian Aldi / 01PBT / 1601253441

True/False

1. True
2. True
3. True
4. True
5. True
6. False
7. False
8. True
9. False
10. False

Multiple Choice

1. B     
2. C     
3. C     
4. A     
5. A
6. C
7. D
8. B

Matching

1. G
2. D
3. J
4. I      
5. C     
6. E
7. A
8. H
9. B
10.F

Short Answer
1. A compiler converts the entire program into executable code before running, when running the program only the executable version of the code is running. An interpreter converts the code during run time, it converts the code 1 line at a time at the time that it is running.

Advantages of interpreter are :
- Interpreters are useful for program development when execution speed is not important. As the interpreter is in command of the execution process debugging features can be build in.
- Debugging is easier since the interpreter stops when it encounters an error. If an error is deducted there is no need to re translate the whole program.
- There is no lengthy “compile time”, i.e. you do not have to wait between writing a program and running it, for it to compile. As soon as you have written a program, you can run it.

Disadvantages if interpreter is Interpreters normally translate and execute programs line by line, converting each program statement into a sequence of machine code instructions and executing these instructions without retaining the translated version.

2. -Major benefit of OOP is the ability to reuse and modify existing objects.
-RAD (rapid application development) is a method of developing software, in which a programmer writes and implements a program in segments instead of waiting until the entire program is completed. Users begin working with sections of the program as they are completed.

3. An IDE (integrated development environment) includes tools for building graphical user interfaces, an editor for entering program code, a compiler and/or interpreter, and a debugger.

Describe the programming languages in the Visual Studio suite.
- Visual Basic is a programming language that allows programmers easily to build complex task-oriented object-based pro grams.
- Visual C++ is a programming language based on C++. Not only is Visual C++ a powerful object-oriented pro gramming language, it enables program mers to write Windows, Windows Mobile, and .NET applications quickly and effi ciently.
- Visual C# is a programming language that combines programming elements of C++ with an easier, rapid development environment.

4.- XML separates the Web page content from its format, allowing the Web browser to display the contents of a Web page in a form appropriate for the display device. For example, a smart phone, a PDA, and a notebook computer all could display the same XML page or use different formats or sections of the XML page.

Describe two applications of XML :
1) RSS Rich Site Summary is a family of web feed formats used to publish frequently updated works—such as blog entries, news headlines, audio, and video—in a standardized format.
2) The Atom Syndication Format is an XML language used for web feeds, while the Atom Publishing Protocol (AtomPub or APP) is a simple HTTP-based protocol for creating and updating web resources.

5. -Review the program code and review all the documentation.
-Proper documentation greatly reduces the amount of time a new programmer spends learning about existing programs.

PTI Assignment Chapter 12


Rickvian Aldi / 01PBT / 1601253441

True/False
1. True
2. True
3. False
4. False           
5. False           
6. True
7. False
8. False
9. True
10. True
11. False

Multiple choice
1. A
2. B
3. C
4. A     
5. C
6. D
7. A
8. D

Matching

1. H     
2. D     
3. A     
4. B     
5. I      
6. G
7. F
8. J
9. C
10. K

Short Answer

1.  System development is a set of activities used to
build an information system.

Five phases of the system development life cycle :
1) Planning, Establishes a high-level view of the intended project and determines its goals.
2) Analysis, Refines project goals into defined functions and operation of the intended application. Analyzes end-user information needs.
3) Design, Describes desired features and operations in detail, including screen layouts, business rules, process diagrams, pseudocode and other documentation.
4) Implementation to construct, or build, the new or modified system and then deliver it to the users.
5) Operation, Support, and Security, perform maintenance activities, monitor system performance, assess system security.

2. Four types of feasibility are:
- Operational feasibility measures how well the proposed information system will work.
- Schedule feasibility measures whether the established deadlines for the project are reasonable.
- Technical feasibility measures whether the organization has or can obtain the hardware, software, and people needed to deliver and then support the proposed information system.
- Economic feasibility, also called cost/benefit feasibility, measures whether the lifetime benefits of the proposed information system will be greater than its lifetime costs.

Six techniques used to gather data and information are:
-Review Documentation, -Observe
-Survey
-Interview
-JAD Sessions (Joint-application design sessions).
-Research.

3. Unified Modeling Language is used to specify, visualize, modify, construct and document the artifacts of an object-oriented software-intensive system under development.

Difference of use case diagram and class diagram are that an use case diagram graphically shows how actors interact with the information system. An actor is a user or other entity such as a program.  A class diagram graphically shows classes and subclasses in a system. On a class diagram, objects are grouped into classes.

4. The three major activities of the operation, support, and security phase are Perform maintenance activities, Monitor system performance, and Assess system security.

Type of maintenance activity.
1) Corrective maintenance, which is the process of diagnosing and correcting errors in an information system.
2) Adaptive maintenance is the process of including new features or capabilities in an information system.
3) Performance monitoring is the process to determine whether the system is inefficient or unstable at any point.
4) Perfective maintenance is the process to investigate solutions to make the information system more efficient and reliable.

5. Security planning for IT may involve the development of security policies (ie, acceptable use, disaster recovery, breach notification), implementation of security controls (to include hardware, software, and personnel), risk assessment, cryptographic use and controls, and legal/ethical considerations.

Three things should a computer security plan do  :
1) Identify all information assets of an organization, including hardware, software documentation, procedures, people, data, facilities, and
supplies.
2) Identify all security risks that may cause an information asset loss. Rank risks from most likely to least likely to occur.
3) For each risk, identify the safeguards that exist to detect, prevent, and recover from a loss.