Objectives
This course is an introduction to the key concepts of computer science. We will be emphasizing computer programming, and specifically how to "translate" problem statements into computer programs to solve those problems. The language we will be learning is Java, which is an object-oriented language. By the end of the term, you can expect to:
- be proficient in formulating Java programs to solve a variety of problems,
- recognize and utilize basic "best practices" when developing and writing computer programs,
- be able to logically parse computer programs and determine what they do,
- have a solid foundation for more advanced computer science classes.
Textbook
Java Software Solutions --- Foundations of Program Design, 5th edition, by Lewis and Loftus. Published by Addison Wesly, 2007.
Grading
- Assignments: 45%
- Exam 1: 20%
- Exam 2: 20%
- Final Project: 15%
Homework Policy
An assignment turned in late within one day of the due time will be docked 25%. A program turned in later than one day of the due date but within two days will be docked 50%. A programming assignment turned in any time after this gets no credit.All programming assignments will be submitted by copying them into your folder in the CS 117 course directory.
Programming Environment
We will be programming in Java under the Linux operating system. This will be the setup in the Computer Science labs. We will be using the NEdit text editor and using the command line to run the Java compiler and runtime environment. A quick tutorial on this environment can be found here.
You may also do class work on your own personal computer. Instructions on how to set up your work environment on your own computer are on this page. Note that I cannot officially support your home setup, although I will be happy to try and answer questions whenever possible.
Getting Help
You are encouraged to talk to the prefector, the lab assistants, me, and/or other students if you have questions. Please see the notes on the difference between collaboration and plagiarism below.
Collaboration, Plagiarism, and the Difference Between the Two
There are two different kinds of working together: collaborating and plagiarism.Collaborating
- Collaborating is good.
- You are encouraged to collaborate on ideas and program design.
- Programming is often a social effort, and there is much you can learn by talking out the ideas in this class with each other.
- You can talk to each other, look at each other's programs to help fix problems, and share ideas.
Plagiarism
- Plagiarism is bad. DON'T DO IT!
- Any programs that you turn in should be your work.
- Even if you work with someone else and share ideas, you must still write your own program.
- If a piece of your program utilizes someone else's idea, you must
make sure to give that person credit in program comments. Example:
/** * Method to calculate the first ten prime numbers in a series. * Thanks to Mary Smith for helping me fix the logic in the * while loop in this method. */
- Taking someone else's program, changing the variables and comments around, putting your name at the top, and turning it in.
- Finding a similar program on the Internet, changing the variables and comments around, putting your name at the top, and turning it in.
- Finding a similar program in a book, changing the variables and comments around, putting your name at the top, and turning it in.
I may be using software to discover plagiarism if it occurs, and will not hesitate to notify the College if it does.