Showing posts with label csa. Show all posts
Showing posts with label csa. Show all posts

Tuesday, September 1, 2020

My CompSci Last Will & Testament!

My CompSci Last Will & Testament!




Dear New CompSci Teacher & Successor:

As a newly retired AP Computer Science teacher, I salute you on your choice of career! 


Believe it or not, I was in your shoes 36 years ago when I started teaching High School Math in 1984, AP Computer Science A&AB in 1988 and AP Calculus AB&BC as well as College Math in 1993. I've been teaching Intro CompSci most years since 1984 and AP CSA (AP CSAB during the C++ years) every year from 1987-1988 to 2017-2018 school years. The main difference between my starting out then and your starting out now is that you have a lot more tools available to you with respect to hardware, software and even curriculae. For example, you have your choice of online textbook and IDE. Many such textbooks are interactive with built in IDEs. You even have your choice of online IDE via cloud computing on Google Compute Platform (GCP) or on Amazon Web Services (AWS). Good for you! 




When I started out we had two classrooms of 8 IBM PCs shared by 16 students in each room running the Intel 8088 processor, text based monochrome graphics screens, 256KB RAM and two 5.25" floppy disk drives (one disk to boot IBM DOS and another disk to run applications like IBM BASIC, WordStar WordProcessor, Lotus 123 Spreadsheet or dBASE as well as saving data files). Forget harddrives, multicolor graphics arrays, printers or networks. In fact, we had only just replaced a GIMIX MiniComputer (UNIX based) network with these PCs. That was part of my job when I was hired! I've been maintaining, upgrading and redesigning these classroom/PC Labs ever since! In 1987 we started a Computer Math class (aka introCS) that was so popular we had to turn people away! We ran 2 sections every period of the day for 8 periods for about 250 students each year for several years. Now we are lucky if we get one section of introCS and one section of AP CSA. About 20 years ago, we combined the 2 labs into one as you can see pictured in the masthead of this blog.




Fast forward to the present day and you will find me and my students computing in the cloud whether it be scientific computing using SAGE (Google Compute Platform) in math class or graphics programming using OpenProcessing (Amazon Web Services). We're even building Linux Clusters out of Raspberry PIs (RPIs) after school creating fractal and povray prints with my Computing Science Independent Study (CSI) students! It's like I traveled 36 years into the future on H. G. Wells' own time machine to see how the state of computer science education has changed over all these years!




So, what pearls of wisdom can I bequeath unto my stalwart successor? I'll not bore you with my entire history of teaching CompSci and all the hardware, software and curriculum changes over the years. Let me just share with you what I would have done this year if the COVID19 Pandemic hadn't made me retire. I was still preparing for the new school year (2020-2021) last month just like I do every year before I decided to retire. So I think I have a pretty good idea of what you should do to get started teaching introCS and AP CSA in this day and age.



Last year, my Intro Computer Science course, Computer Science Honors (CSH), was completely online as far as computing environments were concerned. We used SAGE a lot for pythonic scripting. We also used Trinket.io whenever we needed turtle.py or visual.py access (aka IDLE and VIDLE). Our textbook was a combination of "Coding in Python and Elements of Discrete Mathematics" by the incomparable Maria & Gary Litvin from SkyLight Publishing and the amazing interactive python text online: "How to Think Like a Computer Scientist."



Two years ago, in AP CSA, we used CS50 and OpenProcessing a lot and we loved it! It's great to have the same computing environment in class and at home down to the filing system and the files we are working on. CS50 emulates an Ubuntu Linux Desktop which we used to write and debug all our text based java programs. We used OpenProcessing whenever we wanted to do something graphical in java (optional: not tested on the AP Exam). See The Nature Of Code YouTube Channel by Daniel Schiffman for some great ideas! If you want to get fancy, CS50 recently launched a Sandbox version adding support of Xwindows graphical programming as well as Jupyter Notebooks (aka Interactive Python NoteBooks). Our textbook was "Big Java" by the phenomenal Cay Horstmann. This year I would also follow the new AP CSA CED and AP Classroom. Runestone has a great interactive online text "CSAwesome" that I highly recommend!



