CPSC 289 Sections 507-512,516-517:
Computer Science Concepts and Programming
Fall 1998
[Syllabus]
[Announcements]
[Bulletin Board]
[Calendar]
[Culture Activities]
[Programs]
[Useful Links]
Instructor:
Prof. Jennifer Welch
Office: 415 H.R. Bright Bldg
Office Hours: Monday, Wednesday, 3:00--4:00 PM; Friday 10:00--11:00 AM;
other times by appointment
Email: welch@cs.tamu.edu
Office Phone: 845-5076
Home Phone: 774-0680 (please don't call after 9:00 PM)
Teaching Assistants:
Jenny Walter
Office: 419D H.R. Bright Bldg
Office Hours: Tuesday, Wednesday, Thursday 11:00 AM -- 12:00 PM;
other times by appointment
Email: jennyw@cs.tamu.edu
Office Phone: 862-4535
Srinivas Hanabe
Office: 335 H.R. Bright Bldg
Office Hours: Tuesday, Wednesday, Thursday 11:00 AM -- 12:00 PM;
other times by appointment
Email: srinivas@cs.tamu.edu
Office Phone: 847-8772
Yash Gokhale
Office: 335 H.R. Bright Bldg
Office Hours: Tuesday, Thursday 2:00--3:30 PM;
other times by appointment
Email: ygokhale@cs.tamu.edu
Office Phone: 847-8772
Prerequisite:
Satisfactory performance on placement test during freshman
conference, or CPSC 110 or equivalent.
Lecture:
Monday, Wednesday, Friday 1:50--2:40 PM, HRBB 124.
Labs:
All sections meet in HRBB 229.
Section 507: Tuesday, Thursday 8:00--8:50 AM (Jenny Walter)
Section 508: Tuesday, Thursday 9:00--9:50 AM (Jenny Walter)
Section 509: Tuesday, Thursday 10:00--10:50 AM (Jenny Walter)
Section 510: Monday, Wednesday 3:00--3:50 PM (Srinivas Hanabe)
Section 511: Monday, Wednesday 4:00--4:50 PM (Srinivas Hanabe)
Section 512: Monday, Wednesday 12:00--12:50 PM (Srinivas Hanabe)
Section 516: Tuesday, Thursday 6:00--6:50 PM (Yash Gokhale)
Section 517: Tuesday, Thursday 7:00--7:50 PM (Yash Gokhale)
Textbooks:
- An Introduction to Computer Science Using Java, Samuel N.
Kamin, M. Dennis Mickunas, and Edward M. Reingold,
McGraw-Hill, 1998.
- Computer Science: An Overview, Fifth Edition,
J. Glenn Brookshear, Addison-Wesley, 1997.
Course Overview:
I prefer to call this course "Introduction to Computer Science
for CS and CE Majors."
This course is not simply about how to program in Java.
The main focus of the course is how to solve problems using computers.
This type of problem solving requires understanding and applying
the principles of abstraction and modularity.
Especially as programs grow in size and complexity,
the importance of good software engineering practices cannot be
overemphasized.
A secondary goal of the course is to introduce you to some of the
fundamental problems and issues of computer science as an
intellectual discipline, to convince you that computer science
does not equal programming, and, I hope, to make you aware of the many
fascinating aspects of computer science.
These ideas are independent of any particular programming language.
However, certain programming languages are more conducive to achieving
these goals than others.
We will be using Java as a tool to learn about computer science.
Java has certain features, which we will learn about,
that support my goals in this class.
In addition, it is fun!
At the end of the semester you should:
- be able to solve a variety of problems using the computer;
- understand and apply the principles of abstraction, modularity,
and information hiding;
- appreciate and adhere to good software development practices;
- be able to program competently in the subset of Java covered
in the course; and
- be familiar with many of the computer science problems and issues that
will be studied later in the curriculum.
Course Content and Tentative Schedule:
The course will cover the following topics.
The relevant chapters of the textbooks are indicated; more detailed
reading assignments, including possibly supplemental readings, will be
given later.
| week of
| topic
| Kamin
| Brookshear
|
| 8/31
| introduction; computer architecture
| Ch 1
| Chs 0, 1, 2
|
| 9/7
| program translation; basic Java
| Chs 2, 4
| Ch 5
|
| 9/14
| classes and methods
| Ch 5
| .
|
| 9/21
| iteration
| Ch 6
| .
|
| 9/28
| arrays
| Ch 7
| .
|
| 10/5
| more classes and methods; software engineering
| Ch 8
| Ch 6
|
| 10/12
| 2-D arrays; numerical analysis
| Ch 9
| .
|
| 10/19
| strings and I/O
| Ch 10
| .
|
| 10/26
| algorithms
| .
| Ch 4
|
| 11/2
| recursion
| Ch 11
| .
|
| 11/9
| inheritance
| Ch 12
| .
|
| 11/16
| interfaces and exceptions
| Ch 12
| .
|
| 11/23
| operating systems and networking
| .
| Ch 3
|
| 11/30
| applets
| Ch 3
| .
|
| 12/7
| review
| .
| .
|
Assignments and Grading:
All assignments will be announced in class and posted on the course web page.
If you miss class for any reason, it is your responsibility to find
out what assignments you missed.
Your grade will be based on four components:
- exams 35% --
There will be two mid-term exams (worth 10% each) and one final exam
(worth 15%). The exams will be held in class.
- programs 25% --
There will be several programming assignments in Java.
More information is available here.
- quizzes/homework 30% --
This is a catch-all category for work done primarily in class or lab,
both individually and in groups.
About once a week there will be a five-minute quiz, typically
at the beginning of lecture, consisting of a few simple questions
(short answer, true-false, or multiple choice) concerning the reading
and/or the material covered in the last class.
The purpose of the quiz is to encourage you to do the reading in
advance and to stay caught up in the class.
The 30% is divided into two pieces:
- 20% for individual work
- 10% for group work
- culture 10% --
This component is to round out your classwork.
Five short activity reports are required: attend two seminars,
read two technical articles, and research a famous computer scientist.
More information is available here.
No late assignments, including programs, will be accepted and there are
no make-up exams. Discuss unusual circumstances in advance
with the instructor.
Course grades will be assigned according to this scale:
A for 90% or above of the total points,
B for 80 to 89%,
C for 70 to 79%,
D for 60 to 69%,
and F for less than 60%.
Collaboration:
Discussion of concepts with others
is encouraged, but , unless otherwise instructed.
If you use any source other than the text, reference it/him/her,
whether it be a person, a book, a solution set, a web page or whatever.
You MUST write up the solutions in your own words. Copying is
strictly forbidden.
University Regulations, Section 42, define scholastic
dishonesty to include acquiring answers from any unauthorized source,
working with another person when not specifically permitted, observing
the work of other students during any exam, providing answers when not
specifically authorized to do so, informing any person of the contents
of an exam prior to the exam, and failing to credit sources used.
Disciplinary actions range from grade penalty to expulsion.
Back to beginning
- 12/8: FYI, here are the exams that I gave last year in this class
(postscript).
I'm providing them in order to give you some more practice problems
to work. However, notice that they are NOT multiple choice, whereas
your final WILL be multiple choice.
Exam 1
Exam 2
Final Exam
- 12/7: Review for final is available now.
- 12/7: Completed slides are now available in the Bright building
copy center.
- 12/7: Detailed grade sheets will be available in lecture today
and later available from your TA. IT'S YOUR RESPONSIBILITY TO
MAKE SURE THAT WE HAVE CORRECT GRADES FOR YOU!
- 12/2: There is a contest for the best applet written by
college students, co-sponsored by IBM and ACM (ACM stands
for the Association for Computing Machinery and is one of the
main professional organizations for computing).
Here's the link.
- 11/25: Outline slides 269-293
are now available (here and in Bright copy center).
These are the last ones.
- 11/24: Due to popular demand and lab closings this evening,
program 6 deadline has been further
extended to 9:00 AM Monday, Dec 7. Happy Bonfire and Thanksgiving.
- 11/24: Here is the format
for the program 6 input file.
- 11/23: Course evaluations will be Monday, Nov 30.
Bring a #2 pencil.
- 11/23: Solution to Program 4 is now available.
- 11/19: Outline slides 230-268
are now available (here and in Bright copy center).
- 11/18: My office hours on Fri, 11/20, will be 9:30-10:30 AM.
- 11/17: Program 6 is now available!
Due Dec 2. There is a related GRADED group activity in lab
this week. Be sure to attend.
- 11/16: Outline slides 209-229
are now available (here and in Bright copy center).
- 11/16: Exam 2 is graded. Attend lab this week to pick up your graded
exam and go over the solutions.
- 11/10: Correction to review sheet for exam 2: review slides 109 through 208.
- 11/6: Review for exam 2 is now available.
- 11/6: Completed slides 1-71, 72-108, and 109-208 are available in the
Bright building copy center, in three separate sets.
- 11/5: Program 5 is now available!
Due Nov. 18.
- 11/3: Deadline for Program 4 is extended to 12:00 noon on Thursday,
Nov 5. This is a STRICT deadline. You must have already done
the turnin program by then, and you must have brought your papers
(testing) to my ofice (415 Bright) or to your TA by then.
- 10/26: Here are some answers to questions raised in lecture today:
- There is a class called "RandomAccessFile" in java.io that supports
reading and writing, and lets you modify the position in the file
where the next read or write will occur. This will let you append.
- There is a class called "LineNumberReader" in java.io that
keeps track of line numbers.
- If you want to open a file on a remote machine, you will need
to do a lot of work, e.g., with datagrams and sockets.
See classes in the package java.net.
- Still no word on clearing the screen in an application.
- 10/26: If you turned in your program 3 by 9:00 AM on the due
date but thought you could turn in the test plans/logs in class,
you can still do so.
- 10/26: Outline slides 160-208
are now available.
- 10/23: Instructions for submitting your *.java files electronically:
1.Using Telnet, log on to your CS Unix account.
2.Type turnin 289-5XX filename.java, where the "5XX" corresponds to your
section number. The system should return
a message that your file has been copied.
- 10/21: Deadline for Program 3 is extended to 9:00 AM on Monday,
Oct 26. This is a STRICT deadline. You must have already done
the turnin program by then, and you must have brought your papers
(testing) to my ofice (415 Bright) by then.
- 10/20:
Program 4 is now available!
Due Nov. 4.
- 10/19: If you have perennial schedule conflicts with seminars, you
can substitute with reviews of journal articles for culture activities.
- 10/15: A useful
guide to
Unix is now available. You are encouraged to use the CS department's
Unix machine (dilbert) for your assignments. You can telnet to dilbert
from any of the open access labs on campus, and thus it is much more
available than the PC labs in the CS department.
- 10/14: Solution to Program 2 is now available.
- 10/14: General amnesty for culture activities 1 and 2!
If you did not turn either one of them in, you can do so now.
- 10/14: Program 3 is now available!
Due Oct 23.
- 10/11: Exam 1 has been graded. The average was only 67.
Be sure to go to your lab Mon/Tue to pick up your exam
and to go over the correct answers!!
- 10/7: Solution for Program 1 is now available.
- 10/5: If you are having difficulties installing software on your home
computers, you could try calling Help Desk Central at 845-8300.
Web page is here.
- 10/5: Criteria for taking honors courses in spring 99:
If you already have an official TAMU GPR, you must have at least 3.4.
If you don't yet have an official TAMU GPR, you must have at least
1250 SAT score (or 28 ACT) and have been in the top 10% of your
high school graduating class, AND have at least 2.75 on your midterm
grade report for this semester.
Check in room 333 Bright for more details.
- 9/30: More scholarship info from the undergrad advising office:
"All undergraduate students in the Computer Science Department:
We currently have a number of scholarships to award. They range from $500 to
$1000 each. We are asking interested students to submit a scholarship
application. If you submitted an application prior to Monday, Sep 28th, it
was the old form and it did not provide enough information, please
resubmit. Only students who have submitted a new application
will be considered for these scholarships.
Any CS Dept undergraduate may submit an application, but
student's should have at least a 3.5 TAMU grade point average
to have a reasonable chance of being awarded one of these
scholarships. If you have not received grades from Texas A&M
yet, you will not be considered.
Applications may be obtained from Susan or Sandy in room 333
or from Leah in room 301 of HR Bright Building. Turn the
completed applications in to Leah in room 301 before 5:00 on
Wednesday the 7th of October."
- 9/30: Women in Engineering Conference: Oct 16-17.
Men and women are welcome. Provides opportunities to
speak with practicing female engineers about the job market, career
opportunities, grad school, and other questions. Mentoring
available. Must register by Oct 13. Cost is $10 and covers
Friday dinner, Saturday breakfast and lunch, 2 breaks, and a T-shirt
(scholarships are available if you can't afford it).
For more information, contact Toni Cleveland at 847-8887 or
toni@ee.tamu.edu.
- 9/28: A $500 scholarship will be awarded by the Houston Clear Lake Chapter
of the Society for Software Quality. Recipient will be chosen
based on his/her essay on the theme of "Reliability and Security
in Networks". See Susan Spears in room 333 Bright for more details.
- 9/28: The Computer Science Department's undergraduate office keeps an
informal list of tutors. If you'd like to hire one or be one,
check with Susan Spears in room 333 Bright. There's some more
information about tutoring on the CS Department's
mentoring
page, under "Academic Resources".
- 9/28: Co-op Career Fair, Monday Oct 5 and Tuesday Oct 6, Zachry Lobby.
For more about co-op, go here.
- There's a new section of the web page, the bulletin
board. It includes helpful hints from other class members about
software for your home computers, and requests for assistance from
class members. If you have questions about the set up in the labs
(Windows NT), ask your TA. If you have questions about Sun's Unix, ask
your TA or me.
- For several of the labs you will need the Keyboard class
from the Kamin book. You can download it
here. Warning: this is a
corrected version of the one in the book, so be sure
to use this version.
Back to beginning
This bulletin board is for communication between class members
with questions and answers concerning home computers, etc.
- Instructions for printing multiple postscript
slides on one page under Windows 95/98.
- Hitesh Patel, hkp5911@labs.tamu.edu, would like some help on how
to execute JDK on his IBM Aptiva E96. Please contact him if you
can help.
-
Back to beginning
This calendar lists all due dates for assignments as they are known for
- readings
- quizzes
- programs
- exams
- culture activities
Follow the links to get
- completed slides from lecture:
Slides are in postscript format.
Copies of outline slides are available here and from the
Bright building copy center:
1-5,
6-10,
11-17,
18-26,
27-30,
31-37,
(slide 38 not available),
39-51,
52-69,
70-93,
94-108,
109-130,
131-159,
160-208,
209-229,
230-268,
269-293.
- assignments
- exam reviews
Back to beginning
There is a lot more to Computer Science than you will be exposed
to through your normal coursework.
The purpose of the CS culture activities is to give you an
opportunity to learn about:
some of the various research areas (by attendance at research seminars
and reading technical articles),
and some of the computer scientists that have made significant
contributions to the field (by researching and writing a short biography).
During the course of the semester you must do at least 5 culture activities:
- attend two technical seminars sponsored by the Computer Science
Department
- read two technical papers
- research the biography of a famous computer scientist
For each activity, you must prepare a one page typed report.
Each report will be graded on clarity, organization, grammar and spelling.
Report due dates are indicated in the calendar.
Seminar Attendance.
To receive credit for this activity, you must attend the seminar.
Your report must include
- speaker's name and affiliation, the title and date of the seminar
- a summary of the seminar contents
- at least one comment about the seminar or question that it raised
in your mind, indicating that you have thought critically about
the material.
Acceptable seminars will be listed below as information becomes available.
If you are interested in
receiving credit for a seminar that is not listed, check with the
instructor in advance. Acceptable seminars include (these links may be
out of date and will be updated as information becomes available):
Technical Paper Report.
To receive credit for this activity, you must find and read
a technical paper in a computer science journal.
Articles in the following two
journals are usually at about the right level:
- Communications of the ACM
- IEEE Computer
Both are in the library.
Your report must include
- correct bibliographic information for the paper
(title of articled; names of all authors; name of journal with volume,
number, date and page numbers)
- a summary of the paper contents
- at least one comment about the paper or question that it raised
in your mind, indicating that you have thought critically about
the material.
Famous Computer Scientist Biography.
To receive credit for this activity, you must research
the biography of a famous computer scientist.
Automatically acceptable computer scientists are ACM Turing
Award winners. The Turing Award is the most prestigious technical award
in computer science. It is given to individuals who have made contributions
of lasting and major technical importance to the computer field.
Your report must include
- correct bibliographic information for your reference(s)
(if web page, then indicate URL)
- a short biography of the person
- a brief description of the person's key research contribution
- at least one comment about this research contribution or
question that it raised
in your mind, indicating that you have thought critically about
the material.
If you are interested in researching another computer scientist,
check with the instructor in advance.
(Thanks to Nancy Amato for this page)
Back to beginning
To help you in the lab, we have developed this
reference sheet that summarizes how to
log on and off, how to edit, compile, run and print files, etc.
There is much more to writing a good program than writing
a program that compiles and runs. Thus your programs will be graded
equally on four components:
- design -- 25%. You will be learning about this topic
all semester (and beyond). This refers to what kind of user interface
your program has, how your program is broken into
pieces, how the pieces communicate, what data structures and algorithms
you decide to use for the pieces.
- readability/documentation -- 25%.
Most software is written by many people and/or worked on over
a long span of years. Communicating your ideas to other people is
crucial. Here is the style guide.
Every program's documentation must include an assessment
that discusses
- any assumptions made about the input
- limitations of the program with regard to the requirements
- known bugs
- testing -- 25%. For most programs, it is practically impossible
to prove that the program is correct on all inputs. Instead,
you must try to convince skeptics that it mostly works right, by
testing the program on various inputs and documenting what you
have done. Here is the program testing
guide.
- correctness -- 25%. This will be evaluated by running your
program on our set of test cases.
Back to beginning
Java
Computing-Related at TAMU
- A useful
guide to
Unix is now available. You are encouraged to use the CS department's
Unix machine (dilbert) for your assignments. You can telnet to dilbert
from any of the open access labs on campus, and thus it is much more
available than the PC labs in the CS department.
- Computer Science Department, TAMU
- Student Computing and Information
Page: central source of information about student computing at TAMU.
- Schedule of short
courses
offered by the CIS Computer Help and Training Group. Includes introduction
to TAMU computing resources, introduction to the Internet, using netscape,
Unix.
Visualization and Graphics
Careers and Mentoring
Back to beginning