Note: click on this, and actually read it; it’s part of the
syllabus:
../../SyllabusGeneral.html
If you have not logged in and completed the introductory activities within all the course resources by the second week of class, you will be administratively dropped from the class, and not re-admitted!
Short description:
This course provides a rigorous introduction to computational problem
solving, thinking, and debugging, for those with little-to-no experience
in computer science. Language-agnostic foundations focus on pseudo-code,
flowcharts, and software-based code tracing, then build to programming
in a high level interpreted language, with a focus on data and
modeling.
Full description:
This course provides students with a rigorous introduction to
computational problem solving, thinking, and troubleshooting. It is
intended for those with little to no experience in programming or
computer science. Language-agnostic foundations will include focus on
pseudo-code, flowcharts, and software-based code tracing, then build to
programming methods. The class will employ software design processes and
principles in programming progressively larger modeling projects
(games), in a high level interpreted programming language. Discussions
of software design philosophy and methods will include modularity and
code re-use, test-driven development, progressive enumeration, Unix code
design philosophy, object-oriented programming, and others. The course
includes thorough coverage of the general systematic process of using
scientific hypothesis testing for finding the causes of problems in
technological and software systems, namely troubleshooting and
debugging.
Required readings and activities will be assigned from these materials:
Part 1 - How to use a computer, bash, Linux, and virtual
machines
* My course pages: Content.html
Part 2 - Python3 language basics and creating interactive models
(a.k.a. games…)
* http://greenteapress.com/thinkpython2/thinkpython2.pdf
(python3)
* http://inventwithpython.com/invent4thed/
* http://inventwithpython.com/pygame/
* http://scipy-lectures.org (a good overview for
scientists or mathematicians who want to learn python)
* https://automatetheboringstuff.com/
* https://docs.python-guide.org/
* https://docs.python.org/3/library/index.html
* https://docs.python.org/3/reference/index.html
* https://docs.python.org/3/tutorial (For experienced
programmers just wanting a highlight of the language)
* https://learnxinyminutes.com/docs/python3/ (long python
script to learn python).
* https://realpython.com/
* https://www.learnpython.org/
* https://www.py4e.com/book
* https://www.python-course.eu/python3_course.php
* https://python.swaroopch.com/
* https://www.thepythoncode.com/ (more specialized
topics)
* https://www.tutorialspoint.com/python3/
* https://devhints.io/python (short cheat-sheet)
* My course pages: Content.html
Note: These only occur during face-to-face booked class (regrettably not during COVID online classes).
If you want extra practice implementing computational solutions to a
wide variety of problems and algorithms, with auto-graded correctness,
then check out Kattis:
https://open.kattis.com/
Virtualbox OVA I distribute