CS 113A - Introduction to Perl Programming

Instructor: Peter Wood
Phone: 239-3229
Office: Science Hall Room 13B
Hours: by appointment (email is the best way to reach me)
Email: pwood@ccsf.edu  (please put "CS113A" & your name in the Subject line)
Web Page: http://fog.ccsf.edu/~pwood

Required Text:  Perl by Example Fourth Edition; Author: Ellie Quigley; Publisher: Prentice Hall.   ISBN: 0132381826.   You may buy the book at any of the online booksellers as well as in-person at the CCSF Bookstore:  http://www.ccsf.edu/Services/Bookstore/
In addition there are additional  readings for this course available online under the link 'Course Content' from your WebCT CS 113A Home Page.  You may find it easier to print out the chapters and read them offline using the  line 'Compile/Print'.

No Prerequisites, but the following is Recommended: CS160A (Intro to Unix/Linux).    Here is a more detailed list of CS 160A Exit Skills.

Course Objectives

Upon successful completion of this course, a student will be able to:

  1. Describe the main features of the Perl programming language
  2. Describe Perl script setup and execution
  3. Write Perl scripts using standard input and output
  4. Compare and contrast scalar variables, lists and hashes
  5. Demonstrate the use of control structures, blocks and compound statements
  6. Demonstrate the use of user-defined filehandles and command line arguments
  7. Analyze the appropriate use of subroutines
  8. Write CGI programs using Perl
  9. Demonstrate the use of regular expessions
Schedule
     For a detailed schedule of reading, assignments, & quizzes, see the Class Calendar

Methodology

The course is offered Completely Online. Most of your time will be spent reading, practicing Perl through exercises, and writing Perl scripts to solve problems as part of assignments. The online readings (organized by weeks) provide a structured, largely self-paced, opportunity for you to systematically study the Perl programming language. As you practice your Perl knowledge, sometimes you will get stuck. At that point I (or your fellow students) will help you. By the end of the class, I expect that you will be able to solve common data processing problems using Perl with more confidence.

Weekly Effort

My assumption is that everyone who is motivated and adequately prepared can succeed in this class. We will not be meeting face-to-face each week, but it does take time to do the reading, practices, quizzes and complete the assignments. The amount of time needed varies widely between students and topics. How much is this? One guideline is 3 - 4 hours/week outside of class for every hour in class. A 3 unit,  semester long class meets 3 hours per week. So in order to have a good chance for success, I suggest you plan for spending 9 to 12 hours per week for this class.

With the exception of the orientation, this online section has no required face-to-face meetings. This format is especially valuable for those who cannot come to campus. The disadvantage is that you do not see the other students or the instructor and need more self-discipline to complete the work. You can test your readiness for an online class at the Distance Education Department's website: http://www.ccsf.edu/online

Accounts

Each student in the class will get two computer accounts. One will be on a web server running Insight (http://insight.ccsf.edu). WebCT is special course management software. It is where you will find the weekly readings, assignments, discussions, quizzes and grades. The other account will be a Unix account on the CCSF student server (hills.ccsf.edu). This is where you will be able to practice Perl. (You can also use your own machine, but the assignment must also run on the hills Unix server.) Assignments will be submitted directly to the class website using the Insight Assignment Tool. If you are adding the class, do so as soon as possible. You will have access to your accounts a few days after you add the class.

Grading

This is a skill-building class, so your grade will be based mostly on your completed assignments. There will be regularly scheduled for-credit assignments. I post these on the class Web page, and you turn them in by uploading using the Insight Assignment Tool. Your grade also requires you to post messages to the class discussion forum. This is where you will interact with me and other students to ask and answer questions, the same as if we were in a classroom. In addition there will be several short quizzes and a comprehensive final exam. The quizzes and final will be given online and will be open book.

Course work will be weighted to determine your final course grade as follows:
 
Quizzes - (TOP 7 out of 8 @ 5%) 35%
Assignments (8 @ 6.5%) 52%
Class Participation thru Discussion Forum 3%
Final Examination (see Calendar for dates) 10%
Total 100%

Final Grade

100-90: A 89-80: B 79-70: C 69-50: D Below 50: F

Quiz and Assignment Deadlines

The quizzes and final exam will be open book, but they will be available only for a limited amount of time. You get two chances to take the exam. The lowest quiz score will be dropped. There will be also be for credit assignments that include a variety of hands-on activities. There will be some extra credit available.

Late Assignments & Quizzes

If you cannot finish an assignment on time you can turn it in up to one week late, but it will be penalized 10%. Quizzes cannot be made up, instead I drop your lowest quiz score. This way if you miss a quiz you will not be penalized.  Deadlines will be extended if we have a problem on the CCSF network that prevents you from doing the work. This does not include problems with your home computers.

Attendance

You need to login numerous times each week to the class website. If you do not login during the first week or for any two weeks in a row after that, I may drop you from the class. If you need to miss several weeks in a row due to an emergency, please let me know, so that I can try to help you with your class work. If you decide to drop the course, it is your responsibility to do so by the deadlines. Please do not depend on me to drop you.

Plagiarism

Since this is an online class, it is difficult to determine who has really done an assignment or taken an exam. Mostly I rely on your honesty and integrity, and that you are taking this class in order to improve your own skills. However, if you are tempted to copy someone else’s work, remember that when you copy someone’s assignment you also usually copy their mistakes. If I find plagiarism, then everyone with the same submission will receive no credit for that assignment. If you really want to help a friend with an assignment, then help them learn how to figure it out, instead of giving them the answers or letting them copy your work.

Student conduct must conform to College rules and regulations as outlined in CCSF Catalogue.

Communications

Outside of any face-to-face meetings, we will communicate mostly through a class website, email and a Insight class discussion forums. When you have a question about what the book is saying or about an assignment, post it to the class discussion forum. I will respond to the discussions. That way everyone can see the question and the answer. It will be a lot like asking a question in class. Remember part of your grade is based on posting to the discussion forums. When you have a personal question regarding your grade or other matters, please send it to my regular email address. I will monitor the discussions and read my email Monday through Friday. If you prefer to discuss an issue face-to-face, then we can arrange a time to meet.   We can also use Skype to have a voice conversation (with optional video).  

I am hoping that as you become comfortable with the online only format, more of you will ask questions and contribute to discussions than in a regular class. However, please remember the limitations of online communication, and take the time to re-read your questions or answers before actually posting them. As usual, offensive language or other breaches of CCSF Computer Policy are not acceptable. If you like to talk a lot, please do not talk too often or too long before giving others a chance to respond. If you are a quieter person, please take a chance and ask or answer some questions.