Download 600.107: Introduction to Programming in Java Syllabus -

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
600.107: Introduction to Programming in Java
Syllabus -- Summer 2012
Lectures: Mon-Tue-Thu-Fri 9:30-noon, Shaffer 1
Instructor: Dr. Joanne Selinski
Office: New Engineering Building, Room 222, (410)516-4117
E-mail: joanne at cs.jhu.edu
Office Hours: Monday, Tuesday and Thursday afternoons (roughly 1:30-3), or by
appointment, or just drop in.
Catalog Description: This course introduces the fundamental programming concepts
and techniques in Java and is intended for all who plan to use computer programming in
their studies and careers. Topics covered include control structures, arrays, functions,
recursion, dynamic memory allocation, simple data structures, files, and structured
program design. Elements of object-oriented design and programming are also
introduced. Prerequisite: familiarity with computers. [General] 3 credits
Course Web Pages: www.cs.jhu.edu/~joanne/cs107, blackboard.jhu.edu and a Piazza
site for Q&A.
These are VERY important sources of course information and must be checked
regularly!!
Required Text: Dean & Dean, "Introduction to Programming with Java: a Problem
Solving Approach", McGraw-Hill Higher Education, 2008.
Weekly reading and exercises will be assigned from this text. It is available in the JHU
bookstore, and from various on-line sources. Supplemental materials will be available on
the course webpage.
Recommended Reference: Many students like to use a more reference style book when
writing programs, and for later coursework in computer science/programming. Here are
some popular ones. You can find them for purchase on-line. Be sure to get the most
recent editions. The Java language class library documentation is also available on-line
and serves as a great reference.



D. Flanagan, "Java in a Nutshell", O'Reilly.
Deitel & Deitel, "Java How to Program", Prentice-Hall.
Arnold, Gosling & Holmes, "The Java Programming Language", Addison-Wesley
Professional.
Course Outcomes: Upon completion of this course students should:

Understand the basic concepts and principles of structured programming.




