- Welcome to Duck.
- Select a Term and Class to find a syllabus.
- Set Class = CA203B for contact information.
|Jun 05, 2012||Introduction. Classes and Objects||1||ppt/pdf||ppt/pdf||Install BlueJ & Netbeans|
|Jun 12, 2012||Classes & Object Interaction||2||ppt||ppt/pdf||HW1|
|Jun 19, 2012||Abstraction, types, modular design||3||ppt/pdf||HW2|
|Jun 26, 2012||Simulations & libraries||5||ppt/pdf||Test 1|
|Jul 03, 2012||ArrayLists||4||ppt/pdf||HW3|
|Jul 10, 2012||Designing Software||6||ppt/pdf||HW4|
|Jul 17, 2012||Searching Recursion Sorting||7||ppt/pdf||ppt/pdf||HW5|
|Jul 24, 2012||GUI&Netbeans||ppt/pdf||Test 2|
|Jul 31, 2012||Inheritance, Interfaces & polymorphism||8||ppt/pdf||HW6|
|Aug 07, 2012||Collections & Generics||9||ppt/pdf||HW7|
|Aug 10, 2012||Final||Final Due|
This course, together with CSC 221, forms an introduction to problem-solving and programming. Building upon CSC 221, this course focuses on the design and analysis of larger, more complex programs. The process of breaking down a complex problem into manageable pieces and building a working system will be stressed throughout. Since part of this process is choosing the appropriate algorithm to solve the problem at hand, we will investigate the design and analysis of some standard and useful algorithms. Similarly, we will consider various ways of structuring and transforming information so as to make it efficiently accessible and manageable.
Specific topics covered in the course will include: GUI programming and data structures (e.g., vectors, pointers, classes), defining and using abstract data types (e.g., lists, stacks, queues), static vs. dynamic implementations of data structures, and recursion as an alternative to iteration. The structures and concepts covered in this class will be a starting point for further development in subsequent computer science courses.
The specific goals of this course are:
- To know and be able to use basic programming tools for object-oriented problem solving (e.g., classes, encapsulation, data hiding, and templates).
- To appreciate the role of algorithms and data structures in problem solving and software design, recognizing that a given problem might be solved with a variety of algorithms and structures (e.g., object-oriented design, searching and sorting, recursion, stacks, queues, and linked lists).
- To be able to design and implement a program to model a real-world system, and subsequently analyze its behavior.
- To develop programming skills that can serve as a foundation for further study in computer science.
Learning to program requires a consistent time commitment, as each new concept and programming technique builds on those that came before. There will be four quizzes and six programs. There will also be one midterm and one final. To allow for unavoidable absences, the lowest quiz grade will be dropped. Periodically, there will be in-class exercises that will be collected and graded.
To demonstrate problem solving and programming skills, students will complete 5-6 programs throughout the semester. Each assignment will involve the design and implementation of a Java program, and may also include a written component in which the behavior of the program is analyzed. Late assignments will be accepted up to 14 days after their due date, with a 1pt a day penalty for the first week, and a 2pt a day penalty for the second week.
|Grades based on||%|
|Four quizzes||20 %|
|In class projects||10 %|
|Five-six programming assignments||30 %|
|Midterm 75-minute tests||20 %|
|One 100-minute final exam||20 %|
Depending on class performance, some shifting of grades (in an upward direction only) may occur as final letter grades are assigned.
Regular attendance is expected of all students. If you must miss class for a legitimate reason, it is your responsibility to make up missed work. Quizzes and assignments will not be rescheduled except in extreme circumstances.
Policy on CollaborationIn addition to the college policy on cheating and plagiarism as spelled out in the Student Handbook the following guidelines hold for this course.
- All quizzes and tests are closed book, with no collaboration between students allowed.
- Programming assignments allow only limited collaboration. You may ask for debugging help from your peers, but at no time should another student assist in the design or coding of your program. The design and implementation of your program should be entirely your own work!
Violations of the above collaboration will be dealt with severely, with possible outcomes including failure in the course and expulsion from the university. In the case of programming assignments, you are encouraged to start early so that there is time to seek help from the instructor as the need arises.
Objects First with Java, 5th edition
David Barnes and Michael Kolling
Prentice Hall, 2012