Introduction

CS 65: Introduction to Computer Science I

About me

Eric Manley

Email: eric.manley@drake.edu

MS Teams: send me a message on MS Teams

Phone: 515-271-2177

Office: Collier-Scripps 327

Website: https://manley.wp.drake.edu/

Course Description

An introduction to the field of computer science is provided emphasizing problem solving using a high-level programming language. Algorithms, basic data representation, language control structures, debugging, and program verification will be discussed. Objects will be introduced, used, and created.

  • problem solving
  • high-level programming language (Python)
  • algorithms
  • data representation
  • control structures
  • debugging
  • verification
  • objects

Computer Science: not just computers or programming - these are tools

Learning Objectives

  • Understand the fundamentals of CS
  • Design, document, develop, test, and debug algorithms in the Python programming language
  • Recognize common data structures and how to use them to efficiently solve problems
  • Solve computational problems by breaking them into manageable parts and synthesizing them into a coherent whole

Textbook

think_python2_medium.jpg

Think Python 2nd Edition by Allen B. Downey (free, open source)

https://greenteapress.com/wp/think-python-2e/

Programming Topics

  • Variables
  • Output
  • Expressions and Operators
  • Comments
  • Types and Type Conversion
  • Input
  • Calling Built-in Functions and Using Modules
  • Conditional Statements
  • Lists
  • Looping Statements (while and for loops)
  • Working with Files, including CSV and JSON file formats
  • Function Definitions, Arguments, and Return Values
  • Scope
  • String Processing
  • Tuples
  • Dictionaries
  • Introduction to Classes and Objects
  • Graphical User Interfaces

Grading

Graded item Weight in Final Grade
Programming Labs 50%
Content Quizzes 30%
Final Project 20%
Course grade % Letter Grade
$92.0 - 100.0$ A
$90.0 - 91.9$ A-
$88.0 - 89.9$ B+
$82.0 - 87.9$ B
$80.0 - 81.9$ B-
$78.0- 79.9$ C+
$72.0 - 77.9$ C
$70.0 - 71.9$ C-
$60.0 - 69.9$ D
$0.0 - 60.0$ F

Programming Labs

  • Short programming assignments
  • A few exercises with each lecture/topic
  • Practice programming concepts
  • Checks that you are becoming proficient with algorithmic problem solving as well as Python programming constructs
  • Start in class, finish outside of class

Programming lab challenge exercises

  • Labs culminate in challenge exercise that you turn in for credit

    • 4 points: full credit (passes automated tests, uses programming concepts as directed)
    • 3 points: significant progress on challenge exercise
    • 2 points: significant progress on non-challenge exercises (turn in whatever you have)
    • 1 point: at least something is attempted
  • Submit using a tool called codePost - more on that later

Collaboration on labs

  • You can work with other students - both actively engaged in problem solving
  • may not copy code
  • Everyone writes up and submits individually, say who you worked with in comments of code

Content Quizzes

  • Blackboard
  • Mulitple choice, fill-in-the blank, short answer, etc.
  • Open book, note, etc.
  • Not timed, you'll have a day or two to complete
  • Checks that you're keeping up with topics covered by video lectures and readings
  • Individual - no collaborating

tentative quiz schedule

  • Quiz 1: Friday, September 17th
  • Quiz 2: Friday, October 8th
  • Quiz 3: Friday, October 29th
  • Quiz 4: Friday, November 19th
  • Quiz 5: Friday, December 10th

They may not all be worth the same amount

Final Project

  • Creative project
  • Integrate many concepts - show that you know how to put them all together
  • Show you can break something big into smaller pieces
  • Individual
  • Due Tuesday, December 14th (finals week)

We will not meet during finals week

Tutoring Lab

There are tutors for this course - you are encouraged to use them!

https://www.drake.edu/access-success/tutoringpeerassistance/

Office Hours

Tentative schedule

  • MWF 12:45-1:45pm
  • MW 3:30-4:30pm

Drop-in

Reserve a time

Remote Work

  • I'll communicate if we need to switch to online-only whether temporary or permanent
  • If you need to work remotely, just stay caught up on Blackboard
    • video lectures from Summer 2021 are in the Panopto tool on Blackboard
    • I may add videos from the in-person course, but they probably won't be as good
  • Need extensions? Ask me
  • Need to change to remote for a longer time? Please communicate with me about it

Disability Accomodation

Coordinate them with Student Disability Services

  • Michelle Laughlin
  • michelle.laughlin@drake.edu
  • (515)271-1835

Collaboration Policy and Academic Integrity

You may work together on labs

You may not work together on projects and quizzes

When working together, say who you worked with in the code comments

When taking code from somewhere on the Internet, cite it in your comments and provide a link

May not look at code from previous students in the course

May not search the Internet for solutions

First violation: 0 on that thing

Second violation: F for the course

Let's talk about the course Blackboard page

Before you come to class next time...

Download and install Thonny: https://thonny.org/

It's an Integrated Development Environment for beginners - a tool for writing and running your code

With the rest of our time today

You can write Python code in an interactive mode right in your browser: https://www.python.org/shell/

Try running the following lines

In [ ]:
print("Hello, world!")
In [ ]:
2+3
In [ ]:
x = 5
In [ ]:
print(x)
In [ ]:
y = "hello"
In [ ]:
print(y)
In [ ]:
minutes_per_day = 60*24
In [ ]:
print("The number of minutes in a day is",minutes_per_day)

Exercise: Calculate and print the number of seconds in a year.