CPSC1301L CRN 81244 – Computer Science I Lab Fall Semester 2009 Class Meets: Tuesdays & Thursdays 4:30-5:45 p.m. in Center for Commerce and Technology, Room CCT409 For access to course Website in CougarView visit: https://colstate.view.usg.edu Instructor Details: Name: Dr. Shamim Khan Office: Center for Commerce and Technology (CCT) Room 444 Office hours: Monday-Thursday 9.30 AM-12 PM If you are unable to see me during these hours, please make an appointment. Email: khan_shamim@colstate.edu (preferred method of contact) Website: http://csc.colstate.edu/khan Office Phone: 706/565-3519; Dept. Phone: 706/568-2410 Catalog Description of Course: Co-requisite: CPSC 1301. This course provides a hands-on experience for the students in the area of programming as a realization of the concepts presented in Computer Science 1. The students will complete programming projects using one or more program development environments. The lab projects will apply and reinforce the topics covered in Computer Science 1. (1 credit). Required Textbook: Java Software Solutions: Foundations of Program Design, 6/E by John Lewis & William Loftus, ISBN: 0321532058, Addison-Wesley Supplementary Books and Materials: Lab Manual, to accompany Java Software Solutions: Foundations of Program Design, 6/E by John Lewis & William Loftus, ISBN-10: 0321532112, Addison-Wesley 1301 Class handouts & notes Software and manuals found in the computer labs and on the Internet. Software To complete all lessons, assignments, labs, and tests, you will need to access a computer with: Windows 2000/XP/Vista, Firefox or Internet Explorer Java 2 Platform, Standard Edition (J2SE) A Java IDE (Crimson Editor/ BlueJ/ DrJava/ Eclipse. In the lab - we’ll use BlueJ) Java Source Code and Program Files from the Lewis & Loftus textbook. Course Software Downloads Java SE Development Kit (JDK) 6 Update 11: http://java.sun.com/javase/downloads/index.jsp Blue J: http://www.bluej.org/download/download.html Crimson Editor: http://www.download.com/3000-2352_4-10328038.html Course Objectives The aim of this lab-oriented course is to provide hands-on experience with Java to reinforce the theoretical knowledge gained in CPSC1301 Computer Science 1. Successful completion of 1301 and 1301L should achieve the following objectives: 1. Students will be able to analyze the requirements of a problem. 2. Students will be able to design algorithms to solve moderately complex problems. 3. Students will learn the syntax and structure of the Java computer programming language. 4. Students will learn to use the Java SDK to develop programs. 5. Students will learn a) how to work with an Integrated Development Environment (IDE), b) how to develop Java program with an Editor, c) how to compile a Java program, CPSC1301L Fall 2009 2 d) how to run a Java program, and e) how to debug Java programs. 6. Students will understand how to develop and use the main Java building blocks: data types, variables, constants, expressions, and arithmetic operators 7. Students will learn the structure of Java classes, constructors, calling methods, and how to use Java predefined classes 8. Students will learn about applets, applet structure, applet execution, and how to develop applets 9. Students will learn about flow of control: forming conditions, if, if/else, if/else if, comparing numbers and objects, conditional operator (?:), and switch statement 10. Students will learn how to develop looping control structures: eventcontrolled loops (while and do/while statements), count-controlled loops (for statement), and nested loops 11. Students will learn how to develop user-defined classes: defining a class, instance variables, class methods, constructors, object reference this, graphical objects, creating packages, and Java documentation 12. Students will learn how to use simple and structured data types (e.g. arrays) to solve problems. Major Topics 1. An Overview of Computers and Programming Languages 2. Basic Elements of Java 3. Data and Expressions 4. Graphics 5. Applets 6. Input/Output 7. Using Classes and Objects 8. Writing Classes 9. Control Structures – Selection 10. Control Structures – Repetition 11. Object-Oriented Design 12. Arrays and ArrayList Class Instructional Methods and Techniques The lab will meet for two one-hour and fifteen minute periods each week. 1. Each student is expected to attend both labs, to read the relevant textbook chapters and to make notes. Students will be expected to participate in classroom discussions. 2. Students must have access to computers for doing assignments. 3. You will be expected to work in pairs. Pairs will be formed during the first week of the semester and the pairing may change. Details on how this will work will be given in the class during week 1. CPSC1301L Fall 2009 3 How to Access the Course This course includes CougarView. You can access CougarView at: https://colstate.view.usg.edu Click on the "Log-in" link to activate the CougarVIEW logon dialog box, which will ask for your CougarVIEW username and password. Students who used CougarVIEW in the previous semester will use the same passwords for the current semester. New student passwords on CougarVIEW have been set to the students birth date in the format of DDMMYY. (Example - Birthday of Oct. 25, 1978 is 251078). If you try the above and CougarView will not let you in, please try the new Online Support Center at: (http://help8.view.usg.edu/ics/support/default.asp?deptID=8075 ) for CougarView is available to you 24 hours a day, 7 days a week. If you have registered late, it may take a day or two before you get added to the course in CougarView. If you are still having problems gaining access a day or so after the class begins, please e-mail me. Once you've entered CougarView, you will see a list of courses you have access to. The CPSC 1301L course is listed as "Computer Science 1" Next to this, you should see my name as the instructor. You may also see new weekly assignment postings, and new mail messages. Clicking on the name of the course will take you to the course's home page. If you don't see the "CPSC1301L Computer Science 1" course in the list, please e-mail me immediately. Once you have clicked on the course's name and accessed the particular course itself, you will find a home page with links to other sections and tools, and a menu on the left-hand side. Feel free to explore the areas in the course. Student Responsibilities As a student in this course, you are responsible to: manage your time and maintain the discipline required to meet the course requirements, come to class prepared to ask questions to maximize your understanding of the material, complete all assignments, read any e-mail sent by the instructor and respond accordingly, always include previous messages in any e-mail you send. Lab Rules During the class, you are not allowed to bring any food or drink into the lab use cell phones in the lab distract others by being noisy surf the Web or check email. CPSC1301L Fall 2009 4 Violation of lab rules may result in a student being asked to leave the class and considered absent from that class. You may leave class early if you have already finished and submitted the assignment work for the lab session, but keep in mind that you will be responsible for any missed clarifications or announcements given by me after you leave. Instructor Responsibilities As your instructor in this course, I am responsible to: lead the class discussion and answer students’ questions, post weekly lessons outlining the assignments for the week, grade lab assignments and post scores within one week of the end of the week in which they are submitted, and read any e-mail sent by the you and respond accordingly within 48 hours. Assignments for Course There will be a weekly assignment consisting of a number of programming exercises. It will be made available to you each Tuesday in the class and online through CougarView. It will be due by Thursday of the same week. You’ll submit your work by using assignment drop boxes in CougarView. Assessment Criteria Graded 14 Lab Assignments (14 × 50 = 700 pts.) – o For each assignment, students will be expected to analyze requirements of the problem, design the algorithm and implement the algorithm by coding it into a Java program. Assignments will focus one or more of the learning objectives. Assignments turned in after Wednesday are considered late. Late assignments are not accepted for any reason. Submit your program source code as an attachment through CougarView. Grading scale A: 90-100 % F: below 60 % B: 80-89 % C: 70-79 % D: 60-69 % Class Attendance: Class attendance is the responsibility of the student, and it is the student's responsibility to independently cover any materials missed. Class attendance and participation may also be used in determining grades. It is your responsibility to sign a roll sheet for every class meeting. At my discretion, I may drop you from the course for more than 4 absences without an acceptable reason. Missed classes caused by participation in documented, formal, University-sponsored events will not count as absences provided you notify me of such anticipated absences in advance and as soon as possible. You are responsible for all class work missed, regardless of the reason for the absence(s). Late assignments will not be accepted. If you are unable to be present in the class and submit your assignment due to an unavoidable reason such as approved events, illness or accident, you must contact me to make alternate arrangements. CPSC1301L Fall 2009 5 Academic dishonesty Academic dishonesty includes, but is not limited to, activities such as cheating and plagiarism. It is a basis for disciplinary action. Collaboration is not permitted on assignments or exams/quizzes in this course. Any work turned in for individual credit must be entirely the work of the student submitting the work. All work must be your own. You may share ideas but submitting identical assignments (for example) will be considered cheating. You may discuss the material in the course and help one another with debugging, however, I expect any work you hand in for a grade to be your own. . A simple way to avoid inadvertent plagiarism is to talk about the assignments, but don't read each other's work or write solutions together. Keep scratch paper and old versions of assignments until after the assignment has been graded and returned to you. If you have any questions about this, please see me immediately. For assignments, access to notes, textbook, books and other publications is allowed. Stealing, giving or receiving any code, diagrams, drawings, text or designs from another person (CSU or non-CSU) is not allowed. Having access to another person’s work on the system or giving access to your work to another person is not allowed. It is your responsibility to keep your work confidential. No cheating in any form will be tolerated. The penalty for the first occurrence of academic dishonesty is a zero grade on the assignment or exam/quiz; the penalty for the second occurrence is a failing grade for the course. For exams/quizzes, access to any type of written material or discussion of any kind (except with me) is not allowed. (http://aa.colstate.edu/advising/a.asp#AcademicDishonestyAcademicMisconduct) Getting help Student assistants in the Computer Center can help you with basic computerrelated problems such as logging on to the network, saving your work, etc., but they are not obligated to help you with your assignments. There are several tutors in lab CCT450 at the Department of Computer Science who can help you with the assignments. Their schedule is posted in the Computer Science department. You can always contact me during my posted office hours, by email, or by appointment. CSU ADA statement If you have a documented disability as described by the Rehabilitation Act of 1973 (P.L. 933-112 Section 504) and Americans with Disabilities Act (ADA) and would like to request academic and/or physical accommodations please contact Joy Norman at the Office of Disability Services in the Center for Academic Support and Student Retention, Tucker Hall (706) 568-2330, as soon as possible. Course requirements will not be waived but reasonable accommodations may be provided as appropriate. CPSC1301L Fall 2009 6 DATE COURSE SCHEDULE (tentative and subject to change) Chapter / Description Assignments Week 1: (8/17 – 8/23) Orientation – logging in, CougarView Introduction to the process of software development, Java Introduction to BlueJ Prelab Exercises Recognizing Syntax Errors Correcting Syntax Errors Poem Prelab Exercises Area and Circumference of a Circle Painting a Room 2 Data and Expressions Last day to drop course 9/11/2009 Introduction to HTML Drawing Shapes Drawing a Face 2 Data and Expressions Prelab Exercises Working with Strings Rolling Dice 3 Using Classes and Objects Playing with Cards Nested Panels 3 Using Classes and Objects Prelab Exercises Tracking Grades Drawing Squares Voting with Buttons Calculating Body Mass Index Prelab Exercises Computing a Raise Rock, Paper, Scissors Prelab Exercises Counting and Looping More Guessing Election Day 1 Introduction 1 Introduction Week 2: (8/24 – 8/30) Week 3: (8/31-9/6) Week 4: (9/7-9/13) Week 5: (9/14-9/20) Week 6: (9/21-9/27) Week 7: (9/28-10/4) Week 8: (10/5-10/11) Week 9: (10/12-10/18) Week 10: (10/19-10/25) Week 11: (10/26-11/1) 2 Data and Expressions 4 Writing Classes 4 Writing Classes (continued) Monday, Oct 12 – Tuesday, Oct 13: Fall break 5 Conditionals and Loops 5 Conditionals and Loops (continued) CPSC1301L Fall 2009 7 5 Conditionals and Loops (continued) Vote Counter, Revisited A Pay Check Program Week 13: (11/9-11/15) 6 Object-Oriented Design Changing People Modified MiniQuiz Class Flexible Account Class Week 14: (11/16-11/22) 6 Object-Oriented Design Random Walks Telephone Keypad Week 15: (11/23-4/29) 7 Arrays November 25-29: Thanksgiving holiday break Tracking Sales Week 16: (11/30-12/6) 7 Arrays (continued) Shopping Cart Magic Squares Week 12: (11/2-11/8) Important dates/holidays First day of classes: Monday, August 17, 2009 Schedule change: Drop/Add Courses Add Courses only Labor Day holiday (no classes, offices closed): Last day to withdraw from the course: Fall break (no classes): Thanksgiving holiday break (no classes) Last day of classes: Final Examinations (Full Term Classes): August 17-20 Wed, August 21 Mon, September 7 Fri, September 11 Mon, Oct 12–Tues, Oct 13 Nov 25-29 Mon, Dec 7 Dec 9-15 CPSC1301L Fall 2009 8