Department: Computer Science
Course Description: This course provides an introduction to exciting applications and topics in computer science. Using a combination of in-class discussions, hands-on projects, worksheets, forum discussions and guest speakers, students learn about digital representations, computational models and abstraction. The course is organized around the study of current topics in computer science. Although specific topics may vary, typical topics include computer architecture and networking, programming, ethical issues in computer science, gaming as a learning platform, and social media and privacy concerns.
Prerequisite: Algebra 1. UC approved.
Interview with: Mrs. Main
Produced by: Evan Cheng
Programming and Advanced Programming
Department: Computer Science
Course Description for Programming: This course helps entry-level computer science students develop their computational thinking skills by applying the basic steps in algorithmic problem solving and abstraction. Students apply modern software design techniques to strategize and communicate solutions and then develop a program that embodies their solutions. Throughout the course, students will increase their abstraction skills by analyzing complex problems and decomposing them into smaller more manageable problems and by so doing gain not only an appreciation of elegant solutions but also experience the thrill of obtaining them. Students will store objects in a data structure and then manipulate them, explore virtual worlds with robots, and fashion creatures of their own design while learning basic programming and algorithmic thinking skills. Programming is designed to fulfill the prerequisite for students who intend to pursue Advanced Placement Computer Science A.
Prerequisite for Programming: Geometry or Honors Geometry. UC approved.
Course Description for Advanced Programming: This course helps students develop their computational thinking skills by applying the basic steps in algorithmic problem-solving and abstraction. Students apply software design techniques to strategize and communicate solutions and then develop a program that embodies their solutions. Students learn to use techniques such as inheritance, methods and recursion to break complex problems down into smaller, more manageable sub-problems. Students not only gain an appreciation of elegant solutions but also experience the thrill of obtaining them. Using one or more modern programming languages, students explore virtual worlds (Karel worlds, GridWorld and gameboards) while learning object-oriented programming skills such as creating classes, designing and implementing methods, and exploring inheritance. Students expand their programming skills by applying techniques like recursion to solve an adventure puzzle or game. Advanced Programming is a fast-paced course and is a prerequisite for the student who has an intense interest in computer science and intends to follow up this course with Advanced Placement Computer Science with Data Structures (i.e., data structures such as linked lists, stacks, queues, priority queues, trees, and maps). At completion, successful students are qualified for either AP Computer Science or AP Computer Science with Data Structures.
Prerequisite for Advanced Programming: Geometry or Honors Geometry with A- or better. UC approved.
Interview with: Ms. Peregrino
Produced by: Arushi Saxena