home page: http://www.cs.xu.edu/~mikeyg
Office hours: Mondays & Fridays 10-11, Tuesdays & Thursdays 11-12, Fridays 1-2, or by appointment.
Course Home Page: http://www.cs.xu.edu/csci180/07s
Schedule: Lectures are Mondays, Wednesdays, and Fridays 11:30-12:20 in Alter 223. The laboratory session meets on Wednesdays from 2:30-4:20 in Alter 223.
Required Texts: Barnes and Kölling, Objects First with Java: A Practical Introduction using BlueJ, 3/e, Prentice Hall/Pearson Education, 2006.
Other texts of interest:
- Downey, How To Think Like a Computer Scientist, free e-text:
http://ibiblio.org/obp/thinkCS/java.php
- We will be making extensive use of the BlueJ environment. Everything you ever wanted to know about BlueJ including extensive documentation about BlueJ can be found at http://www.bluej.org/
- We will also be making use of the Greenfoot extension to Bluej. Greenfoot software and documentation can be found at http://www.greenfoot.org/
- Other Java (v5.0) texts: If you don't like the two listed here there are numerous other Java texts on the market. I have always been partial to the texts by Savitch. Horstmann is another popular intro Java author.
Prerequisites: CSCI 170 (CS 1).
Required Work: In addition to regular attendance of the lectures and laboratory sessions and staying current with the assigned reading there will be weekly laboratory/homework assignments. These assignments are vital toward succeeding in the other portions of the class. Each laboratory assignment will be due on the following Monday, at the start of class. Most of the labs are too time consuming to complete during the lab period, therefore be prepared to spend time on your own in addition to your scheduled lab period. No late laboratory work will be accepted.
There will 4-6 programming assignments/projects. You will not be successful in this class if you choose not to complete ALL of the programming assignments. Each project will require:
- Electronic submission (via the HANDIN system or email) of your project code.
- Hardcopy submission of your project code.
- Email ( HANDIN, or hardcopy) submission of your project/programming log.
- A one-on-one meeting with the instructor to evaluate your project work.
All projects will be due at the start of class on the announced due date. There will be an approx 5% point penalty per day (including weekends) for late project work. No projects older than one week late will be accepted. There will also be an approx 5% point penalty for each day, 7 days after project submission, one fails to conduct the evaluation session.
Exams: There will be 1-2 non-cumulative in-class exams. The first is tentatively scheduled for Friday March 2. The cumulative final exam is scheduled for Wednesday May 9, 10:30-12:20. Use these dates to make your travel plans accordingly.
Attendance and Classroom Participation: While there is no formal attendance policy, you are expected to arrive prepared to ALL (approximately 42 lecture and 15 lab) course sessions. Furthermore you are expected to participate in the classroom and lab discussions and activities to the best of your abilities. Given the difficult nature of the material and the interactive lecturing approach that will be used, it is difficult to envision a student missing and/or arriving unprepared to a number of the class sessions and still succeed in the course.
Grading: Grades on all assigned work and exams will be based on correctness, clarity, documentation (quality and quantity), and style; presentation counts. Your grade for the course will depend primarily on the programming projects (45%). The exams will contribute 25%, while the laboratory assignments will contribute the remaining 30%.
The Department of Computer Science and Mathematics has adopted the following grading standards:
A: Exceptional. The student's attainments are out of the normal course, unusual and special.
B: Good. The student's performance is done rightfully or skillfully and is commendable.
C: Satisfactory. The student's accomplishments are sufficient for the needs of the course.
D: Minimal passing.
F: Failure.
Plus/minus modifiers on grades will be used solely at the instructor's discretion. In cases where the instructor believes the plus/minus modifiers help give a more honest and accurate assessment, they will be used.
A more detailed explanation can be found on the attached page.
Exceptions to the Rules: Almost all rules are designed to be broken under the correct set of extraordinary circumstances. It is strongly recommended that you communicate to the instructor at the earliest possible time any circumstances you feel warrant an exception (e.g. illness, religious holiday, personal and/or family crisis, etc.). Remember that going into hiding is probably the worst strategy you can adopt! There is a direct relationship between the amount of sympathy you can anticipate from an instructor and the amount of time remaining until a given assignment's due-date. Finally, remember that if you are uncomfortable discussing something directly with an instructor (e.g. personal problems) you can always contact someone in the Dean of Students Office and have that individual contact the instructor.
Course Objectives: This course, the second in the three course introductory sequence, will concentrate on "data structures": ways to store and represent information within the computer. The principle paradigm used is that of object-oriented programming; wherein data objects are responsible for performing data transforming operations on themselves. Object-oriented design is used to analyze problems and plan solutions. This includes specification, design, implementation, and testing. Techniques may include encapsulation, polymorphism, inheritance, templates, virtual functions, and dynamic storage allocation. Java will be the formal (i.e. programming) language used.
The successful student will, at the conclusion of the course, have gained greater mastery of the fundamentals of computer science, be a reasonably proficient Java programmer, understand the fundamentals of O-O principles and design, and be knowledgeable in the use of many traditional data structures. The traditional data structures studied will (hopefully) include stacks, queues, lists, sorted lists, binary trees, priority queues, and tables.
Honor Code: All work submitted must be your own. You are strongly encouraged to discuss the homework with your classmates or with the instructor, but you must work out, write up, create, or program your own solutions. Work you hand in must be conceived, created, and fully understood by you. The best way to ensure this is to craft your solutions/answers/programs when you are by yourself rather than during your discussions with others. This will insure that your work is based on your own understanding rather than on that of your classmates. To do otherwise is a violation of the college's policy on academic honesty and will be handled accordingly. Please refer to the rules described in the Student Handbook.
|
Department of Computer Science and Mathematics Grading Standards |
The department's grading standards are directed by the following taxonomy, based on Bloom's Taxonomy of Educational Objectives.
Knowledge is defined as the remembering of appropriate previously learned information and articulating it. This information includes terminology, specific facts, structures, notations and definitions.
Comprehension is the grasping and understanding of informational materials including the ability to: follow the lecture, read the text with understanding, give examples, and give summary restatements of the course material.
Application is the use of previously learned information in concrete situations to solve problems that have single or best answers. Activities demonstrating application apply known material in a very specific instance and include computing, constructing, extending, implementing,participating, showing, solving, and utilizing.
Analysis is the resolution of informational materials into their component parts, reflecting on such information to develop solutions, making inferences and finding evidence to support generalizations. Analysis includes facility with word problems and an ability to differentiate, distinguish, infer, limit, prioritize, separate and prove.
Synthesis is the creative application of prior knowledge and skills to produce a new or original whole. Activities demonstrating synthesis include proof writing, significant programming projects, and research papers and projects. Synthesis includes the ability to clearly and accurately communicate not only the result of one's creative endeavors but also the steps taken to achieve it.
Using this taxonomy, the Department interprets the undergraduate grading system as follows:
D: Minimum passing indicates the student demonstrates the appropriate knowledge.
C: Satisfactory indicates that in addition to knowledge, the student in general demonstrates comprehension and with some frequency demonstrates application.
B: Good indicates that the student regularly demonstrates both comprehension and application and demonstrates analysis and synthesis with some regularity.
A: Exceptional indicates that the student regularly demonstrates achievement in all categories of the taxonomy.
|