\documentstyle[11pt]{article}
\addtolength{\textheight}{1.00in}
\addtolength{\topmargin}{-1.00in}
\addtolength{\oddsidemargin}{-0.75in}
\addtolength{\textwidth}{1.70in}
\setlength{\parindent}{.15in}
 
%special environment for a list that uses less space than normal
\newenvironment{tightlist}{\begin{list}{$\bullet$}{\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}\setlength{\topsep}{0pt}}}%
{\end{list}\vspace{0pt}}

\begin{document}

\section{Course Information \& Guidelines}
\section{Professor and Teaching Assistant (TA)}
Course:  CISC 105:  General Computer Science \\
Semester: Fall 1998 \\
\parbox[t]{2.2in}{
    \begin{tabbing}
        \= Professor: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\\
        \> Office: \\
        \> Phone:  \\
        \> Hours:  \\
        \> Email:  
    \end{tabbing}
    }
\hfill
\parbox[t]{2.2in}{
    \begin{tabbing}
        \= TA: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \\
        \> Office: \\
        \> Phone:  \\
        \> Hours:  \\
        \> Email:  \\
    \end{tabbing}
    }
 


\section{Overview } 

CISC105: General Computer Science is primarily an
{\it introductory computer programming} course designed for two groups of students:
(1) mathematically-oriented non-CISC majors, and (2) CISC or potential CISC majors
without significant programming experience.
CISC105 assumes {\it no} prior programming knowledge.


The following are {\it good} reasons to take CISC105:
\begin{tightlist}
\item You are a CISC major without significant prior computer programming experience which is prerequisite for  CISC 181: Intro to Computer Science.
\item You want to become a CISC major and need CISC105 and CISC181 before your Change of Major Request will be considered by the CISC Department.
\item You want to learn about:
    \begin{tightlist}
    \item Design and implementation of small to medium sized
    programs in C, including compilation, testing, debugging
    and execution of these programs.
    \item Principles of software engineering including naming
    conventions, program structure, and methodology.
    \item Familiarity with the Unix Operating System for a variety of 
    purposes including the creation, editing, transfer and
    printing of files.
    \item Use of the ``X'' window-based user interface.
    \item Use of local network and Internet resources.
    \item Basic ideas of computer science including program and
    data structures, file management, computer hardware components, and 
    algorithm development and analysis.
    \end{tightlist} 
\end{tightlist} 

The following are {\it bad} reasons to take CISC105:
\begin{tightlist} 
\item You could not get into CISC101.  (Try ACCT160, FREC135, EGTE111, HPER276.)
\item You need a group D requirement, and want to learn about computers.
\item You need a course that will not require much time outside of class.
\end{tightlist} 

CISC105 is {\it not} a course in word processing. CISC105 is {\it not} a course that
teaches canned commercial software packages,
such as EXCEL spreadsheets, ACCESS databases,
and POWERPOINT presentations.
General computing concepts, terminology, and popular office software is
covered in CISC101: Computers and Information Systems.

CISC105 emphasizes programming.  Programming is a difficult and time-consuming task.

\section{Class Meetings and Attendance} 
Each week consists of two lecture classes and one lab class.
Students are required to attend all lectures and lab classes.
{\bf Warning: Poor attendance almost always results in poor performance.}

\section{Texts and Readings}
\begin{tightlist}
\item  {\it Problem Solving and Program Design in C, 2nd ed.} by Hanley and Koffman (ISBN 0201590638)
\item {\it CISC105 Laboratory Manual - Sections 011-013}, Fall 1998
\item {\it Intro to UNIX}, UD Computer Network Services (CNS) User Services, (latest edition)
\item (suggested) {\it Intro to Pine: A Menu-driven Electronic Mail Program}, UD CNS User Services, (latest edition)
\end{tightlist}

\section{Programming Environment and Computer Usage}

The C language is available on a group of computers named Strauss, Bach, Brahms, and Chopin.
They are referred to as the ``Composer'' machines.
You will primarily use Strauss for all programming in CISC105.
Strauss is a multiprocessor computer manufactured by Sun Microsystems 
running the Solaris Unix operating system.  Primary access to Strauss is
obtained via X-terminals located at various computing sites on the
Newark campus and elsewhere.  Additionally, dial-up access is
available as described in Appendix C of the Intro to Unix handbook.   
For information about these computers and other University
computing resources, contact the Computer Network Services (CNS) Consulting Desk, 002
Smith Hall, 831-1205.

