CS 102 Algorithms and Programming II

Objectives

·         Undertake real-world design task

·         Work as a member of a team

·         Practice communication in written & oral form

·         Learn more programming techniques

·         Practice independent learning!

General

CS102 gives you an opportunity to put the basic computer literacy, design and programming skills you learnt in CS101 into practice. The course has two components. The first is simply a continuation of CS101 aimed at expanding the range of techniques you have available to solve problems. These new techniques will be presented in formal lectures and, as in CS101, you will be given laboratory assignments designed to let you practice them. Material in this section includes recursion, files and some basic data structures, plus a little about object-oriented programming, event-driven architectures, searching and sorting. There will be written exams on these topics. The second component of the course is a semester-long design project. The ultimate goal is to produce a commercial-quality program which is fully documented, bug-free and easy to use. You will work in groups, each group selecting a different project. You will be expected to prepare a number of written reports and to present and demonstrate your project. These documents will include basic requirements, specifications, detailed design and user manuals. Groups will discuss each other's work and offer suggestions and criticisms on it so as to help improve the final product. Projects will be undertaken using Java. Students will be expected to display creativity and an ability to learn independently.


Important Announcements

Presentation Preparation Guidelines

You should make your presentation in 10 minutes. So, it should be an overview of your project, rather than the details. You should structure your presentation as follows. Your presentation may include other issues that you may want to present but it should contain at least these.

  1. Project Description. You should define the problem and give motivation for undertaking this project.
  2. Requirements, Expected Functionality, Target User Groups. Give a graphical overview of the functionality using use-case diagrams.
  3. User Interface Design, Database Design, Network Design. Depending on the nature of your project, you should give a brief overview of the user interface design, database design, how you use a database, network design, if applicable.
  4. System Analysis and Design. You should give an overview of your analysis and design. You should describe your design with UML Class diagrams. It should not contain too much details so the diagrams are readable. Your UML class diagram should only contain important instance variables and methods.
  5. Low Level Design. You should describe the important data structures and give pseudo-code algorithms for important methods.
  6. Conclusion and possible future extensions.
  7. It is not suitable all of the 5-6 students make the presentation since it is very short. 1-2 students make the presentation. We may ask questions (2 minutes for the questions) to each student to understand their contribution.

Demo Preparation

Your demo should be prepared beforehand to demonstrate the most important features of your project. Just write down the steps of your demo and use it for the demonstration. Demo should be completed in three minutes.

The Final Exam will cover all the topics.


First lab will be on

·         June 12, 2013, Wednesday 15:40-18:30 (Section 1), Labs: B303 and B304.

·         June 14, 2013, Friday 15:40-18:30 (Section 2), Labs: B303 and B304.


Assistant's Web Page for Projects and Assignments


Course Schedule:

·         Section 1 (Ugur Gudukbay): Monday 08:40-10:30 (B206), Tuesday 15:40-17:30 (B206), Thursday 10:40-12:30 (B206)

·         Section 2 (Ozcan Ozturk): Monday 10:40-12:30 (B206), Wednesday 08:40-10:40 (B206), Thursday 15:40-17:30 (B206)

Lab Schedule:

·         Section 1: Wednesday 15:40-18:30 (Labs: B303 and B304)

·         Section 2: Friday 15:40-18:30 (Labs: B303 and B304)


Teaching Assistants:

  1. Sitar Kortik (Sections 1 and 2), email: sitar@cs.bilkent.edu.tr
  2. Gizem Misirli (Section 1), email: gmisirli@cs.bilkent.edu.tr
  3. Amir Rahimzadeh Ilkhechi (Section 1), email: amir.rahimzadeh@bilkent.edu.tr
  4. Tolga Cekic (Section 2), email: tolga.cekic@bilkent.edu.tr
  5. Mahmut Sami Dikici (Section 2), email: mahmut.dikici@bilkent.edu.tr
  6. Nermin Samet (Section 2), email: nermin.samet@cs.bilkent.edu.tr
  7. Mehmet Karahan (Section 2), email: mehmet.karahan@bilkent.edu.tr
  8. Naveed Ul Mustafa (Section 2), email: naveed.mustafa@bilkent.edu.tr


Course Rules:

1.     Grading (Tentative):

1.     20% Midterm

2.     30% Final

3.     25% Project

4.     25% Laboratory Work (Programming Assignments)

2.     Those who get below 40 out of 100 from the midterm and below 50 out of 100 from the programming (lab) assignments will get an FZ grade regardless of their other grades. These students cannot take the final exam. Please also note that there is no retake exam for the summer courses. Your weighted average of midterm and final grades must be above 40 out of 100 not to fail the course.

