Instructor: Pooya Shareghi
Email: shareghi@cs.uga.edu
Office: 223B Boyd Bldg
Office hours: Tue & Wed 1:30-2:30, Thu 11:00-12:00, & by appointment
Teaching assistant: Sadiq Charaniya sadiq@cs.uga.edu
- TA office hours: Mon 9:30-11:30, room 301 Boyd Bldg
- Lectures: 9:30--10:45 Tue., Thu. in room 404A Biological Sci. & 9:05--9:55 Wed., in room 208 Boyd
- Required Text: "Data Structures in Java: From Abstract Data Types to the Java Collections Framework" by Simon Gray.
Here is the ERRATA. - Linux Textbook (NOT required): "Linux: The Textbook" by Sarwar, Koretsky and Sarwar (or any other Linux book) (There are tons of tutorials about Linux on the Internet. You do not need to buy the book.)
- Prerequisite: CSCI 1301
- Course Description: Software development techniques in an object oriented computer language. An intermediate programming course emphasizing systems methods, top down design, testing, modularity, and structured techniques. Applications from areas of numeric and non numeric processing and data structures.
- Course Homepage: The URL for the course homepage is http://www.cs.uga.edu/~shareghi/cs1302 . The class schedule, projects, announcements, corrections, hints, and other basic course information can be found there.
- Grading: (TENTATIVE) There
will be at least four homework assignments, seven programming
assignments, a midterm, and a final. Their approximate weights will be
as follows.
- Attendance: 5%
- Midterm Exam: 15%
- Homework/Unannounced Quizzes: 10%
- Programming Projects: 40%
- Final Exam: 30%
- Course Overview:
This course will serve as an intensive introduction to the design and
implementation of significant software projects, as well as an
introduction to object-oriented programming using Java. Specific topics
include:
- Introduction to Linux
- Object-Oriented Concepts: Inheritance, Polymorphism, Data Encapsulation, Method Overriding, etc.
- Exceptions
- Stream Input and Output
- Recursion
- Linked Structures
- Searching and Sorting Algorithms
- Algorithm Analysis
- General Information:
- Language of instruction: Sun Java version 1.5
- Platform: Linux
- Labs: There are no formal labs for this class (unlike 1301).
-
Other: All programs will be compiled and run in a Linux environment
using Sun's Java compiler. This class does NOT support PC's. We expect
all work to be done in a Linux environment. If you do write your
projects on a PC, then it is your responsibility to:
- transfer the programs over to your Linux account, and
- make sure they work on your Linux account.
- Also for this class we will be using "electronic submission" to submit our projects. Therefore, disks are not needed.
- Programming Projects:
- The programming assignments will be written in Java 1.5, on Linux (Odin). You are responsible to make sure that your program compiles and runs correctly under Java 1.5 installed on Odin.
- You should work individually on all projects.
- Your projects will be tested by the TA or me. Test cases are generally pass (full credit) or fail (no credit). This means that if you fail every test case, you will get a very poor score on the assignment (part of the grade will cover your programming style, but your score will be poor nonetheless). You are responsible for testing your programs to ensure their correctness.
- Please start early on programming assignments. I will warn everyone of this several times, but surely people will ignore these warnings (computer scientists, by nature, are procrastinators). One suggestion: if you think that you can do a program in 3 days and you have 2 weeks to do it, do it during the first three days.
- Policies:
- Attendance:
- Attendance will be taken, and is a part of your grade. The class sessions are an integral part of the course. If you are absent it is your responsibility to find out what was covered in class and to catch up.
- If you plan to use some sort of technology during lectures (e.g. Laptops, Palm Pilots, Cell Phones, iPdos, Games of any sort [that includes sudoku], etc.) you MUST clear it with me first. Send me an e-mail or drop by my office and explain to me how you will use it and why it will enhance your learning experience.
- If you are going to be absent on the day of an examination, you must provide a University-approved excuse for your absence BEFORE the day of the examination.
- Late Submission:
- You will have a one day grace period. However, a 15% penalty will be placed on your grade if you choose to utilize the grace period. No project/assignment will be graded after the grace period. Note that a weekend counts just as regular days.
- If you are sick and have appropriate documentation, always let me know as soon as you get sick. It will be to your disadvantage to tell me after the fact that you were sick; you may not be excused from the regular due date.
- Note that scheduled downtimes of Odin are not an excuse for late work.
- Cheating:
- Cheating will not be tolerated in this class. You are allowed to discuss the programming assignments with other students as long as the discussion is very general. For example, discussing the need for using an array versus using a linked list is fine; however, discussing how to insert to a list or an array is not. If you have any doubts about what you are doing, ask the instructor. All cheating cases will be directly handed over to the Academic Honesty Department. Their punishment, if you are found guilty, carries with it a minimum of a failing grade in the course and a transcript notation.
- Note that copying materials from the Web is a violation of academic honesty. There are many other schools that teach Java; it is even possible that there may be code posted that could help you on an assignment. Copying anything from any Web site is forbidden and will be considered exactly as cheating on assignment. Furthermore, accepting code written by other students in previous or current offerings of this class will be considered a violation of the academic honesty policy.
- Unfamiliarity with the rules and regulations of the academic honesty environment at the University of Georgia will not be grounds for leniency.
- Withdrawals and Incompletes: You may drop the class during the first three days without an annotation ending up on your transcript. Thereafter until the drop day, you may drop the class with an annotation. An incomplete will only be considered in a case where there is a documented medical evidence and you are making satisfactory progress in the course. If you have a medical emergency and are not making satisfactory progress after the drop date, you may be offered a late withdrawal; this is up to the instructor.
- Attendance:
- Deviations: The course syllabus is a general plan for the course; deviations announced to the class by the instructor may be necessary.
- Academic Honesty:
- The overall UGA policy applies. All academic work must meet the standards contained in "A Culture of Honesty". Students are responsible for informing themselves about those standards before performing any academic work. The link to more detailed information about academic honesty can be found at http://www.uga.edu/honesty/ahpd/culture_honesty.htm
- The Computer Science Department Honesty Policy also applies (see below).
- Students are encouraged to consult with the instructor whenever help is needed. In addition to the instructor's scheduled office hours, students can make appointments for other times. E-mail is often a convenient way to ask short questions or to make an appointment.
Computer Science
Departmental Policy Statement
Academic Honesty
The Computer Science Department recognizes honesty and integrity as necessary to the academic function of the University. Therefore all students are reminded that the CS faculty requires compliance with the conduct regulations found in the University of Georgia Student Handbook. Academic honesty means that any work you submit is your own work.
Common forms of academic dishonesty which students should guard against are:
- copying from another student's test paper or laboratory report, or allowing another student to copy from you;
- fabricating data (computer, statistical) for an assignment;
- helping another student to write a laboratory report or computer software code that the student will present as his own work, or accepting such help and presenting the work as your own;
- turning in material from a public source such as a book or the Internet as your own work.
Three steps to help prevent academic dishonesty are:
- Familiarize yourself with the regulations.
- If you have any doubt about what constitutes academic dishonesty, ask your instructor or a staff member at the Office of Judicial Programs.
- Refuse to assist students who want to cheat.
All faculty, staff and students are encouraged to report all suspected cases of academic dishonesty. All cases of suspected academic dishonesty (cheating) will be referred to the Office of Judicial Programs. Penalties imposed by the Office of Judicial Programs may include a failing grade in the course and a notation on the student's transcript. Repeated violations are punishable by expulsion from the University. For further information please refer to the UGA Code of Conduct, available at the URL below.
http://www.uga.edu/judicialprograms/2006-07%20Code%20of%20Conduct.pdf