CSC 1500
Computer Science I
A required course in the CS or CIS major in the FSC BS program
Spring 2014 -- 3 credit hours

CSC1500-019:30PM-10:45PMTues, Thurs: Jan 14-May 8 Edgerley 202
CSC1500-029:30PM-10:45PMWed, Fri: Jan 15-May 7 Edgerley 202

Contact Information

Instructor:Stephen Taylor
Office: Edgerly 312A and occasionally Edgerly 101
Office hours: W: 12:30-3:30 (and by appointment)
Web page:
Office phone: 978-665-3704
Home phone: 508-867-9288

Course Description: (From the catalog) This course introduces Computer Science by using a high-level programming language. Students will be taught to design programs and implement them using object-oriented programming techniques. This course provides a solid background for further studies in Computer Science by preparing students to enroll in the more specialized high- level software courses

To be slightly more concrete, this a beginning course in programming computers. We will primarily use the Python programming language, but the concepts and many of the tools are equally relevant for other languages, and some of the assignments will use the Java language.

Course goals

Course Goals: The overall objective of this course is to introduce students to computer programming methodology. Students must become comfortable designing and coding programs that use various data types, basic arithmetic, method calls, control structures, graphical interfaces and arrays. The programs must also include using different input/output modes, basic error handling and event handling. Students must also learn the basic object oriented programming concepts such as encapsulation, inheritance and polymorphism.

Although we'll introduce only a fraction of the full power of the Python language, by the time you finish the course, you should be able to read and write small programs in the Python language, and you should be able to read small programs written in any of the closely related languages.

We'll spend enough time on Java for you to understand how the concepts we've learned in Python can also apply to other languages.

Course Objectives

Upon successful completion of this course, a student will have demonstrated knowledge of:

Attendance policy

There are two class meetings each week. I expect you to attend them all. Please talk to me if this creates a schedule conflict for you.

This is partly a lab course. You can't do the labs if you aren't in the lab. I don't take attendence, but my grading reflects my expectation of seeing you regularly:

Quizzes and exams are ordinarily due in the period in which they are given, and may not be turned in later, although they may be excused if you have a convincing story, such as your grandmother getting married in Provincetown.

Labs are due on the day on which they are assigned, but not necessarily in class. Anything turned in by midnight is on time, and unless I am actually in my office at midnight, anything I find in the Blackboard dropbox on the following morning is assumed to have been turned in on time.

Papers and programming assignments are similarly due by midnight. Late papers and programs may be accepted after their due date, but I am likely to mark them down for lateness.

Course resources

The textbook for this course is

John Zelle, Python Programming: An Introduction to Computer Science Franklin, Beedle, & Associates

Compared to most CS textbooks, the book is not too expensive new from the bookstore. If you are willing to wait a few days to order it online, you can obtain more cheaply used. I usually buy used books from I also found a text version for download online with Google, but I think it will be worth owning a paper copy.

There are two editions available. There isn't a whole lot of difference between the two editions, and you should be able to use either for the course.

Python Software

The Python language currently exists in two versions, called Python 2.X and Python 3.X. (There are sub-versions 2.3 ... 2.7 ... 3.1, etc. but the subversions with the same first digit are compatible with each other.) The Fitchburg State labs currently have both Python 2.7 and 3.1 available, but Python 3.1 is a later version, and is available by default. The current latest release is Python 3.3. This matters, because the two versions are slightly different. But even at your early level of programming skill, you should be able to cope with the differences.

I am going to mostly use Python 3.X in lecture, and I suggest you download that to your laptap.

The first edition of Zelle uses Python 2.X for all its examples.

The second edition of Zelle uses Python 3.X for all its examples, but the author didn't redesign the examples, and you should be able to convert any python 2.X program to a python 3.X program by making a few simple changes:

You can download either version of Python from


From time to time I will put programs from lectures on the web.

I usually record grades in blackboard.

Reading and Lab Project Schedule:

Final Exam

There is a final exam, and two or three mid-term exams, all of which are in very similar formats, although of course they cover different material.



Tentative grade rubric:

  1. There will be several pop quizes, making up in total 10% of the final grade.
  2. There will be several programming projects, making up 50% of the final grade.
  3. There will be a final exam and two midterms, which will make up 30% of the final grade
  4. The remaining 10% of the grade will be based on class participation and other utterly subjective measures.

Late work

Deadlines are made to be bent, but exceptions create extra work for me. Assignments are due at the beginning of class. Work received after 9:35 PM is late. I may give credit or partial credit for late work, but you should talk to me as soon as you know it will be late. I will always give at least partial credit for partial work, so turning in something incomplete but on time is a sensible strategy.

I do not consider homework which is emailed to me to be turned in on time, no matter when you sent it. Instead use the Blackboard dropbox.

There are no makeup or early exams, but I may excuse an exam for a good story, presented in advance, like your grandmother getting married that day in Provincetown.

Each student is responsible for completing all course requirements and for keeping up with all activities of the course (whether a student is present or not).

Academic Honesty

I expect you to be so interested in your projects and homeworks that you discuss them with everyone, including your mom, your little brother, and other members of the class (who will at least know what they're being sympathetic about.) So I won't be too surprised if several people come up with the same idea, or even the same programming trick. But I want you to do each homework yourself, and I don't want you to share typing, even if you both worked on the problem together, and you can't really tell anymore who came up with what. (Except of course for group projects, for which the group will be designated in advance.) To keep from confusing me, you should mention everyone you talked to and every web site you looked at in your development diary. You can only skip mentioning your little brother, if you think he wasn't any help at all...

I consider it plagiarism to share typing or fail to give credit to other peoples' ideas.

Fitchburg State College has an Academic Dishonesty policy, which can be found in the college catalog. Penalties for academic dishonesty, including submitting work which is not your own, and assisting other students on examinations, can be severe.


If you require course adaptations or accommodation because of a disability or acute medical condition or if you require assistance in the event of an emergency evacuation of the classroom, please see the instructor as soon as possible. Students with disabilities are encouraged to register with the Office of Disability Services on the 3rd floor of the Hammond Building.