All Courses

Computer Programming: Python

C SCI 411/412

Computer Programming: Python

  • Course ID:C SCI 411/412
  • Semesters:2
  • Department:Computer Science
  • Course Rank:Honors
  • Teachers:George Martin

Description and Objectives

This course broadly explores principles in Computer Science, and how one can use programming to solve problems. Computer Science I Honors will follow the textbook Practical Programming: An Introduction to Computer Science Using Python 3.6, 3rd Edition (Gries, Campbell, Montojo). Programming work will be done using a GitHub Codespace, which students will create at the beginning of the year.

Course Objectives

  • To become a competent problem solver using the Python programming language.
  • To learn general programming algorithms, and in which contexts to use them.

Goals for Student Learning

  • To become a proficient Python programmer.
  • To develop an appropriate imagination for using programming in one’s life.
  • To understand the complexity and breadth of computer systems.
  • To develop organizational, collaborative, and logical skills needed to solve large, complex problems in both computer science and other disciplines.

Textbooks

Introduction to Computer Science Using Python 3.6, 3rd Edition (Gries, Campbell, Montojo)

Course Requirements

  • Practical Programming: An Introduction to Computer Science Using Python 3.6, 3rd Edition (Gries, Campbell, Montojo)
  • Computer
    • Much of the homework (including assigned reading) will require you to write code. Since we will use a cloud-based IDE for the majority of our work, any computer with an internet connection and a modern browser (Chrome is recommended) will work. Computers should not be brought to class.
  • Notebook and pen/pencil
    • It is highly recommended that a notebook is used to take notes. Though much work will be done on a computer (and though notes are also able to be taken on a computer), it is far more beneficial to keep a notebook for both notes in class, and scratch work.
  • Binder/folder
    • There will be some handouts that may be useful to keep as a reference (including this syllabus). Keeping these handouts, as well as assignments, organized will make you a happier person.

Successful Students

Success in this class comes from showing up and doing what’s required. I tend to view programming projects more as a completion grade, so it’s better to turn in something incomplete rather than nothing at all. Programming is often very frustrating, but even more so, very rewarding. This class requires patience to work through a problem, and not run immediately to another student or the internet for an answer.

Additional Resources

1.30.24 – Cars CSV File

2.14.24 – Pokédex Dataset