COSC 236, Section 004:
Introduction to Computer Science I
Fall 2007
Room: Lectures: YR 401, Labs: YR 402
Time:
Tues., Thurs 2:00PM-3PM:15. Lab: Wed., 2:00PM-3:50 PM
Textbook: D.S. Malik,
C++ Programming: Program Design Including Data Structures
(3rd Edition),
Thomson
ISBN-13: 978-1-4188-3640-5
Please make sure you are looking at the correct page!
I am teaching two sections of COSC 236 this semester. This page
pertains only to section 004. Please see the
appropriate
page if you are in section 002.
Quizzes: The quizzes will be given on October 11 and November 15.
Final Exam: The final exam will be held from 12:30PM-2:30PM
on Thursday, December 13 in YR 401.
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, or you can download
the express edition . 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.
We will discuss the use of Visual Studio in class. Introductory notes are also available.
There are countless other tools that can be used to write C++
code. Codeblocks is a good
alternative choice if you're running or Linux.
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.
You will submit all lab assignments electronically: please see the
instructions for electronic submission.
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). See
the COSC labs web
pages for detail on lab hours and tutoring services.
Course Organization:
Coursework will consist of weekly lab assignments,
two tests,and a final exam. Lab assignments must be completed - both for
grading and for mastery of the subject matter.
Assignment Handout & Submission
The syllabus and all assignments will be posted on the class
web site: they will not be distributed on paper. Please check the
site regularly for updates, assignments, solutions, and other relevant
information. All of this information will be accessible via links from
the class schedule page.
As mentioned above, I am teaching two sections of COSC 236 this
semester. The information on this page pertains only to section 004.
Please refer to the appropriate
page if you are in section 004.
All assignments will be turned in electronically. Please follow the
instructions for electronic submission.
Evaluation:
- Homework:
10%.
- Participation and Attendance:
5%.
- Test 1:
25%.
- Test 2:
25%.
- Final (Thursday December 13):
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 |
.
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 before 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 by the start of the lab session
(2:00 PM) 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: 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. The use of
"contract programming" sites where you post assignments
and others complete them for a fee will be considered plagiarism,
and will not be tolerated. 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. See the Student Academic Integrity Policy for more details.
- 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.
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