- 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:
- Learn a form of reasoning, or problem solving, called Computational
Thinking.
- Learn what a computer can do and the primitive operations it can
perform.
- Learn what an algorithm is and learn to design, develop and test simple
algorithms.
- Learn a subset of a certain programming language called Python.
This subset includes:
- loops
- if then-else and branching
- strings, lists and tuples
- functions, procedures and their use for top-down design.
- files
- 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:
- 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.
- 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.
- For help with Blackboard, there is a collection of PDF files you can
look at
http://www.kent.edu/is/resources/elearning/student.cfm
- 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:
- 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
- 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.
- In case of doubt, you can always check the reference, at
http://docs.python.org/2/reference/
- We will be covering functions, and Python comes with many; they are all
described in
http://docs.python.org/2/library/
- 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
- There is a big, possibly useful, collection of Python Tutorials at
http://www.awaretek.com/tutorials.html.
- 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:
- A DSL or cable connection to the Internet; dial-up is not sufficient.
- 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:
- One of Windows 7 (or better), or Mac OS X 10.6 or 10.7 or Linux 2.6.32 (or
better).
- An office suite; Microsoft Office,
Open Office
or
Libre Office. The two latter options are available as part
of the open software movement.
- An Antivirus;
For Windows OS, Microsoft Security Essentials,
for the Mac OS X, Sophos;
for Linux, no antivirus is necessary.
- 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.
- 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:
- 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.
- 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.
- Discussion boards will be checked once per day during the week and once during
the week-end.
- ``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.
- 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:
- 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.
- 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).
- 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:
- Please check your KSU email at least every other day.
- 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.
- 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.
- 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.
- 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.
- Be considerate of other people's privacy; do not give out other people's
information without their explicit permission.
- 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.
- Keep attachments small; if it is necessary to send pictures over email, change
the size to 250KB or less.
- 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:
- I have the option of penalizing cheating in this course with an ``F'' in the course.
- University regulations require me to notify Student Conduct in case of violations.
- 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.