Digital World

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 vs. 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

Robotics Principles: Hardware and Software

Department: Computer Science

Course Description for Robotics Principles: Hardware: This one-semester, post-programming pre-calculus- based course will focus on the fundamental principles of robotics hardware. Students will learn about the key elements of drive trains, electrical systems, wire routing, sensors, control interfaces, vision systems and manipulators. The students will learn about these concepts through the dissection of Robotex Avatar Micro (version 1) military grade ground drones. The students will disassemble/reassemble, document and CAD the existing subsystems, learn about the design and operational elements, and subsequently design and fabricate their own manipulators that will interface into the drones. A sufficient level of software will also be covered to allow for the control of the custom manipulators.

Course Description for Robotics Principles: Software: This one-semester, post-programming pre-calculus- based course will focus on the fundamental principles of robotics software. Students will learn about the key elements of digital and analog sensor data processing and actuator control, analog to digital converters, vision systems, control systems, feedback, state machine concepts, PID and fuzzy logic feedback control, control theory and software design and hardware simulation. Students will design and implement these concepts on small independent robotic platforms in order to understand the entire process of idea-design-develop- test-implement. A sufficient level of hardware concepts will also be covered to allow for the control and development of custom manipulators.

Prerequisite: Programming or Advanced Programming. UC approved.

Interview with: Mr. Baynes

Produced by: Enya Lu