Designing solutions through programming standards: Difference between revisions

From Computer Science Wiki
No edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
These are the PROPOSED standards used in the course '''Designing solutions through programming standards'''. The standards are framed by a draft version of the K-12 computer science framework. The standards borrow from ideas in IB computer science course, from CSTA standards, the W3 consortium, and from professional web developers. In many cases, the standards are pulled from industry leaders. For example, the databases standards are used (with permission) from Oracle and the PHP programming standards are used (pending permission) from the creator of PHP, Rasmus Lerdorf.
== Introduction ==


== Concepts and practices ==
These are the standards for Designing solutions through programming. Pay attention to the command term at the start of each standard. It describes at what level you must understand the standard. Please reference [[Levels of knowing (Level 1, Level 2, Level 3) | levels of knowing]] for a deeper discussion of this important idea.


* '''Concepts answer the question''': What does a computer scientist need to know?
Many of these standards are used from the IB. IB Diploma Program Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.
* '''Practices answer the question:''' How do people do computer science?
 
Concepts and practices that we will cover in this course:
 
'''Concepts:'''
 
* Computing Devices and Systems
* Networks and Communication
* Data and Information
* Programs and Algorithms
* Impact and Culture
 
'''Practices:'''
 
* Recognizing and representing computational problems
* Developing abstractions
* Creating computational artifacts
* Testing and iteratively refining
* Fostering an inclusive computing culture
* Communicating about computing
* Collaborating with computing
 
== Essential Understandings ==
 
When this course is over, students will have the skills and knowledge to:
 
* Understand the foundations of the web
* Apply a design process to build quality web applications 
* Apply computational thinking to problems, designs and solutions
* UIX and user interface (advanced students only)
 
== Categories of standards ==
 
 
These are categories of standards we have in this class.  
 
* [[Design process]]
* [[Computational thinking, problem-solving and programming]]
* [[Clean Thinking, Clean Code]]
* [[PHP | Programming in PHP]]
* [[SQL | Programming in SQL]]
* [[HTML | Programming in HTML]]
* [[CSS | CSS]]
* [[Javascript | Programming in Javascript, JQuery and JQuery UI]]
* [[Databases]]
* [[Operating systems]]
* [[Apache | The Apache Web Server]]
* [[Web Science | Fundamentals of the web]]
* [[Security]]
 
 
[[Category:standards]]
[[Category: Web Design]]
 
 
 
<center>This page is under construction. We aren't quite done yet!!</center>


