This post is my report of my second week, as MTI’s student
Still like the first post, it will explain everything I’ve learned on my second week
The courses I took on the second week started from RESEARCH METHODOLOGY AND SCIENTIFIC WRITING CLASS. In this class, we talk about the “TRUTH”, start from the definitions, and about types of truth. There are 3 types of truth: faith-based truth (believed, for each individuals, absolute), perception-based truth (different from one to one), and scientific-based truth (needs scientific inquiry). After that, we continue to discuss the history of scientific inquiry: dark age – enlightment age – modern age – post modern age. We also talk about scientific inquiry, which is a variety of methods to explore the natural world and proposed explanations based on the evidence they find.
The lecturer then asks the class about what’s the difference between science and art. He said that an art is a result of imagination, while science is a result of verification. But, an imagination that verified scientifically will become a science, too.
There are 2 mainstream in research: positivist research and interpretive research. Positivist research is a paradigm that believes something is the truth if and only if there are facts which can be observed and proven. Interpretive research is a social phenomenon, which considers the truth as something that is relative, it depends on human’s ability and assumptions. There is also another stream, called appreciative inquiry. This is an approach with strength exploration paradigm in order to decide which way the company should be heading?
We also talk about 3 kinds of Logical Thinking: Inductive Reasoning, Deductive Reasoning, and Abductive Reasoning. Abductive reasoning is a quick decision of specific matter, in order to make more focus
Then, we talk about varieties of logical fallacies: generalization, irrelevant conclusion, affirming the consequence, arguing in a circle, non sequitur, loaded question, misinterpret opponent’s position, equivocation, division fallacy, and misplaced concretion. Then we move on problem’s discussion, include how to make problem analysis.
That’s all for RMSW class
And tonight, I have database class.
DB class this night talks about entity-relationship-attribute.
The lecturer taught us that the decision to make an object become an entity or an attribute is depends on user’s need. If the user needs to see the details then we should make it an entity rather than an attribute.
A relationship in database has various types. The first one is unary relationship, which only involves single entity. The second one is binary relationship, which involves two entities. The third one is ternary relationship, which involve 3 entities. And the last one is N-nary relationship, which involves n entities. There is also a term called multiple relationship, that has more than one relationship on two same entities. For example:
A relationship might has an attribute, but it’s fine if it doesn’t. Attribute also has many types, such as simple attribute, composite attribute, single-valued attribute, multi-value attribute, and derived attribute.
We also talk about key. A key is a characteristic that differs one entity from another, in a form of an attribute.
We have candidate key, primary key, and composite key. Candidate key is a list of keys that are not picked as primary key. Composite key is a candidate key that has more than 1 attribute.
Bellow is an example of an entity that has multi-valued attribute:
Database also has 2 entity types: strong entity and weak entity. Weak entity existence is dependent on strong entity. The ERD’s important constraint in relationship is cardinality and participation.
Next discussion is the enhanced ER modeling. We discuss the specialization and generalization in ERD. We have subclass and superclass relationship, which may have overlapping or disjoint criteria. If a generalization has optional characteristic, it means that not all superclass’ member must become the subclass’ member, too. Mandatory relationship means that all member of superclass must become member of subclass, too. The inheritance of superclass’ attribute to the subclass’ attribute is called attribute inheritance.
We also have mapping steps, to help us do the mapping right.
First of all, we can map the strong entity then move on mapping the weak entity. Then we can start mapping the 1 to 1 relationship, followed by 1 to many relationships, then we can handle many to many relationship.
That’s all for today’s class.
This time the class discusses the Computer Network’s class talks about Fundamentals of Data and Signals chapter.
The introduction is the definitions of terms that will be used in this chapter, include definition of convergence, data, signals, transmission, followed by some examples of those terms.
Types of signal: continuous, discontinuous, discrete, and non-discrete.
The lecturer also explains the definition of amplitude and frequency, which are components of a signal. Frequency has related properties such as period, bandwidth, spectrum and attenuation. A period is a time within one cycle. Spectrum is a range of frequency. A bandwidth is a difference between the highest frequency and the lowest. There’s also attenuation, a reduction of signal’s strength. A signal also has a phase, which is a relative position over the zero point.
We can compute signal strength by following this rule:
There are some techniques to convert digital data into digital signal, such as NRZ-L, NRZ-I, Manchester, Differential Manchester and 4B/5B Encoding.
There are also techniques to convert digital data into analog signals, like amplitude modulation, frequency modulation, and phase modulation.
For data transfer rate, can be computed by this equation: , where f is signal frequency, W is signal power, and N is noise power.
As for converting analog data into digital signal, it can be done by pulse modulation and delta modulation. We also have 3 data code sets: EBCDIC, ASCII, and Baudot Code.
That’s all for today’s class.
Today’s class of PM-RPL talks about CMMI. CMMI is a model, framework, and concept to measure the capability of an organization.
The lecturer also taught us that a mature organization will have some sort of rules/plans/tactics that are implemented inside the organization. Such a mature organization won’t fall just because one of their best employee leave the company. Matured company will naturally held a review whenever they face failure, they learned from their mistake, then do an adjustment to make an improvement. This review activities not only be done when they face failure but also when their project success.
So, CMM will help us to differ the high quality software development company with the low quality company.
SW-CMM has 5 levels of software maturity: Initial, Repeatable, Defined, Managed, and Optimizing. We can use CMM by hiring a certified assessor to conduct formal evaluation. We also could conduct an internal assessment by sending the company’s worker to an official CMM training.
Next is about CMMI, a model that consists of best practices that address productivity, performance, costs, and stakeholder satisfaction. CMMI can help the company to set process improvement goals and priorities, and provide a yardstick for appraising current practices. The lecturer also talks about the values of CMMI.
Then we move to KPA (key process area), for each organization’s maturity level, SEI has set the KPAs as a reference to step on the next level. We have some common features / factors in implementation and institutionalization, the factors are activities performed, commitment to perform, ability to perform, measurement and analysis, and verifying implementation.
By implementing CMMI, we could have quantifiable benefits such as reduce the cost of development, better level of control on project changes, reduced time to market, better resource allocation, increase percentage of project on-time and on-budget, and so on.
That’s all for today’s PM-RPL class.
Today, I have PSI class, which mainly talks about best practices, today.
We discuss about the challenges of software development, which is a job for teams. The challenges are about larger teams, specialization, distribution, and rapid technology change. The fact that we faced nowadays is that 68% IT projects completed, but from those completed projects, we only have 17% that run on-budget, so the remaining are 32% cancelled, and 51% projects run over-budget. So we have many successful software development projects, but we also have many failures.
Some symptoms of software development problems: inaccurate understanding of end-user needs, inability to deal with changing requirements, poor software quality, team member in each other’s way unable to reconstruct, and so on. To solve these problems, we have to find the root causes, which can be done by using best practices of software engineering. The best practices consists of develop iteratively, manage requirement use component architectures, model visually, verify quality, and control changes. We should conduct the best practice iteratively so we can accommodate changing requirements, mitigate risks earlier, get early feedback from end-users, result in a very robust architecture, and so on. We also need requirements management to make sure we solve the right problem and build the right system. Then we make visual modeling of the software to improve our ability to manage software complexity.
Then we move to UML (unified modeling language), which is a language for specifying, visualizing, constructing and documenting the artifacts of a software-intensive system. Besides that, we need to control changes to software, to prevent chaos when running parallel development.
By implementing the best practices, we can achieve result: a software that is on time, on budget, and meet the user’s needs.
That’s all from today’s PSI class.
Today is Friday, and usually I won’t have class today, but this is a special case, since my TSBD lecturer couldn’t come on next Monday, so the replacement class will be held today.
Today’s call of TSBD mainly talks about the term Normalization.
We need to normalize our database in order to prevent the repetition of information (redundancy), and to avoid the inability to represent certain information, we also want to minimize the presents of null values. Data redundancy can lead the update anomalies to happen. Update anomalies has some types include insertion, deletion, and update. We have goals of normalization, such as to decide whether a relation is in a “good” form, we can decompose the relation to make them good. The decomposition is based on functional dependencies theory and multivalued dependencies theory. Functional dependency is a relation between attributes, when each value of the attribute is associated with exactly one value of the other attribute. In FD, we have a determinant, which is an attribute on the left-hand side of the arrow.
We also have terms like full functional dependencies. Full functional dependency indicates that if A and B are attributes of a relation, B is fully functionally dependent on A, if B is functionally dependent on A, but not on any proper subset of A. Then we have transitive dependencies, which describe a condition where A, B, and C are attributes of a relation such that if A → B and B → C, then C is transitively dependent on A via B.
Decomposition itself has 2 properties, they are: lossless-join property, and dependency preservation property.
We have 6 steps of normalization process, start from 1NF, 2NF, 3NF, BCNF, 4NF and 5NF. Normally, it’s enough for us to just reach the 3NF.
The characteristic of 1NF is a relation with no multivalued attributes, we’ll have to decompose the relation of it has multivalue attributes. 2NF is achieved when the relation is in 1NF and every non-prime attribute is fully functionally dependent on the candidate key. Next is 3NF, which can be achieved when a relation achieved 1NF and 2NF and in which no non-prime attribute is transitively dependent on the candidate key. Then we have BCNF, which can be achieved if the determinant is the candidate key.
That’s all from today’s class, and also end of this week’s course
See you again next week