Computer Science  — Theory and Practice

Chandler Staggs

by Chandler Staggs

I am the TA for the Computer Science course. While the teacher, Bryan Knowles, guides the students’ learning during the day with thorough coverage of the current theory and knowledge in computer science, in the evening study halls, I introduce them to many of the applied aspects of programming, the tool through which the campers can implement their own logic. The primary programming language they are using is Python 3, which is a good introductory language with lots of tools to build relatively complex applications quickly.

The first week largely consisted of establishing the fundamentals of any programming language and understanding a new, perhaps foreign, operating system. We initiated study hall on our first evening by becoming familiar with how to interact with the Linux operating system. Students learned how to navigate and properly manipulate files and folders within the terminal and also how the OS folder hierarchy is structured from top to bottom. Their second evening consisted of learning the syntax and structure of some Python statements, the native data types that exist within the language (strings, integers, floating point numbers, and booleans), some of the operations they can perform on those data types (addition, multiplication, string slicing, etc.), and how to create variables via assignment statements. The following evening they moved on to for-loops, how to use iterables to loop through objects such as strings, and using range to loop a specified number of times. During the subsequent study halls, they learned if statements, while loops, and if-elseif-else statements.

In the second week of camp, the students are extending a game engine that Bryan built specifically for this course. They can add new physics to the engine, create new sprites/graphics, or even programmatically generate music. They can also use the tools and concepts they’ve been learning to add new, more complex features to the game engine. At study hall they’ll continue to learn new programming tools and techniques such as how to create their own functions and object-oriented programming. Then they’ll be able to use this knowledge on their game engine and in case studies during the day. We are striving to give the campers autonomy in whatever avenues they pursue during the course. They are wonderful students who are very motivated to learn and help each other learn every day.