Y12 Programming Flashcards

framework for development (70 cards)

1
Q

what are the four stages of framework for development

A
  1. Investigate
  2. Design
  3. Develop
  4. Evaluate
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

in the investigation stage, explain about problem description clarification of specifications

A
  • involves developing team meeting to interpret what the specific needs are.
  • achieved through design team analysing the design brief and/or statement from the client, then highlighting key features to determine the requirements
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

in the investigation stage, explain about problem description performance requirements

A
  • the development team can gain a better understand of a proposed system
  • it is used to identify elements of a proposed system that needs to be factored into the new system when created.
  • elements may be recorded and referred to, particularly at the evaluation stage
  • performance requirements refer to non-functional criteria the system must meet, such as speed (systems responsiveness), capacity (amount of data system can store), availability (systems up-time and accessibility), and security (protecting the system and its data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

in the investigation stage, explain about defining requirements

A
  • helps project team gain understanding of how the existing team works and what elements of the existing system need to be carried over to the new system.
  • it is used in the planning stage to ensure elements of existing system are factored into the new system
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

in the investigation stage, explain about the development schedule

A
  • a schedule will be needed and later tracked and managed. they vary, depending on the project, but generally include scheduling methodology, performance measurements and tools and procedures.
  • involves identifying tasks based on requirements and determining the sequences of tasks and their required resources.
  • project managers use project management software to create schedules by using tools such as Gantt and PERT charts, task lists and calendars.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

in the design stage, explain about designing data structures

A
  • a method for organising and storing data in a computer
  • the four primary functions are inputting, processing, maintaining and retrieving data.
  • data structures allow developers to organise data and present it in a logical manner, which results in more manageable programs and fewer variables
  • eight common data structures are arrays, hash tables, objects, linked lists, stacks, queues, trees, heaps and graphs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

in the design stage, explain about design and test algoritms

A
  • this is the point where you will use pseudocode or flowcharts to work out problems that may occur during the code
  • once you have the basic framework its time to start analysing how efficient the code is and make sure the outcome is correct.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

in the develop stage, explain about developing code

A
  • coding is the process of transforming the design of a system into a computer language format
  • some goals of coding include:
    -> translating the design of a system into a computer language format.
    -> reducing the cost of later phases
    -> making the program more readable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

in the develop stage, explain about debugging code

A
  • debugging is a multistep process that involves identifying a problem, isolating the source of it and then either correct the problem or determine a way to work around it.
  • begins when developer locates a code error in a computer program and is able to reproduce it
  • the process of debugging a new software program can take more time than it took to write the program
  • all bugs are documented along with their solution or workaround
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

in the develop stage, explain about unit testing and use of live data

A
  • unit testing is powerful tool for software quality.
  • provides fundamental check that an application meets its software design specifications and behaves as intended
  • unit testing test individual components of a program with a range on inputs and data to ensure it works as expected and doesn’t create any errors
  • if there is a failure, then the software must be refactored
  • can be manual but most software is tested automatically by testing software
  • when they are done well, unit tests:
    -> decrease defects and expose them early in the development lifecycle
    -> increase code readability
    -> enable code reuse
    -> improve deployment speed
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

in the evaluate stage, explain about user acceptance testing and the types of UAT

A
  • software is tested in real-world scenarios by the intended audience
  • primary goal is to verify that software can effectively handle the real-world tasks and meet specific development requirements
  • users are given the opportunity to interact with the software
  • the feedback gathered from the early testers is forwarded to developers who implement final adjustments
  • UAT safeguards against the release of faulty, ineffective and incomplete software programs
  • some types of UAT include:
    -> beta testing - software given to group end users who evaluate the functionality
    ->alpha testing - tested internally by the development team
    -> black box testing - end users test specific functions without the access to internal code
    -> operational acceptance testing - focuses on software’s operational readiness
    -> contract acceptance testing - tested against specific criteria and specifications
    -> regulation acceptance testing - ensures software complies with APPs
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

in the evaluate stage, explain about developer retrospective and identify what each team member must do and the key features of developer retrospective

A
  • retrospectives are crucial meetings held at the end of each stage
  • the team reflects on completed stage, and evaluates the success and challenges, and what needs to be improved.
  • each team member contributes by answering the following questions
    -> what worked well
    -> what didn’t work well
    -> what actions can we take to improve
    -> what specific steps can we implement
  • key features include
    -> preparation
    -> analysis
    -> action planning
    -> closure
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

what is software development process

A
  • framework that outlines stages involved in creating the software
  • ensures the software is developed in a structured and organised way
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what is the linear and iterative approach and list the 6 phases

A

linear: it is a sequential approach where each phase is completed before moving on
iterative: incremental approach where each phase is repeated several times until desired product is achieved

phase 1: requirement gathering
phase 2: design
phase 3: implementation
phase 4: testing
phase 5: deployment
phase 6: maintenance

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

what are some characteristics of the iterative approach development process

A

-> incremental
-> flexible
-> higher risk management
-> continuous improvement

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

what are some characteristics of the linear approach development process

A

-> sequential
-> predictive
-> little flexibility
-> high risk

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

how do you choose the right development process (linear/iterative)

A

some factors include:
- project size and complexity
- stakeholder expectations and involvement
- team size and experience
- project timeline and budget
when shall i use what?
- linear -> small, well defined projects
- iterative -> large, complex projects

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

in gpp, explain about validating input

A
  • ensures runtime errors/exceptions don’t occur
  • reduces issues of poor data integrity by ensuring high quality data entry
  • can be done on expected data type, range, consistency, presence and format
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

in gpp, explain about commenting

A
  • describe purpose of code and any algorithms used to accomplish purpose
  • create documentation for projects because as the project gets more complex, it becomes much easier to track the code
  • it helps understand the past code which you may have written a while ago
  • other people will find them useful to understand
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

in gpp, explain about meaningful variable names/modules/functions

A
  • avoid short or ambiguous variable names like ‘temp’ ‘x’ or ‘i’,
  • avoid excessively long variable names ‘thisPersonsFavouriteColour’
  • be consistent with cases
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

in gpp, explain about indentation and whitespace

A

whitespace - reduces the strain on eye and separates code into sections
indentation - clearly defines where a block of control structures start and ends

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

in gpp, explain about the use of stubs

A
  • essentially a dummy methods or functions that represent an unfinished response/code
    an example:
    def Calculate_Total(order):
    return 10.00
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

in gpp, explain about version control

A
  • system that tracks changes to a set of files over time
  • it helps developers to collaborate effectively, revert to previous verions, experiment etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

in gpp, explain about backups

A
  • it ensures safety and availability of code in a case of major problem
  • how does regular backups contribute to gpp
    -> data protection, disaster recovery, version control, testing and development
  • implementing regular backups effectively
    -> increase backup frequency, label and organise backups, use combination of backups
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
in gpp, explain about exception handling
- when unexpected error occurs, it can help you recover and continue executing program - benefits include improved reliability, increased maintainability and better user experience good uses: - try to be precise with exception handling - considered better to specify exception - use it appropriately and don't overuse - log exceptions bad uses: - don't have it a lot in code - if performed often, it will affect overall performance of the program.
26
what is an algorithm
a set of commands that must be followed for a computer to perform operations. some examples include flowcharts and pseudocode
27
what is pseudocode
- informal description of computer program - uses structural conventions of programming language - intended for human reading because it is easier to understand
28
name the 3 types of control structures and explain about them
1. sequence - instructions processed in order 2. selection a. one-way (if...then) b. two-way (if...then...else) c. multi-way (case...of, nested if) 3. iteration a. test first (while) b. test last (repeat) c. fixed (for)
29
what is a data type and explain about them
a classification that identifies specific type of data some data types include - integer -> represents whole numbers - real/floating point number -> represents decimal numbers - boolean -> true or false - character -> letters, numbers, punctuation marks etc. - string -> sequence of characters
30
what are mutable variables
- can hold multiple values at the same time - examples include lists and dictionaries - modifying/changing contents doesn't require a new memory location.
31
what is immutable variables
- only be assigned a single value at a time, like integers, strings etc. - when you assign an immutable variable, it points to a location that contains the value. - multiple values at the same time can reference the same memory location if they contain the same values
32
what is a variable scope
- refers to part of program where a variable is accessible - it determines where and how a variable can be used within program
33
what is a local scope
- variables that are declared inside a function - only accessible within the function where they are defined def my_function(): x = 10 print(x) my_function() # output is 10 print(x) #error because x isn't defined
34
what is a global scope
- variables declared outside of any function or block have a global scope - they can be accessed from anywhere within program x = 10 def my_function(): print(x) my_function() #output is 10 print(x) # output is 10
35
how do you modify a global variable within a function
x = 10 def my_function(): x = 20 # modifying will not change it outside the function def my_other_function() global x x = 20 # modifying global variable will change my_function() #output is 10 print(x) # output is 10 my_other_function() print(x) # output is 20
36
what are nested scopes
- a function within a function within a function etc. - python allows for nested scopes where each inner scope has access to its own variables as well as variables from outer scopes x = 15 def outer_function(): y = 10 #outer scope def inner_function(): z = 5 return x + y + z #inner function has access to outer function and main variables return inner_function() print(outer_function()) # output is 30 print (x + y + z) #error as y and z not defined
37
what are arrays and why shall we use arrays and what is numpy
- it allows for storage of multiple values in a single variable, reducing the need to create and reduce numerous individual variables - it makes it more manageable and efficient - in python, a popular library is numpy which provides an array object that is up to 50x faster and more powerful - to use arrays, you need to import specific modules - we use arrays to enhance coding efficiency, reducing overall length and complexity of code - some numpy functions include array, append, insert, delete, sort, reshape, sum, mean, max, min - which are in the format of numpy.array()
38
describe big o notation
- describes the limiting behaviour of a function when an argument tends towards a particular value or infinity - describes the performance or complexity of an algorithm - allows us to describe worse-case time complexity of algorithms as functions of its input size
39
describe linear search algorithms
- going through the list or array to find a specific element 1. compare the current element in list with target element (element your looking for) 2. if elements match, return index of current element 3. if elements don't match, move to next element 4. repeat steps 2-4 until end of list is reached or target element is found - time complexity of O(n), where n is the size of a list
40
describe binary search
1. compares middle element with the target element 2. if they match, return index 3. if middle element is greater than the target, repeat process on left half of list 4. if middle element is less than the target, repeat process on right half of list 5. repeat steps 1-5 until element is found - reduces search space with each iteration, making it more efficient - time complexity of O(logn)
41
describe bubble sort
- comparison-based sorting algorithm that swap elements next to each other if in the wrong order 1. start at the beginning of list 2. compare each pair of elements in a list 3. if they are in the wrong order, swap them 4. repeat steps 2-3 until the end of list is reached 5. if any swaps was made in the previous pass, repeat steps 1-4 - time complexity of O(n^2)
42
describe insertion sort
1. start with second element of list 2. compare current element with elements to the left 3. if current element is smaller, shift larger elements to the right 4. repeat steps 2-3 until current element is in correct position 5. move to next element and repeat steps 2-4 6. continue until all elements are in the correct position - time complexity of O(n^2)
43
describe selection sort
- divides list into 2 sections, sorted and unsorted portions 1. find minimum element in unsorted portion 2. swap minimum element with first unsorted element 3. move boundary one element to right 4. repeat steps 1-3 until the list is sorted - time complexity of O(n^2)
44
what is the worst-case time complexity
- minimum amount of time an algorithm can take to complete
45
what is time complexity
- representation of amount of time an algorithm takes to run as a function of the length of input
46
what is space complexity
- total amount of computers memory that an algorithm/operation needs to run according to its input size
47
what is acceptance testing
-focuses on verifying whether the new system meets the needs and requirements of its intended users - involves testing the systems functionality, usability and performance to ensure it aligns with the expectations of end-users - it is the process of testing systems functionality based on the users needs and requirements
48
what is live test data
- employing real world data that reflects the expected environment which the new system will operate in - provides realistic simulation of user interaction and system behaviour - ensures system functions correctly and handles various scenarios
49
what are large file sizes
- testing the systems performance is crucial to ensure the system can handle processing and storage demands and performs efficiently and accurately - helps identifying bottle necks and fixing performances, which improves the overall performance of the system
50
what is a mix of transaction types
- simulating various transaction scenarios ensures the system can handle them correctly under a variety of different circumstances - an example is a banking system
51
what is response time
- it involves evaluating the system's responsiveness and ensuring it meets the performance requirements
52
what is the volume of data (load testing)
- assessing the systems performance under heavy loads to evaluate the stability and response time - an example is where a large number of users simultaneously access the system
53
what is the impact on existing system
- identifying potential conflicts or compatibility issues when integrating the new system into the existing environment
54
what is solution validation
- ensures the implemented system aligns with the intended solution - it involves comparing systems functionality, features, behaviour against the design specifications to validate accuracy and compliance
55
what is test data generation
- generating relevant test data for complex solutions - involves creating a set of relevant test data that covers various scenarios, user interactions and edge cases
56
what is error detection and debugging code
error detection - finding and recognising the presence of errors - syntax -violations of python's syntax rules - logical - code doesn't produce expected output - runtime - occur during execution and can lead to termination debugging - locating and fixing the errors - some debugging techniques include breakpoints - pauses execution and examine state of variables and print statements - gain insight into how the program is running
57
what is desk checking (trace tables)
- mentally executing the code line by line - helps identifying errors by keeping track of the variables
58
what is object orientated programming (oop)
- a programming practice that uses objects that contains data and methods
59
what are some differences between oop and pop approach program structure data and methods access modifiers security object movement inheritance
OOP approach - bottom up program structure - divided into objects data and methods - encapsulated within objects access modifiers - users access modifiers security - more secure due to encapsulation object movement - move freely within member functions inheritance - supports inheritance POP approach - top down program structure - divided into functions data and methods - global or local to functions access modifiers - doesn't use them security - less secure due to encapsulation object movement - data can move freely from function to function inheritance - doesn't support inheritance
60
what is abstraction
- process where you hide complex implementation details and only show essential features of objects - makes the code easier to use, more flexible, reusable and maintainable
61
what is instantiation
- process of creating an instance (object) of a class - a class is a blueprint that defines attributes (data) and methods (behaviour) that objects will have
62
what is inheritance
- transfer of characteristics between parent and child classes - ie. the dog subclass inherits from the pet class - there are 4 types, single, multilevel, hierarchical and multiple
63
what is polymorphism
- method of an object which allows it to take multiple forms.
64
what are the two types of acceptance testing
UAT - conducted by end-users to evaluate the software Beta - releasing software to a limited group of external features
65
what is unit testing
- testing the individual components of code some types include equality, inequality, range and exception
66
what are API's and why work with them
- application programming interface is a set of instructions and standards for accessing a software application - can be access by either directly or through apps programmed by others why work with them? - direct access data - hide complexity - extends functionality - security
67
what are api wrappers
- simplifies process of interacting with API's - makes it easier to use a specific API
68
what is REST and RESTful
REST - representational state transfer - set of rules designed for web services - its like a blueprint RESTful - the finished product
69
what are 2 response types
- data can be structured in different ways - returned as XML or JSON data
70
what is desk checking
- technique used to test algorithms and make sure no logical errors occur - done by using trace tables where each column shows the variable and each row shows the number inputted