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
The Final Exam will cover all the topics.
First
lab will be on
·
September 24, 2013, Tuesday 13:40-17:30 (Section 1), Lab: FF207.
·
September 25, 2013, Wednesday 13:40-17:30 (Section 2), Lab: FF207.
Course
Schedule:
·
Section 1 (Ugur Gudukbay): Monday 09:30-10:20
(EB102), Wednesday 10:30-12:20 (EB102)
·
Section 2 (Ozlem Ozgu): Monday 10:30-12:20
(B206), Thursday 09:30-10:20 (B206)
Lab
Schedule:
·
Section 1: Tuesday 13:40-17:30
(Lab: FF-207)
·
Section 2: Wednesday 13:40-17:30 (Lab:
FF-207)
Teaching Assistants:
- Aytek Aman (Section 1), email: aytek.aman@cs.bilkent.edu.tr
- Hasan Balci (Sections 1 and 2), email: hasan.balci@bilkent.edu.tr
- Fahrettin Sukru Torun (Sections 1 and 2), email: sukruf@cs.bilkent.edu.tr
- Abdurrahman Yasar (Section 1), email: abdurrahman.yasar@bilkent.edu.tr
- Gulden Olgun (Section 2), email: olgun@cs.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.
3.
Your weighted average of midterm
and final grades must be above 40 out of 100 and your lab average must be above 50 out of 100 not to fail the course.
4.
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.
5.
You
will fail the course if the attendance is below a certain percentage.
6.
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 can be reached from
Course Moodle Page
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).
Project Presentation and Demonstration
You should make your presentation and demo in 20 minutes (15 minutes presentation including questions
and 5 minutes demonstration). 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 five minutes.
(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, 7th Edition, Addison-Wesley, 2012 Pearson - Student Web Site:
Contains Useful Materials, like Lecture Slides, Programming Examples, etc.
Last
updated: September 13, 2013