Syllabus
CSCI 2610/2611
Introduction to Computer Science II
Spring 2004

Class meeting 2610: MW 6:00pm-7:15pm Austin 303;
2611: M 7:30pm-9:30pm Austin 208
Instructor Karl Abrahamson
Office Sci. & Tech. C-113
Office hours TTh 11:00-12:15;
MW 4:30-5:45;
or by appointment
Phone 328-9689
Email karl@cs.ecu.edu
Course web page www.cs.ecu.edu/~karl/2610/fall04/
My web page www.cs.ecu.edu/~karl/
Text Problem Solving with C++: The object of programming (fifth edition) by Walter Savitch


Prerequisites and corequisites

The prerequisite for this course is CSCI 2510. You should have obtained some familiarity with the basics of C++ and concepts such as variables, assignment statements and conditional statements. Some people in this course might not have seen C++ before. I will cover the language from the beginning, so there will be a chance to catch up, be we will move through the most basic things quickly.

You must be registered in the lab component, CSCI 2611, concurrently with this course. It is very important that you register for CSCI 2611 section 003. If you are registered for a different section, change your schedule.


Course web page

Material for this course is posted on page http://www.cs.ecu.edu/~karl/2610/spr04/. More material will be added as the term progresses. All assignments will be posted on the web page.

The course web page contains material on grading of programs that you should read. You will be expected to be aware of the grading criteria, and complaints that you were not aware of them will not be accepted.


Course objectives

This course focuses on small scale software development using C++. We will cover the C++ programming language and principles and techniques for writing small scale software. Topics will include the following.

  1. Basics of C++: variables, assignments, conditionals, loops, input and output.

  2. Functions. Writing and understanding functions. Recursion.

  3. Elementary algorithm design.

  4. Elementary object-oriented programming.

  5. Working with files.

  6. Arrays and algorithms using arrays. Strings.

  7. Elements of dynamic memory allocation.

This is not a course on how to use any particular libraries of classes or functions, but concentrates on design methods using fundamental language features.


Grading

Grading will be as follows.

Five quizzes 7% each
A comprehensive final exam 20%
Approximately 12 programming assignments 35% total
Attendance in both 2610 and 2611 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.


Computers

For the lab, we will use the Unix computers in Austin 208. There are four reasons for choosing Unix rather than Windows for these assignments.

  1. Windows was designed as an end-user operating system. Programmers are encouraged to build their programs by using a powerful tool that can put together prepackaged features very nicely, but that offers no support for problem solving.

    Unix is an operating system that was designed by programmers for programmers, and is an excellent system for software development. It is not as friendly to the novice as Windows, but makes up for that in other ways.

  2. We will write programs that interact with the user in a textual way rather than via a graphical user interface. Programming with graphical user interfaces requires a large investment of time learning how to use a particular design tool and a particular collection of user-interface creation and interaction tools. This leaves no time to learn how to develop your own computational ideas.

    Unix is easier to use for text-based applications than is Windows. You do not have to build a project in Unix; you just compile your program and run it.

  3. Tools tend to work in Unix where they fail in Windows. The compiler that we will use is of very high quality.

  4. Most students have used Windows. It is important to use more than one system to broaden your knowledge of computers. This gives you an opportunity to use a different system. Unix has a substantially simpler, and some would say cleaner, design as an operating system.

Using Unix

The brand of Unix that we will use is called Solaris. See the Notes on using Solaris.

Logging in

Each of you will receive a login id and password. Your account will be the same as your ECU account, but your password will be different.

The first time you log in, you must be at a computer in room 208. Type you login id, hit return, then type your password. The password will not show up at all. If you are successful, then a small window will appear asking you to change your password. Move the mouse into that window. Type your old password, then your new password twice, with a return after each one. A new login screen should appear. Now you are ready to log in and work. You only need to do this once.

If you receive a message asking you for your LDAP password, then your password was incorrect. Just hit the return key and try again.

Starting a browser

You can start a browser from Gnome by selecting Applications->CDE menu->Links->Web brower. Alternatively, start a terminal by right-clicking on the background, selecting new terminal. Then type command

  netscape&

Remove access via SSH

You can log in to Unix over the internet. Get a copy of Secure Shell (ssh). You can get it from ftp://ftp.ssh.com/pub/ssh/. Get the most recent client program. The Windows version is a self-extracting executable that you run to install.

To log in, start up ssh, and select "quick connect". For host, write login.cs.ecu.edu. Write your login id as the user name. Do not change other information. You will be asked for your password. Once you have logged in, you will find yourself with a terminal on a computer. You will not actually be on login.cs.ecu.edu; that computer only sends your login request to another computer.

Only keystrokes are sent across the ssh connection. Put the mouse down. If you take a moment to learn how to use emacs, you will find that the keyboard works well.

You can transfer files by pushing the file transfer button in the ssh window. It is yellow with blue dots. Drag files between the local and remote windows.


Asking questions

There are surely going to be things that you do not understand. Some things are only explained somewhat tersely, and it is expected that not everyone will understand them. ASK QUESTIONS!

Ask questions early, not when it has become too late to make use of the answer. Ask questions in class when you do not understand something. Ask questions in the lab. Do not sit and stare at the computer monitor waiting for it to give you some inspiration. Monitors are not great inspirers.


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 acceptable quality so that it is realistic that you can pass the course.


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 book twice. Take a break (like a whole day) in between. You will learn much more this way.

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


Weather emergencies

In the event of a weather emergency, information about ECU can be accessed through 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 (ADA). Students requesting accommodations based on a covered disability must go to the Department for Disability Support Services, located in Brewster A-114, to verify the disability before any accommodations can occur. The telephone number is 252-328-6799.