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 lab.
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 these in class. 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
You can see your final exam papers on Monday, August 1, 2011. Absolutely no other times.
Makeup Exam: There will be a makeup exam on 27 July Wednesday at 10:00
for those who cannot attend the Midterm or Final and have a valid medical report.
The midterm exam will be in my room EA 524.
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.
- Project Description. You should define the problem and give motivation for undertaking
this project.
- Requirements, Expected Functionality, Target User Groups. Give a graphical overview of the functionality
using use-case diagrams.
- 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.
- 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.
- Low Level Design. You should describe the important data structures and give pseudo-code algorithms
for important methods.
- Conclusion and possible future extensions.
- 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.
Final Exam will be at 09:00 on July 25th, Monday, 2011. The final exam will be a closed-book
exam. You can use an double-sided A4 size cheat sheet. You can write anything you want
on the cheat sheet. However, the cheat sheet must be prepared with your own handwriting and
must be submitted together with your exam. You cannot photocopy another student's cheat sheet
nor you can prepare one with a Word processor.
First
lab will be on
·
June 10, 2011, Friday 13:40-17:30 (Section 1),
·
June 10, 2011, Friday 08:40-12:30 (Section 2).
Lab
groups are as follows:
·
Section 1: Wednesday 13:40-17:30, Friday
13:40-17:30, Labs: B303 and B304
o
B303: Lab
Section 1a, Teaching Assistant: Ates Akaydin
o
B304: Lab
Section 1b, Teaching Assistant: Hayrettin Erdem
·
Section 2: Wednesday 08:40-12:30, Friday
08:40-12:30, Labs: B201 and B202
o
B201: Lab
Section 2a, Teaching Assistant: Sitar Kortik
o
B202: Lab
Section 2b, Teaching Assistant: Habibe Guldamla Ozsema
Course
Schedule:
·
Section 1 (Ugur Gudukbay): Monday 13:40, 14:40
(EB101), Tuesday 13:40, 14:40 (EB101), Thursday 13:40, 14:40 (EB101)
·
Section 2 (Melih Onus): Monday 08:40,
09:40 (EB101), Tuesday 08:40, 09:40 (EB101), Thursday 08:40, 09:40 (EB101)
Lab
Schedule (See the list above for lab sections):
·
Section 1: Wednesday 13:40-17:30 (Labs:
B303 and B304), Friday 13:40-17:30 (Labs: B303 and B304)
·
Section 2: Wednesday 08:40-12:30 (Labs:
B201 and B202), Friday 08:40-12:30 (Labs: B201 and B202)
Course
Rules:
1.
Grading (Tentative):
1.
20%
Midterm
2.
30%
Final
3.
30%
Project
4.
20%
Laboratory Work (Programming Assignments)
2.
You
must get at least 30 / 100 from the final exam and 30 / 100 from the project to
pass 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, since some part of the projects are done in labs.
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 15 June
2011, Wednesday and send an email to akaydin @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.
2.
You
will start working on your Project Requirements
Specification stage in the labs on June 15,
2011, Wednesday. Detailed information about Requirements
Specification Stage can be found in Requirements
Specification Stage.
3.
You
will complete your Project Requirements Specification Report in the labs on
June 17 , 2011, Friday.
You are expected to interact with the
Teaching Assistant in the lab and finalize your Requirement Specification
Reports. You will submit your reports to the TA at the end of the lab. Detailed
information about how to prepare Requirements Specification Reports can be
found in Requirements Specification Stage.
4.
You
will start working on your User Interface Design Stage
in the labs on June 24, 2011, Friday.
Detailed information about User Interface Design Stage can be found in
User Interface Design Stage.
5.
You
will complete your User Interface Design Report in the labs on June 29, 2011, Wednesday. You
are expected to interact with the Teaching Assistant in the lab and finalize
your User Interface Design Reports. You will submit your reports to the TA at
the end of the lab. Detailed information about how to prepare User Interface
Design Reports can be found in User Interface Design
Stage.
6.
You
will start working on Detailed Design Stage in the
labs July 01, 2011, Friday, and complete your Detailed Design
Reports on July 06, 2011, Wednesday. You are expected to interact
with the Teaching Assistant in the labs and finalize your Detailed Design Reports. You will submit
your draft reports to the TA at the end of the first lab to get a feedback and Final
Detailed Design Reports at the end of second lab. Detailed
information about how to prepare Detailed Design Reports can be found in Detailed Design Stage.
7.
In July 13, 2011, Wednesday,
you start the implementation of your projects. Some tips about the implementation of the projects can be found in Implementation
Stage.
8.
In July 15, Friday, you will continue the implementation of your project. In July 20, Wednesday
you will do your last programming assignment. .
9.
Each
project group will make an approximately 12 minutes presentation and a 3
minutes demonstation of their projects on July 22, 2011,
Friday, in Mithat Coruh Amphitheater.
Attendance to the project presentations and demos in the amphitheater 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. The schedule will be as follows (See the
lab sections above):
1.
Section
1: 09:00
2.
Section
2: 11:00
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
3.
10
minutes presentation, and
4.
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.
9.
Each
project group must submit a CD containing three directories (July TBA, 2011 TBA) just
before the final exam. (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
|
Lecturers:
|
Ugur
Gudukbay [email]
Room: EA524, Tel: 1386
Office Hours: Monday, Tuesday, Thursday 15:40-16:40 (or by appointment
through email)
|
|
Melih
Onus [email]
Room: EA520
Office Hours: Monday, Tuesday, Thursday 15:40-17:30
(or by appointment through email)
|
|
Class
schedule:
|
Section
1 (Ugur Gudukbay): Monday 13:40, 14:40 (EB101),
Tuesday 13:40, 14:40 (EB101), Thursday 13:40, 14:40 (EB101)
Section 2 (Melih Onus): Monday 08:40, 09:40 (EB101), Tuesday 08:40, 09:40
(EB101), Thursday 08:40, 09:40 (EB101)
|
|
Lab Schedule (See the lab
sections above):
|
Section
1: Wednesday 13:40-17:30 (Labs: B303 and B304),
Friday 13:40-17:30 (Labs: B303 and B304)
Section 2: Wednesday 08:40-12:30 (Labs: B201 and B202), Friday 08:40-12:30
(Labs: B201 and B202)
|
|
Assistants:
|
Ates Akaydin
[email], Room: EA 128, Tel: 2893
Office Hours: Wednesday 10:30 - 12:00: Friday 10:30 - 12:00
(Other times by appointment using email).
Sitar Kortik
[email], Room: EA 227, Tel: 2896
Office Hours: Wednesday 13:30 - 15:00: Friday 13:30 - 15:00
(Other times by appointment using email).
Hayrettin Erdem
[email], Room: EA 126, Tel:
Office Hours: Thursday 10:30 - 12:00: Friday 10:30 - 12:00
(Other times by appointment using email).
Shatlyk Ashyralyyev
[email], Room: EA 529, Tel: ____
Office Hours: Wednesday 13:30 - 15:00: Friday 13:30 - 15:00
(Other times by appointment using email).
Habibe Guldamla Ozsema
[email], Room: EA , Tel:
Office Hours: Wednesday 13:30 - 15:00: Friday 13:30 - 15:00
(Other times by appointment using email).
Assistant's
Web Page for Projects and Assignments
|
(Select
"Offerings", "Computer Engineering", CS102 (Your section),
and "Course Detail".
(Select
"Offerings", "Computer Engineering", CS102 (Your section),
and "Syllabus".
Textbooks
o
Lewis
and Loftus, Java Software Solutions, 6th Edition, Addison-Wesley, 20. Addison-Wesley (Publisher's) Web Site:
Contains Useful Materials, like Lecture Slides, Programming Examples, etc.
Last
updated: May 31, 2011