APCS-A Summer HW

Note: This sketch uses/requires the fonts:
Rage Italic and Lucida Handwriting
 Multiple Comets   Dynamic Word Cloud 

The COMPUTER SCIENCE Program at Downtown Magnets High School

Student Work/Projects

CS Year 1:
Word Clouds

CS Year 2
(AP Computer Science):
Playing Cards,
Evaluating Poker Hands

CS Year 3: Finding Introns and Exons Computationally

Most people have some familiarity with the
"traditional" subfields of Computer Science,
like Artificial Intelligence or Robotics.

However, 21st-century Computer Science is
an integral part of research and discovery
in an ever-growing number of fields across
the STEM and Humanities spectrum, including:

Language Translation,
Cancer Research and Treatment,
Bioinformatics, Molecular Modeling,
Astronomy and Space Exploration,
GPS Applications (e.g. Routing),
Machine Learning, Big Data,
Generative Art and Animation,
Computational Linguistics,
Computational Journalism,
♫ Synthesized Music ♪
... and on and on.

Whatever the application, though,
the ability to PROGRAM
is the fundamental core skill needed
to understand – and create – computational solutions
for problems in these fields and others
on anything beyond a superficial level*.


*Unfortunately, most "Computer Science" programs in LAUSD
– particularly the "Exploring Computer Science" and "APCS Principles" courses –
give only a superficial exposure to programming, if that:
Students develop no deep knowledge of this fundamental Computer Science skill.

Although the long-taught "introductory" college level "AP Computer Science A" is
a serious programming course, it is NOT an introductory high school course.
To succeed in and pass "APCS A", the vast majority of high school students
first require a year-long introductory programming course.

A myth persists in popular culture
that learning to "code" is easy.

The reality is that
learning to program WELL
is a skill that is acquired
over years, not months ...
... like a foreign language.

The analogy to learning a
foreign language goes far deeper.

A recent cutting-edge fMRI study*
has demonstrated that programming
languages are processed
NOT in math- or logic-
related regions of the brain,
but rather in brain regions
that deal with LANGUAGE.
*Understanding Understanding Source Code with functional Magnetic Resonance Imaging (fMRI)
by Siegmund et al.

This research finding has sobering implications
for how students actually learn to program ...
... and hence for teaching as well*.

Portnoff, Scott R. ACM Inroads 9,2 (June 2018), 34-52. doi: 10.1145/3152433
The Introductory Computer Programming Course is First and Foremost a LANGUAGE Course.

Portnoff, Scott R., M.S. Thesis. California State University, Los Angeles, 2016, 262; 10132126
(1) The case for using foreign language pedagogies
        in introductory computer programming instruction
(2) A contextualized pre-AP computer programming curriculum:
        Models and simulations for exploring real-world cross-curricular topics.

The introductory/freshman programming course, a UCOP-approved "G"-elective, is called
Computer Science 1: Computer Programming as if the Rest of the World Existed, which:

(a) focuses on how CS can be used in the Real World, and
(b) uses instructional strategies informed by principles from the field of Second Language Acquisition.

Students learn the fundamentals of programming by writing Java applications (software programs)
modeled after software programs that fill a SOCIAL or SCIENTIFIC PURPOSE*.

*For example, the Solar System program below is modeled after Planetarium software used for astronomical observations and space exploration.
The Molecular Modeling program, also below, is modeled after Molecule Viewer software used to aid drug and medical research.

Students program in Processing (a dialect of Java),
which is a free and simple – but extremely powerful – programming development tool
designed for Visual Artists to create computer art and animations.

Advanced Courses offered to students who successfully complete CS1 are:
Generative Art/Design (the artistic medium is programming code), a UCOP-approved "F"-elective
APCS-A: Advanced Placement Computer Science A, a UCOP-approved "G"-elective
Java Advanced Data Structures & Introduction to Bioinformatics UCOP-approval pending

Semi-Annual Field Trip to CS Dept at Harvey Mudd College (2013)

1st Year (CS1) Projects

Click on hyperlinks to view Processing programs of the projects below.

Around the World in 24 Days

Molecular Modeling to Investigate
DNA Base Pair Hydrogen Bonding

Oscillating McClure
Rhombus Painting

Galileo's Revolution: The Copernican Model of the Solar System