Instructor: | Dr. Stephen Hughes |
Time: | Lecture: MWF 9:40-10:40; Trexler 363 Lab: Tues 2:50 - 5:50; Trexler 263 |
Course Objectives
This course is part two
of a three part introduction
to the discipline of computer science. The course focuses on
the design and use of data structures and
algorithms and their implementation in the programming language Java.
Programming topics include arrays, linked structures, lists, stacks,
queues,
recursion, and object-oriented
programming. Theoretical topics include computational complexity
and mathematical induction, which will be used to reason about
algorithms and programs.
Texts
Java Software Solutions: Foundations of Program Design, 4th
Edition, by
John Lewis and William Loftus, Addison-Wesley, 2005.
Java Software Structures: Designing and Using Data Structures,
by
John Lewis and Joseph Chase, Addison-Wesley, 2004.
Lab
This course has a required three-hour lab
every Tuesday afternoon from 2:50 until 5:50.
The purpose of the lab is to give the student a structured experience
in
software design, implementation, testing, and measurement, and to
increase the student's
ability to use and understand the tools available for software
development
in the Linux environment. Some labs will have a pre-lab
assignment designed to prepare the student for lab. Pre-lab
assignments must
be handed in at the beginning of lab. Unless special arrangements
have
been made, the
lab itself
must be done during the lab session and turned in before leaving.
Some labs will have a post-lab assignment designed to reinforce lab
concepts. Typically
the post-lab assignment will be due the second class period
following the lab.
Programming Projects
Programming projects are designed to give the student the opportunity
to put into practice the problem solving and programming skills
they have learned. As such they are one of the most important aspects
of
the course both for student learning and for assessment.
There will be 4-5 projects during the semester to be handed in for a
grade. Students are encouraged to start on projects
immediately when assigned and to get help from the instructor as needed.
Quizzes & Exams
Short quizzes will be given regularly to assess your
progress in the course. These are
designed to ensure that you are keeping up with the pace of the class
and to
give you a sense of the level of mastery that is expected.
Quizzes will generally be given at the
beginning of class on Mondays. No
make-up quizzes will be offered.
MCSP Conversations
You are
invited be involved with all of these
meetings; however, participation in at least two of these sessions is
mandatory. For each of the required sessions, you must
submit a
one-page paper reflecting on the discussion. This
should not simply be a regurgitation of the content, but rather a substantive personal
contemplation of the experience. These papers are due
within one week of the session.
Course Topics and Schedule
Week of | Topic | Sections in text | ||
Jan 16 | Arrays | L&L 7.0-7.7 | ||
Jan 23 | Inheritance and abstract classes; GUIs |
L&L 8.1-8.5 | ||
Jan 30 | Polymorphism Searching (linear, binary) Sorting(selection, insertion) |
L&L 9.1-9.6 class notes and handouts |
||
Feb 6 | More searching and sorting ** TEST 1 ** |
L&L Ch 9 | ||
Feb 13 | Computational complexity Functions (poly, exp, log) Applications in searching, sorting |
Class notes and handouts | ||
Feb 20 | Recursion |
L&L Ch 11 | ||
Feb 27 | Exceptions ** TEST 2 ** |
L&L Ch 10 | ||
March 6 | !!!!!!!! Spring Break !!!!!!!! | |||
March 13 | Mathematical induction | Class notes and handouts | ||
March 20 | Recurrence relations | Class notes and handouts | ||
March 27 | Software engineering, collections | L&C Ch 1, 2 | ||
Apr 3 | Linked structures ** TEST 3 ** |
L&C Ch 3 | ||
April 10 | Stacks |
L&C Ch 6 | ||
April 17 | Queues and lists |
L&C Ch 7, 8 | ||
April 24 | Wrap-up and catch-up | |
Grading
The course grade will be
determined using the following
weights:
30% |
Tests |
10% |
Quizzes |
15% |
Labs |
5% |
MCSP Reflections |
20% |
Projects |
20% |
Final |
|
Test #1 | Friday, Feb 10 |
Test #2 | Friday, Mar 3 | |
Test #3 | Friday, April 7 | |
Final Exam | Wednesday, April 26 (8:30 - 11:30 am) |
Grading Scale: | 93-100 | A | 83-86 | B | 73-76 | C | 63-66 | D | |||
|
90-92 | A- | 80-82 | B- | 70-72 | C- | 60-62 | D- | |||
|
87-89 | B+ | 77-79 | C+ | 67-69 | D+ | below 60 | F |
Collaboration
Projects are to be done individually. Students may ask class
members,
lab assistants, and others for help with system questions (e.g., "How
do I save a
file in emacs?", "How do I run my Java program?") or general
information about a
topic covered in class (e.g. "What is the symbol for boolean AND?")
provided they
can do so without divulging or receiving information specific to the
solution of the programming project. Students may not discuss any
aspect of the design or coding of a programming project
with anyone except me. This policy will be strictly enforced; see
the section
on Academic Integrity below. Under no circumstances should there
ever be an
electronic
transfer of code between students in the class.
Academic Integrity
Honesty and integrity are qualities we respect in ourselves and in
others. Therefore, you are expected to be fully aware of your
responsibility to maintain the highest degree of integrity in all of
your work. It is accepted that you have read and understood
the standards for academic integrity at Roanoke College.
In the electronic age, source code is
often
available on the web or
through CD-ROMs that supplement textbooks. If you use code from
any
other source, you are required to cite the source by adding comments to
the top of your files. Moreover, by submitting work under your
name, you
are indicating that you have completed the assignment. This
means that you should be able to completely explain all the details of
your work, i.e. every line of code in computer programs or formulas in
spreadsheets. Failure to be able to account for your decisions
(to my satisfaction) will result in referral to the Academic Integrity
Council.
All students must abide by the Guidelines
for Computer Use as stated on page 15 of the Academic Integrity
Handbook. Failure to do so will result in involuntary withdrawal from
the course