{| style="width: 95%; font-size: 12px;" class="wikitable sortable"
{| style="width: 95%; font-size: 12px;" class="wikitable sortable"
|-
|-
! Standard !! Category !! Covered !! Concept !! Practice !! Level
! Assessment Statement !! Big Idea
|- style="background-color:#E6F9E6;"
| Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts.|| Computational Thinking || Yes
|-style="background-color:#E6F9E6;"
|-style="background-color:#E6F9E6;"
| Describe a software development process used to solve software problems (e.g., design, coding, testing, verification).|| Computational Thinking || Yes
| colspan="2" | '''System fundamentals'''
|-
| Identify the context for which a new system is planned.|| [[System fundamentals]]
|-
| Describe the need for change management.|| [[System fundamentals]]
|-
| Outline compatibility issues resulting from situations including legacy systems or business mergers.|| [[System fundamentals]]
|-
| Compare the implementation of systems using a client’s hardware with hosting systems remotely.|| [[System fundamentals]]
|-
| Evaluate alternative installation processes.|| [[System fundamentals]]
|-
| Discuss problems that may arise as a part of data migration.|| [[System fundamentals]]
|-
| Suggest various types of testing.|| [[System fundamentals]]
|-
| Describe the importance of user documentation.|| [[System fundamentals]]
|-
| Evaluate different methods of providing user documentation.|| [[System fundamentals]]
|-
| Evaluate different methods of delivering user training.|| [[System fundamentals]]
|-
| Identify a range of causes of data loss.|| [[System fundamentals]]
|-
| Outline the consequences of data loss in a specified situation.|| [[System fundamentals]]
|-
| Describe a range of methods that can be used to prevent data loss.|| [[System fundamentals]]
|-
| Describe strategies for managing releases and updates.|| [[System fundamentals]]
|-
| Define the terms: hardware, software, peripheral, network, human resources.|| [[System fundamentals]]
|-
| Describe the roles that a computer can take in a networked world.|| [[System fundamentals]]
|-
| Discuss the social and ethical issues associated with a networked world.|| [[System fundamentals]]
|-
| Identify the relevant stakeholders when planning a new system.|| [[System fundamentals]]
|-
| Describe methods of obtaining requirements from stakeholders.|| [[System fundamentals]]
|-
| Describe appropriate techniques for gathering the information needed to arrive at a workable solution.|| [[System fundamentals]]
|-
| Construct suitable representations to illustrate system requirements.|| [[System fundamentals]]
|-
| Describe the purpose of prototypes to demonstrate the proposed system to the client.|| [[System fundamentals]]
|-
| Discuss the importance of iteration during the design process.|| [[System fundamentals]]
|-
| Explain the possible consequences of failing to involve the end-user in the design process.|| [[System fundamentals]]
|-
| Discuss the social and ethical issues associated with the introduction of new IT systems.|| [[System fundamentals]]
|-
| Define the term usability.|| [[System fundamentals]]
|-
| Identify a range of usability problems with commonly used digital devices.|| [[System fundamentals]]
|-
| Identify methods that can be used to improve the accessibility of systems.|| [[System fundamentals]]
|-
| Identify a range of usability problems that can occur in a system.|| [[System fundamentals]]
|-
| Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines.|| [[System fundamentals]]
|-style="background-color:#E6F9E6;"
|-style="background-color:#E6F9E6;"
| Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.|| Computational Thinking || Yes
| colspan="2" | '''Computer Organization'''
|-
|-
| Compare techniques for analyzing massive data collections.|| Computational Thinking || Not Yet
| Outline the architecture and function of the CPU, ALU, CU and the registers within the CPU.|| [[Computer organization]]
|-
| Describe primary memory.|| [[Computer organization]]
|-
| Explain the use of cache memory.|| [[Computer organization]]
|-
| Explain the machine instruction cycle.|| [[Computer organization]]
|-
| Identify the need for persistent storage.|| [[Computer organization]]
|-
| Describe the main functions of an operating system.|| [[Computer organization]]
|-
| Outline the use of a range of application software.|| [[Computer organization]]
|-
| Identify common features of applications.|| [[Computer organization]]
|-
| Define the terms: bit, byte, binary, denary/decimal, hexadecimal.|| [[Computer organization]]
|-
| Outline the way in which data is represented in the computer.|| [[Computer organization]]
|-
| Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR.|| [[Computer organization]]
|-
| Construct truth tables using the above operators.|| [[Computer organization]]
|-
| Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates.|| [[Computer organization]]
|-style="background-color:#E6F9E6;"
|-style="background-color:#E6F9E6;"
| Describe the relationship between binary and hexadecimal representations.|| Computational Thinking || Yes
| colspan="2" | '''Networks'''
|-
| Identify different types of networks.|| [[Networks]]
|-
| Outline the importance of standards in the construction of networks.|| [[Networks]]
|-
| Describe how communication over networks is broken down into different layers.|| [[Networks]]
|-
| Identify the technologies required to provide a VPN.|| [[Networks]]
|-
| Evaluate the use of a VPN.|| [[Networks]]
|-
| Define the terms: protocol, data packet.|| [[Networks]]
|-
| Explain why protocols are necessary.|| [[Networks]]
|-
| Explain why the speed of data transmission across a network can vary.|| [[Networks]]
|-
| Explain why compression of data is often necessary when transmitting across a network.|| [[Networks]]
|-
| Outline the characteristics of different transmission media.|| [[Networks]]
|-
| Explain how data is transmitted by packet switching.|| [[Networks]]
|-
| Outline the advantages and disadvantages of wireless networks.|| [[Networks]]
|-
| Describe the hardware and software components of a wireless network.|| [[Networks]]
|-
| Describe the characteristics of wireless networks.|| [[Networks]]
|-
| Describe the different methods of network security.|| [[Networks]]
|-
|-
| Analyze the representation and trade-offs among various forms of digital information.|| Computational Thinking || Not Yet
| Evaluate the advantages and disadvantages of each method of network security.|| [[Networks]]
|-style="background-color:#E6F9E6;"
|-style="background-color:#E6F9E6;"
| Describe how various types of data are stored in a computer system.|| Computational Thinking || Yes
| colspan="2" | '''Computational thinking, problem-solving and programming'''
|-
| Identify the procedure appropriate to solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Evaluate whether the order in which activities are undertaken will result in the required outcome.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the role of sub-procedures in solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify when decision-making is required in a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the decisions required for the solution to a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the condition associated with a given decision in a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the relationship between the decisions and conditions of a system.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Deduce logical rules for real-world situations.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the inputs and outputs required in a solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify pre-planning in a suggested problem and solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the need for pre-conditions when executing an algorithm.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Outline the pre- and post-conditions to a specified problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify exceptions that need to be considered in a specified problem solution.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify the parts of a solution that could be implemented concurrently.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Describe how concurrent processing can be used to solve a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Evaluate the decision to use concurrent processing in solving a problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Identify examples of abstraction.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain why abstraction is required in the derivation of computational solutions for a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct an abstraction from a specified situation.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Distinguish between a real-world entity and its abstraction.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Describe the characteristics of standard algorithms on linear arrays.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Outline the standard operations of collections.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Discuss an algorithm to solve a specific problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Analyse an algorithm presented as a flow chart.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Analyse an algorithm presented as pseudocode.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct pseudocode to represent an algorithm.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Suggest suitable algorithms to solve a specific problem.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Deduce the efficiency of an algorithm in the context of its use.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Determine the number of times a step in an algorithm will be performed for given input data.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| State the fundamental operations of a computer.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Distinguish between fundamental and compound operations of a computer.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the essential features of a computer language.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Explain the need for higher level languages.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Outline the need for a translation process from a higher level language to machine executable code.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Define the terms: variable, constant, operator, object.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Define common operators.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Analyse the use of variables, constants and operators in algorithms.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct algorithms using loops, branching.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
| Use modeling and simulation to represent and understand natural phenomena.|| Computational Thinking || Not Yet
| Describe the characteristics and applications of a collection.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|- style="background-color:#E6F9E6;"
| Discuss the value of abstraction to manage problem complexity.|| Computational Thinking || Yes
|-
|-
| Describe the concept of parallel processing as a strategy to solve large problems.|| Computational Thinking || Not Yet
| Construct algorithms using the access methods of a collection.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
|-
| Describe how computation shares features with art and music by translating human intention into an artifact.|| Computational Thinking || Not Yet
| Discuss the need for sub-programmes and collections within programmed solutions.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-
| Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections.|| [[Computational thinking, problem-solving and programming | Computational Thinking]]
|-style="background-color:#E6F9E6;"
|-style="background-color:#E6F9E6;"
| Work in a team to design and develop a software artifact.|| Collaboration || Yes
| colspan="2" | '''Web science'''
|-style="background-color:#E6F9E6;"
|-
| Use collaborative tools to communicate with project team members (e.g., discussion threads, wikis, blogs, version control, etc.).|| Collaboration || Yes
| Distinguish between the internet and World Wide Web (web).|| [[Web Science]]
|-
| Describe how the web is constantly evolving.||  [[Web Science]]
|-
| Identify the characteristics of the following: HTTP, HTTPS, HTML, URL, XML, XSLT, CSS.||  [[Web Science]]
|-
| Identify the characteristics of a uniform resource identifier (URI) URL.||  [[Web Science]]
|-
| Describe the purpose of a URL.||  [[Web Science]]
|-
| Describe how a domain name server functions.||  [[Web Science]]
|-
| Identify the characteristics of the internet protocol (IP) transmission control protocol (TCP) file transfer protocol (FTP).||  [[Web Science]]
|-
| Outline the different components of a web page.||  [[Web Science]]
|-
| Explain the importance of protocols and standards on the web.||  [[Web Science]]
|-
| Describe the different types of web page.||  [[Web Science]]
|-
| Explain the differences between a static web page and a dynamic web page.||  [[Web Science]]
|-
| Explain the functions of a browser.||  [[Web Science]]
|-
| Evaluate the use of client-side scripting and server-side scripting in web pages.||  [[Web Science]]
|-
| Describe how web pages can be connected to underlying data sources.||  [[Web Science]]
|-
| Describe the function of the common gateway interface (CGI).||  [[Web Science]]
|-
| Evaluate the structure of different types of web pages.||  [[Web Science]]
|-
| Define the term search engine.||  [[Web Science]]
|-
| Distinguish between the surface web and the deep web.||  [[Web Science]]
|-
| Outline the principles of searching algorithms used by search engines.||  [[Web Science]]
|-
| Describe how a web crawler functions.||  [[Web Science]]
|-
| Discuss the relationship between data in a meta-tag and how it is accessed by a web crawler.||  [[Web Science]]
|-
| Discuss the use of parallel web crawling.||  [[Web Science]]
|-
| Outline the purpose of web-indexing in search engines.||  [[Web Science]]
|-
| Suggest how web developers can create pages that appear more prominently in search engine results.||  [[Web Science]]
|-
| Describe the different metrics used by search engines.||  [[Web Science]]
|-
| Explain why the effectiveness of a search engine is determined by the assumptions made when developing it.||  [[Web Science]]
|-
| Discuss the use of white hat and black hat search engine optimization.||  [[Web Science]]
|-
| Outline future challenges to search engines as the web continues to grow.||  [[Web Science]]
|-
| Define the terms: mobile computing, ubiquitous computing, peer-2-peer network, grid computing.||  [[Web Science]]
|-
| Compare the major features of: mobile computing ubiquitous computing peer-2-peer network grid computing.||  [[Web Science]]
|-
| Distinguish between interoperability and open standards.||  [[Web Science]]
|-
| Describe the range of hardware used by distributed networks.||  [[Web Science]]
|-
| Explain why distributed systems may act as a catalyst to a greater decentralization of the web.||  [[Web Science]]
|-
| Distinguish between lossless and lossy compression.||  [[Web Science]]
|-
| Evaluate the use of decompression software in the transfer of information.|| [[Web Science]]
|-
| Discuss how the web has supported new methods of online interaction such as social networking.||  [[Web Science]]
|-
| Describe how cloud computing is different from a client-server architecture.||  [[Web Science]]
|-
| Discuss the effects of the use of cloud computing for specified organizations.||  [[Web Science]]
|-
| Discuss the management of issues such as copyright and intellectual property on the web.||  [[Web Science]]
|-
| Describe the interrelationship between privacy, identification and authentication.||  [[Web Science]]
|-
| Describe the role of network architecture, protocols and standards in the future development of the web.||  [[Web Science]]
|-
| Explain why the web may be creating unregulated monopolies.||  [[Web Science]]
|-
| Discuss the effects of a decentralized and democratic web.||  [[Web Science]]
|-
|Outline the differences between data and information.|| [[Databases]]
|-
|Outline the differences between an information system and a database.|| [[Databases]]
|-
|Discuss the need for databases.|| [[Databases]]
|-
|Describe the use of transactions, states and updates to maintain data consistency (and integrity).|| [[Databases]]
|-
|Define the term database transaction.|| [[Databases]]
|-
|Explain concurrency in a data sharing situation.|| [[Databases]]
|-
|Explain the importance of the ACID properties of a database transaction.|| [[Databases]]
|-
|Describe the two functions databases require to be performed on them.|| [[Databases]]
|-
|Explain the role of data validation and data verification.|| [[Databases]]
|-
|Define the terms: database management system (DBMS) and relational database management system (RDBMS).|| [[Databases]]
|-
|Outline the functions and tools of a DBMS.|| [[Databases]]
|-
|Describe how a DBMS can be used to promote data security.|| [[Databases]]
|-
|Define the term schema.|| [[Databases]]
|-
|Identify the characteristics of the three levels of the schema: conceptual, logical, physical.|| [[Databases]]
|-
|Outline the nature of the data dictionary.|| [[Databases]]
|-
|Explain the importance of a data definition language in implementing a data model.|| [[Databases]]
|-
|Explain the importance of data modelling in the design of a database.|| [[Databases]]
|-
|Define the following database terms: table, record, field, primary key, secondary key, foreign key, candidate key, composite primary key, join.|| [[Databases]]
|-
|Identify the different types of relationships within databases: one-to- one, one-to-many, many-to-many.|| [[Databases]]
|-
|Outline the issues caused by redundant data.|| [[Databases]]
|-
|Outline the importance of referential integrity in a normalized database.|| [[Databases]]
|-
|Describe the differences between 1st Normal Form (1NF), 2nd Normal Form (2NF) and 3rd Normal Form (3NF).|| [[Databases]]
|-
|Describe the characteristics of a normalized database.|| [[Databases]]
|-
|-
| Describe how computing enhances traditional forms and enables new forms of experience, expression, communication, and collaboration|| Collaboration || Not yet
|Evaluate the appropriateness of the different data types.|| [[Databases]]
|-
|-
| Identify how collaboration influences the design and development of software products.|| Collaboration || Not yet
|Construct an entity-relationship diagram (ERD) for a given scenario.|| [[Databases]]
|-style="background-color:#E6F9E6;"
| Create and organize Web pages through the use of a variety of web programming design tools.|| Computing & Programming || Yes
|-
|-
| Use mobile devices/emulators to design, develop, and implement mobile computing applications.|| Computing & Programming || Not yet
|Construct a relational database to 3NF using objects such as tables, queries, forms, reports and macros.|| [[Databases]]
|-
|-
| Use various debugging and testing methods to ensure program correctness (e.g., test cases, unit testing, white box, black box, integration testing)|| Computing & Programming || Not yet
|Explain how a query can provide a view of a database.|| [[Databases]]
|-style="background-color:#E6F9E6;"
| Apply analysis, design, and implementation techniques to solve problems (e.g., use one or more software lifecycle models).|| Computing & Programming || Yes
|-
|-
| Use Application Program Interfaces (APIs) and libraries to facilitate programming solutions.|| Computing & Programming || Not yet
|Describe the difference between a simple and complex query.|| [[Databases]]
|-
|-
| Select appropriate file formats for various types and uses of data.|| Computing & Programming || Not yet
|Outline the different methods that can be used to construct a query.|| [[Databases]]
|-
|-
| Describe a variety of programming languages available to solve problems and develop systems.|| Computing & Programming || Not yet
|Explain the role of a database administrator.|| [[Databases]]
|-
|-
| Explain the program execution process. || Computing & Programming || Not yet
|Explain how end-users can interact with a database.|| [[Databases]]
|-style="background-color:#E6F9E6;"
| Explain the principles of security by examining encryption, cryptography, and authentication techniques.|| Computing & Programming || Yes
|- style="background-color:#E6F9E6;"
| Explore a variety of careers to which computing is central.|| Computing & Programming || Yes
|-
|-
| Describe techniques for locating and collecting small and large-scale data sets. || Computing & Programming || Not yet
|Describe different methods of database recovery.|| [[Databases]]
|-style="background-color:#E6F9E6;"
| Describe how mathematical and statistical functions, sets, and logic are used in computation.|| Computing & Programming || Yes
|-
|-
| Describe the unique features of computers embedded in mobile devices and vehicles (e.g., cell phones, automobiles, airplanes).|| Computers and Communications Devices || Not yet
|Outline how integrated database systems function.|| [[Databases]]
|-style="background-color:#E6F9E6;"
| Develop criteria for purchasing or upgrading computer system hardware.|| Computers and Communications Devices || Yes
|-
|-
| Describe the principal components of computer organization (e.g., input, output, processing, and storage).|| Computers and Communications Devices || Not yet
|Outline the use of databases in areas such as stock control, police records, health records, employee data.|| [[Databases]]
|-
|-
| Compare various forms of input and output. || Computers and Communications Devices || Not yet
|Suggest methods to ensure the privacy of the personal data and the responsibility of those holding personal data not to sell or divulge it in any way.|| [[Databases]]
|-
|-
| Explain the multiple levels of hardware and software that support program execution (e.g., compilers, interpreters, operating systems, networks).|| Computers and Communications Devices || Not yet
|Discuss the need for some databases to be open to interrogation by other parties (police, government, etc).|| [[Databases]]
|-
|-
| Apply strategies for identifying and solving routine hardware and software problems that occur in everyday life.|| Computers and Communications Devices || Not yet
|Explain the difference between data matching and data mining.|| [[Databases]]
|-
|-
| Compare and contrast client-server and peer-to-peer network strategies.|| Computers and Communications Devices || Not yet
|Describe the characteristics of different database models.|| [[Databases]]
|-
|-
| Explain the basic components of computer networks (e.g., servers, file protection, routing, spoolers and queues, shared resources, and fault-tolerance).|| Computers and Communications Devices || Not yet
|Evaluate the use of object-oriented databases as opposed to relational databases.|| [[Databases]]
|-
|-
| Describe how the Internet facilitates global communication.|| Computers and Communications Devices || Not yet
|Define the term data warehouse.|| [[Databases]]
|-
|-
| Describe the major applications of artificial intelligence and robotics.|| Computers and Communications Devices || Not yet
|Describe a range of situations suitable for data warehousing.|| [[Databases]]
|-
|-
| Compare appropriate and inappropriate social networking behaviors.|| Community, Global, and Ethical Impacts || Not yet
|Explain why data warehousing is time dependent.|| [[Databases]]
|-
|-
| Discuss the impact of computing technology on business and commerce (e.g., automated tracking of goods, automated financial transactions, e-commerce, cloud computing).|| Community, Global, and Ethical Impacts || Not yet
|Describe how data in a warehouse is updated in real time.|| [[Databases]]
|-
|-
| Describe the role that adaptive technology can play in the lives of people with special needs.|| Community, Global, and Ethical Impacts || Not yet
|Describe the advantages of using data warehousing.|| [[Databases]]
|-
|-
| Compare the positive and negative impacts of technology on culture (e.g., social networking, delivery of news and other public media, and intercultural communication).|| Community, Global, and Ethical Impacts || Not yet
|Explain the need for ETL processes in data warehousing.|| [[Databases]]
|-
|-
| Describe strategies for determining the reliability of information found on the Internet.|| Community, Global, and Ethical Impacts || Not yet
|Describe how ETL processes can be used to clean up data for a data warehouse.|| [[Databases]]
|-
|-
| Distinguish between information access and information distribution rights.|| Community, Global, and Ethical Impacts || Not yet
|Compare the different forms of discovering patterns using data mining.|| [[Databases]]
|-
|-
| Describe how different kinds of software licenses can be used to share and protect intellectual property.|| Community, Global, and Ethical Impacts || Not yet
|Describe situations that benefit from data mining.|| [[Databases]]
|-
|-
| Discuss the social and economic implications associated with hacking and software piracy.|| Community, Global, and Ethical Impacts || Not yet
|Describe how predictive modelling is used.|| [[Databases]]
|-
|-
| Describe different ways in which software is created and shared and their benefits and drawbacks (commercial software, public domain software, open source development).|| Community, Global, and Ethical Impacts || Not yet
|Explain the nature of database segmentation.|| [[Databases]]
|-
|-
| Describe security and privacy issues that relate to computer networks.|| Community, Global, and Ethical Impacts || Not yet
|Explain the nature and purpose of link analysis.|| [[Databases]]
|-
|-
| Explain the impact of the digital divide on access to critical information.|| Community, Global, and Ethical Impacts || Not yet
|Describe the process of deviation detection.|| [[Databases]]
|}
|}


