CS 113A - Introduction to Perl Programming
Sec 831, CRN 31855
Spring, 2012


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 BookstoreIn addition, each week there are lecture notes that complement the book.  These are available in Insight (see below for more on Insight).    You may find it easier to print out the chapters and read them offline. 

No Prerequisites, but CS 160A is Strongly Recommended: (If you do not already know most of the CS 160A exit skills, then you will not do well in this class.)   Detailed list of CS 160A Exit Skills.  Important note:  Perl is a very flexible scripting language.  For some students, it may be better to learn basic programming techniques through a more structured language like C++.

Schedule: Weekly Quiz or Lab.  For a detailed schedule of reading, assignments, & quizzes, view Class Schedule

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
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.

This online class 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. To help with motivation, I have made a list of some reasons to practice under "Resource Links".    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 is on a web server running Insight (http://insight.ccsf.edu). Insight is our Learning Management System.  It is built using the Moodle Open Source software.   Insight 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. Your Insight & Hills accounts will be automatically made & activated 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 each quiz. The lowest quiz score will be dropped.  Assignments are due just before midnight on the due date.   There will be some extra credit available.   Class Participation means that you make or reply to at least 6 different forum posts during the class (not counting Introductions).    

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 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 become inactive briefly, please contact me to see if we can work something out.

Add/Drop deadlines - You need to login during the first week of class to keep your seat.   IHowever, it is your responsibility to drop the class.  Do not count on me to drop you.     Here are the official Add/Drop deadlines:  Last day to add the class: 2/03.  Last day to drop the class for a refund: 1/31.  Last day to drop the class without a "W": 2/09.   Last day to choose "pass/no pass" grading option:  2/21 (but then the class cannot count towards a certificate).  Last day to drop with a "W":  4/19.

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.