Course Overview

Introduction to Computer Science is a full-year course designed to give students an introduction to basic computer science knowledge and skills. Students will begin by understanding the history of computer science and will end with a look at extensions such as application programming interfaces (APIs), mobile apps, and artistic designs. Students will create a network design, a real-world data file analysis, a mock-up of a mobile app, and a computer game. Students will also investigate the social, legal, and ethical impacts of computers.

Each unit in this course has ten lessons and at least one project. As students work through a lesson, they will answer one to three questions per section. Each unit has a project that allows students to create their own individual artifacts. Students will write programs, design computer networks, and much more. Each unit includes a unit review, four quizzes, and one test. The course also includes two semester exams and one final exam.

Unit Goals

  • Unit 1: Investigate the field of computer science and how it developed, as well as start programming in Python.
  • Unit 2: Explore the hardware and software needed to keep computers and networks functioning.
  • Unit 3: Dive into computational thinking as you learn to use assignment statements, input and output, making decisions, and planning solutions.
  • Unit 4: Use for and while loops to make your programs more efficient and use both built-in and user-designed structures to organize data.
  • Unit 5: Use classes you write and built-in libraries of functions to solve complex problems.
  • Unit 6: Review and test the student’s knowledge of the content in Unit 1-5.
  • Unit 7: Use reading and writing files to analyze data and save results, as well as revise programs to improve accessibility.
  • Unit 8: Explore how software is designed and developed, including how you can adapt your work for multiple platforms and global outreach.
  • Unit 9: Investigate legal and security issues.
  • Unit 10: Explore ethical issues in computer science.
  • Unit 11: Explore applications of computer science in different areas, such as art, application programming interfaces (APIs), and mobile applications.
  • Unit 12: Review and test the student’s knowledge of the content in Unit 7-12.
  • Unit 13: Review and test the student’s knowledge of the course’s content.
 
Copyright © by Edgenuity

Curriculum Content and Skills Focus

Unit 1: Computer Science Then and Now

  • Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
  • Discuss computational innovations.
  • Describe Moore’s Law.
  • Analyze a historical timeline of computers and technology.
  • Define key computing terms (e.g., hardware, software, data, memory etc.).
  • Distinguish between memory and space.
  • Write and save simple Python programs.
  • Explain the program execution process.
  • Create flowcharts and/or pseudocode to express a problem or idea as an algorithm.
  • Evaluate the ways computing impacts personal, ethical, social, economic, and cultural practices.
  • Identify key scientists and groups who contributed to the development of computers.
  • Compare and contrast the five disciplines of computing: computer science, software engineering, information technology, information systems, and computer engineering.
  • Describe issues with scalability in programming and in web applications.

Unit 2: Hardware and Software

  • Describe how a high-level program, such as Python, is converted to binary language and executed.
  • Identify traditional means of transmitting information in the original computers.
  • Identify recent advances in how information is transmitted.
  • Identify the basic components of computer networks (e.g., servers, file protection, routing, spoolers and queues, shared resources, and fault-tolerance).
  • Describe client-server, peer-to-peer, SMTP, POP, IMAP, Telnet, SSH, FTP, TCP, and domain name.
  • Describe the path of a packet of data.
  • Define LAN and WAN.
  • Demonstrate knowledge and appropriate use of different operating systems.
  • Describe issues related to multiple platforms, such as desktop, tablet, and smartphones.
  • Define common file types.
  • Explain factors influencing the choice of a particular file type for different types of media.
  • Identify strengths and weaknesses of different storage media.
  • Develop criteria for selecting appropriate hardware and software when solving a specific real-world problem.
  • Design a computer network for a small business or school.

Unit 3: Computational Thinking

  • Explain how abstractions hide the underlying implementation details of computing systems embedded in everyday objects.
  • Apply the basic operations used with numeric and non-numeric data types in developing programs.
  • Differentiate between text and numerical data.
  • Manipulate and interpret dates.
  • Use variables to store data.
  • Write and evaluate numerical expressions.
  • Write and interpret statements that allow data input by the user.
  • Write and interpret statements that output information.
  • Define and use boolean data.
  • Identify difficulties and solutions faced by those with physical or mental challenges.
  • Manipulate strings using loops, slicing, locating a value within a string, and by formatting the string.
  • Plan a program to gather data from the user, make decisions, and provide output based on the input.
  • Identify connections between mathematics and computer science.

Unit 4: Control Structures and Data Types

  • Describe and interpret for loops.
  • Describe and interpret while loops.
  • Compare and contrast an if and a while loop.
  • Write and interpret nested loops.
  • Write and interpret functions.
  • Define and use parameters and scope.
  • Identify how lists, collections, tuples, and dictionaries can be used to handle and organize large amounts of data.
  • Manipulate lists, collections, tuples, and dictionaries to store, retrieve, and organize data.
  • Describe user-defined data types.
  • Create and manipulate user-defined data types.
  • Identify standard types of errors.
  • Catch and handle standard types of errors.
  • Plan and create a program to practice math facts with error handling.

Unit 5: Classes, Analyzing Data, and Arrays

  • Describe, create, and manipulate simple classes.
  • Describe and interpret member functions.
  • Create and manipulate objects created from a class.
  • Explain object-oriented programming as related to classes.
  • Use an import statement to use built-in modules.
  • Use the built-in Python libraries to create objects.
  • Interpret statements using built in math functions.
  • Describe a linear search.
  • Describe an algorithm that sorts data.
  • Describe and manipulate a one-dimensional array.
  • Sort and search an array.
  • Describe and manipulate multidimensional arrays.
  • Compare and contrast data sets that could be used to explore a real-world phenomenon or support a claim.
  • Write a scientific report modeling a written research paper on big data applications.
  • Plan, create, and interpret a guessing game programming using a random number generator.

