# An Introduction to Computer Science

![Mr. Brash's  ICS3U/C  site for resources and the basics of programming.](https://1200419583-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKbpNQDFNJap9OTDSt6%2F-MH6snb9ZZBSW1KeA77V%2F-MH6t-rukCg4M4r8EURr%2F3U%20Logo%20Small%20Trans.png?alt=media\&token=271aac99-1b99-4a9d-9c09-fb85b6c2d67b)

{% tabs %}
{% tab title="Course" %}
This course introduces students to computer science. Students will design software independently and as part of a team, using industry-standard programming tools and applying the software development life-cycle model. They will also write and use subprograms within computer programs. Students will develop creative solutions for various types of problems as their understanding of the computing environment grows. They will also explore environmental and ergonomic issues, emerging research in computer science, and global career trends in computer-related fields.

* **Course Outlines (** [**ICS3C**](https://docs.google.com/document/d/1_3XiB_AUCwli3HmIEBFuCCIjtfxffxp_6zhMOuAuE8o/edit?usp=sharing) **,** [**ICS3U**](https://docs.google.com/document/d/161eH0pQX7YWMIEkw9IOI0gg45FRd8S0AXpa9p3KLBmI/edit?usp=sharing) **)**
* **​**[**Plagiarism Policy**](http://link.brash.ca/plagiarism)**​**
* [**3U/3C Course Expectations Comparison**](https://drive.google.com/file/d/0BzyP6cTwQ57eaVdEd1BFQVlkY2c/view?usp=sharing)
* [**Video Lessons!**](https://scrimba.com/playlist/pWrg4uW)
* [**JavaScript Syntax Poster**](https://cs.brash.ca/tl-dr/javascript-syntax)

**Suggested Reading:** [Javascript.info](https://javascript.info/),   [Eloquent JavaScript](http://eloquentjavascript.net/)​  *or*  [JavaScript for Cats](http://jsforcats.com/)\
**Suggestion Viewing:** [Introduction to Javascript](https://scrimba.com/g/gintrotojavascript) (Scrimba)  *or* [Learn Javascript](https://youtu.be/PkZNo7MFNFg) (FreeCodeCamp)
{% endtab %}

{% tab title="Code Documentation" %}
Javascript or other programming specific documentation:

* [JavaScript Syntax Poster](https://cs.brash.ca/tl-dr/javascript-syntax)
* [w3Schools JavaScript](https://www.w3schools.com/js/)
* [W3Schools HTML](https://www.w3schools.com/html/)
* [Mozilla JavaScript MDN](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/JavaScript_basics)
* [Eloquent JS - Online Textbook](http://eloquentjavascript.net/)
* [freeCodeCamp JavaScript](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
* [Javascript.info](https://javascript.info/)
* [HTML Cheat Sheet](https://www.hostinger.com/tutorials/html-cheat-sheet)
  {% endtab %}

{% tab title="Quick Links" %}

* **General**
  * [Mr. Brash's Geek Reading](http://flip.it/sLqOIF)   //Flipboard (not nec. up to date)
  * CodeCombat   // Coming soon
  * [Repl.it](http://repl.it/)       // Read-Execute-Print-Loop
  * [TypingClub](http://mthics.typingclub.com/)
  * [Logic.ly](https://logic.ly/demo)
  * [Photopea](http://www.photopea.com/)  // "Photoshop" Online
  * [Code.org](http://code.org/)
  * [CodeHS](http://codehs.com/)
* **JavaScript**
  * [Javascript.info](https://javascript.info/)
  * [Eloquent JavaScript - online textbook](http://eloquentjavascript.net/)
  * [Learn JS](https://www.learn-js.org/)
  * [Introduction to JS](https://scrimba.com/g/gintrotojavascript)  // Scrimba
  * [edX and W3C](https://www.edx.org/course/javascript-introduction-w3cx-js-0x-0)
  * [freeCodeCamp](https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/basic-javascript)
  * [JSHero](http://www.jshero.net/en/home.html)
  * [So many more](http://bfy.tw/JX1L)!
* **HTML**
  * [W3Schools Reference](https://www.w3schools.com/html/)
  * [HTML Cheat Sheet](https://www.hostinger.com/tutorials/html-cheat-sheet)
  * [freeCodeCamp](https://learn.freecodecamp.org/responsive-web-design/basic-html-and-html5)
  * Free Online Lesson: [HTML Basics](https://www.sololearn.com/Play/HTML/hoc)
* **CSS**
  * [W3Schools Reference](https://www.w3schools.com/css/)
  * [freeCodeCamp](https://learn.freecodecamp.org/responsive-web-design/basic-css)
  * [CSS Basics](https://www.sololearn.com/Play/CSS/hoc)
* **Raspberry Pi**
  * [MagPi Magazine](https://www.raspberrypi.org/magpi/issues/)
  * [Training and Tutorials](https://www.raspberrypi.org/education/)
* **Python**
  * [LearnPython.org](http://learnpython.org/)
  * [edX and Georgia Tech](https://www.edx.org/course/computing-in-python-i-fundamentals-and-procedural-programming)
  * [SoloLearn](https://www.sololearn.com/Play/Python/hoc)
  * [So many more](http://bfy.tw/JX1b)!
    {% endtab %}
    {% endtabs %}

**Note:** If this site seems like too much to take in, check out the [**Programming Basics**](https://cs.brash.ca/tl-dr/basics) page.

{% hint style="info" %}

### **You might be wondering -&#x20;*****why JavaScript?***

What you will learn should apply to *any* programming language, but we have to pick one. JS has a simple (enough) learning curve, requires zero setup, and it is the language that makes websites interactive. Did I mention it's completely open-source and free?

The main topics of this course are not language-specific. Being able to program a computer does not mean you "*know a language*." Most programming languages can do 95% of what any other languages do. What you will learn are basic concepts and problem-solving techniques.

Please note - Javascript has ***nothing*** to do with Java.
{% endhint %}
