Applied Information Technology Department Course Syllabus IT 108 Programming Fundamentals revised 08.30.2010 Catalog Description Introduces programming fundamentals and presents software development process. Students learn to write programs in high-level, object-oriented language. Prerequisites The prerequisite for this course is IT 103 (or an approved equivalent course). A grade of "C" or better must be achieved in the prerequisite course before a student is qualified to take this course. The prerequisite course must be completed prior to, not concurrently with, this course. Rationale Programming is an essential skill for IT students and IT professionals. Understanding how a computer is instructed to accomplish tasks leads to an appreciation of the underlying concepts of the Information Technology discipline. Learning how to solve a problem using a structured or objectoriented programming language provides a strong foundation that will be used in Database, Security, Web Development and Networking courses. Educational Objective Course Outcomes To introduce students to problem solving using a high-level, objectoriented programming language as a tool 1. Design solutions to problems using procedural and object‐oriented techniques. 2. Use procedural programming techniques effectively (including expressions, decisions, repetition structures, methods, parameters and variables scope) that use both primitive and reference types 3. Apply techniques of basic object-oriented programming effectively (including creating class diagrams, implementing information hiding and encapsulation) Copyright © 2009 Irene E. Bruno, PhD. All rights reserved. Page 1 of 10 IT 108 Fall 2010 Syllabus Major Topics On successful completion of this course, students will be able to: Define and use data of both primitive and reference types effectively. Create and use simple and complex static data structures. Design solutions to problems using procedural and object-oriented techniques. Decide on an appropriate repetition and/or selection structures for given problems. Apply the techniques of structured (functional) decomposition to break a program into smaller pieces. Describe the mechanics of parameter passing and the issues associated with scoping. Discuss and identify the concepts of encapsulation, abstraction, and inheritance. Design, implement, test, and debug simple programs in an object-oriented programming language. Describe how the class mechanism supports encapsulation and information hiding. Understand the conditions on overloading methods in an object-oriented language. Describe the relationship between the static structure of the class and the dynamic structure of the instances of the class. Describe how constructors and destructors relate to the life of an object. Describe the relationship between an object and its corresponding class. Discuss the importance of algorithms in the problem-solving process. Identify the necessary properties of good algorithms. Create algorithms for solving simple problems. Use a programming language to implement, test, and debug algorithms for solving simple problems. Apply effective debugging strategies. Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 2 of 10 IT 108 Fall 2010 Syllabus References Textbook There is one required textbook for this course: Java for Everyone Cay Horstmann ISBN-10: 0471791911 ISBN-13: 978-0471791911 Publisher: Wiley (February 2, 2010) Format: Paper; 515 pp Faculty and Staff Instructor and Teaching Assistant information can be found via PatriotWeb and the course Blackboard site. Administrative support: Fairfax campus Shirley Mancada http://eagle.gmu.edu/map/buildings/engineering.php , Room 5400 Phone: 703-993-3565 Prince William campus Cindy Woodfork Bull Run Hall, Suite 102 Phone: 703-993-8461 Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 3 of 10 IT 108 Fall 2010 Syllabus Grading Grades will be awarded in accordance with the GMU Grading System for undergraduate students. See http://www.gmu.edu/catalog/apolicies/ under Grading System for more information. The grading scale for this course is: 99 – 100% A+ Passing 92 – 98% A Passing 90 – 91% APassing 88 – 89% B+ Passing 82 – 87% B Passing 80 – 81% BPassing 78 – 79% C+ Passing 72 – 77% C Passing 70 – 71% CPassing* 60 – 69% D Passing* 0 – 59% F Failing * Grades of "C-" and "D" are considered passing grades for undergraduate courses. However, a minimum grade of "C" is required in the BSIT program for any course that is a prerequisite for one or more other courses. This course is a prerequisite for several courses in BSIT Concentrations – see http://www.gmu.edu/catalog/courses/it.html for more information on those courses. Raw scores may be adjusted by the Instructor to calculate final grades. Final grades will be determined based on the following components: Activity Final Exam Midterm Exam In-Lab Assignments Programming Assignments Project Distribution 40% 25% 10% 15% 10% These components are outlined in the following sections. Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 4 of 10 IT 108 Fall 2010 Syllabus In-Lab Assignments Some lab assignments are to be completed during the assigned lab time for the course whereas others will be due several days later. They will either be treated as a quiz or regular assignment, to be determined by the instructor. For regular assignments, students may use any resources available to complete the assignment, including their text, notes, Internet resources and discussion with classmates. Acceptance of late assignments will be at the discretion of the GTA. Students may submit incomplete assignments for partial credit. There may or may not be lab quizzes during the course. Lab Quizzes are to be completed during the assigned lab time for the course. Students may only use their text and written notes to complete the quizzes. Students may not use Internet resources and there may not be discussion with classmates. Students must be present in the lab to submit these quizzes. Students will only be allowed to make up a lab quiz under extreme conditions and approval to do so will be at the discretion of the instructor. No late quizzes will be accepted. Programming Assignments and Project Each student individually will prepare and submit a solution to each programming assignment and phases of the project in accordance with requirements to be discussed in class and published on the Blackboard Learning System. Acceptance of late assignments will be at the discretion of the instructor. Students may submit incomplete assignments for partial credit. These assignments must be completed by the student. Assistance may be requested from the instructor, GTA or UTA. Other assistance may be considered an Honor Code violation. Mid-term exam The mid-term exam is a department-wide exam and will be conducted during the scheduled class session in Week 8 (October 18-21) and will be based on topics addressed from Chapters 1-5. The mid-term exam will be “closed book” – no reference materials other than those provided with the exam paper will be permitted. It is possible that a sheet (front and back) of individually-prepared sheet of notes will be allowed for the exam. Final exam The final exam is a department-wide exam and will be held during the scheduled final exam session (see http://registrar.gmu.edu/ ) and will be based on topics addressed throughout the entire course. The final exam will be “closed book” – no reference materials other than those provided with the exam paper will be permitted. It is possible that a sheet (front and back) of individually-prepared sheet of notes will be allowed for the exam. Final exams will be retained by the Department of Applied Information Technology and will not be returned to students. Final grades will be posted to PatriotWeb, which is the only vehicle for students to obtain those grades. A student with a "hold" on his/her PatriotWeb account will be unable to access final grades until the hold has been removed by the Registrar. Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 5 of 10 IT 108 Fall 2010 Syllabus Schedule Lecture 1 2 3 Class Content Problem Solving Introduction to Computers, Programs, and Java Problem Solving Top-Down Design, Sequence, Selection, Repetition, Algorithmic Design Reading Chapter-1 4 Primitive Data Types and Assignment, GUI and Console Input and Output Chapter-2 5 Typecasting, Compound Assignment Operators, Increment and Decrement Operators and Efficiency Chapter 2 6 Selection Statements: if, if/else, switch Chapter-3 7 Selection Statements: tertiary operator, nested selection statements. Translation of selection statements from algorithmic design Repetition – presentation of three loops, choosing the appropriate loop structure, translation of repetition statements from algorithmic design Repetition – use of sentinel value, user input validation, use of break/continue Methods – using top down design in algorithms, method definition and invocation, use of parameters Methods – local variables and parameters, variable scope, method abstraction and stepwise refinement, method reuse Methods – method overloading, code efficiency, Math class, generating Random numbers Midterm Exam Chapter 3 8 9 10 11 12 13 14 Arrays – storage and use of basic arrays, efficient use of memory 15 Arrays – using arrays as parameters and method return values Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Chapter 4 Chapter 4 Chapter 5 Chapter 5 Chapter 5 Chapters 1 - 5 Chapter 6 Page 6 of 10 IT 108 Fall 2010 Syllabus Arrays – Searching and Sorting, the Arrays Class Arrays – used in problem-solving, using two-dimensional arrays Objects and Classes – using OO design, encapsulation, objects as reference variables, efficiency and reuse, types of methods used in classes (accessor, mutator, constructor and special purpose) Objects and Classes – using objects as parameters and method return values, construction and destruction of objects. Implementation of objects from algorithmic design Objects and Classes – static variables and methods, efficiency Objects and Classes – arrays as static and instance variables, arrays of objects Objects and Classes – implementation of OO design and stepwise refinement to create a solution to a problem of a significant size Strings – using the String and Character classes Strings – a full lifecycle application of all concepts covered in the course thus far Files – basic files, using text files Chapter 6 Chapter 8 27 Files – implementing error detection in applications that use files Files 28 Final Exam Review 16 17 18 19 20 21 22 23 24 25 26 Chapter 6 Chapter 6 Chapter 7 Chapter 7 Chapter 7 Chapter 7 Chapter 8 Chapter 8 This schedule is subject to revision before and throughout the course. Registered students should see the Blackboard Learning System for the latest class schedule. Important Dates Dates for adding, dropping the course, etc. are available via: registrar.gmu.edu Religious Holidays A list of religious holidays is available on the University Life Calendar page. Any student whose religious observance conflicts with a scheduled course activity must contact the Instructor at least 2 weeks in advance of the conflict date in order to make alternative arrangements. Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 7 of 10 IT 108 Fall 2010 Syllabus Attendance Policy Students are expected to attend each class, to complete any required preparatory work (including assigned reading – see Schedule above) and to participate actively in lectures, discussions and exercises. As members of the academic community, all students are expected to contribute regardless of their proficiency with the subject matter. Any student who expects to miss more than one class session is strongly advised to drop the course and take it in a later semester when he/she can attend every class. On an occasional basis, students may attend the corresponding lecture in the other section if they must be absent during their section. Departmental policy requires students to take exams at the scheduled time and place, unless there are truly compelling circumstances supported by appropriate documentation. Except in such circumstances, failure to arrive to the exam site on time for a scheduled exam will result in a score of zero (0) for that exam, in accordance with Mason policy on final exams. Students should not make travel plans or other discretionary arrangements that conflict with scheduled classes and/or exams. If the University is closed due to weather or other unforeseen conditions, final exams may be rescheduled – students are strongly advised not to make plans that would prevent them from attending exams that may be rescheduled during the entire exam period. Classroom conduct Students are expected to conduct themselves in a manner that is conducive to learning, as directed by the Instructor. Any student who negatively impacts the opportunity for other students to learn will be warned – if disruptive behavior continues, the student will be asked to leave the classroom. Electronic devices are potential distractions in the classroom environment. Cell phones, pagers and other handheld devices must be turned off or set to "silent" mode and not used while class is in session. Laptop computers and similar devices may be used only if such use is directly related to the classroom activity in progress – for some activities the Instructor may require that such devices not be used in order to maximize student engagement. Communications Registered students will be given access to a section of the Blackboard Learning System for this course. Blackboard will used as the primary mechanism (outside of lectures) to disseminate course information, including announcements, lecture slides, homework and other assignments, and scores for homework and exams. Communication with the Instructor on issues relating to the individual student should be conducted using Blackboard Mail, GMU email, via telephone, or in person - not in the public forums on Blackboard. Blackboard Mail is the preferred method – for urgent messages, you should also attempt to contact the Instructor via telephone. Federal privacy law and GMU policy require that any communication with a student related in any way to a student's status be conducted using secure GMU systems – if you use email to communicate with the Instructor about any grade issues you MUST send messages from your GMU email account. Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 8 of 10 IT 108 Fall 2010 Syllabus Lecture slides are complements to the lecture process, not substitutes for it. All course materials (lecture slides, assignment specifications, etc) are published on Blackboard in Adobe® Portable Document Format (PDF) or in a format for which a free reader is available (such as Microsoft PowerPoint). This allows users of most computing platforms to view and print these files. Microsoft® Word (or a compatible word processing application) is required for preparing assignments – it is available on computers in the Mason open labs. Privacy Instructors respect and protect the privacy of information related to individual students. As described above, issues relating to an individual student will discussed via email, telephone or in person. Instructors will not discuss issues relating to an individual student with other students (or anyone without a need to know) without prior permission of the student. Assessable work other than exams will be returned to individual students directly by the Instructor (or by a faculty or staff member or a Teaching Assistant designated by the Instructor, or via another secure method). Under no circumstances will a student's graded work be returned to another student. Faculty and staff will take care to protect the privacy of each student's scores and grades. Disability Accommodations The Office of Disability Services (ODS) works with disabled students to arrange for appropriate accommodations to ensure equal access to university services. Any student with a disability of any kind is strongly encouraged to register with ODS as soon as possible and take advantage of the services offered. Accommodations for disabled students must be made in advance – ODS cannot assist students retroactively, and at least one week's notice is required for special accommodations related to exams. Any student who needs accommodation should contact the Instructor during the first week of the semester so the sufficient time is allowed to make arrangements. Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 9 of 10 IT 108 Fall 2010 Syllabus Honor Code All members of the Mason community are expected to uphold the principles of scholarly ethics. Similarly, graduating students are bound by the ethical requirements of the professional communities they join. The ethics requirements for some of the communities relevant to Applied IT graduates are available via the following links: ACM Code of Ethics and Professional Conduct IEEE Code of Ethics EC-Council Code of Ethics On admission to Mason, students agree to comply with the requirements of the GMU Honor System and Code1. The Honor Code will be strictly enforced in this course. Honor Code cases are heard by a panel consisting of students – students who meet the requirements are encouraged to nominate themselves to serve on the Honor Committee. Any use of the words or ideas of another person(s), without explicit attribution that clearly identifies the material used and its source in an appropriate manner, is plagiarism and will not be tolerated. Dean Griffiths has mandated a "zero tolerance" policy for plagiarism within The Volgenau School. The Instructor reserves the right to use manual and/or automated means (including such services as Safe Assign and MOSS – Measure of Software Similarity) to detect plagiarism in any work submitted by students for this course, and to direct Teaching Assistants and/or other faculty and/or staff members to do likewise in support of this course. For this course, the following requirements are specified: All assessable work is to be prepared by the individual student, unless the Instructor explicitly directs otherwise. All work must be newly created by the individual student for this course for this semester. Any usage of work developed for another course, or for this course in a prior semester, is strictly prohibited without prior approval from the instructor. Students may seek assistance with assigned work, (and are encouraged to do so) provided: 1 The directions for the assigned work do not prohibit such assistance. Such assistance is acknowledged in the submitted work, clearly identifying the person(s) giving assistance and the nature of the assistance given. Any work to be submitted is prepared entirely and exclusively by the student submitting it. Students are expressly prohibited from sharing any assessable work for this course in any manner with other students (except students assigned as Teaching Assistants to this course and the student's section), unless all students involved have had their work graded and returned by the Instructor, or the Instructor has explicitly approved such sharing. Available at www.gmu.edu/catalog/apolicies and related GMU Web pages. Copyright © 2010 Irene E. Bruno, PhD. All rights reserved. Page 10 of 10