COSC 236, Section 004:
Introduction to Computer Science I
Spring 2007
Room: Lectures: YR 201, Labs: YR 402
Time: Tues., Thurs 3:30-4:45. Lab: Wed., 2:30-4:20
Textbook: T. Gaddis,
Starting out with C++: From Control Structures through
Objects (5th Edition),
Addison-Wesley.
ISBN:
Final Exam: The final exam will be held from 3-5PM on Thursday, May
17 in YR 201.
Course Description:
This course provides an introduction to problem
solving, algorithm development, and computer programming. We will
use C++ to explore concepts such as iteration, flow control, data
types, functional decomposition, file input/output, and basic
object-oriented programming concepts.
Software:
We will be using Microsoft Visual Studio as our primary development for this course. This software is available in the labs. If you want a copy for your own computer, I would suggest dowloading Visual Studio Express, which is free, and sufficient for our purposes in this class.
Note that this is not a course in software development for Windows: we
will only be using a small fraction of the features in Visual Studio.
If you're interested in trying out the command-line tool that were
demonstrated in class, there are several possibilities:
- For Mac/OS X users, there are two good versions
of Emacs. The Apple Developer's tools
XCode package includes the gcc compiler and lots of other goodies.
- For windows, the Cygwin tools
can be configured to include both emacs and gcc.
- For Linux, almost any distribution can be configured to load
developer tools, including gcc and emacs.
If you're interested in learning emacs, a good tutorial can
be helpful. This tutorial for make might also be of
interest.
If you have any problems with any of these tools, please let me know -
I'll do what I can to help out.
Computing/Storage Issues:
We will use the machines in
the lab to start work on the lab assignments. As these are public
machines, you'll want to make arrangements for saving your work. You
can use your Tiger
File space or WebDisk
to upload files. As the lab machines are also equipped with USB
connection, you can use USB memory sticks if you want, but I don't
recommend it - they are too easy to lose.
Don't expect to be able to do all of the lab assignments during the
two-hour lab session. You can use your own computer (see above). The
COSC
labs are also available, as are tutoring
services.
Course Organization:
Coursework will consist of weekly lab assignments,
two tests,and a final exam. Although their content will not be
graded, the lab assignments must be completed - both for
grading and for mastery of the subject.
matter.Policies:
- Attendance will be taken for each class
session. Coming to class shows your commitment to doing the work
and learning the material. If you can't be bothered to come to
class, I may find it hard to be bothered if you have complaints
about your grades. Class participation and attendance count for 5%
of your grade.
- Please come to class on time, and expect to stay for
the entire class. There may be times when circumstances beyond
your control make it necessary for you to arrive late and/or leave
earlier. Barring such circumstances, please arrive for an on-time
start to lectures and labs.
-
The weekly lab assignments will be the homework for this
course. You will start working on each assignment during lab,
and hand it in at the start of the following lab session.
-
Although the homework only counts for 10% of your semester
grade, it is vitally important that you complete the
assignments: most people will find it extremely difficult to do
well on the exams if they do not do the homework.
- You have the option of doing the homework individually or with a
partner. Working in pairs can be helpful for people in introductory
computing courses, but this should not be an excuse for one partner
to do all of the work: both partners will be expected to understand
the work that was done. If you choose to work with a partner, you
should hand in one assignment with both names on it. You may choose
to work with different partners on different weeks, or to work
individually on some assignments and with partners on others, but
you may not work with more than one partner. Resolving any
conflicts that arise due to work done with a partner is your
responsibility.
- All homework will be handed in on the due date. Late
assignments will not be accepted. However, since the material in
this class is cumulative, you should complete all assignments,
even if you will not get credit for them.
- Documentation is a crucial part of effective software
development. All assignments should be documented, using styles
like those discussed in class or in the text. Solutions will not
be considered complete, and will therefore not get full credit,
without proper documentation.
- Your work should be easy to read: there are many
papers to be graded and we do not have the time to decipher
cryptic handwriting. If possible, type your work. Otherwise,
please write neatly and clearly. In any case, please explain your
answers clearly and succinctly. No credit will be given for
answers that we cannot understand.
- The work you turn in must be your own. You can feel free to
discuss assignment questions with others, and you may need to work
in teams during lab times, but the written assignments that are
turned in must be your own work. I may use automated tools to
identify instances of plagiarism. Cheating in any form -
including copying someone else's work or letting your work be
copied - is unacceptable at Towson University. Do not turn in work
that has been copied from somebody else, do not let your work be
copied. Anyone found cheating (on either side, copying or being
copied) will receive an F for the course and a letter to the dean
will be sent. Any incidents of cheating will be handled through
appropriate administrative channels.
- Towson University does not post grades. The department
office will not inform you about your grade after a course is
completed since you can check your grades online.
- University policy states that students may not
repeat a course more than once without prior permission of the
Academic Standards Committee.
-
Please don't use cell phones, pagers, laptops, etc. in class.
Evaluation:
- Homework:
10%.
- Participation and Attendance:
5%.
- Test 1:
25%.
- Test 2:
25%.
- Final (Thursday May 17):
35%.
Grading Policy
|
A: 93-100 |
A-: 90-92.9 |
|
B+: 87-89.9 |
B: 83-86.9 |
B-: 80-82.9 |
|
C+: 75-79.9 |
C: 70-74.9 |
|
D+: 65-69.9 |
D: 60-64.9 |
|
F: < 60 |
.
Syllabus:
- Introduction to basic computer organization.
- Data types, basic operators, expressions.
- Control Flow: if, else, for, do, while, switch, break, etc.
- Functions: Definitions, prototypes, functional calls, parameter passing
- Arrays: declaration, parameter passing, multi-dimensional arrays
- Structs and Classes: definition, uses, differences
- Recursion
- Other topics as time allows: comparison with other programming languages