|
This course will introduce fundamental ideas in computer science while building skill in software development. Algorithms will be implemented as programs in the Java programming language. Object-oriented programming and data structures will be introduced in order to construct correct, understandable, and efficient algorithms. A deeper coverage of these topics will be presented in CPSC-035. CPSC-021 is appropriate for all students who want to be able to write programs. It is the usual first course for computer science majors and minors. Students with Advanced Placement credit or extensive programming experience may be able to place out of this course. Students who think that they may fall into this latter category should consult with any computer science faculty member.
These tips are for any course, but are especially important in CS 21.
During lecture, please ask questions when you are unclear about something. If you aren't sure about something, it is probable that many of your classmates are similarly confused, and quite possible that I forgot to present something.
| The text for this course is: | |
|---|---|
|
|
Useful Links
Grades will be calculated based on the following distribution:
Regular class attendance is expected. I am required to report to the dean any student whose repeated absences is impairing their performance in the class.
Please talk to me if regular class attendance is going to be a problem.
There will be a number of assignments made in this class. I expect every student to attempt each assignment and turn in the results. You are encouraged to complete every assignment as this is one of the most effective ways to learn the material. Do not expect to pass this class if you do not submit something for every assignment.
When homework is assigned, a due date will be made available (usually
Wednesday Monday at 11:30pm). You are responsible for
submitting your answers before the deadline.
If you know that for some reason you will not be able to submit the assignment before the deadline, you should contact me in advance of the deadline. Extensions are only granted in exceptional circumstances, but need to be done in advance.
Programming assignments will be graded on both correctness as well as programming style. Good programming style includes the following:
(This may be revised during the course)
Programming assignments will be graded on a 5 point scale. A perfectly
working solution is only worth 4 points. Doing extra credit, using good
programming style, and effective use of comments are necessary to have a
higher score. In general, the breakdown is as follows
Programming projects will generally consist of multiple assignments, but I will only be evaluating one of them.
If a portion of your program is not working correctly, please clearly indicate it in the comments at the beginning of the file and in the methods that are not working. Problems that I discover are graded more severely than those you discover.
The College's Judiciary Committee (CJC) handles plagiarism offenses. The penalties for plagiarism are quite severe: usually the first offense leads to failure in the course, but it may additionally result in suspension. The following constitutes plagiarism on CS programming assignments:
Under no circumstances may you hand in work done with (or by) someone else under your own name. Your code should never be shared with anyone; you may not examine or use code belonging to someone else, nor may you let anyone else look at or make a copy of your code. This includes sharing solutions after the due date of the assignment. Failure to abide by these rules constitutes academic dishonesty and will lead to a hearing of the College Judiciary Committee.
Discussing ideas and approaches to problems with others on a general level is fine (in fact, we encourage you to discuss general strategies with each other), but you should never read anyone else's code or let anyone else read your code. If you are in doubt about some help that you received, then credit the person(s) from whom you got help by citing them in a comment at the top of the file and discuss the situation with your instructor.
The CS21 clinician is an additional resource to help you with this class. The clinician is available for 3 hours per week and will help you with any problems you are having in the class. If you use the clinician to help you with your homework, please cite their help.
|
Clinician: Meggie Ladlow |
|
Clinician: Scott Blaha |
|
Clinician: Megan Schuster |
| WEEK | DAY | ANNOUNCEMENTS | READING | HW |
| 1 | Jan 16 | Using Unix #1 (4-5pm) (Jan 17) | Java and Unix Introduction
|
HW 0 |
| Jan 18 | Using Unix #1 (8-9pm) | HW 1 | ||
| Jan 20 | ||||
| 2 | Jan 23 | Using Unix #2 (4-5pm) (Jan 24) | Conditionals and Loops |
|
| Jan 25 | Using Unix #2 (8-9pm) | HW 2 | ||
| Jan 27 | Last Day to Add/Drop | |||
| 3 | Jan 30 | Vim Tips and Tricks (4-5pm) (Jan 31) | Using Objects and Classes |
HW 3 |
| Feb 01 | ||||
| Feb 03 | No lecture, open lab | Writing Classes |
||
| 4 | Feb 06 | HW 4 | ||
| Feb 08 | Object Oriented Design |
|||
| Feb 10 | ||||
| 5 | Feb 13 | Graphics |
HW 5 | |
| Feb 15 | Arrays |
|||
| Feb 17 | ||||
| 6 | Feb 20 | HW 6 | ||
| Feb 22 | ||||
| Feb 24 | Notes on the midterm exam | |||
| 7 | Feb 27 | Lab time | ||
| Mar 01 | In-Class review for exam | |||
| Mar 02 | Midterm Exam (Evening) [7-9pm] SCI 181 | |||
| Mar 03 | No class | |||
| Mar 06 | Spring Break | |||
| Mar 08 | ||||
| Mar 10 | ||||
| 8 | Mar 13 | Searching and Sorting |
HW 7 | |
| Mar 15 | ||||
| Mar 17 | ||||
| 9 | Mar 20 | Interfaces and Inheritance |
||
| Mar 22 | ||||
| Mar 24 | Last Day to Withdraw with W | |||
| 10 | Mar 27 | Inheritance and Polymorphism |
HW 8 | |
| Mar 29 | ||||
| Mar 31 | ||||
| 11 | Apr 03 | Exceptions, Recursion |
HW 9 | |
| Apr 05 | ||||
| Apr 07 | ||||
| 12 | Apr 10 | Linked Lists |
||
| Apr 12 | HW 10 | |||
| Apr 14 | ||||
| 13 | Apr 17 | Binary Search Trees |
||
| Apr 19 | ||||
| Apr 21 | ||||
| 14 | Apr 24 | |||
| Apr 26 | Notes on the final exam | |||
| Apr 28 | ||||
| May 04 | Final Exam Period: May 4 - 13 Final Exam - SCI 199 (Cunniff) - 7-10pm |
|||
In order to submit assignments for this class, we'll be using a program called handin21. Simply run this program from the command prompt and follow the prompts.
Note: the other section of this course is using a program called cs21handin. Please don't get these two confused.