Designing solutions through programming standards
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[1]. 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 a problem or need
- Construct and program web applications
- Apply computational thinking to problems, designs and solutions
- Apply UIX and user interface (advanced students only)
Categories of standards[edit]
These are categories of standards we have in this class.
- Design process
- Computational thinking, problem-solving and programming
- Clean Thinking, Clean Code
- Programming in PHP
- Programming in SQL
- Programming in HTML
- CSS
- Programming in Javascript, JQuery and JQuery UI
- Databases
- Operating systems
- The Apache Web Server
- Fundamentals of the web
- Security
Standard | 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 |