Understand the basic concepts and principles of object-oriented programming.
Produce sample test cases, pseudocode or an incremental coding plan for a given
programming problem statement.
Be able to design, write and test a Java program to implement a working solution
to a given problem specification.
Understand the operation of common data structures and algorithms.
Course Topics: We will cover basic concepts and techniques for programming including
algorithms, variables, control structures (decision and looping), text files, method writing,
simple class design and usage, and arrays. We will also introduce recursion, sorting and
searching, polymorphism, and exceptions (if time permits). We will not cover any GUI
material, however you are welcome to read and experiment on your own (just not in your
assignments). A more detailed schedule is given below, and may be updated as the course
progresses.
Grading: Your course grade will be determined by the weighted average of your grades
based on the following breakdown.
in-class lab exercises & participation
15%
weekly programming assignments
25%
midterm: Chapters 1-4, 11 & 15 on 7/17
20%
final: Chapters 5-10, 12-15, Appendix 6 & 8 on 8/3 40%
Each programming assignment will be assigned a point value based on its level of
difficulty and anticipated completion time. Your grade will be based not only on
correctness, but also on style and good programming techniques. NO CREDIT WILL
BE GIVEN FOR PROGRAMS THAT DO NOT COMPILE! NO CREDIT WILL
BE GIVEN FOR LATE ASSIGNMENTS! If a program is not working perfectly by the
due date, turn it in as is with detailed comments as to which parts are complete, and
which are not. (Remember: It must compile!) Include pseudocode (as comments) for
incomplete parts. Exceptions for illness will be given only by Dr. Selinski. Exceptions for
poor planning or heavy workloads will NOT be given. Letter grades for the course will be
subject to my evaluation of your overall class performance. Please keep your own record
of your grades so that you will know your standing in the course and can double-check
my records. Grades will also be available on Blackboard. Expect to spend roughly 1520 hours per week outside of class on your assignments and reading.
Assignment Logistics/Computer Use: All programming assignments must compile with
the standard Java compiler. Windows users can get it freely from the Java website. Mac
users must get it through Apple. (Links for download are on the main course webpage.)
You must use at least the Java 5 version. NO CREDIT WILL BE GIVEN FOR CODE
THAT DOES NOT COMPILE! Although many students prefer to write programs on
their own computers, everyone should have access to the Krieger 160 campus computer
lab. This lab has machines running some version of the Windows operating system. Do
not store your program files on public machines - doing so will be considered a serious
violation of the Ethics Code. You are strongly encouraged to use jGRASP (available on
those machines, and from free online downloads at www.jgrasp.org) for program
development. Assignments will be tested and graded in jGRASP. Assignment submission
will be through Blackboard. You must keep a back-up copy of every program you
submit.
Collaboration: The only group work in this course will be problems solved during
lectures, and written (ungraded) homework problems. You must solve your graded
programming assignments without consulting other students. For homework help you
may only consult the instructor, the teaching and course assistants, or tutors. You must
abide by the Computer Science Academic Integrity Code (see below), as well as the
University's Ethics Code.
Attendance: You are expected to attend and actively participate in all class sessions.
Inevitably, students who do not attend regularly do poorly on tests and assignments. You
are responsible for all material presented while you are absent. If you have trouble or
need extra help, don't hesitate to contact me! Once you get behind, it is very difficult
to catch up, especially during a summer session.
Course Schedule: All items in this syllabus are subject to change to correct errors or if
there is unanimous agreement that a change is desirable.
Day
Topic
7/2 & 7/3
Ch 1: Hardware, software, programming overview, course overview.
Ch 2: Algorithms & Design
7/5 & 7/6
Ch 3: Variables, arithmetic operators, constants, strings, statements, input
and output.
Ch 11: More on data types and operators.
7/9
Ch 4: Decision statements (if, if/else, switch), relational operators, boolean
expressions.
7/10 &
7/12
Ch 4: Repetition statements (while, do/while, for), nesting.
Ch 15: Input and output text files, Buffered Reader input, StringTokenizer.
7/13
Ch 5: Math & Character classes, String & Random classes.
Writing static methods in program classes. Appendix 6: Javadoc.
7/16
Ch 6 & 7: Writing instantiable classes, accessors & mutators.
7/17
Midterm on Chapters 1-4, 11 & 15.
7/19 &
7/20
Ch 8: Software engineering, helper methods.
Ch 9: Class variables & methods.
7/23 &
7/24
Ch 10: One dimensional arrays of primitives, two dimensional arrays, arrays
of objects.
7/26
Ch 10: Array algorithms: sorting & searching, analyzing performance.
7/27
Appendix 8: Recursion.
7/30 &
7/31
Ch 12 & 13: Interfaces, inheritance, OO Design.
8/2
Ch 14: Exception handling.
Course wrap-up.
8/3
Final on Chapters 5-10, 12-15, Appendix 6 & 8
Computer Science Academic Integrity Code
Cheating is wrong. Cheating hurts our community by undermining academic integrity, creating mistrust,
and fostering unfair competition. The university will punish cheaters with failure on an assignment, failure
in a course, permanent transcript notation, suspension, and/or expulsion. Offenses may be reported to
medical, law or other professional or graduate schools when a cheater applies.
Violations can include cheating on exams, plagiarism, reuse of assignments without permission, improper
use of the Internet and electronic devices, unauthorized collaboration, alteration of graded assignments,
forgery and falsification, lying, facilitating academic dishonesty, and unfair competition. Ignorance of these
rules is not an excuse.
Academic honesty is required in all work you submit to be graded. Except where the instructor specifies
group work, you must solve all homework and programming assignments without the help of others. For
example, you must not look at anyone else's solutions (including program code) to your homework
problems. However, you may discuss assignment specifications (not solutions) with others to be sure you
understand what is required by the assignment.
If your instructor permits using fragments of source code from outside sources, such as your textbook or
on-line resources, you must properly cite the source. Not citing it constitutes plagiarism. Similarly, your
group projects must list everyone who participated.
Falsifying program output or results is prohibited.
Your instructor is free to override parts of this policy for particular assignments. To protect yourself: (1)
Ask the instructor if you are not sure what is permissible. (2) Seek help from the instructor, TA or CAs, as
you are always encouraged to do, rather than from other students. (3) Cite any questionable sources of help
you may have received.
On every exam, you will sign the following pledge: "I agree to complete this exam without unauthorized
assistance from any person, materials or device. [Signed and dated]". Your course instructors will let you
know where to find copies of old exams, if they are available.
For more information, see the guide on "Academic Ethics for Undergraduates" and the Ethics Board web
site (http://ethics.jhu.edu).