The Beginning
Thomas J. Kennedy
Welcome to CS 263 - Python for Programmers.
This course is intended as an introduction to Python for students already familiar another language (with an emphasis on C++ or Java). The overall focus of this course is to prepare to teach you how to apply your existing knowledge to write Pythonic code.
If you would prefer to read a written lecture… scroll past the video. The written lecture covers the same material.
1 Tools of the Trade
In this course we will use many tools, including:
Tool | Assignments | Lecture | Recordings |
---|---|---|---|
Vim | Hopefully | ✔ | ✔ |
Git | Hopefully | ✔ | ✔ |
Unit Testing / TDD | ✔ | ✔ | ✔ |
Pydoc | ✔ | ✔ | ✔ |
Tox | ✔ | ✔ | ✔ |
Pycodestyle / Pylint | ✔ | ✔ | ✔ |
PlantUML | Maybe | ✔ | ✔ |
SDEdit | Maybe | ✔ | ✔ |
A few tools will be used heavily for office hours and questions…
Tool | Assignments | Lecture | Recordings |
---|---|---|---|
Zoom (Office Hours) | ✔ | ||
✔ | ✔ | ✔ | |
Questions | ✔ | ✔ | ✔ |
Yes… I do realize that I have listed questions as a tool for answering questions. As much as I would like to make a joke about recursion… This is actually an instance of the Socratic Method.
2 Lecture Examples
Most lectures will be based on the Review (recorded lecture) Examples. If you are curious… take a look at the commit history on GitHub. The example code is not stagnant. It is updated every semester.
3 Questions…
-
Do I need to know all the tools listed in Tools of the Trade?
No. you do not need to know all the tools.
-
Why do you use Vim?
The short answer is that… Vim works. I can write code quickly, compile and run code, and switch between languages. Most importantly, I can do everything completely from the keyboard (without the mouse).
-
What is your favorite language?
It is currently a tie between Python and Rust… although it is currently Python… at least for today.
-
Can I ask you about a topic not covered in lecture?
Yes.
-
Who is Raymond Hettinger?
Raymond Hettinger is one of the Python core developers. He is known for his amazing Python talks/lectures.
4 Beginning of the Semester Concerns
You will hear me discuss and reference topics from various courses, including:
- CS 330 - Object Oriented Design & Programming
- CS 361 - Data Structures & Algorithms
- CS 381 - Discrete Structures
- CS 417 - Computational Methods & Software
Every semester a few students end up terrified that they have missed a required prerequisite course. Before you start second guessing yourself… take a look at the prerequisites section of the syllabus. If a course is not listed as a prerequisite… you are not expected to have completed it.
Why mention other courses?
Computer Science is a broad field. There are many connections between topics and concepts. One of the biggest mistakes anyone can make (especially students and teachers) is to treat a course as existing in a vacuum. Remember two things:
-
One of our goals is to learn how to see these connections and use them to solidify understanding in this course and other courses.
-
I enjoy Computer Science (including this course) and have a penchant to get carried away.