DSCI 15310:
Computational Thinking and Programming

Instructor: Jason Buffin (@jasonbuffin)

Term: Spring 2016

Email: jbuffin@kent.edu

Office hours: Room and time TBD; By appointment, send email to arrange an appointment.

There is no textbook for this class
On-line notes will be provided.

Class website: https://tackk.com/board/DSCI15310

Course Objectives

  1. Learn a form of reasoning, or problem solving, called Computational Thinking
  2. Learn what a computer can do and the primitive operations it can perform.
  3. Learn what an algorithm is and learn to design simple algorithms.
  4. Learn a subset of a certain programming language called Python. This subset includes: loops; if-then-else; strings; lists and dictionaries; functions, procedures and their use for top-down design; files; introduction to classes.

In-class Activities

Students listen to lectures, and complete periodic exercises/quizzes, engage in discussions. One midterm exam and a final exam are required.

Outside Class Activities

Reading the online notes, and completing assorted programming exercises as homework are required.

Course Description

The course topics will include:


  • An approach to reasoning, or problem solving, called Computational Thinking
  • Algorithms, understanding and designing
  • What a computer can do and the primitive operations it can perform.


  • Fundamental algorithms: Sequential search, find greatest, sorting
  • String algorithms: reverse, search substring
  • Other algorithms: Pattern matching, binary search


  • Variables, objects, assignment, type
  • Control Structures: Sequential execution; Conditional statements; Repetition.
  • Functions: Using functions; Defining functions.
  • Objects, using objects
  • Containers, arrays
  • Strings
  • File I/O
  • Libraries

Midterm Exam

25% of the final grade

A midterm will be given. The midterm will be announced one week in advance.

A make-up test will only be given in the case of an excused absence or a documented, valid emergency. If you anticipate missing a test, see me and we will try to reschedule it.


30% of the final grade

A number of assignments will be given. Details for each assignment and the requirements for it will be given when it is assigned. Assignments are due on the specified day. There will be a deduction of 5% per day (every day) for late assignments. All assignments must be turned in by the Friday before final exam week.

Group Project

10% of the final grade

A final project will be presented during the last class period. Groups will be put together later in the semester and groups will be required to work together on a project.

Quizzes and In-class exercises

5% of final grade

A quiz will be given almost every class. There are no make-ups for missed quizzes. These may be a conceptual question, a programming exercise, or discussion.

The quiz will be over material covered the previous class period and will occur at the beginning of class. If you are present and involved in the class, you should have no trouble with the quizzes.

The quizzes will be graded Correct/Incorrect.

Final exam

30% of the final grade

The final exam is comprehensive and will include conceptual questions and programming exercises.

Grading scale

Number scores are not converted to letter grades until the end of the semester.

93% <= A <= 100%; 90% <= A- < 93%;

87% <= B+ < 90%; 83% <= B < 87%; 80% <= B- < 83%

77% <= C+ < 80%; 73% <= C < 77%; 70% <= C- < 73%

67% <= D+ < 70%; 63% <= D < 67%;

0% <= F < 60%

Plagiarism and academic honesty

Students enrolled in the university, at all its campuses, are to perform their academic work according to standards set by faculty members, departments, schools and colleges of the university; and cheating and plagiarism constitute fraudulent misrepresentation for which no credit can be given and for which appropriate sanctions are warranted and will be applied. For more information: http://www2.kent.edu/academics/resources/plagiarism/

Specifics for this course

All homework and programs must be your own work. Any violation means that the work will not be accepted and a score of 0 will be given.

Students may discuss the programming assignments with each other.

Students may look at each other's code.

Each student must write her/his own program.

Group programming is not permitted.

It is not permitted to copy, in any maner, assignment related material (except material provided by the instructor).

  • You are not permitted to give a file to another student.
  • You are not permitted to receive a file from another student.

You should understand and be able to explain any part of any assignment you turn in.


University policy 3342-3-01.3 requires that students with disabilities be provided reasonable accommodations to ensure their equal access to course content. If you have a documented disability and require accommodations, please contact the instructor at the beginning of the semester to make arrangements for necessary classroom adjustments. Please note, you must first verify your eligibility for these through Student Accessibility Services (contact 330-672-3391 or visit http://www2.kent.edu/sas/index.cfm for more information on registration procedures).


Please turn off phones or any other noise making devices before class begins.

This course will include computer programming. Computer programming is best learned by writing computer programs. You will need to spend time at the computer writing programs.

It is advised that you start work on a programming assignment as soon as  possible after it is given. This will allow you to discover things that aren't clear to you and ask questions about them. It is hard to write a program quickly at the last minute.

The syllabus may be modified during the semester if it is necessary. The changes will be added in bold and pointed out in class. Any changes will be for clarification. The grade calculation, as described above, is fixed.

If you need to leave class early, please inform the instructor before class begins and, if possible, sit near the door.

If you have any problems, including understanding the material that we cover in class or using the computer, please talk to me. I am here to help you learn and it is my goal to help you to pass.