Course Procedures - Craig Persiko's CS 111A class

Course Objectives and Requirements

This course is a first course in computer programming. You are expected to know how to use a computer for basic tasks including e-mail and browsing the world wide web, but no futher background in computers is assumed. The emphasis will be on principals of computer programming, using the computer programming language Java. We will use Java as a tool that enables us to study computer programming, so you will learn many important features of Java. Thus, after completing this course you will be prepared to go on to study other programming languages or continue to study Java.

Learning to write computer programs is a time consuming and sometimes frustrating endeavor. I expect an average student to spend about 8 hours per week outside of class reading and working on programming assignments and other class work. If you don't have the time or dedication for such work, this class may not be for you.


How to reach me:

Web Page: http://fog.ccsf.edu/~cpersiko

Email: cpersiko@ccsf.edu

Office: Batmale 462
    (415) 239-3332

Mailing address:
    Craig Persiko
    Mailbox L245
    50 Phelan Ave.
    San Francisco, CA 94112

Office Hours:
    Tuesdays and Thursdays from 2:15pm - 3:15pm
    (other times by appointment, on phone or in person)

Online System for Homework Submission and Discussions (Insight):

We'll be using Insight (Moodle) for online discussions and homework submission. So all assignment submissions and online discussions will take place within the Insight system. I will show you how to use Insight in class. For more information and to access Insight, see: http://insight.ccsf.edu Please check the the Insight System Requirements to ensure you'll be able to use Insight.

Getting Help

Sharing ideas with each other is one of the best ways for you to learn, so when you have a question or problem, ask your classmates for help. We'll be using Insight (Moodle) for online discussions and homework submission. So you can use the class's Insight discussion board to ask your classmates for help (I will read and respond to discussion board postings too). Please don't post more than a couple lines of Java code to the Insight discussion forums, as other students may copy your work. If you need to show a large part of your code to ask your question, please e-mail your question to me directly. If you are e-mailing me your question, please copy your entire program text and paste it into your message, rather than using an attachment. Also, please make sure to specify exactly what error messages or output your program is producing.

The Linux lab classroom where our class meets (Batmale 413) will be open from 11-12 Tue/Thur, staffed by a work-study student who has taken this class before, and can help you with your homework. There are also tutors available in the ACRC in Batmale 301. They can help you with your homework, too.


Supplies


Attendance Policy

You are expected to attend all classes and be seated for the lecture to begin promptly at ten minutes after the hour. Roll will be taken, but attendance will not be factored into the grade except to raise it in borderline cases. (If your attendance is above 85% and your grade is within 1% of the next letter grade, you will receive the higher letter grade.) Any information that you miss due to nonattendance is solely your responsibility. This may include helpful information for assignments and tests. I may drop you from the class if you miss more than 3 lectures in a row without explanation.

Days:

  • CRN 36497: Section 002: Tuesdays and Thursdays 9:10 - 11:00am in Batmale 413 (Ocean/Phelan campus)
  • CRN 39801: Section 003: Tuesdays and Thursdays 12:10 - 2:00pm in Batmale 413 (Ocean/Phelan campus)

    Class will begin promptly at the time shown above. There will be a ten-minute break mid-way through the class.


    Course Prerequisite Advisories:


    Grading Policy:

    Your final score will be made up of the following components: There will be three tests given in this class, in addition to the final exam. The first two and the assignments graded in time will be the basis for the midterm grade. If you will not be able to take a test when it's scheduled, you must notify me a few days before the test to request a make-up time.

    Midterm and final grades will be assigned on the following percentage scale:

       90% - 100%   A
       80% - 89%     B
       70% - 79%     C
       60% - 69%     D
       0 - 59%         F

    Homework:

    The best way to learn how to program is to do it! Homework will be assigned about once a week, generally alternating between Programming Labs and Practice Problems.

    Programming Labs:
    You must do these assignments by yourself. They will be graded based upon their correctness, clarity, programming style, and efficiency.

    Practice Problems:
    You are encouraged to do these problems in a group of 2-3 people. They will not be graded in detail; you will get credit for turning them in correctly.

    Homework will generally be due on Thursday nights at midnight, but you should try to complete them early, so you can ask questions and get help. You will each encounter problems that require more time than you anticipate to fix -- that's the nature of programming. So think of the homeworks as due Wednesday night. Then you can ask questions in class Thursday if necessary.

    All homework submissions must include 2 major parts: the Java code you wrote (the source file) and some sample input and output showing how your program works. To turn in a practice problem that you worked on in a group, each team member should submit the assignment, listing whom you worked with.

    I will employ a student worker to grade homework assignments for this class. If you have any questions or concerns about this arrangement or a particular grading decision the grader makes, please don't hesitate to tell me. I will be happy to review grading decisions on request.

    Homework Lateness policy:

    Because of the importance of keeping up with the pace of class, late homework will be penalized severely. All homework assignments are due by midnight the night of the due date specified. Late homework will be penalized 5% if it is turned in before I go through the solution in class (usually the following Tuesday after it's due). Starting the day I present the solution, late homework will be penalized 50% You will get no credit for turning in my solution as your own. All homework you turn in must be your own, even after we have gone through a solution in class.

    Semester Schedule


    Cheating

    Cheating of any kind will not be tolerated. It will result in a grade of 0 on the assignment or test in question and can be cause for a failed grade and disciplinary action, including suspension or expulsion. Cheating on Programming Labs means copying code or answers from someone else. Getting help from others is not cheating as long as you're not copying their work or allowing them to copy yours. On the exams, any collaboration or copying constitutes cheating.

    Software and Computer Access

    I encourage you to use Sun's Standard Edition (SE) Java Development Kit: JDK 6 Update 23. The Java SE Development Kit (JDK), which can be downloaded from Oracle from here, free of charge. (Click on "Download JDK" button.) It is already installed on the CCSF HP/UX systems. That means all your homework can be done on your own computer or using the City College UNIX server called "hills". By registering in this class you will automatically be given an account on hills, or if you already had an account, it will be reactivated if necessary. You can access hills from any computer that is connected to the Internet.

    For more information about how to use the CCSF computer systems for your classwork, see my Computer Access and Use Information handout

    Some students prefer to use an Integrated Development Environment (IDE), such as jGrasp or Eclipse. I encourage you to try these out, and I'll demonstrate them in class. They are also installed in the ACRC Computer Lab (Batmale 301).

    I have put together a page of links to free or low-cost software you might find useful (including these IDEs) at http://fog.ccsf.edu/~cpersiko/links.html

    Use of CCSF computers, including remote access, is regulated by the CCSF Computer Usage Policy, which is found in the college catalogue and on the web at http://www.ccsf.edu/Policy/policy.shtml. Do not give passwords and other sensitive information to unauthorized persons. This means you shouldn't tell anyone your personal passwords and you shouldn't give class account passwords to people who aren't in this class.


    Drop Procedures

    Generally it is your responsibility to drop or withdraw from a class by the final deadlines given in your course schedule. Do not ask me to drop you; use the Web4 system, or contact the Office of Admissions and Records to be withdrawn from a class. If you have more than three unexplained consecutive class absences, I may drop you from the class. If your name is on the roll at the end of the semester and you have stopped attending class, you will be assigned a final grade of F. I will not give a late or retroactive drop or withdrawal.


    Go to my CS 111A homepage