92055 CSC 3971N - Advanced Programming I
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.
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
Instructors: Herbert J. Bernstein (P)
Lecture Schedule Type
Blended Instructional Method
View Catalog Entry
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.
Knuth is highly recommended reading for all computer science students.
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.
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.
Please consult the course assignments page frequently.
Using VNC via SSH: vnc.html
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