Syllabus
CSCI 2310/2311
Section 002
Algorithmic Problem Solving and Programming Laboratory
Spring 2010

Class meeting 1:00-1:50 MWF Austin 304
Lab meeting 3:00-4:50 M Austin 209
Instructor Karl Abrahamson
Office Sci&Tech C-113
Office hours Tu-F 2:00-3:15pm;
or by appointment
Phone 328-9689
Email abrahamsonk@ecu.edu
Course web page www.cs.ecu.edu/~karl/2310/spr10/
My web page www.cs.ecu.edu/~karl/
Text Java: An Introduction to Problem Solving & Programming, fifth edition by Walter Savitch and Frank Carrano
Lecture notes Lecture notes for CSCI 2310


Lab component

You should be signed up for both CSCI 2310 section 002 and CSCI 2311 section 002. If you are signed up for a different section of CSCI 2311, 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.

This course does not require that you have any prior experience with computer programming. But some typing skills and knowledge of how to use a computer will be very helpful. If you are unfamiliar with computers or cannot type at all, please let me know.


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 this course successfully, you will be competent at writing small-scale computer programs that work in accordance with specified requirements, using a variety of programming and algorithmic techniques, and you will be able to organize and document a small-scale program well. You will also be well prepared for study of advanced topics including data structures and organization of larger pieces of software.

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


Programming languages

This course will use two programming languages. The first half will use a language called Cinnameg to illustrate fundamental concepts. In the second half, we will switch to Java, and not only see how those same concepts appear in Java but cover some additional concepts.

The reason why this course is being taught with two different languages is (1) We need to cover Java for later courses; but (2) Java assumes that the programmer is an expert, and tends to obscure simple ideas behind a lot of machinery. By introducing ideas in a setting that makes them simple, I hope that you will end up with a better understanding of Java.


Topics

The following is a partial list of topics to be covered. They will not be covered in this order, but all will eventually be covered.

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

  2. Control structures. Sequencing, choice and loops. Algorithm design using sequencing, choice and loops.

  3. Functions. Defining new 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. Strings. Algorithms using arrays and strings.

  8. Issues on efficiency of algorithms.

  9. Objects. Creating and using objects from the library. Using objects for elementary graphics.

  10. Classes. Creating your own kinds of objects.

  11. Assorted case studies and examples.

Throughout, the focus is on simplicity and clarity.


Lecture notes

There is a set of lecture notes for this class. They are not yet completed, but more notes will be added during the term. To use the lecture notes, use the following guidelines.

  1. Open the notes.

  2. Look at the address bar in your browser. It should show http://www.cs.ecu.edu/~karl/2310/spr10/LectureNotes/html/contents.html. Replace /html/ by /xyz1234/ where xyz1234 is your pirate id. For example, if you pirate id is abc0101, then change the address bar so that it holds http://www.cs.ecu.edu/~karl/2310/spr10/LectureNotes/abc0101/contents.html. Visit that page.

  3. You will be asked for an id and a password. Your id is your pirate id. Your password will be given to you. It is not the same as your pirate password (that you use for email). You cannot change your password.

  4. Click on Course outline to see a tentative daily outline of the course. Please read material to be covered in each lecture before the lecture whenever possible.

  5. Most of the pages have exercises. Those exercises are not graded. But working them will prepare you for the quizzes and the labs.

    Work each exercise, writing your answer in the box provided. If you store the answer, then it will be remembered, and will still be there when you come back to that page. (Pressing any button stores the answer.) You can also write notes to yourself in the box. But if the box has a Compute button, then precede each line of notes that are not part of the answer by %%

    The Compute button will run what you have written and show you the result. If there is a syntax error, it will show you the program that it built, containing what you wrote, and will try to explain the error that it encountered.

    Each question has an Answer button that shows you an answer to the question. Only look at the answer after you have made an attempt yourself. Even if your first attempt does not work, resist the temptation to look at the answer too quickly. You will learn much more by putting in the effort to solve the problem.

  6. Lab assignments are also in the lecture notes. They are graded. After you have a satisfactory answer to a lab assignment, submit it using the Submit button.


Grading

There will be quizzes on 1/27, 2/17, 3/3, 3/24, 4/7 and 4/21, for a total of six quizzes. Quizzes will begin at the start of class and last for approximately 30 minutes. After the quiz, I will go over the questions.

You can use one prepared 8.5x11" piece of paper, written on both sides, during each quiz. I will not collect those papers.

There will be no makeups for missed quizzes. If you have a university-approved excuse for missing a quiz, then I will just average your other quizzes to account for the missed quiz. If you have no approved excuse, then you will receive a score of 0 for the missed quiz.

The final exam is 11:00-1:30 Monday, May 3 in Austin 304. The final exam will cover all of the material for the course. You can bring two prepared 8.5x11" pieces of paper to the final exam.

Grading will be as follows.

Six quizzes 6% each, 36% total
A comprehensive final exam 20%
Approximately 12 laboratory assignments 34% 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.


Attendance

You are expected to attend class. You are responsible for announcements and assignments given in class. If you miss a class, it is up to you to obtain notes and any other information that was provided in the class. Excuses that you did not know about something because you did not come to class and did not obtain the information will not count for anything at all.

10% of your grade is for attendance. You will lose one point for each absence, including both the lecture (2310) and the lab (2311), up to a maximum of 10 points.

Students who do not attend class can count of doing poorly in this course. If you choose not to attend class, then that is your choice, and I will not take any responsibility for your choice or for any consequences of your choice. In particular, do not come to me or send me an email at the end of the term begging me to pass you even though you have not been attending class and have a failing grade.


Laboratory assignments

Each laboratory assignment is assigned at one of the laboratories. You should have no trouble completing the early assignments during the laboratory sessions. Later assignments will be more lengthy, and you will probably need to do some work on you own.

Each assignment is due no more than two weeks after it was assigned (at the end of the laboratory two weeks after that assignment's laboratory.)


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. Do not skip class either because you think that you already understand the material or for the opposite reason, that you think you cannot get it.

  2. Do not allow yourself to fall behind. If you start to fall behind, work right away to catch up. If you are falling behind because you do not understand something, ask for help. Do not just give up.

  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. Later in the term, go back over notes that you looked at earlier in the term. You will learn much more that way.

  5. Get adequate sleep. Sleep is important both before and after you learn new things. Sleep before enables you to concentrate, and sleep afterwards is critical for moving new information into permanent memory.

  6. 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 and other noisy devices while in class.

Students are expected to abide by the university's Student Honor Code. Homework 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.