This syllabus and the course schedule are subject to change.

 

ITSD 4312     Advanced Programming II (Spring 2007) – CRN 25100

 

http://cims.clayton.edu/itsd4312

 

Jon A Preston

E-mail: jonpreston@clayton.edu

Phone: 678 466 4415
Office: U306

Office hours: Monday & Wednesday 2:30-4:30pm, email, “Open door policy” and by appointment – use this!

 

Course Description

An advanced course in the specification and development of complex data structures. Programming projects address the cross-platform nature required of today's business solutions, with emphasis on the graphical user interface and development project using a variety of tools and techniques.

 

Course Outcomes

Students will obtain a proficient level of master in analyzing the efficiency of data structures (2, 3, 4), simulations (10), graph theory (6), greedy algorithms (7), recursion (1), artificial intelligence (5, 8, 9), path planning (7) and how these topics relate to everyday problems.  To demonstrate a superior level of knowledge and understanding, students will design, analyze and implement their own algorithms (10, 12).  Students will be working both individually and in groups.

 

Course Objectives

Students will obtain a proficient level of master through lecture and programming in the following topics:

  1. Searching
  2. Balanced (red-black) trees
  3. B-trees
  4. Min-max trees
  5. Alpha-beta pruning
  6. Graphs and graph structure
  7. Minimum spanning trees
  8. Single-source shortest path algorithms
  9. A* path planning
  10. Simulations
  11. NP-complete
  12. Approximation algorithms

 

Prerequisites

ITSD4301 (see the DUCK for more info)

 

Meeting Times

Lecture             7:30 pm – 10:15 pm Wednesday (UC314)

Lab                   On your own time (UC314/UC324 are useful places to "lurk")

Final Exam       Wednesday, 5/2, 8:30pm-10:30pm

 

Required Textbooks

Introduction to Algorithms 2nd Edition, Cormen, Leiserson, Rivest, & Stein (2001)

ISBN 0-07-013151-1

 

Assessment

You will have numerous opportunities to practice and demonstrate mastery of the materials covered in this course.  It is up to you to keep current on all readings and assignments (including in-class announcements).  If you fall behind, you will most assuredly fail this course!

 

Grading will be based upon the following scale:

            A            >= 90%

            B            80% - 90%

            C            70% - 80%

            D            60% - 70%

            F            < 60%

 

Assignment                  Portion of Grade

Final                             30%

Tests (2)                       20% (10% each)

Programs                      50%

 

I encourage you to use a modern programming environment; Java, & Studio.NET/C# are recommended

 

Midterm Grade - given the schedule and when midterm falls (see schedule), the first 2 homework assignments and test 1 will be graded; thus ~26% of your overall grade will be determined by midterm.

 

Programs will be demonstrated in class, in the traditional fashion.

 

Random, in-class pop quizzes may be given if it appears that you are not keeping up with the material and aren’t doing your part.  These will be counted in borderline cases (akin to extra credit).

 

Programs that don’t compile cleanly (no warnings or errors) or halt/crash will receive no credit; the programming assignments will be graded on a progressive scale, so it’s almost always possible to get most credit if you follow good programming practices, building your solution piecewise with verification testing.

Please be advised that no credit will be given for late assignments.  If you have a problem that arises during the course of the semester, please contact me as soon as possible.

 

PORTFOLIO

 

Since this course has you build solutions that demonstrate your knowledge of core-IT skills, I advise you to keep a copy of everything you submit to be later placed into your portfolio.  This portfolio is a requirement for the ITFN2001 and ITFN4003 course, and if you keep a copy of your submitted solutions, you will be more easily able to fill this portfolio showing your work and IT skills.

 

Words of Wisdom (TAKE THIS PART SERIOUSLY!)

 

I expect your active participation in class.  Class attendance is expected because it’s much easier to learn if you’re coming to class and asking questions in lecture about things that confuse you.

 

There's a lot to keep track of in the class.  We designed the class to be interesting, but it includes labs, programs, and tests.  The labs are purposely kept simple, but give you the required knowledge (the building blocks) for the projects - i.e. to complete the projects, you must have a flexible/working knowledge of the concepts covered in labs. Having said that, make sure you truly understand the content from the labs.  The tests cover knowledge from the projects, and (through transitivity) the knowledge from the labs.  You will be expected to write and trace code samples on the tests using pencil and paper only.  Having done and understood the projects individually, you should be prepared (with a little review and study time) to do well on the exams. Students who have not done their own work typically do not do well in the class - as the tests account for 60% of their (and your) grade.  This isn't to discourage you from getting help from others, the instructor, or studying in groups - just think for yourself, and draw the line on how much help you receive! Start assignments early and keep on top of when things are due.

 

Your grade in this course is determined completely on performance, not on effort. 

 

Academic Misconduct

 

If a student is found obtaining or granting inappropriate help in this course on any assignment (test, quiz, exam, homework, etc.) he will receive an F in the course.  The offense will go on permanent record with the university.  If this is not the student’s first academic misconduct offense at CCSU, he will be recommended for suspension from the university for two full terms.  This is in full accord with CCSU’s policy, and we encourage you to read and review the university’s policy in your student handbook.

 

Instructor Assessment:

 

In this course you will have the opportunity to evaluate the instructor.  This will be done electronically through the following website, but should be done when the instructor informs you.

 

ITP Choice Information

 

Beginning Fall Semester 2001, all students at CCSU are required to state that they have on-demand access to a notebook computer that meets the recommended hardware/software specifications that have been established by Clayton State faculty. Academic penalties may be incurred for not meeting this requirement.  See http://itpchoice.clayton.edu/ for more information.

 

Students must abide by policies in the University Catalog, Student Handbook, and if applicable, program handbook.  Academic misconduct will not be tolerated. 

Students should read and understand the Basic Student Responsibilities policy posted at

http://adminservices.clayton.edu/registrar/BasicUndergraduateStudentResponsibilities.doc.  These responsibilities should be considered part of this class syllabus and should be adhered to.

Students must activate their CCSU email account and are expected to check their email on a regular basis

 

Religious Observance

Religiously observant students wishing to be absent on holidays that require missing class and/or exam should notify the instructor at least two weeks in advance and discuss acceptable ways of making up any work missed because of the absence.

 

 

Disability Services

 

Students with disabilities who require reasonable accommodations need to register with Disability Services (DS) in order to obtain their accommodations. You can contact them at 678-466-5445 or disabilityservices@clayton.edu. If you are already registered with DS and are seeking accommodations for this course, please make an appointment with me to discuss your specific accommodation needs for this course and give me your accommodations letter.