| Assignments | Contact Info | Computer Club |

92055 CSC 3971N - Advanced Programming I

Fall 2011
Meets selected Tuesdays, 4:55 pm -- 7:36 pm, Brookhaven A113
6 Sep 2011, 20 Sep 2011, 4 Oct 2011, 18 Oct 2011, 1 Nov 2011, 15 Nov 2011, 29 Nov 2011, 6 Dec 2011
Herbert J. Bernstein ( )



This web page is http://www.bernstein-plus-sons.com/.dowling/CSC3971F11/CSC3971_Syllabus.html
Copyright © 2007, 2011 Herbert J. Bernstein and other parties. All rights reserved.

This is the syllabus for CSC 3971N for Fall 2011. As the course moves forward, students should return to this page frequently for updated material. This is a hybrid course. Certain sessions are held on-site at Dowling College's Brookhaven Campus. The remaining sessions are on-line sessions.

Catalog description:

CSC 3971N. Advanced Programming I

3 credits

A project-oriented pair of courses intended primarily for juniors and seniors in the Computer Science major and for others who wish to improve their programming skills and knowledge of data structures and algorithms. Emphasized is a systematic approach to the design, implementation, testing and debugging of software systems. Students will complete several programming projects in modern programming languages throughout the semester. Prerequisite for CSC 3971N: CSC 2025A or permission of the Mathematics and Computer Science Department chair. Prerequisite for CSC 3972N: CSC 3971N or permission of the Mathematics and Computer Science Department chair.

Prerequisites:CSC 2025A Minimum Grade of D-

This Fall 2011 section is:
Advanced Programming I - 92055 - CSC 3971N - 0
Associated Term: Fall 2011
Registration Dates: Apr 11, 2011 to Dec 17, 2011
Levels: Undergraduate
Instructors: Herbert J. Bernstein (P)

Brookhaven Campus
Lecture Schedule Type
Blended Instructional Method
3.000 Credits
View Catalog Entry

Scheduled Meeting Times
Type Time Days Where Date Range Schedule Type Instructors
On line TBA   Internet teaching on line LINE Sep 01, 2011 - Dec 17, 2011 Lecture Herbert J. Bernstein (P)E-mail
Class 4:55 pm - 7:36 pm T Brookhaven Campus A105 Sep 06, 2011 - Sep 06, 2011 Lecture Herbert J. Bernstein (P)E-mail
Class 4:55 pm - 7:36 pm T Brookhaven Campus A105 Sep 20, 2011 - Sep 20, 2011 Lecture Herbert J. Bernstein (P)E-mail
Class 4:55 pm - 7:36 pm T Brookhaven Campus A105 Oct 04, 2011 - Oct 04, 2011 Lecture Herbert J. Bernstein (P)E-mail
Class 4:55 pm - 7:36 pm T Brookhaven Campus A105 Oct 18, 2011 - Oct 18, 2011 Lecture Herbert J. Bernstein (P)E-mail
Class 4:55 pm - 7:36 pm T Brookhaven Campus A105 Nov 01, 2011 - Nov 01, 2011 Lecture Herbert J. Bernstein (P)E-mail
Class 4:55 pm - 7:36 pm T Brookhaven Campus A105 Nov 15, 2011 - Nov 15, 2011 Lecture Herbert J. Bernstein (P)E-mail
Class 4:55 pm - 7:36 pm T Brookhaven Campus A105 Nov 29, 2011 - Dec 06, 2011 Lecture Herbert J. Bernstein (P)E-mail


Office Hours:

Students have the option of meeting with the instructor either on-site or via Skype. In order to avoid conflicts with other students and other obligations of the instructor, if possible please make an appointment via email.

Note that, in general, Dr. Bernstein will be at the Brookhaven campus on Monday, Tuesday and Thursday afternoons and on the Oakdale campus on Wednesday afternoons. Meetings on the Oakdale campus will be in KSC 103. Meetings at the Oakdale campus are by appointment only.