3.     Attendance to the lectures and laboratory mandatory. Although not listed in the grade percentage, we may give quizzes randomly. We may assign a percentage of grading to quizzes and attendance.

4.     You will fail the course if the attendance is below a certain percentage.

5.     Those who fail to attend more than one lab without any excuse (a valid medical report, etc.) will fail the course.


Project Details:

There will be a course project that should be done in groups of five students. You should choose a project from the following list or you can come up with your own project topic. Project groups should do the labs together since some part of the project work will be done in labs. You should arrange your project/lab groups accordingly. You can also arrange project groups with students from different sections. In this case, you should arrange your lab schedule with the Teaching Assistants accordingly. It is NOT possible to attend the labs in different sections for the students belonging to the same project group.

Project Topics ans Requirements

You should follow the steps of the software life cycle for your project. i.e., You will prepare Software Requirements Specification Report, User Interface Design Report, Detailed Software Design Report, complete the Implementation (make a demonstration).

1.     You should select your project topic until 19 June 2013, Wednesday (Section 1) and June 21, 2013, Friday (Section 2) and send an email to sitar@ug.bilkent.edu.tr (and also to the TA of your section) specifying your project group members, project title. Specify CS102 Project in the subject of your e-mail.

3.     You will complete your Project Requirements Specification Stage until the labs on June 26, 2013, Wednesday (Section 1) and June 28, 2013, Friday (Section 2) and submit Project Requirements Specification reports at the beginning of the labs. Detailed information about how to prepare Requirements Specification Reports can be found in Requirements Specification Stage.

5.     You will complete your User Interface Design Stage until the labs on July 03, 2013, Wednesday (Section 1) and July 05, 2013, Friday (Section 2) and submit your User Interface Design reports at the beginning of the labs. Detailed information about how to prepare User Interface Design Reports can be found in User Interface Design Stage.

6.     You will complete your Detailed Design Stage until the labs July 10, 2013, Wednesday (Section 1), and July 12, 2013, Friday (Section 2) and submit your Detailed Design Reports at the beginning of these labs. Detailed information about how to prepare Detailed Design Reports can be found in Detailed Design Stage.

7.     In the rest of the term, you work on the implementation of your projects. Some tips about the implementation of the projects can be found in Implementation Stage.

9.     Each project group will make an approximately 12 minutes presentation and a 3 minutes demonstation of their projects on July 24, 2011, Wednesday (Section 1), and July 26, 2013, Friday (Section 2) in your lab (B303 and B304). Attendance to the project presentations and demos in the labs is mandatory. If a student fails to attend the presentations and demonstration, (s)he will fail the course directly. Each student must attend the presentations in his course section; although (s)he may attend the presentations and demonstration of other sections too.

You must upload your demonstrations and presentations to the computers provided by the assistants beforehand. We cannot change computers during the presentations due to tight schedule.

You should organize your presentation as

-     10 minutes presentation, and

-     2 minutes questions.

In your presentation, you should mention about the requirements of your project (What are the functionalities expected), your user interface design, high level class design of your project (use class diagrams), details of the important methods (you can use pseudo-code to explain them), and implementation details, like the language and data structures you used.

10.     Each project group must submit a CD containing three directories (July 24, 2011, Wednesday (Section 1), and July 26, 2013, Friday (Section 2). (The CD must be clearly labeled on the CD itself and must be put in a CD envelope (which also have a label indicating group members, the name of the project, etc.):

1.     Documentation:

§  Requirements Specification Report,

§  User Interface Design Report,

§  Detailed Design Report

2.     Implementation

§  Source Codes,

§  Executables,

§  README.TXT explaining how to install and run your program, required libraries, databases, etc.

3.     Presentation

§  Powerpoint Presentation


 

o    Schedule

(Select "Offerings", "Computer Engineering", CS102 (Your section), and "Course Detail".

o    Syllabus

(Select "Offerings", "Computer Engineering", CS102 (Your section), and "Syllabus".

Textbooks

o    Lewis and Loftus, Java Software Solutions, 7th Edition, Addison-Wesley, 2012 Pearson - Student Web Site: Contains Useful Materials, like Lecture Slides, Programming Examples, etc.

o    Walter Sawitch, Absolute Java - Third Edition, Addison-Wesley, 2007. Pearson-Absolute Java, 3/E, Walter Savitch

o    Other Sections CS102 (David Davenport) Course Web Page


Last updated: June 06, 2013