ACADEMICS » Exploring Computer Science

Exploring Computer Science

Exploring Computer Science (ECS) is designed to introduce students to the field of computer science through an exploration of engaging and accessible topics. Rather than focusing the entire course on learning particular software tools or programming languages, the course is designed to focus on the conceptual ideas of computing and help students understand why certain tools or languages might be utilized to solve particular problems. 

EXPL COMP SCI A

Unit 1: Human Computer Interaction

Topics to be addressed: 

  • Computers and the internet 
  • Models of Intelligent Behavior 
  • Societal impacts of computing 

Topic Description: 

In this unit students are introduced to the concepts of computer and computing while investigating the major components of computers and the suitability of these components for particular applications. Students will experiment with internet search techniques, explore a variety of websites and web applications and discuss issues of privacy and security. Fundamental notions of Human Computer Interaction (HCI) and ergonomics are introduced. Students will learn that “intelligent” machine behavior is not “magic” but is based on algorithms applied to useful representations of information, including large data sets. Students will learn the characteristics that make certain tasks easy or difficult for computers, and how these differ from those that humans characteristically find easy or difficult. Students will gain an appreciation for the many ways in which computing-enabled innovations have had an impact on society, as well as for the many different fields in which they are used. Connections among social, economic and cultural contexts will be discussed. 

Objectives: 

The student will be able to: 

  • Analyze the characteristics of hardware components to determine the applications for which they can be used. 
  • Use appropriate tools and methods to execute Internet searches that yield requested data. 
  • Evaluate the results of web searches and the reliability of information found on the Internet. 
  • Explain the differences between tasks that can and cannot be accomplished with a computer. 
  • Analyze the effects of computing on society within economic, social, and cultural contexts. 
  • Communicate legal and ethical concerns raised by computing innovation. 
  • Explain the implications of communication as data exchange.

 

Unit 2: Problem Solving 

Topics to be addressed: 

  • Algorithms and abstraction 
  • Connections between Mathematics and Computer Science 
  • Societal impacts of computing 

Topic Description: 

This unit provides students with opportunities to become “computational thinkers” by applying a variety of problem-solving techniques as they create solutions to problems that are situated in a variety of contexts. The range of contexts motivates the need for students to think abstractly and apply known algorithms where appropriate, but also create new algorithms. Analysis of various solutions and algorithms will highlight problems that are not easily solved by computer and for which there are no known solutions. This unit also focuses on the connections between mathematics and computer science. Students will be introduced to selected topics in discrete mathematics including Boolean logic, functions, graphs and the binary number system. Students are also introduced to searching and sorting algorithms and graphs. 

Objectives: 

The student will be able to: 

  • Name and explain the steps they use in solving a problem. 
  • Solve a problem by applying appropriate problem-solving techniques. 
  • Express a solution using standard design tools. 
  • Determine if a given algorithm successfully solves a stated problem. 
  • Create algorithms that meet specified objectives. 
  • Explain the connections between binary numbers and computers. 
  • Summarize the behavior of an algorithm. 
  • Compare the tradeoffs between different algorithms for solving the same problem. 
  • Explain the characteristics of problems that cannot be solved by an algorithm.

EXPL COMP SCI B

Unit 3: Web Design 

Topics to be addressed: 

  • Web page design and development 
  • Computers and the internet 
  • Algorithms and abstraction 
  • Societal impacts of computing 

Topic Description: 

This section prepares students to take the role of a developer by expanding their knowledge of algorithms, abstraction, and web page design and applying it to the creation of web pages and documentation for users and equipment. Students will explore issues of social responsibility in web use. They will learn to plan and code their web pages using a variety of techniques and check their sites for usability. Students learn to create user-friendly websites. Students will apply fundamental notions of Human Computer Interaction (HCI) and ergonomics. 

Objectives: 

  • The student will be able to: 
  • Create web pages to address specified objectives. 
  • Create web pages with a practical, personal, and/or societal purpose. 
  • Select appropriate techniques when creating web pages. 
  • Use abstraction to separate style from content in web page design and development. 
  • Describe the use of a website with appropriate documentation.

Unit 4: Introduction to Programming

Topics to be addressed: 

  • Programming 
  • Algorithms and abstractions 
  • Connections between mathematics and computer science 
  • Societal impacts of computing 

Topic Description: 

Students are introduced to some basic issues associated with program design and development. Students design algorithms and create programming solutions to a variety of computational problems using an iterative development process in Scratch. Programming problems include mathematical and logical concepts and a variety of programming constructs. 

Objectives: 

The student will be able to: 

  • Use appropriate algorithms to solve a problem. 
  • Design, code, test, and execute a program that corresponds to a set of specifications. 
  • Select appropriate programming structures. 
  • Locate and correct errors in a program. 
  • Explain how a particular program functions. 
  • Justify the correctness of a program. 
  • Create programs with practical, personal, and/or societal intent. 
  • Use abstraction to reduce complexity.