For more information see http://www.bernstein-plus-sons.com/.dowling/HJB_Contact_Info.html.

Required Textbooks:

Recommended Text:

  • Donald Knuth, "The Art of Computer Programming" V1-4, 3rd ed., Boxed set, Pearson, 2011, ISBN 9780321751041.

    Knuth is highly recommended reading for all computer science students.

    Required Supplies:

    A computer is required to do the online portions of this course. Dowling College has open computer laboratories, but use of a laptop computer or netbook is highly recommended. Any student who does not have their own netbook or laptop must contact the instructor to ensure that they make appropriate arrangements to keep up with the course. A hard bound laboratory notebook. An inexpensive back-and-white covered composition book will suffice but it must be bound (not looseleaf).

    Keeping clear written records is an important part of working in any scientific field. It is particularly important in Computer Science, where there are very complex, non-obvious decisions to make. In addition, 60% of your grade for this course will be in the final for which you will need a dense 2-page set of notes. A good notebook will help you to prepare those notes.

    Students are expected to have their textbooks no later than the second week of the semester. Students can start learning some of the material for the course immediately by going to the MIT OpenCourseWare site and reviewing the lectures at http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/ and http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-096-introduction-to-c-january-iap-2011/ and http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/


    Attendance will be taken at all on-site class meetings, and regular participation in the on-line exercises is required. We are trying to arrange permission for students who so wish to participate in the on-site sessions via Skype. We will discuss that option further at the first on-site class session. Be certain to attend that one in person.

    Grading Policy:

    • Quizzes: 20%
    • Assignments: 20%
    • Comprehensive Final: 60%

    Your objective in this course is to polish your programming skills until you are fluent in multiple languages. If you are taking CSC 3171 at the same time, you may find it useful to combine your efforts in this course with your efforts in the Algorithms course, taking the algorithms you are doing in Java in Algorithms and redoing them in as many other languages as possible.

    Students will be given weekly quizzes and assignments to help ensure regular attention to the material of the course. On-site sessions will consist of both lecture-style reviews of materials and presentation and discussions by the students in which all students are expected to display an understanding of the material they have been working on.

    In addition to routine reading assignments, students will have two kinds of special assignments: ones that will help them to explore programming in practice and ones that will help them to study a particular programming task in depth. Students have one week from the start of the semester to propose a significant topic within which they will explore programming tasks. If no proposals are made, the instructor will make assignments involving the following threads: molecular graphics, nearest neighbor problems, numerical linear algebra. Students are encouraged to form study groups that share efforts on the major topic, but each student must display their own programming skills both on portions of the practical programming assignments and on portions of the major topic.

    The study assignments will be handled by each student presenting a web page lecture on that topic for the instructor and other class members to review presenting that topic to the class during an on-site session. Discussions both in-class and on-line on the algorithm issues in that topic will result in revisions to the web page. The resulting web page will become a part of the publicly available on-line materials of the course.

    You will have to do these assignments multiple times.

    Every student will be required to maintain a contemporaneous hardbound notebook recording all significant activities related to this course.

    The work load for this course is very heavy. Students are encouraged to form study groups and to work together.

    In general, no assignments will be accepted late and no makeups will be given for missed quizzes or examinations. Requests for exceptions to this policy will be considered only for the most pressing reasons (illness requiring hospitalization, death in the family, reserve call-up, etc.) and must be submitted in writing in a timely manner. They will be granted only if the instructor has sound reason to believe that the student is highly likely to master the material of the course within the current semester.

    Course Syllabus

    Course Objectives

    • To sharpen programming skills to a professional level.

    Please consult the course assignments page frequently.

    Review of Java

    Click here for a review of java.

    Secure Remote Access with GUI

    Using VNC via SSH: vnc.html

    Dowling Computer Club

    If you're interested in joining with your fellow students in developing and maintaining a web site, or pursuing your exploration of computer hardware or software, you might want to consider joining the Dowling Computer Club. Just follow the link for further details:

    Dowling College Computer Club Web Site

    Updated 29 November 2011.