Course Description: The objective of this course is to introduce students to the fundamentals of computer programming and problem solving. It is designed as the first course for computer science majors. The emphasis is on the fundamentals concepts of computer science, including structured and object-oriented programming, syntax, semantics, testing/debugging, implementation, documentation, and recursion using the Java programming language. Students will be exposed to development on using text editing and an IDE (NetBeans).
Upon completing the course students will understand:
Programming Drills: We will have short in-class programming exercises almost every lecture day. The idea is that you learn by programming, so these exercises are like short drills covering programming fundamentals that can be completed in 5-15 minutes to help reinforce programming concepts. We will be setting aside 30-40 minutes of class time to complete the drills. Since our class is held in a computer classroom, the drills will be conducted on a computer, although you may wish to bring your own laptop. Since the point is to get you programming every class day, the drills are graded pass/no-pass and worth 2 points if turned in by the end of the day and 1 point if any time later. Normally students will show me the program in person and I will mark completion on a grading sheet. Email is also accepted, in particular, if you complete the drill before class. If emailed I will send a confirmation of pass/no-pass so it is your responsibility to check for the confirmation. You can also complete drills in advance and email or show them to me to get checked off. A little later in the semester you will be assigned problems to complete on the CodingBat or MyProgrammingLab website. It is OK to get help from fellow students on programming drills as long as you don't copy what another student has done without understanding what you copied.
Homework Assignments: There will be approximately 5 problem assignments throughout the course, although this is subject to change. Electronic submission via Blackboard is required. The homework assignments are more complex than the programming drills and require knowledge of programming and problem-solving. You are expected to complete homework assignments individually. You can get general help from other students but no copying of code should occur. If you need help see your instructor or a CS lab tutor. Copying someone else's program is considered plagiarism and a form of academic dishonesty. There are literally an infinite number of possible program solutions for any problem of moderate complexity, so programming plagiarism is not difficult to detect. A first offense results in a grade of 0 for all parties involved and a second offense results in a referral to the dean of students and a possible F for the class (or worse, if there are multiple offenses).
CS Lab: To work on your homework assignments we also have a computer science lab with Java installed on the machines for you to use during all hours the university is open. You will need to swipe your wolfcard (and be enrolled in a CS class) to gain access. The lab is located in SSB 170A. There is also a lab technician in the office at the bottom of the ramp to 170A. Be careful not to abuse the goodwill of the lab technicians. Their jobs are to help you by making sure that you have the resources that enable you to do your work. They are NOT obligated to train you in using the hardware or software. They are there if a computer is broken, you can't print, can't log in, etc. If you need help in understanding a particular application please confer with me or your fellow students. Note that Java is NOT installed on the general ITS lab computers.
Tutors: We will have some upper division CS students working as tutors in the lab. Their schedule will be posted sometime around the second week of class, but is subject to change.
Late Assignments: Assignments will be accepted late only up to the date that solutions are posted online. Homework will not be accepted after the date solutions are posted. Generally, solutions will be posted one week after the due date, but this may vary. For example, solutions may be posted the same day homework is due if there is a test coming up. The homework grade is penalized 5% for each day late.
Questions: If you have any questions, feel free to come in to my office. In general, I have an open door policy -- if I am available in my office, you are welcome to come by. An even better way to reach me is through email. I check my email frequently and you should receive a response quickly. Email is preferred over telephone and you will probably receive a faster response since I don't check voicemail very frequently. You can also contact me online via various instant messengers (see contact info on the home page). I'm often up late and will be glad to answer questions if I'm available!
Exams: There will be one midterm and one final exam. If you must miss an exam, notification must be made in advance. Exams will consist of problems to work through. Typically you will either have to describe the output of some code, write some code yourself, or provide short answers. Each exam will be cumulative since the course material builds upon previously covered material! This means you must keep up in the class, or you will quickly find yourself lost. You will be allowed open-book but closed-computer access for the exams.
Grading Breakdown: ;
Homeworks: 30% (all homeworks are
worth an equal
Drills: 15% (all drills are worth an equal amount)
Final Exam: 30%
The grade scale is shown in the table below. The grading curve may be lowered if necessary but it will not be raised. This means that if you received an 89% then you will at least get a B+, but may receive a higher grade based on the curve. (Final grades don't include a + or -).
An incomplete grade will only be given for a valid excuse (e.g. medical, death in the family). An incomplete grade does not let you take the class over again, your final grade will be assigned based on work submitted in class and work that remains to be submitted. A no-basis (NB) grade may be issued for students that submit nothing but did not drop the class.