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.
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.
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:
- One year of high school algebra or Mathematics 840 (Elementary Algebra) is advised.
You must be familiar with the concept of functions and how to use them, as well as order of operations.
You’ll find that computer programming requires a similar sort of discipline and reasoning as mathematics.
- Basic familiarity with a computer or CNIT 100 (Introduction to Computers Using PCs) is
advised.
You must be familiar with the basics of how to use a computer for things like browsing the web or using e-
mail. We'll be using UNIX and Linux in this class, so experience with it would be helpful, but you can
learn
it as we go.
Grading Policy:
Your final score will be made up of the following components:
- 25% - Programming Labs (Must be done alone)
- 10% - Practice Problems (Can be done in groups)
- 10% - Test #1
- 15% - Test #2
- 15% - Test #3
- 25% - Final Examination
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.
- First day of class: Tuesday, January 18
- Lunar New Year - no CCSF classes: Thursday February 3
- Last day to add a class: February 5
- Last day to drop a class without it appearing on transcript: February 10
- Test #1: Thursday, February 24 covering Chapters 1 (Introduction) and 2 (Data Types), and the
first part of Chapter 3 (If-Statements)
- Test #2: Thursday, March 24 covering Chapters 3 (Decisions) and 4 (Loops)
- Spring Break - no CCSF classes: March 25 - April 1
- Last day to drop a class: April 21
- Test #3: Thursday, April 28 covering Chapters 5 (Methods) and 6 (Arrays)
- No class: Tuesday, May 17 (Craig out of town)
- Last regular class: Thursday, May 19.
- Final Exam: Tuesday, May 24 from 8-10am in Batmale 413 as usual, or Thursday, May 26 from 1-3pm
in Batmale 411 (you can take it
either time) covering all of the above plus Chapter 7 (Objects and Classes) and
Sections 8.1 - 8.3 (File I/O and Command-Line arguments)
- Final grades available on Web4 starting June 9, on Insight starting June 6 or sooner.
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