CS 231 Course Outline
| Instructor: | Dennis Clayton, Prof. Computer Science and Mathematics |
|---|---|
| Office location: | Science Building, room 225 |
| Office hours: | MWF 1:00-2:00, TR 11:00-12:00 and 2:30-5:00 |
| Office phone: | (386) 481-2690 |
| e-mail: | |
| Course title: | Computer Programming II |
| Credit hours: | 3 semester hours |
| Class location: | Science Building, room 201 |
| Class hours: | MWF 15:10 to 16:10 (3:10 to 4:10) |
| Class lab: | CSL 231 A |
| Lab hours: | MW 16:20 to 17:20 |
Prerequisites
CS 230 Computer Programming I with a 'C' or better final grade, or transfer credit in Java Programming I. No exceptions.
Course description in the most recent BCU Catalog
Prerequisite: CS 230. This course is a continuation of CS 230. Topics covered include: recursion, file-based I/O, classes, packages, method overloading, inheritance, polymorphism, abstract classes, interfaces and exceptions. This course requires students to co-register for a programming lab, CSL 231. The lab provide students with hands-on practice developing programs implementing the programming constructs.
Textbook(s) and required materials
Thomas Wu, An Introduction to Object-Oriented Programming with JAVA, 4th edition, McGraw Hill. ISBN-13: 9780072946529.
You will also need a usb-drive (thumb drive) to backup your work.
Buy a computer if you do not already own one.
Main course goal
At the end of this course a student should be able to program at the CS 1 level as defined by the Association for Computing Machinery (ACM). Additionally, the student will be introduced to the core of a CS 2 level program.
This course provides prerequisite preparation for more advanced programming in junior and senior level courses, including, CS 332, CS 333, CS 335, CS 433, CS 436 and CS 499.
Impact
Impact on BCU Mission and Institutional Student Learning Outcomes (ISLOs) - Through the attainment of the course student learning objectives (CSLOs), students will acquire knowledge, skills and competencies outlined in the Institutional Student Learning Outcomes, School Student Learning Outcomes (SSLOs) and Program Student Learning Outcomes (PSLOs) . The Course Student Learning Objectives fully support the University Mission and Core Values as stated in the Strategic Plan; as well as, the School Goals.
Program Student Learning Outcomes (PSLOs) addressed in Course Learning Objectives.
PSLO 1. Students will demonstrate Knowledge of Algorithms
PSLO 3. Students will demonstrate Knowledge of Computer programming
PSLO 4. Students will demonstrate Knowledge of Hardware and devices
PSLO 5. Students will demonstrate Knowledge of Human-computer interface
Course competencies/outcomes
A student who completes this course with a C or better will...
- Learn and use beginner level algorithms to tradition problems. (PSLO 1)
- Develop algorithms to solve problems.(PSLO 1)
- Develop solutions to programming problems.(PSLO 1,3)
- Design user-friendly interface for your programming solutions.(PSLO 5)
- Wite beginning-to-intermediate-level programs in Java.(PSLO 3)
- Will demonstrate an the fundamentals of object oriented design and programming. (PSLO 1,3)
- Know and use standard software development methods from the design through the testing phases. (PSLO 1,3,5)
- Be able to describe the various features of a computer system and how the different units of such a system work together. (PSLO 4)
Objectives
- Students will demonstrate knowledge of Java, software development, programming principles, and algorithms on the required exams.
- Students will demonstrate an understanding of the material through graduated programming and problem solving assignments:
- Given a Java program from the text, the student will be able to describe in technical detail every part of the program, why it is there, and what it does.
- Given a program that does not compile, the student will be able to analyze the program, find the errors, and fix them.
- Given a program that does not run correctly, the student will be able to develop a test suite to find the logic errors, when the errors are located the student will be able to correct the program.
- Given a problem description from the text, the student will be able to use standard software development tools to:
- Analyze the problem and develop a test suite.
- Perform an object analysis.
- Develop a proposed object oriented solution.
- Develop an algorithmic solution in pseudocode
- Convert the pseudocode to Java, including appropriate documentation.
- Debug the code.
- Run the code against the test suite and debug the code until it gives the correct answers.
Matix
Student Learning Outcomes Matrix (SLOM)
Alignment of Course Assessments with SSEM Goals, Program Student Learning Outcomes, Course Learning Objectives, Institutional Student Learning Outcomes and University Strategic Goals
| Course Assessment | Course Objective | Program Student Learning Outcomes | SSLOC | ISLOC | SSEM GOALS | Strategic Goals |
|---|---|---|---|---|---|---|
| Participation |
| The Student Will | ||||
| 1,2,3,4, 5, 6 | Attend every class and participate in the class discussions | 1, 2, 3, 4 | 1, 2, 3, 4 | 1, 2, 3, 4, 5 | 1. 3
| |
| Homework | The Student Will | |||||
| 1,2,4, 5, 6 | Work and submit assigned programming problems | 1, 2, 3 | 1, 2, 3, 4 | 1, 2, 3 ,4, 5 | 1. 3
| |
| Lab Work | The Student Will | |||||
| 1, 2, 3, 4, 5, 6 | Develop, design and execute Java programs | 1, 2, 3 | 1, 2, 3, 4 | 1, 2, 3 ,4, 5 | 1. 3
| |
| Exams | The Student Will | |||||
| 1, 3, 6 | Write a senior thesis describing in technical detail their senior project. | 1, 2, 3 | 1, 2, 3, 4 | 1, 2, 3 ,4, 5 | 1. 3
|
General Requirements
- You must attend every class; attendance is mandatory!
- You must attend every lab; attendance is mandatory!
- Cell phone or pager usage will not be tolerated in class. Turn them off before class.
- The subject line of email sent to me must start with: CS231
- Send me an email from the email account that you use daily.
- Plagiarism will not be tolerated. You must do your own work.
- Cheating will not be tolerated. You must do your own work.
- All work must be typed. Hand written work will not be accepted unless explicitly stated in the assignment. Never write on both sides of the paper.
- For emphasis, all programs must be typed and your name must appear in the comment heading.
- Late assignments will not be accepted because we will usually work the assigned problems in class on the day they are due.
- You must comment your computer code (more on this later).
- The Bethune-Cookman University dress code requires that you wear appropriate attire to class. You are not allowed to wear hats, caps, bandanas or do-rags in class. Pants are to be worn over your underwear. You will be asked to leave the class or the lab if your attire is inappropriate for a BCU student in a computer science class.
- You are an adult. Act like one:
- Do not try to sleep in class. If you are so tired that you feel that you are going to fall asleep, then stand up. Everyone will laugh at you, but I will not ask you to leave and I will not penalize you for doing it.
- Do not walk out of class during the lecture. Show common courtesy. If you walk out often enough, it will affect your grade. I may mark you absent.
- See me immediately if you are having problems with this course.
Methods of Instruction
There are three one-hour lecture periods each week. We will discuss the material in the book and illustrate it with programs. You are expected to participate in the discussions. Be prepared to discuss the code and follow it on the computer at your desk.
There are two one-hour labs each week. These are primarily for you to do program development with assistance. They are not intended to provide time to do all your homework. I expect you to spend at least six to eight hours per week on homework in addition to the two lab hours.
You will have to work to pass this course. This is not an easy course. However, almost all of the problems previous students have had with this course resulted from falling behind--not reading the assigned material, not starting the homework when it was assigned, cramming for exams, and so on. If you fall behind, you will have a difficult time catching up. Study the reading assignments as soon as they are assigned, start on the homework and programming assignments immediately. If you put forth the effort, you will get an 'A' in the class.
You will be dropped from the course at midterm if you have four or more absences from the class. You are required to attend all the lectures. You are marked absent if you are not present when the roll is taken. If you are late, you can tell me at the end of the class period. Two lates equal one absent.
Missing a class is no excuse for not handing in an assignment or for not knowing about an assignment. Assignments will be posted on the assignments web page (cs??? assignments).
Class participation counts 10% of your grade. You cannot participate if you are absent.
Topical outline with activities/assignments
Prerequisite Chapters: 1 through 10. This was the core material covered in CS 230. You should have been introduced to some of the material in chapters 11 through 12.
This course will cover all the material in chapters 11 through 15:
- Chapter 11. Methods
- Chapter 12. Objects and Classes
- Chapter 13. Arrays
- Chapter 14. Inheritance and Interfaces
- Chapter 15. Recursion
We will cover selected topics from chapters 16 through 21. All of this material will be covered in much more detail in CS 333 Data Structures:
- Chapter 16. Searching
- Chapter 17. Sorting
- Chapter 18. Linked Lists
- Chapter 19. Trees
- Chapter 20. Data Structures in the Java Class Library
- Chapter 21 Stacks, Queues, and Priority Queues
Each week, you will be given programming assignments from the problem sections in the text.
Technology
The application of technology in this course is obvious.
Assessment/Evaluation/Grading scale
Class Participation (10% of your final grade). You cannot participate if you are absent. This is my subjective evaluation of your preparation for classroom discussion and participation, attitude, attendance, and so on. Don't expect much if you sleep in class, constantly leave to answer your cell phone or pager, or otherwise behave in an unpleasant or unprofessional manner.
Exams (40% or your final grade)
- Midterm Exams (100 points each)
One-hour exams are called a midterms. There will be two, in-class midterms. These are closed book, closed notes exams. These are memory testing exams. There are no makeup exams, so do not cut class the day of an exam. - Midterm Programming Exams (100 points each)
These are in-class programming exams. You will be given a list of two or three easy problems to choose from. You will write computer programs as required by the problems. These are problem solving exams testing your basic programming skills. There are no makeup exams, so do not cut class the day of an exam. - Final Exams (200 points each)
You must have final exam clearance in order to take the final exams. The final exams will be given on the days and hours scheduled by the Registrar's Office for the class and the lab. I will post these as soon as they are announced. The final exams will consist of a two-hour class exam and a two-hour lab exam.
Homework (50% of your final grade)
Most assignments consist of a mix of written problems and programming problems. You should expect each programming problem to take from one to ten hours of work, of which, an average of three hours of time will be spent at a computer terminal.
All homework must be typed (except for flowcharts, diagrams, etc.). Neatness counts. Do not write on both sides of the paper. Turn in the assignments with the problems in the assignment order. If your work is not in order, or is messy or otherwise unappealing, or hard to read, the grade will be lowered at least one letter grade and may not be graded at all. This also means you must turn in all the problems together in one package. Assignments are due at the beginning of class. We will usually work homework problems in class the day the assignment is due. Late assignments will not be accepted. To do so would be unfair to everyone who worked on the problems before seeing how to do them in class .
For each programming problem you must turn in the following:
- A correctly formatted source code listing with adequate documentation.
- At least three different test runs showing how the program works. Part of your grade depends on how well you test your program.
Programs will be evaluated according to the following criteria:
- Is the algorithm appropriate and does the program solve the problem (50%)?
- The algorithm must match the code and provide a logical method of solution of the problem. The algorithm may be included as part of the comments in the program listing.
- The program must solve the assigned problem. You show this by handing in the sample runs showing the program has been thoroughly tested and works as advertised. A program that does not run cannot receive a grade higher than D+.
- Does the source code demonstrate acceptable programming techniques (50%)?
- Program appearance. Improperly formatted code will not be graded.
- Application of the assigned programming methods.
- Appropriate documentation, well written and complete. This is usually written as part of the program heading. Programs without headings or with inaccurate headings will not be graded.
How to hand in your homework
- Hand in the assignments at the beginning of class on the due date. Remember, late assignments will not be accepted, so do not skip class to work on an assignment.
- In addition, send me one email message with all of your computer programs attached. Send the java files only. Do not send exe or obj files. Make sure you begin your email subject line with "CS230", follow that with the assignment number and your name (unless your name is obvious from your email address). I will run your programs on my computer. This requirement will be dropped when we start writing programs with lots of objects.
Policy on copying (also known as cheating and plagiarism):
All assignments are individual assignments unless clearly labeled a group assignment. Do not work together on individual assignments. Working in a group frequently means that one person does all the work and also all the learning. You will have to work by yourself on the tests, so be prepared. Programming is not a spectator sport. You cannot learn how to do it by watching someone do it.
If your homework looks too much like another student's homework, then I will assume one (or more) of you copied. You will all get either a zero for the homework, or, if I am in a good mood, which is unlikely, I will divide the grade evenly among those in the group.
Policy on extra work
Do not ask for extra work unless you currently have an 'A' in the course. Extra work is in addition to the assignments, not a replacement for them. There are no make-up assignments or projects or exams.
Do not bring a cell phone to an exam. If you do, and it is visible or audible, I will assume you are cheating and you will get a zero on the test.
This course observes the College's grading scale:
| A | 90 - 100 |
| B | 80 - 89 |
| C | 70 - 79 |
| D | 60 - 69 |
| F | 50 - 59 |
| F- | 0 |
An F- (that's an F-minus) grade is reserved for work that was not turned in or was so poor that it should not have been turned in. Note that one F- requires four A's to average out to a passing grade of C:
Average ( F- + A + A+ A + A ) = C
Average ( 0 + 95 + 95 + 95 + 95 ) / 5 = 76 (only a C)
Midterm Grades
If you get a 'D' at midterm, you may interpret the grade as a red flag that you are not passing. However, if you put forth more effort, you should be able to pass the course. If you get an 'F' at midterm, you should take this as a warning that, in my opinion, you will not pass the course. You should drop the course while you can. Remember, I cannot drop you after midterms.
Bibliography
Additional material will be added as appropriate.
Join the ACM. You can get a student membership for $42. This includes access to the ACM Digital Library. From there you get free access to over 450 online tutorials/courses and to over 350 online textbooks. These include courses and books on C, C++, C#, Java, and on and on. You can join online at campus.acm.org. Make sure you check the online Portal package when you sign up.
Fall Semester, 2008
Last update: Aug 14, 2008