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

·         Book cover image for Modern Software Development Using Java, Second EditionDesign 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 Columbia College now provides e-mail accounts to students (currently optional). You may access your web mail using the lab computers.  You may contact me via email at: smithdo@yosemite.cc.ca.us

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 Columbia College network, if you do not already have one.  Details will be provided in class.

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

Holiday,  Inheritance, Generics, Compiling and Running

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

Holiday,  Hierarchical Data Structures (Binary Trees)

8

2/25,27

7.4-7.8

Hierarchical Data Structures (Binary Search Trees, Heaps)

9

3/3,5

8.1-8.2

Set and Graph Data Structures (Sets)

10

3/10,12

8.3-8.4

Set and Graph Data Structures (Graphs),  Quiz2

11

3/17,19

9

Java Collections Framework

12

3/24,26

10

Exceptions and Streams , Midterm 2

13

3/31, 4/2

11

Threads

14

4/7,9

12

Graphical User Interfaces

15

4/14,16

13

Networking

16

4/21

All

Review for Finals

16

4/23

All

Final Exam (Written)