In many states, this year you will need to have all these sites sign a waiver to protect student data (PII). BTW, we can use SAGE without a waiver because you don't have to login to use it. You would think it's a problem that you can't print or save your work. However, you can easily download your python scripts for printing. You can even share a permalink url with all your interactive code embedded and encrypted! See samples from my math classes on the sidebar of this blog. There's also a commercial version of SAGE called CoCalc if you want to save your code online and print to pdf. CoCalc even has a LaTex editor as well as Jupyter Notebooks! Trinket already signed the PII waiver for my former school district, thank you! 



My old High School is still waiting for CS50 and OpenProcessing to come on board. You need a GitHub account to log into CS50 so we sent a waiver there too. Harvard's own Dr. David Malan said he's working on the CS50 waiver. Openprocessing said they may make a sandbox edition where you won't even need to login! If we don't get those waivers signed, students may have to download and install the NetBeans and Processing IDEs on their PCs at home (we have these installed on the school PCs just in case).



If your students are stuck at home learning remotely, best thing to do would be to install IDEs on a PC desktop. I was loooking at NetBeans or Eclipse for java. Processing has a desktop IDE as well. If students are using chromebooks, I was looking at an experimental Linux desktop that's now included as a dual boot OS on most chromebooks. BTW, both the chromebook and CS50 platforms use a text (ASCII) based Linux console running Ubuntu Linux (which I used for decades at my old High School).



FYI, I'm in the process of posting my screencasts to Patreon. Please keep an eye out for my Computer Science posts: 






BTW, we've been using Linux so long (1995-2017 IIRC) that I remember using telnet, rlogin and plain ftp back in the day before setting up ssh and sftp servers! We even had a separate ftp server just to share files with students and faculty. OMG, I even remember using UNIX in the 1970s and 1980s back in my undergraduate days at Cornell majoring in Physics and Electrical Engineering!


One last thing, don't forget about Rubber Duck Debugging! Here's some more info!

Well, that's all folks.

Generally Speaking,
A. Jorge Garcia

 
Applied Math, Physics and CS
www.patreon.com/calcpage2020

www.youtube.com/calcpage2009

calcpage.redbubble.com

society6.com/calcpage






2015 NYS Secondary Math PAEMST Nominee


Teaching with Technology, 
pastebin youtube slideshare 
mathforum apcommunity sage

(IDEs & Code)
MATH 4H, AP CALC, CSH: SAGECELL
(Curriculae)
CSH: CodeHS
APCSA: Big Java
APCSA: CSAwesome

RECOMMENDED AP COMPSCI REVIEW:
CRIB SHEET (given during exam)
REVIEW BARRONS BOOK (see me)
REVIEW BARRONS ONLINE 
REVIEW APCENTRAL (past FRQs)
REVIEW EDX REVIEW MOOC01 
REVIEW UDEMY REVIEW MOOC02 
REVIEW CODING_BAT 
REVIEW PRACTICE_IT 
REVIEW RUNESTONE 
AUDIT CS50

RECOMMENDED AP CALCULUS REVIEW:
CRIB SHEET (not given during exam) 
REVIEW BARRONS BOOK (see me)
REVIEW BARRONS ONLINE 
REVIEW APCENTRAL (latest AB FRQs)
REVIEW APCENTRAL (latest BC FRQs)
REVIEW APCENTRAL (older AB FRQs)
REVIEW APCENTRAL (older BC FRQs)
REVIEW EDX MOOC01 
REVIEW COURSERA MOOC02

XTRA CREDIT FILKS RUBRIC 
(1 video = up to 5 bonus points):
1) Use a recognizable tune.
2) Karaoke entire song changing up the words (about STEAM).
3) You are Singing, Dancing or Playing an instrument.
4) You upload your video to YouTube and provide the url.
5) YouTube Description includes the lyrics.

XTRA CREDIT ARTICLES RUBRIC
(up to 5 articles = 1 bonus point each):
1) Cover Sheet is a Summary of the article.
2) FullPage, 12 pt, DoubleSpaced, 1" Margin.
3) Article has to be STEAM related
4) Article has to be a current event.
5) Copy of entire article is attached.

Wednesday, April 1, 2020

Computing Science Education 2020 (Part 2 of 3)

Computing Science Education 2020 
(Part 2 of 3)



