CS115: Principles of Computer Science, Fall 2009
Course Description
CS 115 gives the introduction to programming with emphasis on computer science concepts,
particularly on the concepts of abstraction in problem solving. Students will learn to
develop computer programs for problem solving, develop proficiency for programming in a
modern programming language (Java), understand the basic principles of object-orientation
and application to problem solving, and understand the selected advanced concepts in OO
and Java. The course will also introduce basic concepts of computer systems and programming
environments.
Announcements
What is new?
- Nov 18: There is no class on Nov 30, as the instructor will be attending an IEEE international conference.
- Nov 18: The next (also the last) lab session is scheduled in class Dec 2 (Wed); see here
and prepare for it.
- Nov 18: homework programming assignment 5 (the last one) is released; see Homework 5
, due class time Dec 2 (Wed) IN THE LAB SESSION.
- Nov 4: Quiz two will be held on Nov 11, Wed, in class. Coverage will mainly be chapters 5 - 9 (particularly: arrays and loops, classes and objects).
- Nov 4: The next lab session is scheduled in class Monday Nov 9; see here
and prepare for it.
- Nov 4: homework programming assignment 4 is released; see Homework 4
, due class time Nov 16 (Monday). You need to review chapters 7, 8 and 9.
- Oct 28: There are typos in the homework assignment. The bonus question should be 6.34 Checker board, and it is of 30 pts.
- Oct 21: homework programming assignment 3 is released; see Homework 3, due class tim Oct 28 (Wed).
- Oct 19: Today's class is in lab ENG 233; The lab assignment is here. You may preview it to make the lab session more efficient.
- Oct 14: There will be a lab session in class time on Oct 19 in ENG 233.
- Oct 2 : Reference code of homework 2's problems is here.
- Sep 30: Midterm is scheduled: 3:05-4:20PM, Wednesday, Oct 7, 2009, ENG 107; No Make-Up exam. It covers chapters one through five (methods).
- Sep 30: Some reference code of Lab 3 assignment is here.
- Sep 23: Get help from the Computer Science tutor in the Math Learning Center (Eng 136) Mondays – Thursdays 1:30 – 4:00. Please note that the homework assignment MUST done independently. So, do not try asking the tutor to do the homework.
- Sep 23: homework programming assignment 2 is released; see Homework 2
, due class time, Sep 30 (Wed), 2009.
- Sep 23: the reference code for Lab 2 assignment is here in ZIP
. Note that reference code of even-numbered exercises can be found found at Web. It is very important to read others' good examples to learn writing a professional program.
- Sep 9: Starting this week, there is a Computer Science tutor available in the Math Learning Center (Eng 136) Mondays – Thursdays 1:30 – 4:00. Please note that the homework assignment has to be done independently.
- Sep 2: homework programming assignment 1 is released; see Homework 1
, due class time, Sep 14, Monday. Doing homework is extremely important!
- August 24: To know your UCCS IT account name and password - which will be needed in the first class's lab session. If you do not know it, ask the IT front desk residing in the University library.
- August 24: Download lecture notes, and download supplements for JDK installation.
Required Background and Expectation
- Prerequisite: high school algebra and familiarity with computer concepts including
file operations and text editing.
- Expectation: although no prior programming experience is assumed, the pace of this
course will be brisk since there is much material to cover. This course serves as one
of the important cornerstones of the CS curriculum. Be prepared to work hard. The
reward will be great!
Textbook
- Required: Y. Daniel Liang,
Introduction to Java Programming (you may order it via Amazon.com),
Prentice Hall, 7th edition (ISBN-10: 0136042589).
The text may be complemented by some additional reading materials.
Student resources can be found at Web.
Course Tentative Schedules
- Introduction (1 lecture)
- Primitive Data Types (2 lectures)
- Selection Statements (2 lectures)
- Loops (2-3 lectures)
- Methods (2 lectures)
- Arrays (3 lectures)
- Objects and Classes (3 lectures)
- Strings & Text I/O (2 lectures)
- Inheritance, Polymorphism, and ArrayList (3 lectures)
- Abstract Classes and Interfaces (2 lectures)
- Exception Handing and Object-Oriented Design (1-2 lecture)
- Lab sessions (6-7 lectures)
- See course syllabus for more details.
Homework Programming Assignments
- Will be announced as the class progresses.
Exam Schedules
- Midterm is tentativelly scheduled: class time, Wednesday, Oct 7, 2009, ENG 107; No Make-Up exam.
- Final Exam: 1:40PM - 4:10PM, Wednesday, Dec 16, 2009, ENG 107; No Make-Up exam.
- All exams are close-book and close-notes: a pencil + your brain.
- The best way to prepare for exams is to do the review questions in the textbook,
do and review the lecture examples and homework programming assignments,
review the textbook according to the lecture notes, and of course attend all lectures and labs.
Some in-class quizzes may help.
- All exams and quizzes will be carefully and fairly graded by the instructor himself.
- If you schedule another exam that overlaps with these exams, you need to
make arrangements with the other instructor to take that exam at another time.
- In case of any change, it will be announced in the class and on the course Web
site at least one week before the change takes place.
Grading Scale
| Percentage |
Grade |
| [90, 100] |
A |
| [87, 90) |
A- |
| [84, 87) |
B+ |
| [80, 84) |
B |
| [75, 80) |
C+ |
| [70, 75) |
C |
| [65, 70) |
D+ |
| [60, 65) |
D |
| Below 60 |
F |
Borderline cases will be resolved by student participation in class providing
intelligent questions, informative comments, and constructive criticisms.
Grading Percentage
| CS115 |
| In-class discussion and labs: 10% |
| Homework programming assignments: 35% |
| In-class Quizzes: 8% |
| Midterm: 17% |
| Final Exam: 30% |
All exams and quizzes will be carefully and fairly graded by the instrutor himself.
The attendance policy is as follows:
Students should attend all lectures and labs. Missing lectures are extremely risky since the
teaching pace is fast and the course is heavy! There will be concepts and examples presented
in class that are not covered in the notes. Class discussion is always an important and
useful component of each class.
Computer Science Department Policy: "Students in 100 and 200 - level CS courses can have
at most four absences, after which they would lose at least one letter grade."
Attendance is taken for all 100 and 200 level CS classes. Please contact me
by email if you need to miss class and it will be handled case by case.
Documentation may be required (e.g. a doctor's note).
Cheating
Unfortunately, it is necessary to mention it here. Cheating on an exam or on homework may
result in a grade of F in the course or expulsion from the University. Copying the work
of another student whether that work is a homework program or an exam problem is cheating.
Obtaining code via the Internet is cheating. You must write your own programs completely
and not modify some other student’s work to disguise that the work has not originated from
you. It is usually quite easy to see through such disguises. You are always welcome to
discuss concepts with fellow students. You must draw a sharp line between discussing
a concept and its implementation in a program. The former cooperation is allowed the
latter is cheating. You are always welcome to chat with me about the design of a program.
I shall take great care in clearing as many obstacles for you as possible but will not take
away from you the challenge and learning value that you will derive from doing most of a
problem yourself.
Homework assignment submission requirement
Each student must accomplish the assigned homework problems individually.
While you may discuss the concepts and algorithms before developing the program solutions,
the solutions and the code, which you hand in, must be written by yourself. You may not
work together on the actual coding of the assignments. The turning in of duplicate
(or near duplicate) code will be seen as cheating and will result in a zero grade for
all students involved.
Each homework assignment may contain a set of problems with a due date specified usually
one week from the date the problem set is assigned. Assignments will be posted on my website
and handed out in class. Each problem in a problem set shall receive a separate grade.
Each homework assignment should be turned in at the beginning of class on the due date.
In case you cannot complete a problem by the beginning of class on the due date,
you can take another two days to work on the problem and turn it.
The penalty for such a period late submission will be 20 percent.
If you hand the problem in two class periods late, the penalty shall be 40 percent
for that problem. Beyond one week from the specified due date the problem shall
NOT be graded for any reason.
Please assemble all homework in an envelope or folder of your choice. I shall not accept loose homework.
The folder should keep the contents from falling out and contain:
A clear header including your name (and your partner name in case some lab assignments), assignment number and problem number.
A copy of the homework assignment sheet.
A printout of all source code and supporting comments.
A printout of the output from each program.
A USB drive (or a CD-ROM) containing all source code needed to compile and run your program.
This diskette must not contain any files unrelated to the problem set. I shall compile and run each program
that you submit as well as examine your source code. This source code must be nicely and consistently formatted.
Unformatted or difficult to decipher code shall result in a grade reduction for the particular problem being graded.
If your problem is one or two class periods late you must clearly state this on top of the first sheet.
A self-assessment of each problem. This should indicate whether you believe you have completed the problem successfully.
It may also discuss any special difficulties that you have had in solving the problem.
Programs will be graded by compiling and running them on a PC configured like the lab computers.
Make sure that the programs can be tested at the DOS console, by the use of javac and java commands!!
I will NOT use any IDE to grade the programs, though you can use any IDE such as NetBeans to
develop the programs. Please verify the contents of your drive or CD before turning it in.
It has not been uncommon to receive drives that contain nothing. That is the grade that is awarded.
If a program does not compile at the DOS console, it shall receive an automatic grade of 0.
If a program produces run-time or logical errors you shall receive only partial credit.
Other Course Policy
- The last day to drop without special permission from the dean: Friday, Oct 30, 2009
- Adherence to the University's Code of Ethics will be strictly
monitored and enforced. This will be applicable to assignments, projects and
examinations.
- Academic Integrity violations, such as plagiarism, cheating on an exam
etc., will result in a series of actions and penalties including the student
failing the class.
- If you have a disability for which you are requesting an accommodation,
you are encouraged to contact the Disability Services Office,
located in Main Hall #105 (Phone # 255-3354), within the first week of classes.
- Any work submitted for a grade must include the following statement and be
signed and dated. If this is missing or not signed and dated, the work will be
returned ungraded.
- I have neither given nor received unauthorized assistance on this work.
- Signed:
- Date:
Useful Web Links