Course Information for Spring 2020
Current status: offline, send me an email
|1||Tools of the Trade||What is a Shape?||11 February 2020|
|2||Functions, parameters, and definite loops||A Shape Collection||18 February 2020|
|3||Loops and conditionals||Surreal Scenes within Scenes||25 February 2020|
|4||Graphics and Lists||Realistic Scenes||3 March 2020|
|5||Animation||Animated Scene||10 March 2020|
|6||Images||Warhol Project||20 March 2020 (Friday)|
|7||Grammars, Files, and Interpreters||Fractals and L-systems||7 April 2020|
|8||Classes||L-systems in Nature||14 April 2020|
|9||Dictionaries and Inheritance||Unique Trees and Mosaics||21 April 2020|
|10||Not quite straight lines||Impressionist Non-photorealistic rendering||28 April 2020|
|11||Recursion (or 3D Turtle)||Creative Scenes (or 3D scenes)||8 May 2020 (Friday)|
Much of what you learn in this course will come from implementing the ideas you learn in lecture. Each week in lab we will practice a new concept, which will then be used as a core part of the project. Each project will have a significant creative aspect to it in the form of creating a scene or image. In all core CS courses, the defined part of the project will constitute about 85% of it. You can choose to stop there, or you can extend the project in ways that are interesting to you for additional credit. Each project will have some suggested extensions, but you are always free to choose your own.
A project will always have a coding part and an associated report. Your code should be well-written, well-commented, and efficient. The report gives you a chance to do two things: explain your code/design to others, and explain the results of your project. These are two different skills, both of which are important for any computer scientist or software developer. The first requires you to explain an algorithm or computational concept using natural language. This is necessary in order to communicate or explain ideas in a structured manner. The second requires you to examine the results of your code, analyze whether it is working, and explain the results. Note that the second part also helps you to ensure your code is working properly.
All projects will be graded out of 30 points. The code and quality comments constitute 21 points, the report constitutes 5 points, and you can earn up to an additional 4 points with extensions. A 30/30 project requires perfect code, a clear and well-written report, and meaningful or significant extensions. Note that doing lots of extensions will not make up for a poor report, code with errors, or code without comments.
The faculty and TAs are available to help you, especially with projects. Please follow the 30-minute rule: if you have not made any progress after 30 minutes of honest effort, stop what you are doing and ask a question of a TA or faculty. The point of the projects is not to be frustrated, but to make progress.
Success in the projects results from starting early, attending lecture and lab, making use of the course resources, and asking questions when you get stuck. All projects will be due Tuesday evening by midnight except as noted above. Projects submitted after the specified deadline will be graded without considering extensions. Any project work must be submitted within a week of the deadline to receive any credit. Submit what you have and move on to the next project.
Python.org is the main source for all documentation on Python. This documentation can be downloaded to your computer so that you don't need web access to view it. Note that we will be using Python 3 in lectures and labs.
- For an informal introduction to Python, they have a tutorial
- For a list of functions and data types, refer to the library reference documentation.
Free Online Books on Python
- Connect to Safari books online and get access to multiple textbooks on Python and introductory CS.
- How to Think Like a Computer Scientist (Python)
- A Byte of Python
to Think Like a Computer Scientist, Interactive Edition.
This book has video lectures and it has editors where you can write, run, and test code
- Python Practice Book
- Welcome to Python for you and me