Computer Science Principles

  • Bellefonte Area High School

    PLTW – Pre Engineering

    Syllabus

     

    Instructor:  Mr. Vaughn W. Donmoyer

     

    Classroom:   Room 169

     

    Computer Science and Software Engineering

                Open doors in any career with computer science! In CSE, students create apps for mobile devices, automate tasks in a variety of languages, and find patterns in data. Students collaborate to create and present solutions that can improve people’s lives, and weigh the ethical and societal issues of how computing and connectivity are changing the world. This course aligns with the AP Computer Science Principles course.

     

    Course Outcomes:

    Students will: 

    Describe the role of creativity in designing an attractive, functional, and accessible graphical user interface.

    Describe a computer as responding to input in a deterministic manner that depends only on input and on the computer's state

    Recognize common patterns employing variables, including value accumulation, list aggregation, and iteration across the elements of a collection

    Describe ways to identify the existence and location of errors in software

     

    Identify the decade in which milestones occurred in the development of computing and the Internet

     

    Describe examples in which computation has or will create new societal phenomena and human capabilities to perceive and act upon our environment

     

    Describe examples demonstrating that new ways to collaborate and share information are evolving

     

    Describe career-oriented opportunities to use computational skills to positively affect people's lives

     

    Describe how computing is connected to innovations in other fields

     

    Describe the role of creativity in designing a mobile application to solve a problem

     

    Describe the ways in which various types of digital data can be represented in binary

     

    Distinguish continuous and discrete phenomena and identify digital and analog data

     

    Describe layers of abstraction that help people represent and use data

     

    Identify layers of abstraction used in programming languages and describe advantages and disadvantages inherent in working at a high level of abstraction

     

    Describe the implications of the limited precision of digital information in applications

     

    Recognize common patterns employing variables, including value accumulation, list aggregation, and iteration across the elements of a collection

    Recognize events and event-handlers implied by a user interface

     

    Describe ways to identify the existence and location of errors in software

     

    Describe career-oriented opportunities to use computational skills to positively affect people's lives

     

    Describe the ways in which various types of digital data can be represented in binary

    Identify layers of abstraction used in programming languages and describe advantages and disadvantages inherent in working at a high level of abstraction

    Describe a computer as responding to input in a deterministic manner that depends only on input and on the computer's state

    Recognize common patterns employing variables, including value accumulation, list aggregation, and iteration across the elements of a collection

    Describe ways to identify the existence and location of errors in software

    Describe the role that functions play in developing software

    Distinguish among a variety of educational and reference resources related to code libraries

    Describe a version control system

    Describe the impact that computing has had in the social sciences, geography, and civics

    Describe the implications of the limited precision of digital information in applications

     

    Articulate a range of positions on the question of ownership of bits

     

    Describe what metadata contain and how they can be used

     

    Discuss societal implications of the persistence and the ease of copying digital information

    Describe the role of creativity in designing an attractive, functional, and accessible graphical user interface

    Identify layers of abstraction used in programming languages and describe advantages and disadvantages inherent in working at a high level of abstraction

    Describe the model-view-controller pattern and relate to a particular software solution

    Recognize that a solution to one problem, such as a particular sorting or optimization task, can be used to solve seemingly dissimilar problems

    Recognize common patterns employing variables, including value accumulation, list aggregation, and iteration across the elements of a collection

    Recognize events and event-handlers implied by a user interface

    Describe ways to identify the existence and location of errors in software

    Describe the role that functions play in developing software

    Describe examples in which computation has or will create new societal phenomena and human capabilities to perceive and act upon our environment

    Describe career-oriented opportunities to use computational skills to positively affect people's lives

    Identify fields of computing careers

    Describe an abstraction of hardware

    Identify the relationship among nodes in a tree, as applied to the DOM in a Web page

    Identify syntactic elements of HTML and CSS

    Describe the hierarchical nature of the domain name system and IPv4 and IPv6 numbering systems

    Describe the dependence of DNS on certificate authorities

    Describe abstractions that enable the Internet to function, including IP addressing and domain name service

    Describe the purpose and general nature of protocols that enable the Internet to function, including DNS, TCP/IP, SMTP, and HTTP protocols

    Describe the governance of the Internet and the organizations that develop and maintain relevant standards

    Identify examples of redundancy and autonomy in the physical and software systems of the Internet

    Explain how redundancy and autonomy make the systems of the Internet scalable

    Explain an encryption system

    Describe the combination of encryption protocols with other protocols to provide secure transfer of information

    Characterize the size, cost, and speed of computational processing as changing exponentially

    Identify the decade in which milestones occurred in the development of computing and the Internet

    Describe what metadata contain and how they can be used

    Distinguish content from style and explain how accessibility requires a separation of these concerns

    Analyze access to the Internet and to data among people in different countries, and connect to measures of health and wealth

    Describe examples in which computation has or will create new societal phenomena and human capabilities to perceive and act upon our environment

    Contrast the patterns of inequity characterizing the personal computing revolution and the current mobile computing revolution

    Describe how computing is connected to innovations in other fields

    Describe how specific career fields, e.g. biology and marketing, have changed profoundly as a result of automated collection and processing of data

    Articulate a range of positions on questions related to privacy with respect to Big Data

    Describe examples demonstrating that the Internet has profoundly altered the way that scientists collaborate, publish, and access each other's work

    Describe examples of crowdsourcing being used for large data set collection or collective biological processing power

    Describe examples of how location-aware computing is transforming infrastructure

    Identify the relationship between parallel computation and computationally intensive tasks like simulation, modeling, and analysis of large data sets

    Relate the categorical or quantitative nature of data to the operations and visualizations that are appropriate

    Identify layers of abstraction used in programming languages and describe advantages and disadvantages inherent in working at a high level of abstraction

    Distinguish continuous and discrete phenomena and identify digital and analog data

    Describe any simulation as abstracting some aspects of a model while ignoring other details

    Describe any simulation as relying on assumptions, some of which can be parameterized, with conclusions applicable to a range of parameter values

    Distinguish deterministic and randomized models and describe the role of Monte Carlo techniques

    Recognize that chaotic and periodic behavior can be exhibited by both deterministic and randomized models

    Discrete, continuous, and agent-based models using digital computation rely on discrete calculations

    Describe some of the major applications of simulation

    Identify landmarks in hardware development such as tubes, transistors, and VLSI, as well as developments such as optoelectronics, nanotechnology, and quantum computing

    Describe the implications of the limited precision of digital information in applications

    Describe the abstraction of a logic gate and explain how complex logic functions can be constructed from NAND gates

    Identify the relationship between parallel computation and computationally intensive tasks like simulation, modeling, and analysis of large data sets

    Characterize the size, cost, and speed of computational processing as changing exponentially

    Describe examples of how location-aware computing is transforming infrastructure

    Describe examples of crowdsourcing being used for large data set collection or collective biological processing power

    Describe examples in which computation has or will create new societal phenomena and human capabilities to perceive and act upon our environment

    Course Questions

     

    How do computers perform complicated tasks built from simple instructions?

     

    How are variables used in programming?

     

    How do programmers approach a complicated problem?

     

    What role does creativity play in algorithmic programming?

     

    What makes for a good process for collaborative software development?

     

    What do programming languages and development environments have in common?

     

    What can be represented by binary data?

     

    What contributes to an effective process for software development?

     

    How can a program be analyzed, understood, and modified?

     

    How does abstraction make the software development process easier?

     

    What are the practices that lead to effective collaboration?

     

    What role does creativity play in algorithmic programming?

     

    How does abstraction make the software development process easier?

     

    What are the practices that lead to effective collaboration?

     

    What role does creativity play in algorithmic programming?

     

    How is computing affecting the way we live our lives?

     

    How will computing change our world?

     

    How does the Internet work?

     

    How can we protect ourselves, our privacy, and our assets when working on the Internet?

     

    How has the Internet affected society?

     

    What is the nature of attack and defense in cybersecurity?

    How will computation impact fields other than computing itself?

    How will computation impact society?

    How can patterns be discovered in data?

    How has computation changed biology?

    How are simulations created from models?

    How are simulation models similar to and different from reality?

    How are modeling and simulation impacting other creative fields?

    How has computation affected our ability to predict the future?

    How has computation affected our ability to experience virtual phenomena?

    How has simulation changed the design process in engineering and other creative fields?

    Evaluation

                Evaluation will be in accordance with the Bellefonte Area High School grading policy as stated in the handbook.  In accordance with individual potential, a student is expected to master the level of achievement for his/her level.  The student’s efforts to reach the outcome will be measured by the teacher during classroom observations of the student and his/her work.  Final grades will be determined by averaging the actual grade from each quarter according to the following:

     A: 100-90%, B:  89-80%, C:  79-70%, D:  69-60%, and F:   59-0%

    Classroom Grade will be evaluated by the following:

                1.  Quizzes and Tests                          20%

                2.  Class Activities (class work)        60%

                3.  Projects                                          20%

     

    Grading Policy:

                Students are expected to work during time they are given.  Most of the materials and software used for this course must stay in the classroom.  Students will be able to come down and work during a study hall.  There will be little homework throughout the year.  They must be focused and concentrate on the task at hand.  Principles of Engineering is a fast passed course.  There is a lot of information to go over.  Students that are absent frequently will have a harder time doing well in the course.  You must make arrangements with the teacher to make up the missed information and assignments. Students will not fail if 100% effort is given in a project no matter what the outcome of the project may be.

     

    Standards Addressed:

    Pennsylvania State Standards

    3.1.12. A, 3.1.10.E, 3.2.12.A, 3.2.12.D, 3.4.10.B, 3.4.12.B, 3.6.10.B, 3.7.10.A, 3.7.10.B, 3.7.10.D

    PA Standards Align System (Common Core)

    Technology and Engineering: 3.4.10.A2, 3.4.10.A3, 3.4.10.B1, 3.4.10.B4, 3.4.10.C1, 3.4.12.C2, 3.4.12.C3, 3.4.10.D2, 3.4.12.D2, 3.4.10.E4, 3.4.12.E4

    Math: 2.3.11.C, 2.3.11.E, 2.5.11.A, 2.6.11.C, 2.8.11.B, 2.10.11.A