Note: You cannot do your C work on Copland.

\section{Obtaining an Account - What YOU Must do NOW}

To participate in the first lab class,
you {\it must}  have a valid university account.  If you do not,
then you {\it must} :

\begin{enumerate}

\item  Go to one of the computing sites or log on from any
terminal at which you can obtain a strauss window, and take the Electronic
Community Citizenship Examination (ECCE) interactively.  
You can obtain the
instructions for the ECCE and a copy of the Responsible Computing
Manual from any university computing site.  
You need to take the ECCE repeatedly until you pass it.

\item  Immediately after you pass the ECCE, go
obtain a password from the computing security office, in either
Smith Hall basement, Student Services, or Harrington Hall.
Be sure to have your student id card.
Your account will be activated overnight after you obtain a
password.  To insure that you can get onto your account
during lab class, you MUST pass the ECCE 
and obtain your password by the day BEFORE your lab class.

\end{enumerate}

\section{Requirements and Grading}

In determining your final grade, exams and assignments
are weighted as follows:
\begin{center}
\begin{verbatim}
   25%       Midterm  Thursday Nov. 5, 4-6pm (required)
   25%       Final Exam 
   50%       Lab, Homework, and Programming Assignments 
  ----
  100%
\end{verbatim}
\end{center}

The final course grade is related to your earned percentage $g$, as
indicated in the following table.  The Professor reserves the right
to lower these grade boundaries in order to curve class grades 
upward.  Class grades will never be curved downwards.

\begin{table}[h]
\begin{center}
\begin{tabular}{|l| c c c c c |}
\hline
        A    & 93 &$\leq$& $g$ &   &    \\
        A -- & 90 &$\leq$& $g$ &$<$& 93 \\
\hline
        B +  & 87 &$\leq$& $g$ &$<$& 90 \\
        B    & 83 &$\leq$& $g$ &$<$& 87 \\
        B -- & 80 &$\leq$& $g$ &$<$& 83 \\
\hline
        C +  & 77 &$\leq$& $g$ &$<$& 80 \\
        C    & 73 &$\leq$& $g$ &$<$& 77 \\
        C -- & 70 &$\leq$& $g$ &$<$& 73 \\
\hline
        D +  & 67 &$\leq$& $g$ &$<$& 70 \\
        D    & 63 &$\leq$& $g$ &$<$& 67 \\
        D -- & 60 &$\leq$& $g$ &$<$& 63 \\
\hline
        F    &    &      & $g$ &$<$& 60 \\
\hline
\end{tabular}
\end{center}
\label{final.curve}
\end{table}

Special considerations may have a positive effect on final grades.
These include class participation, a pattern of grade improvement, an
isolated bad grade, etc.  Such considerations will never have a
negative effect on the final grade.

Occasionally, mistakes occur in grading.  After a graded item 
is returned, students have two weeks to submit a
request to have it regraded.  These requests
should be submitted directly to the Professor.  After two weeks, no requests for
grade changes will be considered.  The request for regrading should
include the original exam or assignment, and the reason
that regrading is requested.


\section{Graded Assignments}
There are three categories of assignments: Labs, Homeworks, and Programming.
Labs and Homeworks are described later in this {\it Laboratory Manual}.
Programming assignments will be made available during the semester.

\subsection{Lab Assignments}
Lab assignments will be started (and in some cases completed)
during the scheduled lab classes. 
Normally each lab assignment is due by the 
{\bf beginning of your next lab class}.
Most labs involve writing or modifying C programs.
Each lab focuses on a particular concept
discussed in the text or in lecture, and helps you to complete
the programming assignments.

\subsection{Homework Assignments}
Homeworks normally consist of pencil-and-paper exercises designed to give you
practice in applying information covered in the textbook 
and lectures.  
Homeworks usually
do not require the use of a computer, although students can often check their
answers on the computer.  Homeworks will
be handed out with the lab material, and are
due at the {\bf beginning of your next lab class}.

\subsection{Programming Assignments}
Programming assignments consist of applying several of the concepts from
several labs and lectures.  Students must write their own computer programs
that need to be compiled, tested, and debugged on the Strauss computer.  
There will be 3 programming assignments.