Unit 6: Semester 1 Review and Exam

  • Review concepts from Semester 1.
  • Complete the Semester 1 Exam.

Unit 7: Programming Algorithms

  • Read from a text file.
  • Write data to a text file.
  • Explain variations of how to write to a data file.
  • Search for information in a text file.
  • Describe ways to organize data written to a text file.
  • Using a large data set found online, write a program that analyzes at least three data complements.
  • Describe how images are stored digitally.
  • Use various debugging and testing methods to ensure program correctness.
  • Assess a program by testing to verify correct behavior.
  • Describe event-driven programming. 
  • Describe methods of gathering customer feedback.
  • Use customer feedback to refine an existing program in order to reach a broader audience and address a bias issue.
  • Explain how an algorithm can be applied to different disciplines.
  • Describe other programming languages.
  • Use string formatting to improve the quality of the output.

Unit 8: Design and Development

  • Describe a software development process used to solve software problems (e.g., design, coding, testing, verification).
  • Describe how web pages are developed and how programming can be used to implement goals of a website.
  • Analyze random number generation.
  • Write a computer guessing game using random numbers, looping, and decision-making.
  • Apply guidelines for identifying and fixing errors.
  • Describe collaborative methods in problem solving of level-appropriate complexity.
  • Describe best practices of digital design (comments, documentation, etc.).
  • Describe how a program can be modified to work on multiple platforms.
  • Describe tools used for creating mobile apps.
  • Describe licensing.
  • Describe graphing features of Visual Python.
  • Plan, create, and interpret a program that moves a ball.
  • Describe ways in which a program could be designed to address cultural issues.
  • Identify issues that can arise when designing a solution for a global audience.

Unit 9: Laws and Security

  • Describe potential benefits and harmful effects related to intellectual property rights.
  • Identify sources of privacy concern.
  • Identify problems related to the collection of private data through automated processes.
  • Identify problems caused by malware and ways to protect against malware.
  • Explain the trade off between cybersecurity measures and usability.
  • Identify measures to address digital media reliability.
  • Identify measures to address cybercrime at the global level.
  • Identify major causes of work-related incidents in office environments, both intentional and unintentional.
  • Explain security measures in an office/work environment in terms of efficiency, feasibility, and ethical impacts.
  • Compare ways software developers protect devices and information from unauthorized access.
  • Describe digital solutions to security threats, such as encryption and firewalls.
  • Plan, create, and interpret a program to evaluate the strength of a password.
  • Choosing a topic from the unit, write a report outlining a problem or issue, who it affects, and how it can be resolved.

Unit 10: Ethics

  • Describe digital citizenship.
  • Identify components of a digital footprint (e.g., active and passive data) and its lasting impact.
  • Identify sources of bias when developing computational artifacts, including those who are physically- and mentally-challenged and describe strategies for addressing bias and equity issues.
  • Describe ethical and legal practices of safeguarding the confidentiality of business-and personal-related information.
  • Examine the consequences resulting from issues involving ethics around security, privacy, copyright, fair use, intellectual property, social media and licensing.
  • Discuss the ethical and appropriate use of computer devices.
  • Describe proper netiquette when using e-mail, social media, and other technologies for communication purposes.
  • Describe issues that might arise when collaborating across cultures.
  • Describe strategies for addressing information censorship.
  • Explain the potential impacts and implications of emerging technologies on larger social, economic, and political structures, with evidence from credible sources.
  • Discuss how cultural practices can affect how members of a global team interact.
  • Discuss ethical and equity issues specific to the use of the internet in education.

Unit 11: Applications

  • Describe how web pages are created using HTML elements such as hyperlinks lists, images, and headings.
  • Describe visual block-based programming.
  • Describe how pair programming can be used to plan and implement a program.
  • Describe how sounds, songs, and video are digitized and represented in a computer.
  • Create a drawing application.
  • Describe how application program interfaces (APIs) function.
  • Implement an artificial intelligence algorithm to play a game against a human opponent or solve a problem.
  • Evaluate algorithms analytically and empirically.
  • Describe mobile app development using mock-up screens, identifying input, process, and output steps for each screen.
  • Create a mobile app plan using PowerPoint slides to show mock-ups of screens, identifying input, process, and output for each screen.
  • Describe work-readiness traits required for success as a computer programmer
  • Describe safety and ethical issues in the work environment.
  • Respond to tech support scenarios using employment readiness skills.
  • Discuss how professional organizations can provide benefits and opportunities.
  • Describe the education and/or training needed for different computer-related careers and certifications.

Unit 12: Semester 2 Review and Exam

  • Review concepts from Semester 2.
  • Complete the Semester 2 Exam.

Unit 13: Final Exam

  • Review concepts from the Introduction to Computer Science course.
  • Complete the course exam.
 
Copyright © by Edgenuity

Additional Resources

The primary software tool used in this course is Python 3.8. Python is open-source and free to use.

In addition to the default course content, some projects may require paper and pencil to complete the assignment. Research projects may require students to acquire outside resources. 

The following lessons require specific materials that are not included in this course and must be acquired separately: 

Unit Assignment Resource
All General Requirement
  • access to the Internet
  • Python 3.8
2 Project
  • downloaded image of a house plan
 
Copyright © by Edgenuity
Charity Christian Academy