Syllabus and Course Procedures - Craig Persiko's Online CS 111C class

Course Objectives and Requirements

This course is a third course in computer programming. You are expected to know the basics of programming in Java, including object oriented topics and arrays. The emphasis of this course is how to measure and improve the efficiency of programs. We will particularly focus on the best ways to organize data within your program, to maximize efficiency, given the program's needs. We will use Java as a tool that enables us to study data structures and algorithms, but the terms and principles you learn here will be applicable to any programming language and environment.

Learning to write computer programs is a time consuming and sometimes frustrating endeavor. I expect an average student to spend about 10 hours per week in Insight, reading the textbook, 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.


Online Course Specifics (Insight):

This course uses Insight to host online content. So all class notes, discussions, assignments, etc. will take place within the Insight system. 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.

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)

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, 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 homework solutions to the Insight discussion forums, as other students may copy your work. If you need to show a large part of your code or answers 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. In addition, you're welcome to call or stop by my office.

There are tutors available in the ACRC in Batmale 301. They can help you with your homework, too.


Supplies


Attendance Policy

We have one mandatory in-person sessions during the semester: the final exam. E-mail me in advance if you are unable to take the exam when scheduled. You also must access the Insight course regularly. Please try to log into Insight every day or two, to participate in discussions and follow the progression of the course. If you do not log in to Insight for over 1 week, I will assume you have dropped the course. Please contact me if you want to stay in the course but will be unable to login to Insight for more than one week.

Course Prerequisite:

  • CS 111B: If you have not earned a C or better grade in CS 111B, you must pass a prerequisite challenge exam before you'll be allowed to register in CS 111C.

Grading Policy:

Your final score will be made up of the following components:
  • 25% - Homework average
  • 10% - Lab average (programming assignments)
  • 20% - The highest test score of tests #1 - 3 (taken online)
  • 20% - The second-highest test score of tests #1 - 3 (taken online)
  • 25% - Final Examination

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 and Labs:

The best way to learn is by practicing! Assignments will be due each week. 11 of them will be "Homeworks" and 5 will be "Labs". The "Homeworks" are questions and problems, and the "Labs" are programs you need to write.

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

Due Dates and Homework Lateness policy:

Assignments will usually be due on Monday nights at midnight, but you should try to complete it by Friday, so you can ask questions and get help. You will each encounter problems that require more time to fix than you anticipate -- that's the nature of programming.

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, at the end of the due date specified. Late homework will be penalized 5% if it is one day late (submitted on Tuesday). After that, if it is less than 1 week late it will be 10% off. Between 1 and 2 weeks late: 20% off. More than 2 weeks late: 30% off.


Semester Schedule and Syllabus

  • Last day to add a class: February 5
  • Last day to drop a class without it appearing on transcript: February 10
  • Spring Break - no CCSF classes: March 25 - April 1
  • Last day to drop a class: April 21
  • Optional In-Person Final review session: Thur May 19 8-9:30pm, location to be announced.
  • Mandatory In-Person Final Exam: Thur May 26 7-9pm, location to be announced (Ocean/Phelan Campus)
  • Final grades available on Web4 starting June 9, on Insight starting June 6 or sooner.

Week

Dates

Topics

Hwk Due (Mon)

Lab Due (Mon)

Test

1

1/18 - 1/24

Review, Interfaces, Lists

1 Lists

LabA Interface (Tue 1/25)

2

1/25 - 1/31

Array Based Lists

2 Array Based

3

2/1 - 2/7

Linked lists

3 Linked lists

LabB Implement (Wed 2/9)

4

2/8 - 2/14

Iterators

Test#1

5

2/15 - 2/21

Timing

4 Timing
(Tue 2/22)

6

2/22 - 2/28

Recursion

5 Recursion

LabC Recursion (Wed 3/2)

 

7

3/1 - 3/7

Sorting

6 Sort

 

8

3/8 - 3/14

Searching

Test#2

9

3/15 - 3/21

Hashing

7 Searching

10

3/22 - 4/4 (includes Spring Break)

Stacks

8 Stacks

11

4/5 - 4/11

Queues, Circular, Doubly

9 Queues

12

4/12 - 4/18

Trees

LabD StackQueue

13

4/19 - 4/25

Binary search Trees

Test#3

14

4/26 - 5/2

Heaps

 

LabE Trees

 

15

5/3 - 5/9

B Trees

10 Trees

 

 

16

5/10 - 5/16

Graphs

11 Graphs

Lab X: Extra credit (Tue 5/31)

Test#4

17 Thursday
May 26
Final Exam
(Test #4)
Location TBA 7-9pm

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 Assignments 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 tests, any collaboration or copying constitutes cheating.

Software and Computer Access

You may use any standard java compiler for this class. 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 the "Unix / hills Info" in the "Quick Links" on the front page of the Insight course.

Some students prefer to use an Integrated Development Environment (IDE), such as jGrasp or Eclipse. I encourage you to try these out. 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 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 automated Web4 system, or contact the Office of Admissions and Records to be withdrawn from a class. If you have not logged in to our Insight course for more than one week, 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.