Whew! I finally finished chapter 5! This one was a real doozy. Not because the information was hard to understand, but the exercises required more thought and planning than the previous chapters. I had to dig deep to get them done, only to find the last few were GUI-based 😦 Nevertheless, I have reached the end, and I am glad I did. Very useful information in this chapter. Continue reading “Chapter 5: Sequences: Strings, Lists, and Files”
Hello friends! Welcome back. You might be wondering why the title of this post isn’t Chapter 5: Simple String Processing. Well, to be totally honest, string and list manipulation is complicated, and while I had little trouble understanding the concepts and getting through the examples, I am stuck on the exercises. One reason for this is that I haven’t had enough time to sit with them and ponder. I built a new voting app last week for a Classics teacher. And currently, most of my programming time is spent on an educational app that creates websites for students with minimal input. Two days ago, I went to update the Site in the Django admin of the production site, and inadvertently broke the whole thing… Continue reading “A Little PostgreSQL Will Do Ya”
Welcome back! Two weeks ago, I learned about the Accumulator Pattern (and struggled to compute more complex math problems). When I flipped ahead, I was pretty pumped that it was moving away from complex equations. At least for now. I was still hesitant, though, because I had only the most basic of understandings of GUIs. Turns there is a steep learning curve, but Zelle makes it approachable.
In chapter 4, Zelle introduces basic Object Oriented programming and computer graphics through a pared down GUI (graphical user interface). To help, he offers a graphics library that wraps around Tkinter, Python’s built in GUI. Very easy to install and import! The numerous objects and methods, however, require some attention, dedicated studying, and frequent review. (Due to the complexity of built-in GUIs, Zelle does not recommend trying to learn a proper GUI just yet.)
Continue reading “Chapter 4: Objects and Graphics”
Welcome back! Last week I learned how to apply the IPO pattern and use
range() to iterate through loops. This week, I faced the dreaded
math library. Zelle suggests using the
math library as often as possible to take advantage of code snippets and shortcuts that already exist. I also appreciated the discussion of integers and floats. Not gonna lie, though, this chapter was a real bear.
I am not a person who hates math, but I also haven’t needed to use geometry or trigonometry in a long time. The rust was quite evident as I worked through this chapter. I managed to get through a good number of the exercises, but I’ll need a math review to get to them all. I was pretty happy with what I could do, though. And, I was excited about the Accumulator Pattern! Continue reading “Chapter 3: Computing with Numbers”
Welcome back! Last week I tackled Chapter 1: Computers and Programs. Chapter two is all about creating simple programs. Zelle discusses a systematic development process that I found very useful. There is also an explanation of IPO. No, not that IPO, but rather the “Input, Process, Output” pattern. The rest of the chapter contains some basic rules on identifiers and expressions in Python as well as a brief intro to counted loops using
Did you know that there was a process for creating programs? I didn’t. Well, intuitively I knew there was a series of steps, but I didn’t quite know what they all were, and I certainly hadn’t been following them! Continue reading “Chapter 2: Writing Simple Programs”
In this introductory chapter, students are introduced to the concepts of computer science. Zelle begins by asking students to consider what a computer is, what computer programs do, and what computer science encompasses.
Most people can probably cobble together a viable definition of “computer.” I like the definition Zelle provides, though. “A machine that stores and manipulates information under the control of a changeable program.” It’s the changeable program that gives computers their power, and that is a good thing to keep in mind when frustration takes over. As the programmer, you have the power to bend a computer to your will. You just need to give it the write instructions, i.e. write the right program.
Each chapter ends with exercises to help solidify the knowledge acquired in the chapter. There are review questions and programming questions. I like this model a lot. The review questions include True/False, Multiple Choice, and Discussion. The programming questions are, well, programming questions. I’ll try to include a few answers to both types. Continue reading “Chapter 1: Computers and Programs”
One of the things I have discovered in my short career is the importance of a solid foundation of knowledge. Just like any field. While I’ve learned a lot in a short time, it’s all been trial by fire. To boost my base (bass?), I’ve decided to work through John Zelle’s Python Programming: An Introduction to Computer Science.
While I have critical thinking skills from a career as an archaeologist and teacher, thinking like a computer is a different beast. I’m hoping this will help me get into the right frame of mind so I can improve my understanding of concepts and implementation of logic.