Curriculum Map |
Additional Readings |
# A 2nd semester follow-up to the [TEALS Intro CS course](https://tealsk12.github.io/introduction-to-computer-science/)
* GitHub: https://github.com/TEALSK12/2nd-semester-introduction-to-computer-science
* Github Pages: https://tealsk12.github.io/2nd-semester-introduction-to-computer-science/
The following has been deprecated after the 2019/20 school year:
* GitBook: https://tealsk12.gitbooks.io/2nd-semester-introduction-to-computer-science/content/
## About this curriculum
Welcome to the TEALS Intro to Computer Science Second Semester Curriculum. This curriculum is intended for use by TEALS classrooms teaching Introduction to Computer Science in a yearlong format. We expect that students have completed the content from the [1st semester course](https://tealsk12.github.io/introduction-to-computer-science/) prior to this curriculum.
For TEALS schools in BC, Canada, please see [Aligning TEALS Python Teaching Resources with the BC Curriculum](CA_README.md.html).
## Associated Readings
We have included with this curriculum Associated Readings to dive deeper into topics specific to the instruction of this course. These readings have been adapted from "Think Python: How to Think Like a Computer Scientist" by. Allen B. Downey. ([HTML Version](http://greenteapress.com/thinkpython/html/index.html))([PDF Version](http://www.greenteapress.com/thinkpython/thinkpython.pdf)).They are specifically referenced in the lesson plans and the [full document](readings.md.html) is included.
## Curriculum Orientation
Check out this 1-hour [Orientation to the Curriculum video](https://www.youtube.com/watch?v=UHgA_7x6-Qo)
## Python Versions (2 vs 3)
Python is an evolving language. Python 3 is a major upgrade to the language, released in 2010. There is a lot of existing software written under Python 2 and there is resistance to upgrading to Python 3 due to code breakage and cost. Just as a car part from a 10 year old model car will probably not fit a new model of the same car, Python 2 code probably would not run in a Python 3 environment. In Python 3 there are new features, significant upgrades "underneath" which makes the code run better and/or faster as well as no longer supporting (deprecating) some Python 2 capabilities. When looking at Python code, be careful to note whether it is Python 2 or Python 3.
### This class will use Python 3
For those knowledgeable with Python 2, the following is a list of differences from Python 3 relevant to the 2nd semester intro course.
| | Python 2 | Python 3 |
| ------ | ---------- | --- |
| Printing to console | print 3.14 | print (3.14) |
| User input | raw_input()/input() | input () |
| Integer arithmetic | 3/2 evaluates to 1 | 3/2 evaluates to 1.5 |
### IDE Selection
As with all software services, it is the school's sole decision to use the tool according to the use terms and privacy policies provided by its licensor and it is the school's responsibility to ensure the tool meets it's IT policies.
## Curriculum Issues
TEALS will only continue making small corrections and critical updates to TEALS curricula. Please open an issue if you encounter things like factual, spelling, or grammatical errors, broken links, sequencing problems (topics needed before they are taught), or incomplete/missing materials.
## Giving feedback and asking questions about the curriculum
TEALS intends for our curricula to be starting points for teaching teams. We invite volunteers and classroom teachers using our curricula to fork them as appopriate! If you'd like to suggest changes or additions to a curriculum be added to the master branch, please submit a pull request containing your changes. As a best practice, each pull request should contain a singular atomic change.
Here are a few examples of a pull request workflow.
For general curriculum-related questions and discussion not tied to a specific reported issue, we encourage everyone to actively participate in the GitHub Discussions board for the corresponding curriculum. This is a great place to share alternative lesson ideas, share pro-tips for implementation and differentiation, pacing advice, etc... ## Printing The 2nd Semester Introduction to Computer Science can be printed by navigating to https://aka.ms/TEALS2ndSemesterPDF. ## Creative Commons Attribution Non-Commercial Share-alike License [This curriculum is licensed under the Creative Commons Attribution Non-Commercial Share-alike License](http://creativecommons.org/licenses/by-nc-sa/4.0/), which means you may share and adapt this material for non-commercial uses as long as you attribute its original source, and retain these same licensing terms.