==References==
<references />


[[Category:Standards]]
[[Category:Standards]]
[[Category:2015-2016 School Year]]
[[Category:2016-2017 School Year]]
[[Category:High School]]
[[Category:High School]]

Latest revision as of 04:56, 16 August 2016

Introduction[edit]

These are the standards for Designing solutions through programming. Pay attention to the command term at the start of each standard. It describes at what level you must understand the standard. Please reference levels of knowing for a deeper discussion of this important idea.

Many of these standards are used from the IB. IB Diploma Program Computer science guide (first examinations 2014). Cardiff, Wales, United Kingdom: International Baccalaureate Organization. January 2012.

Assessment Statement Big Idea
System fundamentals
Identify the context for which a new system is planned. System fundamentals
Describe the need for change management. System fundamentals
Outline compatibility issues resulting from situations including legacy systems or business mergers. System fundamentals
Compare the implementation of systems using a client’s hardware with hosting systems remotely. System fundamentals
Evaluate alternative installation processes. System fundamentals
Discuss problems that may arise as a part of data migration. System fundamentals
Suggest various types of testing. System fundamentals
Describe the importance of user documentation. System fundamentals
Evaluate different methods of providing user documentation. System fundamentals
Evaluate different methods of delivering user training. System fundamentals
Identify a range of causes of data loss. System fundamentals
Outline the consequences of data loss in a specified situation. System fundamentals
Describe a range of methods that can be used to prevent data loss. System fundamentals
Describe strategies for managing releases and updates. System fundamentals
Define the terms: hardware, software, peripheral, network, human resources. System fundamentals
Describe the roles that a computer can take in a networked world. System fundamentals
Discuss the social and ethical issues associated with a networked world. System fundamentals
Identify the relevant stakeholders when planning a new system. System fundamentals
Describe methods of obtaining requirements from stakeholders. System fundamentals
Describe appropriate techniques for gathering the information needed to arrive at a workable solution. System fundamentals
Construct suitable representations to illustrate system requirements. System fundamentals
Describe the purpose of prototypes to demonstrate the proposed system to the client. System fundamentals
Discuss the importance of iteration during the design process. System fundamentals
Explain the possible consequences of failing to involve the end-user in the design process. System fundamentals
Discuss the social and ethical issues associated with the introduction of new IT systems. System fundamentals
Define the term usability. System fundamentals
Identify a range of usability problems with commonly used digital devices. System fundamentals
Identify methods that can be used to improve the accessibility of systems. System fundamentals
Identify a range of usability problems that can occur in a system. System fundamentals
Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines. System fundamentals
Computer Organization
Outline the architecture and function of the CPU, ALU, CU and the registers within the CPU. Computer organization
Describe primary memory. Computer organization
Explain the use of cache memory. Computer organization
Explain the machine instruction cycle. Computer organization
Identify the need for persistent storage. Computer organization
Describe the main functions of an operating system. Computer organization
Outline the use of a range of application software. Computer organization
Identify common features of applications. Computer organization
Define the terms: bit, byte, binary, denary/decimal, hexadecimal. Computer organization
Outline the way in which data is represented in the computer. Computer organization
Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR. Computer organization
Construct truth tables using the above operators. Computer organization
Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates. Computer organization
Networks
Identify different types of networks. Networks
Outline the importance of standards in the construction of networks. Networks
Describe how communication over networks is broken down into different layers. Networks
Identify the technologies required to provide a VPN. Networks
Evaluate the use of a VPN. Networks
Define the terms: protocol, data packet. Networks
Explain why protocols are necessary. Networks
Explain why the speed of data transmission across a network can vary. Networks
Explain why compression of data is often necessary when transmitting across a network. Networks
Outline the characteristics of different transmission media. Networks
Explain how data is transmitted by packet switching. Networks
Outline the advantages and disadvantages of wireless networks. Networks
Describe the hardware and software components of a wireless network. Networks
Describe the characteristics of wireless networks. Networks
Describe the different methods of network security. Networks
Evaluate the advantages and disadvantages of each method of network security. Networks
Computational thinking, problem-solving and programming
Identify the procedure appropriate to solving a problem. Computational Thinking
Evaluate whether the order in which activities are undertaken will result in the required outcome. Computational Thinking
Explain the role of sub-procedures in solving a problem. Computational Thinking
Identify when decision-making is required in a specified situation. Computational Thinking
Identify the decisions required for the solution to a specified problem. Computational Thinking
Identify the condition associated with a given decision in a specified problem. Computational Thinking
Explain the relationship between the decisions and conditions of a system. Computational Thinking
Deduce logical rules for real-world situations. Computational Thinking
Identify the inputs and outputs required in a solution. Computational Thinking
Identify pre-planning in a suggested problem and solution. Computational Thinking
Explain the need for pre-conditions when executing an algorithm. Computational Thinking
Outline the pre- and post-conditions to a specified problem. Computational Thinking
Identify exceptions that need to be considered in a specified problem solution. Computational Thinking
Identify the parts of a solution that could be implemented concurrently. Computational Thinking
Describe how concurrent processing can be used to solve a problem. Computational Thinking
Evaluate the decision to use concurrent processing in solving a problem. Computational Thinking
Identify examples of abstraction. Computational Thinking
Explain why abstraction is required in the derivation of computational solutions for a specified situation. Computational Thinking
Construct an abstraction from a specified situation. Computational Thinking
Distinguish between a real-world entity and its abstraction. Computational Thinking
Describe the characteristics of standard algorithms on linear arrays. Computational Thinking
Outline the standard operations of collections. Computational Thinking
Discuss an algorithm to solve a specific problem. Computational Thinking
Analyse an algorithm presented as a flow chart. Computational Thinking
Analyse an algorithm presented as pseudocode. Computational Thinking
Construct pseudocode to represent an algorithm. Computational Thinking
Suggest suitable algorithms to solve a specific problem. Computational Thinking
Deduce the efficiency of an algorithm in the context of its use. Computational Thinking
Determine the number of times a step in an algorithm will be performed for given input data. Computational Thinking
State the fundamental operations of a computer. Computational Thinking
Distinguish between fundamental and compound operations of a computer. Computational Thinking
Explain the essential features of a computer language. Computational Thinking
Explain the need for higher level languages. Computational Thinking
Outline the need for a translation process from a higher level language to machine executable code. Computational Thinking
Define the terms: variable, constant, operator, object. Computational Thinking
Define common operators. Computational Thinking
Analyse the use of variables, constants and operators in algorithms. Computational Thinking
Construct algorithms using loops, branching. Computational Thinking
Describe the characteristics and applications of a collection. Computational Thinking
Construct algorithms using the access methods of a collection. Computational Thinking
Discuss the need for sub-programmes and collections within programmed solutions. Computational Thinking
Construct algorithms using pre- defined sub-programmes, one- dimensional arrays and/or collections. Computational Thinking
Web science
Distinguish between the internet and World Wide Web (web). Web Science
Describe how the web is constantly evolving. Web Science
Identify the characteristics of the following: HTTP, HTTPS, HTML, URL, XML, XSLT, CSS. Web Science
Identify the characteristics of a uniform resource identifier (URI) URL. Web Science
Describe the purpose of a URL. Web Science
Describe how a domain name server functions. Web Science
Identify the characteristics of the internet protocol (IP) transmission control protocol (TCP) file transfer protocol (FTP). Web Science
Outline the different components of a web page. Web Science
Explain the importance of protocols and standards on the web. Web Science
Describe the different types of web page. Web Science
Explain the differences between a static web page and a dynamic web page. Web Science
Explain the functions of a browser. Web Science
Evaluate the use of client-side scripting and server-side scripting in web pages. Web Science
Describe how web pages can be connected to underlying data sources. Web Science
Describe the function of the common gateway interface (CGI). Web Science
Evaluate the structure of different types of web pages. Web Science
Define the term search engine. Web Science
Distinguish between the surface web and the deep web. Web Science
Outline the principles of searching algorithms used by search engines. Web Science
Describe how a web crawler functions. Web Science
Discuss the relationship between data in a meta-tag and how it is accessed by a web crawler. Web Science
Discuss the use of parallel web crawling. Web Science
Outline the purpose of web-indexing in search engines. Web Science
Suggest how web developers can create pages that appear more prominently in search engine results. Web Science
Describe the different metrics used by search engines. Web Science
Explain why the effectiveness of a search engine is determined by the assumptions made when developing it. Web Science
Discuss the use of white hat and black hat search engine optimization. Web Science
Outline future challenges to search engines as the web continues to grow. Web Science
Define the terms: mobile computing, ubiquitous computing, peer-2-peer network, grid computing. Web Science
Compare the major features of: mobile computing ubiquitous computing peer-2-peer network grid computing. Web Science
Distinguish between interoperability and open standards. Web Science
Describe the range of hardware used by distributed networks. Web Science
Explain why distributed systems may act as a catalyst to a greater decentralization of the web. Web Science
Distinguish between lossless and lossy compression. Web Science
Evaluate the use of decompression software in the transfer of information. Web Science
Discuss how the web has supported new methods of online interaction such as social networking. Web Science
Describe how cloud computing is different from a client-server architecture. Web Science
Discuss the effects of the use of cloud computing for specified organizations. Web Science
Discuss the management of issues such as copyright and intellectual property on the web. Web Science
Describe the interrelationship between privacy, identification and authentication. Web Science
Describe the role of network architecture, protocols and standards in the future development of the web. Web Science
Explain why the web may be creating unregulated monopolies. Web Science
Discuss the effects of a decentralized and democratic web. Web Science
Outline the differences between data and information. Databases
Outline the differences between an information system and a database. Databases
Discuss the need for databases. Databases
Describe the use of transactions, states and updates to maintain data consistency (and integrity). Databases
Define the term database transaction. Databases
Explain concurrency in a data sharing situation. Databases
Explain the importance of the ACID properties of a database transaction. Databases
Describe the two functions databases require to be performed on them. Databases
Explain the role of data validation and data verification. Databases
Define the terms: database management system (DBMS) and relational database management system (RDBMS). Databases
Outline the functions and tools of a DBMS. Databases
Describe how a DBMS can be used to promote data security. Databases
Define the term schema. Databases
Identify the characteristics of the three levels of the schema: conceptual, logical, physical. Databases
Outline the nature of the data dictionary. Databases
Explain the importance of a data definition language in implementing a data model. Databases
Explain the importance of data modelling in the design of a database. Databases
Define the following database terms: table, record, field, primary key, secondary key, foreign key, candidate key, composite primary key, join. Databases
Identify the different types of relationships within databases: one-to- one, one-to-many, many-to-many. Databases
Outline the issues caused by redundant data. Databases
Outline the importance of referential integrity in a normalized database. Databases
Describe the differences between 1st Normal Form (1NF), 2nd Normal Form (2NF) and 3rd Normal Form (3NF). Databases
Describe the characteristics of a normalized database. Databases
Evaluate the appropriateness of the different data types. Databases
Construct an entity-relationship diagram (ERD) for a given scenario. Databases
Construct a relational database to 3NF using objects such as tables, queries, forms, reports and macros. Databases
Explain how a query can provide a view of a database. Databases
Describe the difference between a simple and complex query. Databases
Outline the different methods that can be used to construct a query. Databases
Explain the role of a database administrator. Databases
Explain how end-users can interact with a database. Databases
Describe different methods of database recovery. Databases
Outline how integrated database systems function. Databases
Outline the use of databases in areas such as stock control, police records, health records, employee data. Databases
Suggest methods to ensure the privacy of the personal data and the responsibility of those holding personal data not to sell or divulge it in any way. Databases
Discuss the need for some databases to be open to interrogation by other parties (police, government, etc). Databases
Explain the difference between data matching and data mining. Databases
Describe the characteristics of different database models. Databases
Evaluate the use of object-oriented databases as opposed to relational databases. Databases
Define the term data warehouse. Databases
Describe a range of situations suitable for data warehousing. Databases
Explain why data warehousing is time dependent. Databases
Describe how data in a warehouse is updated in real time. Databases
Describe the advantages of using data warehousing. Databases
Explain the need for ETL processes in data warehousing. Databases
Describe how ETL processes can be used to clean up data for a data warehouse. Databases
Compare the different forms of discovering patterns using data mining. Databases
Describe situations that benefit from data mining. Databases
Describe how predictive modelling is used. Databases
Explain the nature of database segmentation. Databases
Explain the nature and purpose of link analysis. Databases
Describe the process of deviation detection. Databases

References[edit]