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

Class meeting 2:00-3:15 MW Austin 304
Lab meeting 3:30-5:30 M Austin 208
Instructor Karl Abrahamson
Office Sci&Tech C-113
Office hours MW 12:30-2:00;
TTh 11:00-12:00;
or by appointment
Phone 328-9689
Email abrahamsonk@ecu.edu
Course web page www.cs.ecu.edu/~karl/2310/fall07/
My web page www.cs.ecu.edu/~karl/
Text
  1. Java: An Introduction to Problem Solving & Programming by Walter Savitch
  2. Lecture notes for CSCI 2310


Lab component

You should be signed up for both CSCI 2310 section 003 and CSCI 2311 section 003. 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 problem solving. The objective is to develop a solid foundation in computer programming knowledge and skills.


Course approach

Normally, this course is taught using Java as the programming language. However, this is not a course on Java or on the Java library (sometimes called the application program interface).

This section of the course will take an experimental approach. Approximately the first half of the course will lay a foundation of programming skills that are applicable in any programming language. The emphasis is on exposing the simplicity of simple problems. The first half will not use Jave, but will use a different programming language that is suitable to expressing algorithmic ideas in simple ways.

The second part of the course will cover Java. With the foundation in place, transition to Java should be reasonably smooth.

Although I anticipate that this will work at least as well as the traditional approach that has you jump directly into Java, there are never guarantees that experimental approaches will work. If you would prefer the standard approach, there is another section of CSCI 2310/2311 that will use that approach.


Topics

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

  1. Values. Types of values. Functions and procedures.

  2. Expressions and statements. Computing using expressions and recursion. Computing using statements and loops.

  3. Writing function contracts and designing functions. The process of converting from a definition of a function's intended behavior to an algorithm, and then to a program. Understanding algorithms, and why they work.

  4. Elementary textual input and output.

  5. The concepts of variables and assignments.

  6. Elementary data structures. Lists and tuples.

  7. Ephemeral data structures.

  8. Elementary objects and classes. Motivation for using objects and classes. Defining the intent of an object, in terms of what it remembers, and what its methods accomplish.

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 a quiz every other Wednesday, on Aug 29, Sep 12, Sep 26, Oct 10, Oct 24, Nov 7 and Nov 28. Quizzes will begin at the start of class and last from 20 to 30 minutes, with class continuing after the quiz is done. Grading will be as follows.

Seven quizzes 5% each
A comprehensive final exam 20%
Approximately 10 programming assignments 35% 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, to verify the disability before any accommodations can occur. The telephone number is 252-737-1016.