You will be given about 2-3 weeks to complete each programming assignment.
Program grades are based on: program design, correct execution, proper program comments,
properly formatted output, and proper program style.
While working on a program, you may consult
with the professor, TA, classmates, friends, etc.,
but the actual programming that you hand in {\it must} be your {\it own} work.

\subsection{Extra Credit}
Many assignments will include an opportunity for extra credit.
Extra credit is optional, i.e., students can earn an A grade 
in the course without doing any extra credit.
Extra credit on programming assignments  provides students 
with an opportunity to gain greater programming skill and to learn more
advanced material while at the same time improving their course grade.
CISC majors and potential CISC majors
are encouraged to do the extra credit
assignments to facilitate transition into the higher level CISC courses.

\subsection{Late Submission of Assignments} 
An assignment's due date will be clearly specified when the assignment is made.
Do {\it not} miss class or lab in order to complete an assignment.
Late assignments will be penalized unless an extension is granted by the 
Professor.  Only the Professor (not the TA) may grant an extension for an assignment.

The philosophy on late assignments is: (1) Everyone should try their best to
complete all assignments by the due date.  (2) People who work
conscientiously to meet deadlines should be rewarded for their 
promptness and sacrifice of sleep.  Thus, allowing others to hand in late
assignments without some penalty is unfair to these people.  However, there
are various circumstances that may prevent a student from completing an
assignment on time.  Allowing no late assignments would not
give students much incentive to eventually complete their work, which
is a major source of learning.  Thus, I believe that late assignments
are better than no assignment.

Late assignments will be penalized 5\% per 24 hour period
or fraction thereof, not including weekends up to 25\%.
For example, if your lab class meets Thursday at 10am, and you 
submit the assignment late on Monday at 11am, then the penalty is 10\%.
Late assignments will be accepted with penalty up to one week following the due date.
{\bf Assignments submitted more than one week late without an approved extension will not be accepted.} 

It is best to submit late assignments directly to the Professor's mailbox in  
103 Smith Hall, or the Professor's office. 
An assignment is considered turned in when it is physically received by the
TA or professor or placed in their mailbox, not when it is printed by the computer.
Please write the date and time on the late assignment just prior to submitting it.

Note: Extra credit work cannot be handed in late.

\section{Exams}
There will be one midterm exam and a final exam.
Each exam is a closed book, in-class.  The final exam is comprehensive.

If an exam is missed because of an absence that {\bf has been excused}
by the Professor, arrangements will be made either to take a make-up or
to increase the weighting of the other exam, according to the Professor's
choice.
If the absence is not excused, 
it cannot be taken later, and a grade of 0 will be included
in the computation of the final grade.

\section{Academic Honesty}
\label{acad.dishonesty}

For many students, this is the first time you will be programming a computer
and the first time you will be ``debugging'' computer programs.  Hence, you
need to learn what is allowed behavior and what is not.
When your program does not work, the first thing to do is use your book and 
notes to try and figure out the 
problem yourself.  The second and third things to do are to try to figure
out the problem yourself!  At that point, you may ask for the assistance of
a consultant, TA, Professor, classmate or friend to help you understand the 
specific problem. 

You may also discuss in {\it general} terms the {\it general} approach
to solving a programming problem.  Once the discussion gets down to specific
programming issues such as names and types of variables to use, control structures
such as loops, if-then-else statements, you must end any collaboration.

Specifically, you may {\it not}:
\begin{tightlist}
\item Compare answers to any assignment before it has been turned in.
\item Supervise a classmate typing in a program, or have a classmate supervise you typing in a program
\item Copy, or allow another student to copy, a computer file that contains
another student's assignment, and submit it, in part or in its entirety, as your own.
\item Work together on an assignment, sharing the computer files and programs involved,
and then submit copies of the assignment as one's own individual work.
\item Edit a script file, and then submit it as an original transcript of your 
computer session.
\end{tightlist}

Any evidence of performing any form of academic
misconduct will be appropriately handled as stated in 
the Official Student Handbook of the University of Delaware.
If you are in doubt whether or not a behavior is permitted,
then ask the Professor or TA beforehand.
If you are having difficulty with the course, then see the Professor or TAs for help.  
\end{document}
