CMPSC 24 Syllabus
Programming Concepts II
Spring 2008, Section 1147
Instructor: Donald W. Smith
Lecture/Lab: 5:45 – 8:50 MW Fir 4
Prerequisites
CMPSC 22
or equivalent - good understanding of Java programming is essential
office
hours
See schedule on www.gocolumbia.edu/smithdo
Campus Telephone: (209) 588-5348
Course Description
This course is a continuation of CMPSC22, concentrating on problem
solving techniques using an object oriented design approach. Programming
language will be the currently preferred object-oriented language used by
equivalent UC/CSU courses. It also, includes an introduction to programming in
the Windows environment.
Topics include data abstraction, recursion, class functions, operator
overloading, templates, string handling, data structures (arrays, records,
lists, stacks, and queues), search/sort, pointers, dynamic data, linked lists,
and binary trees. (UC/CSU) (CAN CSCI 24)
course objectiveS
·
Review Java
programming skills learned in CMPSC22
·
Solve programming
problems using systematic methods of algorithm development and design
·
Understand the
syntax of the Java language for object-oriented program design
·
Implement designs
of Abstract Data Types using Classes including operator overloading
·
Work with Linked
Lists, Stacks, and Queues
·
Practice
recursion techniques and functions
·
Use pointers and
dynamic allocation and release of memory
·
Use Inheritance
in design of Classes
·
Understand big O
and big Omega notation, and be able to calculate algorithm efficiency
·
Design
routines for efficient searching and sorting
textbook
“Modern Software Development using Java 2/e”, Paul
T. Tymann and G. Michael Schneider, ISBN
1-4239-0123-5 (Manzanita bookstore)
Book website: http://www.course.com/catalog/product.cfm?isbn=978-1-4239-0123-5
attendance
For reporting purposes, I will be
taking roll at each class meeting. As mature adults, proper attendance is your
responsibility. Attendance is considered as part of the “Participation”
calculation. You are responsible for all material covered in class even if it
is not in the text.
e-mail address
You should provide an e-mail
address for class related communications. Note that
Internet access to ASSIGNMENTS and files
All assignments and selected
reference material will be provided on an externally accessible website: www.technetrain.com/CMPSC24 (case
sensitive), linked from www.gocolumbia.edu/smithdo,
organized by week of the class. The Fir lab server “csdata” may also have files
for access from campus labs.
Computer accounts
You will automatically be given an account on the
Java Tools
You will need access to a recent
(2006+) Java IDE with a debugger for this course. There are many FREE Java IDEs
available for download. I will
demonstrate and we will use both Eclipse and BlueJ. You may use whatever IDE you prefer as long
as it supports JUnit testing and Javadoc.
Java 2SE SDK 1.5 (aka 5.0) or above is also required with any of the
above. DO NOT USE Microsoft J++!
STUDY
This syllabus lists the chapters
to be covered at each meeting. You are expected to study the chapters BEFORE the scheduled lecture. End of
chapter exercises may be recommended but will not be collected. Lab projects
with be assigned for your programming practice, and count toward participation
points.
tests
There will be 2 quizzes, 2
midterms, and a final. If you can’t be present for a test date, you need to
make prior arrangements. No makeup exams are given unless
pre-arranged. A missed test must be taken before the graded tests are
returned – usually at the next class meeting.
Tests will include hands-on
programming assignments which may have a take-home component.
grading
Evaluation is based on total points earned for all
tests and assignments. The value of the assignments and the grading scale are
shown below. When appropriate, test scores may be normalized so that the high
score becomes a 100 and other scores are raised in proportion. I reserve the
right to adjust the final grade when circumstances justify doing so.
|
Participation and Labs |
100 |
|
90% and above |
A |
|
Assignments (about 5-10) |
150 |
|
80% - 89.9% |
B |
|
Quizzes (2 x 25) |
50 |
|
70% - 79.9% |
C |
|
Midterms (2 x 50) |
100 |
|
55% - 69.9% |
D |
|
Final (written + coding) |
100 |
|
below 55% |
F |
|
total |
500 |
|
|
|
study time
General guidelines dictate that
you spend 4 hours of outside study per week for this 3-unit class. However, due
to the nature of this course, you may need to spend considerably more time in
lab practice to properly master programming skills.
dropping the course
It is your responsibility to
submit the appropriate paperwork to the registrar’s office if you decide to
drop the course. If you stop attending but do not withdraw, you are likely to
receive an F grade for the term.
RULES for submitting your own work
All work that you submit in this
class must be entirely your own. In particular:
· You MAY talk with other people about the assignments
and the high-level design of a solution.
· You MAY copy and include code that has been provided
to you by the instructor, or code you used in a previous assignment. If you use
instructor provided code, you must indicate this in you comments.
· Other people MAY answer questions, including writing a
couple lines of code to show you the syntax of some programming feature. If you
receive such help, you MUST include comments with the helper’s name and email
address at the top of your program.
· You MUST NOT look at any other person’s program on a
printout or screen before completing and submitting your own work.
· You MUST NOT work together with another person,
devising just one solution between the two of you. This includes the high-level
solution as well as specific code to implement it.
· You MUST NOT aid another student by allowing that
person to copy your files, unless the assignment is specifically stated as a
group project.
Breaking these rules will result in a grade of F.
LAB SubMISSION
All labs will be assigned during class. I will
monitor your progress, and help when requested. There should be ample time to
complete the lab assignments during class periods. The lab assignments are designed to prepare you
for the assignments. Completing labs is
part of your participation grade in the class.
Create a folder in you’re my Documents folder named “CMPSC24”, and map a
drive letter (I suggest ‘J’) to it. I
suggest that you place your source files in a folder with a name that will help
you remember the content.
Assignment SubMISSION
Assignments are introduced during class, and can be begun during class periods if assigned labs are complete. All assignments include a due date. Create a folder for Assignment submission on your ‘J’ Drive. On or before the due date/time, copy your source and output files to a folder named AssignXX on your ‘J’ drive. (XX is the number of the assignment, starting with 01). I will copy the files you place there to my grading folder when the assignments are due. In special circumstances, you may also email your assignment files to me at smithdo@yosemite.edu. Please indicate what course and assignment you are submitting in the email title, and attach all files. Note that our spam filter is notorious for deciding student submissions are spam, so you may want to leave me a voice mail if you submit via email.
LATE ASSIGNMENTS
Late assignments are accepted, but for lower credit:
1
week late: ½ credit maximum, 2 weeks late:
¼ credit maximum.
Assignments will not be accepted after the second
week following its due date. Save your
work often! Computer failures, hard
drive crashes, and loss of USB drives are no excuse… Backup your valuable
data.
Notes for getting started
Link to on-line
tutorial: http://java.sun.com/docs/books/tutorial/
Link to Eclipse: www.eclipse.org
Tentative Weekly Schedule (original)
Week
|
Dates
|
Book
Chapters
|
Topics
|
|
1 |
1/7,9 |
1, 2 (to p. 74) |
Review Course Requirements
& Syllabus, IDE Setup and Use, Java Review, SDLC, OO Software Dev |
|
2 |
1/14,16 |
2, 3.1-3.2 |
Object-Oriented Software Development, UML, OOP in
Java |
|
3 |
1/21,23 |
3.3-3.5 |
|
|
4 |
1/28,30 |
4 |
Case Study in OOD, Quiz 1 |
|
5 |
2/4,6 |
5, 6.1-2 |
Analysis of Algorithms, Linear Data Structures (Lists) |
|
6 |
2/11,13 |
6.3-5 |
Linear Data Structures (Stacks, Queues), Midterm
1 |
|
7 |
2/18,20 |
7.1-7.3 |
|
|
8 |
2/25,27 |
7.4-7.8 |
Hierarchical Data Structures (Binary Search Trees, Heaps) |
|
9 |
3/3,5 |
||
|
10 |
3/10,12 |
||
|
11 |
3/17,19 |
9 |
Java Collections Framework |
|
12 |
3/24,26 |
||
|
13 |
3/31, 4/2 |
11 |
Threads |
|
14 |
4/7,9 |
12 |
Graphical User Interfaces |
|
15 |
4/14,16 |
||
|
16 |
4/21 |
All
|
Review for Finals |
|
16 |
4/23 |
All
|
Final Exam (Written) |