Note: click on this, and actually read it; it’s part of the
syllabus:
../../ClassGeneral/Syllabus.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…)
https://allendowney.github.io/ThinkPython/
http://inventwithpython.com/invent4thed/
http://inventwithpython.com/pygame/
http://scipy-lectures.org
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
https://learnxinyminutes.com/docs/python3/
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/
https://www.tutorialspoint.com/python3/
https://devhints.io/python
These only occur during face-to-face booked class.
About once a week, we will have in-class programming lab
exercises.
You must do the following, to get credit for these labs:
Be present when class starts; if you are more than 2 minutes late, you get a 0 for the day.
Check out at the end of class, presenting your student ID card to
the testing monitor,
who will assign your grade for the day; if you do not check out, you
don’t get a grade.
Complete the activities within class time.
Not use any outside resources, such as the web; doing otherwise
is cheating.
The only acceptable resources to use in class during the lab are:
the python command line help or
help at the python terminal, or Spyder IDE.
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/