next up previous
Next: About this document ...

Digital Sciences DSCI 15310 Computational Thinking and Programming
Section 001
Call Number 13261
COURSE SYLLABUS
Fall 2014
Michael Rothstein
Kent State University
College of A&S, Dept of Computer Science
Phone 330-672-9065
Email: rothstei@cs.kent.edu
Delivery: 100% Web-based, Asynchronous.
Dates: August 25 to December 14, 2014 (Including finals week)
Course Description
This course is an introduction to Programming, Problem Solving and Computational Thinking, helpful to many people in many disciplines. Originally planned for the Digital Sciences program, it has become one of the alternatives for people who want to learn how to program. For many students, it satisfies programmatic requirements; for others, it can be a choice elective.
Course Organization
This course is 100% online. Materials will be delivered through Blackboard Learn (https://learn.kent.edu). You will be reading the textbook, listening to lectures,doing exercises and submitting them through either a special web-site or Blackboard. There will also be homework which will be submitted in the same manner.

Blackboard Discussion Forums will be available for your convenience, or you can submit questions via email.

The course is divided into fifteen units, all of them doable in a week. The first one is introductory, the remaining fourteen are based on the first fourteen chapters of the textbook.

Instructor:
Michael Rothstein, office 268 MSB, phone 330-672-9065.
Email address:
rothstei at cs.kent.edu orm rothste at kent.edu ; please do not send mail to both at once; I'll simply get it twice and think it is spam! (Substitute @ for `` at '').

Best way to reach me is through email or during my office hours. I recommend you email me directly; you can also use Blackboard email, since that reaches me directly also. I will try to answer email within 24 hours, but I cannot make any promises; please do not count on an instant response; I may be otherwise occupied.

Instructor's Web address:
http://www.cs.kent.edu/~rothstei This website
will contain a copy of this syllabus.
Please Note:
The syllabus may be changed during the semester if necessary: changes will be announced; they will also show up on Blackboard and the instructor's website.
Office Hours:

Monday, Wednesday 12:00-2:00 (often also 3:30-5:00 PM)

Also, you can always send email with questions and/or to set up an appointment. I try to answer email within 24 hours, with priority given to cs email. Email use is to be preferred over voice-mail, which will not be checked as often.

Course Goals:
There are several goals to this course:
  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, develop and test simple algorithms.
  4. Learn a subset of a certain programming language called Python. This subset includes:
    1. loops
    2. if then-else and branching
    3. strings, lists and tuples
    4. functions, procedures and their use for top-down design.
    5. files
    6. introduction to classes
This course will require a lot of extra work; just like a language is only learned with practice, a programming language and programming itself, can only be learned with lots of practice. A course similar to this has earned a reputation as a tough course because of the time required and the high fail rate. I recommend you devote at least about 10 to 12 hours of weekly work to this course. Of course, if you get behind, these hours will add up, to the point where there will not be enough hours! (For example, if you are carrying 15 hours, that would mean that you need about 48 hours a week of study; if you goof off a couple of weeks, that will add up to a staggering 72 hours!)
Textbook:
Downey, Allen B. Think Python: How to Think Like a Computer Scientist Green Tea Press, 2010. This book is available at its website http://www.greenteapress.com/thinkpython/thinkpython.html
Other useful resources:
There are several resources on campus that will enable you to have more success in this course:
  1. For issues related to system software or software downloaded from the University Website, please contact the University Helpdesk at (330)-672-HELP (330-672-4357) or at their website: http://support.kent.edu; they are there to help you.
  2. For help with the course, there is help in the form of tutors from the Computer Science Department and from the College. However, your instructor will be more than happy to help you through any difficulties you may have with the course. In particular, the discussion forums and office hours are there for that purpose. Also, if there is enough demand, the Academic Success Center will make tutors available.
  3. For help with Blackboard, there is a collection of PDF files you can look at http://www.kent.edu/is/resources/elearning/student.cfm
  4. Finally, if you need technical help with your computer, the kindly folks at the TechSpot in the Tri-Towers Rotunda, 330-672-TECH (8324) x 2 can help you. You can usually just walk in.

There are also many references on Python you may want to look into if you need help, there is nobody around to help you and you are desperate:

  1. The main source of information about Python is the Python website itself: http://www.python.org/ We will be going there to download Python, also, but, for information, we can click on DOCUMENTATION where the three following sites are located
  2. There is a tutorial on Python at http://docs.python.org/2/tutorial/ although topics are covered in a different order than here, it might help, specially at the beginning.
  3. In case of doubt, you can always check the reference, at
    http://docs.python.org/2/reference/
  4. We will be covering functions, and Python comes with many; they are all described in http://docs.python.org/2/library/
  5. There is also a lot of information at the beginners guide wiki:
    http://wiki.python.org/moin/BeginnersGuide. It includes instructions for downloading Python; just remember to download Python 2 (TWO); we will not be using Python 3
  6. There is a big, possibly useful, collection of Python Tutorials at
    http://www.awaretek.com/tutorials.html.
  7. Last, and probably most, Professor Eneritus Steve DiFranco has been so kind as to restore his excellent Python course website for us. The address is at: http://www.difranco.net/compsci/Python/index.htm It includes lecture notes, example programs, a vocabulary list and (another) link to the Python website. Thanks Steve! Aside from its excellence, I included this website because it closely mirrors this course.

Other necessary materials:
Students new to Kent State University should review Information Service's Technology Viewbook. A personal computer with Internet access is required:
  1. A DSL or cable connection to the Internet; dial-up is not sufficient.
  2. Your desktop/laptop should have at least a 2 GHz processor and 2 GB of RAM.
You should have one of the following operating systems and additional software installed on your computer:
  1. One of Windows 7 (or better), or Mac OS X 10.6 or 10.7 or Linux 2.6.32 (or better).
  2. An office suite; Microsoft Office, Open Office or Libre Office. The two latter options are available as part of the open software movement.
  3. An Antivirus; For Windows OS, Microsoft Security Essentials, for the Mac OS X, Sophos; for Linux, no antivirus is necessary.
  4. You will need a PYTHON interpreter. It is freely available. There are two versions; there is a version 3.(something or other) and there is version 2.7.8. You may have an older version in your computer. The version we will be using is 2.7.8 or earlier; do not touch Python 3! As said above, the current version is 2.7.8, but most things are the same; PYTHON 2.7.8 just has more features than previous versions. For Windows users, you will need to download the whole thing from
    http://www.python.org/download/. (use one of the links in the second list; whichever applies to your computer). Download the appropriate package and follow the instructions. It is strongly recommended you download this as soon as possible: you will get the Python interpreter, a program that allows you to write Python programs and test them (an editor called Idle after actor Eric Idle); this is called a ``Software Development Environment'', and some references and tutorials.

    For people using MACs and Linux Computers, you already have Python running in your computer! Python is so useful that many people have incorporated it into the operating system and used it to write programs for it. You may even have Idle (just open a console box and type ``idle'' (without the quotations) and see what happens. In the worst case, you might want to download the whole thing also. Note that the version of Python available on your system might not be the latest.

  5. If you are trying to access campus information from outside campus, you will need the campus VPN; you can download that from the University Helpdesk http://support.kent.edu. Contact the Helpdesk if you need help with this item.
Subject and Units Calendar
As mentioned before, this course is broken up into 15 units, the first has some introductory material, the others correspond to a chapter in the book. Not all of the material in each chapter will be covered, in particular, we will only cover a few examples. Also, we will only cover until chapter 14.

The table of subjects and units follows:
Week of Unit Source Material
Aug 25 0 Syllabus and Videos Syllabus; Installing Python. Program 1 due
Sep 2 1 Chapter 1 Introduction to Programming
Sep 8 2 Chapter 2 Variables, expressions and statements.
Sep 15 3 Chapter 3 Functions. Program 2 due
Sep 22 4 Chapter 4 Computational Thinking: Interface Design. Midterm I
Sep 29 5 Chapter 5 Conditionals, recursion.
Oct 6 6 Chapter 6 Functions that return values
Oct 13 7 Chapter 7 Iteration. (Loops). Program 3 due.
Oct 20 8 Chapter 8 Strings.
Oct 27 9 Chapter 9 Playing games with words. Midterm 2.
Nov 3 10 Chapter 10 Lists. Program 4 due.
Nov 10 11 Chapter 11 Dictionaries.
Apr 17 12 Chapter 12 Tuples. Program 5 due.
Nov 24 13 Chapter 13 Computational Thinking: choosing data structures
Dec 1 14 Chapter 14 Files. Final due date for all programs.
Dec 8 Final

First lesson in this course: we start numbering at 0, not 1! That is why the units are numbered from 0 to 14.

University Prerequisite:
Technically, there is no prerequisite; however, some familiarity with reading and writing algebraic formulas will be useful.
Other Prerequisites:
You need to be able to use a computer, to use the web, to download programs and use them. You will not be able to progress in the course without these skills.
Work policy
Each unit has some graded work assigned to it; your grade for that work will show up on Blackboard soon after you complete it; in the interest of minimizing attrition, I will not penalize late work (distance learning is hard enough as it is). Do not take this as a get out of jail card! If you get behind, it will be harder for you to catch up, and you will start to get nagged from all kinds of quarters, so try to stay on time!. I want you to succeed and am bending over backwards for you to do so, but you have to work hard. Usual effort required is around 10-12 hours/week.
The 30 minute rule
If you have difficulty with a concept, mull it over; try to listen to the lecture again; if after thirty minutes you are still having difficulties, please contact the instructor (email or in person). Please do not expect an immediate answer.
Communication Policy
In order to facilitate communication among us, please adhere to the following guidelines:
  1. Course questions and concerns of a personal nature should be emailed from your kent.edu email address or, better yet, handled over the phone or in person. Do not submit any personal information to the discussion boards.
  2. Though cs.kent.edu email will be checked at least once daily and kent.edu email will be checked weekly, please do not expect immediate answers; some questions do require research.
  3. Discussion boards will be checked once per day during the week and once during the week-end.
  4. ``30 minute rule'' If you encounter a problem with the technology, give yourself 30 minutes to try to resolve on your own; if you cannot, you can post it on the discussion board; other people may already have encountered and solved the issue. You may also contact the KSU helpdesk 24/7. Or, you may contact the instructor; however, never expect an immediate answer.
  5. When posting or sending email about technological issues, please remember that a lot of information can be gained from seeing the problem. With that in mind, please:
    1. Make your subject line as descriptive as possible: it does not hurt to put in the name/number of the course and a short description of the issue.
    2. Try to describe as best as you can, what you were doing when the problem happened; if you can make it happen again, describe how. If you get an error message, include the exact wording of the message (if possible, cut-and-paste it).
    3. If you can, include a screenshot(s) showing the problem.
On online conduct, communications and (N)etiquette:
Online courses
present a special challenge, due to the way communication is presented and the lack of physical presence: the following points will help smooth the communication between us all:
  1. Please check your KSU email at least every other day.
  2. When in a discussion board, please read the entire sequence of posts before commenting yourself, to avoid repeating other people's comments, or answering questions that have already been answered.
  3. Be as professional and matter of fact as possible: avoid language that may come across as strong, offensive or abusive; also avoid humor or sarcasm, it can be misinterpreted.
  4. An online classroom is still a classroom: even though the class is online, appropriate behavior is still mandatory; the University has strict rules about disruptive behavior. Respect for your classmates and your instructor is more important than ever.
  5. There are some conventions in online communication: among them: avoid the use of all capitals: it appears as shouting: an emphasis effect can be achieved if needed by using underline characters _like_this_. Emoticons ( ``smileys'' ) can also be used, but use them sparingly.
  6. Be considerate of other people's privacy; do not give out other people's information without their explicit permission.
  7. Do not distribute inappropriate material: no jokes, chain letters, virus warnings, etc. to classmates or other University personnel. Sharing pornography is strictly forbidden and may be viewed as sexual abuse.
  8. Keep attachments small; if it is necessary to send pictures over email, change the size to 250KB or less.
  9. Do not post information of a personal nature, or information that may be embarrassing to yourself or to others.
Note: The instructor reserves the right to remove posts that are not collegial in nature and/or do not meet the Online Conduct and Etiquette guidelines listed above.
Online Attendance policy:
Online courses are conducted on the premise that regular attendance requires students to log into the Bb Learn learning management system (LMS). Attendance is measured both by virtual presence in the online course and student interaction with course learning materials and assignments. Students are expected to check e-mail and to log into the system multiple times (at least every other day) during the week.

All actions by students in the Bb Learn LMS can be tracked. At any time during the course, an instructor may generate a report that indicates when and how long individual students have been logged into the LMS, or engaged with course materials or course tools.

Students who anticipate an absence from the online course due to technical or medical reasons should consult with the instructor individually. An absence due to illness or injury requires verification from a medical professional and should be presented to the instructor.

Grading:
Your grade will be based on periodic exercises, quiz grades, two midterms, one final, and assorted programming exercises assigned as homework. The weights are:
Programming homework 30%
Weekly Exercises and quizzes (the total) 20%
Midterm 1 (Last full week of September) 15%
Midterm 2 (Last week of October) 15%
Final (Finals Week) 20%

All quizzes and exams will be comprehensive. This includes the final.

Grading scale:
I will assign number grades during the session and only convert them to letter grades when I turn them in at the end of the session. No decision can be made regarding a conversion table until the very last minute due to such imponderables as test difficulty, class participation, etc. which will influence the grade. However, I guarantee the following, worst case, table:

97-100 will convert into an A
94-96 will convert into at least an A-
91-93 will convert into at least a B+
88-90 will convert into at least a B
85-87 will convert into at least a B-
82-84 will convert into at least a C+
79-81 will convert into at least a C
76-78 will convert into at least a C-
73-75 will convert into at least a D+
66-72 will convert into at least a D

University Policies
Students are required to be aware of and follow all general and academic policies established by Kent State University. A list of the general academic policies is listed on the online version of the Kent State University Catalog . Specific policies related to the successful completion of this online course can be located and reviewed in your Blackboard Learn course. University policies are located in the Syllabus, Course Schedule and University Policies folder contained within the START HERE folder in your Blackboard Learn course.
Special accommodations for Students with Disabilities:
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://www.kent.edu/sas for more information on registration procedures).

Blackboard Learn accessibility statement:
http://blackboard.com/Platforms/Learn/Resources/Accessibility/WebCT-Accessibility.aspx

Registration Requirement:
University policy requires all students to be officially registered in each class they are attending, by the deadline published for the course. The official registration deadline for this course is Sep 7, 2014. Students who are not officially registered for a course by published deadlines should not be attending classes and will not receive credit or a grade for the course. Each student must confirm enrollment by checking his/her class schedule (using Student Tools in FlashFast) prior to the deadline indicated. Registration errors must be corrected prior to the deadline.

The last withdrawal date for this course is November 2, 2014.

On cheating, plagiarism and other unethical behavior:
You are encouraged to discuss class problems with other students but required to work independently of anybody else except the instructors and/or tutor, unless otherwise indicated. Copying other people's work, allowing your work to be copied (even inadvertently!) and plagiarizing work will not be tolerated and will be dealt with according to University regulations. For more information, see the University policy statement on cheating

Notes:

  1. I have the option of penalizing cheating in this course with an ``F'' in the course.
  2. University regulations require me to notify Student Conduct in case of violations.
  3. Cooperation is just as bad as the deed itself: so, deciding which of two is the original is a non-issue: both are equally guilty.




next up previous
Next: About this document ...
Michael Rothstein 2014-08-24