Designing solutions through programming standards: Difference between revisions

From Computer Science Wiki
Line 64: Line 64:
{| style="width: 95%; font-size: 12px;" class="wikitable sortable"
{| style="width: 95%; font-size: 12px;" class="wikitable sortable"
|-
|-
! Standard  !! Category !! Covered !! Concept !! Practice !! [[Levels of knowing (Level 1, Level 2, Level 3) | ]]Level
! Standard  !! Category !! Covered !! Concept !! Practice !! [[Levels of knowing (Level 1, Level 2, Level 3) | Level]]
|- style="background-color:#E6F9E6;"
|- style="background-color:#E6F9E6;"
| Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts.|| Computational Thinking || Yes
| Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts.|| Computational Thinking || Yes

Revision as of 14:10, 9 June 2016

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.

Concepts and practices[edit]

  • Concepts answer the question: What does a computer scientist need to know?
  • 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[edit]

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[edit]

These are categories of standards we have in this class.


This page is under construction. We aren't quite done yet!!
Standard Category Covered Concept Practice Level
Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts. Computational Thinking Yes
Describe a software development process used to solve software problems (e.g., design, coding, testing, verification). Computational Thinking Yes
Explain how sequence, selection, iteration, and recursion are building blocks of algorithms. Computational Thinking Yes
Compare techniques for analyzing massive data collections. Computational Thinking Not Yet
Describe the relationship between binary and hexadecimal representations. Computational Thinking Yes
Analyze the representation and trade-offs among various forms of digital information. Computational Thinking Not Yet
Describe how various types of data are stored in a computer system. Computational Thinking Yes
Use modeling and simulation to represent and understand natural phenomena. Computational Thinking Not Yet
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
Describe how computation shares features with art and music by translating human intention into an artifact. Computational Thinking Not Yet
Work in a team to design and develop a software artifact. Collaboration Yes
Use collaborative tools to communicate with project team members (e.g., discussion threads, wikis, blogs, version control, etc.). Collaboration Yes
Describe how computing enhances traditional forms and enables new forms of experience, expression, communication, and collaboration Collaboration Not yet
Identify how collaboration influences the design and development of software products. Collaboration Not yet
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
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
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
Select appropriate file formats for various types and uses of data. Computing & Programming Not yet
Describe a variety of programming languages available to solve problems and develop systems. Computing & Programming Not yet
Explain the program execution process. Computing & Programming Not yet
Explain the principles of security by examining encryption, cryptography, and authentication techniques. Computing & Programming Yes
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 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
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
Compare various forms of input and output. Computers and Communications Devices Not yet
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
Apply strategies for identifying and solving routine hardware and software problems that occur in everyday life. Computers and Communications Devices Not yet
Compare and contrast client-server and peer-to-peer network strategies. Computers and Communications Devices Not yet
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
Describe how the Internet facilitates global communication. Computers and Communications Devices Not yet
Describe the major applications of artificial intelligence and robotics. Computers and Communications Devices Not yet
Compare appropriate and inappropriate social networking behaviors. Community, Global, and Ethical Impacts Not yet
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 the role that adaptive technology can play in the lives of people with special needs. Community, Global, and Ethical Impacts Not yet
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
Describe strategies for determining the reliability of information found on the Internet. Community, Global, and Ethical Impacts Not yet
Distinguish between information access and information distribution rights. Community, Global, and Ethical Impacts Not yet
Describe how different kinds of software licenses can be used to share and protect intellectual property. Community, Global, and Ethical Impacts Not yet
Discuss the social and economic implications associated with hacking and software piracy. Community, Global, and Ethical Impacts Not yet
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
Describe security and privacy issues that relate to computer networks. Community, Global, and Ethical Impacts Not yet
Explain the impact of the digital divide on access to critical information. Community, Global, and Ethical Impacts Not yet