CSCI 116 Fundamentals of Programming

This syllabus is found on the Internet at http://employees.oneonta.edu/ryderj/csci116/syll116.html

Course Name: CSCI 116 Fundamentals of Programming
Section: 02
Prerequisite Courses: None
Instructor: Dr. James Ryder
E-mail Address: James.Ryder@Oneonta.Edu
Web Page: Click Here [http://employees.oneonta.edu/ryderj]
Phone: (607) 436-3647
Office: FITZ 229
Office Hours: Tue./Thur. 1:00 - 2:00, Wed. 12:00 - 2:00, & by Appt.
Online Office Hours: Same as above and other times you find me online, Facebook Group: CSCI 116, Twitter Name: ProfessorRyder
Meeting Times: Tue./Thur.  2:30 - 3:45 FITZ 207
Text: C++ Programming: Program Design Including Data Structures, 6th edition, Malik, Cengage Learning, ISBN 1133526322

Course Description (College Catalog)

An introduction to the fundamentals of computer programming using a modern computer language. Topics include primitive data types, expressions and statements, control structures, input and output, arrays, pointers, and structures. Students will write a number of programs with applications taken from mathematics, science and business.

Course Goal: At the end of the semester, each student successfully completing this class should understand the fundamentals of programming using the C++ language. This understanding should be able to be demonstrated by being able to write any simple C++ programs that solve simple real world computing problems. Successful completion of this course is mandatory in order to be prepared to take the next course in the computer science major, CSCI 216. Students earning a low grade in this course should seriously consider taking it again before continuing on to the next level of the major. The information learned in the first few courses of the major is cumulative. To succeed in part n, a student must have first learned well, part n - 1.

Class Attendance & Comportment Policies

As shown below, no percentage of a student's grade will be based solely on physical presence during class instruction. However, being physically present, at all class meetings, is a prerequisite to mentally absorbing the materials presented therein. The instructor of this course shares with you, your interest in you learning as much as possible. Therefore, perfect class attendance, by all students, is strongly recommended.

Participation in the class is also strongly recommended. Honorable demeanor is simply assumed. Any actions, which inhibit a polite, comfortable, learning process are not allowed. Heated debates, which contain absolutely NO perceived personal affronts, are encouraged!

A cell phone is a useful and enjoyable object of technology outside the classroom. Using one in that situation is acceptable. In class, however, letting your cell phone ring or having a conversation on one is very distracting and very rude. For the benefit of all, it should never happen. Turn your cell phone off before coming to class. Never carry on a conversation on one in class! This includes texting.

If a student appears to not be attending class, the student will be dropped by the instructor. Each student is responsible for all work covered in class regardless of whether he or she attended the class. Not being in class is never an excuse to not know what was covered. It is the student's sole responsibility to ensure that he or she is aware of all key material and dates.

Course Requirements

3 Exams45% (3 * 15%)
9 Programs54% (P1-P6 = 30%, P7-P8 = 14%, P9 = 10%)
1 Homework1%

Anticipated Exam Dates

The actual date for all exams will be announced at least 1 week in advance of the date they will be administered.

Final Grades

Final grades will be assigned according to the following grade values based upon a total of 100 points.

A  =92.00+
A- =89.50-91.99
B+ =87.00-89.49
B  =82.00-86.99
B- =80.00-81.99
C+ =77.00-79.99
C  =73.00-76.99
C- =70.00-72.99
D+ =69.00-69.99
D  =66.00-68.99
D- =65.00-65.99
E  =Any grade below 65.00 (e.g. 64.99999)

Course Activities, Reading Assignments, & Anticipated Order

The following classical operating systems topics will be covered in the order given with other ideas interspersed throughout the semester. The below listed topics are from chapters in the book for this course.

OrderTopicReading Assignment
1IntroductionCh 1, Ch 2.28-49
2C++ Basics, control structuresCh 2.43-92, Ch 4.184-219
3Looping const, functionsCh 3.122-153, Ch 6.336-364
4Functions, program designCh 3.142-153, Ch 6.364-408
5I/O Streams, File I/OCh 3.137-170
6EOF, Arrays, C StringsCh 8.507-559
7More Arrays, RecordsCh 9.592-608
8Classes, Data AbstractionCh 10.630-679
9Pointers and Dynamic MemoryCh 12.781-804
10Recursion, Overloads, Templates, Friends. etc.Ch 13.868-907, Ch 13.930-940

Grading Criteria and Rules

It is assumed that all students will have completed all course requirements by the scheduled date and time of the final examination for this course.

Assignments, unless otherwise stated by the instructor, are to be written by each individual student alone, without the aid of any other person besides the instructor of this course. General topics of computer science should be discussed freely with others at any time one chooses to do so. For instance, students standing at a blackboard, working on how a "while loop" works, is an example of very good students. Students sitting down together to design and write a programming asssignment is an example of students who are both cheating and demonstrating academic dishonesty. Any form of academic dishonesty is self-serving, unfair, not nice, and not tolerated by your instructor or thes college. You should consult your student handbook concerning college policies in this area. It's not worth having a stain for life simply to squeeze out a grade the sloppy way. The basic reason for taking a college course is always to learn the material not to "get the grade".

Assignments submitted must conform to the following rules.

Programs for this course can be developed on any platform that supports the C++ programming language. However, I will be using (and will assume your assignments will work with) Windows and Microsoft Visual Studio, both of which are available in the college labs. If you wish to work on your own computer, you can use the version of Microsoft Visual C++ that you have on your computer. If you prefer a UNIX/Linux environment, G++ is probably the best C++ compiler currently available, and is available for free as well. I may or may not be able to help you if you have problems using any development environment other than Microsoft Visual Studio for your assignments for this course. I highly suggest that you use this one. All programs must work without any changes when compiled with Visual Studio and executed on Windows in a college lab. If you choose an alternative development environment, you do not have the right to claim that it got in the way of finishing the assignment on time. The MCS lab is available for your use.

Lateness and Assignment Submission Rules

Assignments must be handed directly to the instructor of this course. The only times that are acceptable for handing in assignments are

Assignments will be accepted up to one week late. There will be a 5% per day loss of highest possible grade when an assignment is turned in late. Late begins after the class ends on the day the assignment is due. Weekends are free. (max 25% loss if exactly one week late)

After an assignment is one week late, the assignment will not be accepted or graded. It will be automatically assigned a grade of zero.

Reading List & Additional Resources

Please see the instructor of this course for references to further information about topics related to this course or anything else for that matter as well. He would be more than glad to help you locate them.

Additional/Unique Aspects of the Course

It is imperative that you learn the material in this course well before you attempt to take CSCI 216. Failure to do so will almost assuredly cause you major problems in that course. The first three courses in the computer science major are sequential and cumulative. These form the foundation of almost everything else you will study. Poor performance in one course almost guarantees worse performance in the course that follows. Therefore, you should come to class every day and participate a lot. When you don't understand something, you must ask about it right away. Waiting will cause you even greater pain.




If you have comments or corrections, contact me here at the home office.

© 2014   JW Ryder
State University of New York College at Oneonta