CS A201: Programming Concepts I

Course Syllabus, Fall 2008 Textbook

Course Description: The objective of this course is to introduce students to the fundamentals of computer programming and problem solving.  The emphasis is on the fundamentals of structured and object-oriented programming, syntax, semantics, testing/debugging, implementation, documentation, recursion, and linked data structures.  The language that we will focus on is Java.  Students will be exposed to development on both Unix and Windows platforms using text editing and an IDE (NetBeans).

Upon completing the course students will understand:

Homework Assignments:   There will be approximately 5 problem assignments throughout the course, although this is subject to change.  Some assignments will be specific to a unix environment or to NetBeans. Electronic submission via Blackboard is required. 

Lab Section:   We will have an in-class lab exercise approximately every other week.  Since our class is held in a computer classroom, the lab exercises will be held in class.   Lab assignments are due at the end of the day.  Late lab assignments will not be accepted without a valid excuse.   The lab assignments will be available on the course web page before each lab.  You are allowed to work individually or in groups of 2 on a lab.  You may also complete a lab in advance of the in-class session and submit it on Blackboard.  In this case you do not need to come to class unless you have questions you would like to ask in person.

Each lab assignment is worth three points.  3 points is awarded if everything works correctly, 2 points if there are one or more small errors, 1 point if there are many or serious errors, and 0 points for no work or major errors.

CS Lab:  We also have a computer science lab with Java installed on the machines for you to use during all hours the university is open.  You will need to swipe your wolfcard (and be enrolled in a CS class) to gain access. The lab is located in SSB 170A.  There is also a lab technician in the office at the bottom of the ramp to 170A.   Be careful not to abuse the goodwill of the lab technicians. Their jobs are to help you by making sure that you have the resources that enable you to do your work. They are NOT obligated to train you in using the hardware or software. They are there if a computer is broken, you can't print, can't log in, etc.  If you need help in understanding a particular application please confer with me or your fellow students. 

Tutors:   We should have some upper division CS students working as tutors in the lab.  Their schedule will be posted sometime around the second week of class, but is subject to change.

Late Assignments:   Assignments will be accepted late only up to the date that solutions are posted online.  Homework will not be accepted after the date solutions are posted.  Generally, solutions will be posted one week after the due date, but this may vary.  For example, solutions may be posted the same day homework is due if there is a test coming up.  The homework grade is penalized 5% for each day late.

Questions: If you have any questions, feel free to come in to my office.  In general, I have an open door policy -- if I am available in my office, you are welcome to come by.  An even better way to reach me is through email.  I check my email frequently and you should receive a response quickly.  Email is preferred over telephone and you will probably receive a faster response since I don't check voicemail very frequently.  You can also contact me online via ICQ, AIM, or MSN Messenger (see contact info on the home page).  I'm often up late and will be glad to answer questions if I'm available! 

Exams:  There will be one midterm and one final exam.  If you must miss an exam, notification must be made in advance.  Exams will consist of problems to work through. Typically you will either have to describe the output of some code, write some code yourself, or provide short answers.  Each exam will be cumulative since the course material builds upon previously covered material!  This means you must keep up in the class, or you will quickly find yourself lost.  You will be allowed open-book access for the exams.

Grading Breakdown: 

Homeworks:  30%   (all homeworks are worth an equal amount)
Labs:             20%   (all labs are worth an equal amount)
Exam:            25%
Final Exam:    25%

The grade scale is shown in the table below.  The grading curve may be lowered if necessary but it will not be raised.  This means that if you received an 89% then you will at least get a B+, but may receive a higher grade based on the curve.  (Final grades don't include a + or -).

An incomplete grade will only be given for a valid excuse (e.g. medical, death in the family). An incomplete grade does not let you take the class over again, your final grade will be assigned based on work submitted in class and work that remains to be submitted.

Cheating: Students are expected to uphold the UAA standard of conduct relating to academic dishonesty outlined in the UAA catalog and student handbook.  Cheating is not tolerated and constitutes grounds for dismissal.  For this class, it is permissible and encouraged to assist classmates in general discussions of how to attack the homework problems. It is not permissible to copy another's work (or portions of it) and represent it as your own.

You are not allowed to work in groups and submit a single program as a combined effort of multiple people except for labs in which you may work in groups of 2.