Syllabus
CSCI 2310/2311
Algorithmic Problem Solving and Programming Laboratory
Fall 2009

Class meeting 2:00-3:15 MW Austin 307
Lab meeting 2:00-3:50 T Austin 209
Instructor Karl Abrahamson
Office Sci&Tech C-113
Office hours MW 3:30-4:30pm;
T 4:00-5:00pm;
Th 3:00-5:00pm;
or by appointment
Phone 328-9689
Email abrahamsonk@ecu.edu
Course web page www.cs.ecu.edu/~karl/2310/fall09/
My web page www.cs.ecu.edu/~karl/
Text Java: An Introduction to Problem Solving & Programming by Walter Savitch


Lab component

You should be signed up for both CSCI 2310 section 003 and CSCI 2311 section 004. If you are signed up for a different section of CSCI 2311, then change the section.


Prerequisites

The prerequisite for this course is Math 1065 (college algebra). You will not need to be a master of techniques such as factoring polynomials that are covered in such a course, but I will rely on a solid understanding on the basics of mathematics, such as numbers, expressions and functions, that such a course provides.


Course objectives

This is a course on computer programming and algorithmic problem solving. The objective is to develop a solid foundation in computer programming knowledge and skills. After you have completed the course successfully you should be competent at writing small-scale programs using a variety of programming and algorithmic techniques.

This course will be taught using Java as a programming language. But it is not a course on Java.

This is not a course on using tools. We will discuss tools when they are needed, but they are not the focus. The focus is problem solving and programming.


Topics

The following is a partial list of topics to be covered.

  1. Values and expressions. Types of values. Variables and assignment.

  2. Control structures. Choice. Loops. Algorithm design using choice and loops.

  3. Defining functions. Understanding and explaining functions.

  4. Recursion. Algorithm design using recursion.

  5. Input and output. Working with files.

  6. Designing and implementing programs. Top-down design. Successive refinement.

  7. Arrays. Algorithms using arrays.

  8. Objects. Creating and using objects from the library.

  9. Classes. Creating your own kinds of objects.

  10. Assorted case studies and examples.

Throughout, the focus is on simplicity and clarity, rather than on trying to cover as much of a language or library as possible.


Grading

There will be quizzes on 9/2, 9/9, 9/16, 9/23, 9/30, 10/7, 10/21, 10/28, 11/4, 11/11, 11/18, 12/2, for a total of 12 quizzes. I will drop your lowest quiz score. Quizzes will begin at the start of class and last for about 20 minutes, with class continuing after the quiz is done. Grading will be as follows.

Eleven quizzes (best of the twelve) 3% each
A comprehensive final exam 21%
Approximately 10 programming assignments 36% total
Attendance in both 2310 and 2311 10%

Cutoffs for grades will tentatively be 90% for an A, 80% for a B, 70% for a C and 60% for a D. Those cutoffs will not be raised.


Incompletes

No incompletes will be issued in this course except for extraordinary circumstances, and even then only if you are nearly done already, and have done work of sufficient quality that it is realistic that you can pass the course. An incomplete will not be given simply because a student could not find the time to do the course work. By registering for this course, you are committing to finding time to do the work.


Recommendations for success

  1. Attend class. Attend the lab. Arrive on time.

  2. Do not allow yourself to fall behind. Work on the homework early. Do not wait until just before the deadline.

  3. Schedule time to work outside of class. The time available during the lab will not be enough, and you will need to put in additional time.

  4. Read your notes and the class notes or book twice. Take a break (like a whole day) in between. You will learn much more that way.

  5. If you are having trouble, seek help soon. Do not wait until it is too late.


Student conduct

Smoking is not permitted in classrooms. Please turn off telephones while in class.

Students are expected to abide by the university's Student Honor Code. The homework that you do is a critical part of your education. Each student is expected to do his or her own work. That does not mean you are not allowed to discuss your ideas with other students. Working in groups can be beneficial, and I encourage you to talk through ideas with other students. But outright copying is plagiarism, and is unacceptable. Students who copy other students' work, or who allow their work to be copied, or who copy their work from other sources, such as the internet, will receive no credit.


Weather emergencies

In the event of a weather emergency, you can get information about ECU from the following sources:

ECU emergency notices http://www.ecu.edu/alert
ECU emergency information hotline 252-328-0062


Students with disabilities

East Carolina University seeks to comply fully with the Americans with Disabilities Act. Students requesting accommodations based on a covered disability must go to the Department for Disability Support Services, located in Slay 138, before any accommodations can occur. The telephone number is 252-737-1016.