Many high schools don't have the enrollment to populate a CS0 and CS1 course. I ran a course called Computer Math for decades using different versions of BASIC, of all languages, as our CS0 course prereq to AP CSA aka our CS1 course at my high school (1984-2010). Then we switched to Python. We call the intro class Computer Science Honors (CSH) now.



This approach worked well until about 5 years ago when guidance stopped populating our CS0 class and put everyone into the CS1 class. I managed to bring back CS0 this year but competition with AP CSP killed it again for next year. Sorry to say, CSP is not the CS0 our kids are looking for in preparation to take CSA, so CSP and CSH are perforce at loggerheads. 

CSP is not enough about syntax, semantics or algorithms to be a good CS0 at the high school level. Look at Harvard's CS50! This college level CS0 course for non-majors uses a ton of different languages. Said approach would be better suited as a CS0 before CSA. BTW, I tend to cover some CSP content in CSH/CSA anyway (2 year sequence before the AP exam). But not enough to replace my CSH with CSP. I'm afraid that I cannot ascribe to the CSP design philosophy.

BTW, I've been teaching AP CSA since the 1987-1988 school year and have gone through all the syllabus changes and language changes (Pascal to C++ to Java). As much as I'd love a switch of languages to something like Python, I don't really see the need for it yet. Here's the curriculum I've been working on all these decades:

CSH - Intro class with Python
CSA - AP class with Java
CSI - Independent study class with openMPI
CSL - Calculus class using CAS (SAGE)

Finally, CS is a very broad subject. It's not just about IT and industry nor is it just about software and app development. I come from a background of Computing Science or Scientific Computing concerned mostly with using Math, Science and computing environments of various types on various platforms to run simulations as an aid to research and solve real world problems. 

For example, please see recent lessons for my CS0 class (above) that I screencast from home since our high school campus has been closed for several weeks now due the COVID19 outbreak, but the show... err, elearning online must go on! Here's the SAGE code, which is mostly pythonic, that goes with the first screencast shown above. Here's SAGE code for the second screencast.

Well, that's all folks.

Generally Speaking,
A. Jorge Garcia

 
Applied Math, Physics and CS
www.patreon.com/calcpage2020

www.youtube.com/calcpage2009

calcpage.redbubble.com

society6.com/calcpage






2015 NYS Secondary Math PAEMST Nominee


Teaching with Technology, 
pastebin youtube slideshare 
mathforum apcommunity sage

(IDEs & Code)
MATH 4H, AP CALC, CSH: SAGECELL
(Curriculae)
CSH: CodeHS
APCSA: Big Java
APCSA: CSAwesome

RECOMMENDED AP COMPSCI REVIEW:
CRIB SHEET (given during exam)
REVIEW BARRONS BOOK (see me)
REVIEW BARRONS ONLINE 
REVIEW APCENTRAL (past FRQs)
REVIEW EDX REVIEW MOOC01 
REVIEW UDEMY REVIEW MOOC02 
REVIEW CODING_BAT 
REVIEW PRACTICE_IT 
REVIEW RUNESTONE 
AUDIT CS50

RECOMMENDED AP CALCULUS REVIEW:
CRIB SHEET (not given during exam) 
REVIEW BARRONS BOOK (see me)
REVIEW BARRONS ONLINE 
REVIEW APCENTRAL (latest AB FRQs)
REVIEW APCENTRAL (latest BC FRQs)
REVIEW APCENTRAL (older AB FRQs)
REVIEW APCENTRAL (older BC FRQs)
REVIEW EDX MOOC01 
REVIEW COURSERA MOOC02

XTRA CREDIT FILKS RUBRIC 
(1 video = up to 5 bonus points):
1) Use a recognizable tune.
2) Karaoke entire song changing up the words (about STEAM).
3) You are Singing, Dancing or Playing an instrument.
4) You upload your video to YouTube and provide the url.
5) YouTube Description includes the lyrics.

XTRA CREDIT ARTICLES RUBRIC
(up to 5 articles = 1 bonus point each):
1) Cover Sheet is a Summary of the article.
2) FullPage, 12 pt, DoubleSpaced, 1" Margin.
3) Article has to be STEAM related
4) Article has to be a current event.
5) Copy of entire article is attached.