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.
There are tutors available in the ACRC in Batmale 301. They can help you with your homework, too.
CRN 31842: Section 003: Tuesdays and Thursdays 9:10 - 11:00am in Batmale 413 (Ocean/Phelan campus)
Class will begin promptly 9:10. There will be a ten-minute break around 10:00.
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 C++ 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 17
- Last day to add a class: February 3
- Last day to drop a class without it appearing on transcript: February 9
- Test #1: Thursday, February 16 covering Chapters 1 - 3 (Introduction to Computers and
Programming in C++, as well as Keyboard Input and Mathematical Expressions, and Formatted and File Input/Output)
- Test #2: Thursday, March 15 covering Chapters 4 and 5 (If-Statements and other Conditional Statements, and Looping)
- Spring Break - no class: March 23 - 30 (campus closed)
- Last day to drop a class: April 19
- Test #3: Thursday, April 19 covering the rest of Chapter 5, and Chapter 6 (Loops and Functions)
- Last regular class: Thursday, May 17.
- Final Exam: Tuesday, May 22 from 8-10am covering all of the above plus Arrays (Chapter
7 and parts of Chapter 8)
- Final grades available on Web4 starting June 7, on Insight starting June 4 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
All your homework can be done using the City College Linux 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 Info" handout.
Some students prefer to use a C++ compiler with an Integrated Development Environment (IDE), such as
Eclipse,
Bloodshed Dev C++ or
OpenWatcom. I encourage you to try these out, and I'll demonstrate
Eclipse in class, but be aware that with these and other compilers, you are responsible for
learning to use it and dealing with compatibility issues.
I have put together a page of links to free or low-cost software you might find useful 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. You
can also get a hard copy at the ACRC or from me. 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 110A homepage