CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015

Similar documents
San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1, 2, and 3, Spring 2018

CASPER COLLEGE COURSE SYLLABUS MSFT 1600 Managing Microsoft Exchange Server 2003 Semester/Year: Fall 2007

CS 241 Data Organization using C

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1,2 and 3, Spring 2017

Network Fundamentals and Design Fall Semester 2014

INFS 2150 (Section A) Fall 2018

CS 200, Section 1, Programming I, Fall 2017 College of Arts & Sciences Syllabus

San Jose State University College of Science Department of Computer Science CS151, Object-Oriented Design, Sections 1 and 2, Spring 2016

CSCE 206: Structured Programming in C

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS. ITNW 2313: NETWORKING HARDWARE Online Course Version COMPUTER TECHNOLOGY DEPARTMENT

South Portland, Maine Computer Information Security

CSCI 434 INTRODUCTION TO LOCAL AREA NETWORKS (SPRING 2015)

COURSE SYLLABUS ****************************************************************************** YEAR COURSE OFFERED: 2015

CISC 3130 Data Structures Fall 2018

CSE (Computational Geometry) SYLLABUS

CSCE 441 Computer Graphics Fall 2018

South Portland, Maine Computer Information Technology. Web Site: blackboard.smccme.edu. Course Syllabus

Object-Oriented Programming for Managers

ISM 324: Information Systems Security Spring 2014

CASPER COLLEGE COURSE SYLLABUS ELTR 2920, Section 01 Small Computer Repair Techniques. Lecture Hours: 2 Lab Hours: 2 Credit Hours: 3

MWF 9:00-9:50AM & 12:00-12:50PM (ET)

Updated: 2/14/2017 Page 1 of 6

MGMT 4336 Networks & Data Communication Section D10

Del Mar College Master Course Syllabus. UNIX System Administration Course Number: ITSC1358

3D Graphics Programming Mira Costa High School - Class Syllabus,

The Linux Command Line: A Complete Introduction, 1 st ed., by William E. Shotts, Jr., No Starch Press, 2012.

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

BEMIDJI STATE UNIVERSITY COLLEGE OF BUSINESS, TECHNOLOGY AND COMMUNICATION Course syllabus Fall 2011

Nashville State Community College Computer and Engineering Technologies Division Computer Information Systems. Master Course Syllabus

BEMIDJI STATE UNIVERSITY COLLEGE OF BUSINESS, TECHNOLOGY AND COMMUNICATION Course syllabus Fall 2012

CoSci 440 SYLLABUS Programming in C++ INSTRUCTOR Mari Rettke cell SECTION : and 13345

Survey of Programming Languages Dr. R. M. Siegfried 407 Science (516) (not for homework submission)

Beijing Jiaotong University CS-23: C++ Programming Summer, 2019 Course Syllabus

ITCC Cisco Exploration 1: Networking Fundamentals

Course and Contact Information. Course Description. Course Objectives

Cleveland State University

COURSE SYLLABUS FOR. COMP-297 Web Page Design: Adobe Dreamweaver

San Jose State University - Department of Computer Science

Web Programming Fall 2011

You must pass the final exam to pass the course.

Course Title: Computer Networking 2. Course Section: CNS (Winter 2018) FORMAT: Face to Face

CISS 341 Implementing Windows Operating System Security (Online) Fall 2016 Course Code 17339

EECE.2160: ECE Application Programming Spring 2019

WAYLAND BAPTIST UNIVERSITY VIRTUAL CAMPUS SCHOOL OF BUSINESS SYLLABUS

CS 3030 Scripting Languages Syllabus

ESSEX COUNTY COLLEGE Business Division CIS 152 Internet Concepts Course Outline

Database Design and Management - BADM 352 Fall 2009 Syllabus and Schedule

CSCI 6312 Advanced Internet Programming

Web For Business. Successful completion of Discover IT! with a C or better. Online with regular class days using

Instructor: Anna Miller

CENTRAL TEXAS COLLEGE ITCC 1440 CCNA 2: Routing and Switching Essentials. Semester Hours Credit: 4

San José State University Computer Science Department CS49J, Section 3, Programming in Java, Fall 2015

COSC 115A: Introduction to Web Authoring Fall 2014

ECONOMICS 5317: CONTEMPORARY GOVERNMENT AND BUSINESS RELATIONS

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus

HARFORD COMMUNITY COLLEGE 401 Thomas Run Road Bel Air, MD Course Outline Routing and Switching Essentials [CISCO 2] ISS 112

Center of Excellence Digital & Information Technology

Course Title: Network+/Networking Fundamentals. Course Section: CNS-101-I1. FORMAT: Online

BRAZOSPORT COLLEGE LAKE JACKSON, TEXAS SYLLABUS. ITNW 1354: IMPLEMENTING AND SUPPORTING SERVERS Previously ITMC 1341 and then ITMT 1340

Introduction to Programming System Design CSCI 455x (4 Units)

CASPER COLLEGE COURSE SYLLABUS BIOL 1000, Introduction to Biology I

CSCI 201L Syllabus Principles of Software Development Spring 2018

PELLISSIPPI STATE TECHNICAL COMMUNITY COLLEGE MASTER SYLLABUS HPC INTERNETWORKING & GRID TECHNOLOGY HPC 1020

CISN 340 Data Communication and Networking Fundamentals Fall 2012 (Hybrid)

Course: Honors AP Computer Science Instructor: Mr. Jason A. Townsend

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS. INTRODUCTION TO INTERNET SOFTWARE DEVELOPMENT CSIT 2230 (formerly CSIT 2645)

COURSE OUTLINE. IST 253 Database Concept 3 Course Number Course Title Credits

EECE.2160: ECE Application Programming Spring 2017

San Jose State University College of Science Department of Computer Science CS185C, NoSQL Database Systems, Section 1, Spring 2018

San José State University Department of Computer Science CS151, Object Oriented Design, Section 04, Fall, 2016 (42968)

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Spring 2018

SAULTCOLLEGE OF APPLIED ARTS AND TECHNOLOGY SAULT STE. MARIE, ONTARIO COURSE OUTLINE

CS 241 Data Organization. August 21, 2018

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

CISC 3130 Data Structures Spring 2018

CSE 504: Compiler Design

SYLLABUS. Departmental Syllabus

SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION

CENTRAL TEXAS COLLEGE ITCC 1414 CCNA 1: Introduction to Networks. Semester Hours Credit: 4

COURSE NUMBER: ISS 214 COURSE NAME: Connecting Networks - Cisco 4 SEMESTER CREDIT HOURS: 4.

San José State University Computer Science Department CS157A: Introduction to Database Management Systems Sections 5 and 6, Fall 2015

IST359 - INTRODUCTION TO DATABASE MANAGEMENT SYSTEMS

CPS352 - DATABASE SYSTEMS. Professor: Russell C. Bjork Spring semester, Office: KOSC 242 x4377

Division of Engineering, Computer Programming, and Technology

CIS-255 Object Oriented Programming in C++ Bristol Community College Computer Information Systems Department Fall 2018

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS 3D MODELING & ANIMATION VPT 2165

COMP 1130 Programming Fundamentals (Javascript Rocks)

ESET 369 Embedded Systems Software, Fall 2017

ESET 349 Microcontroller Architecture, Fall 2018

ITSY Information Technology Security Course Syllabus Spring 2018

COSC 115: Introduction to Web Authoring Fall 2013

Course and Contact Information. Catalog Description. Course Objectives

San José State University Department of Computer Science CS-144, Advanced C++ Programming, Section 1, Fall 2017

Object Oriented Programming

COLLEGE OF DUPAGE CIS 2542 Advanced C++ with Data Structure Applications Course Syllabus

ECE Object-Oriented Programming using C++ and Java

Sprint 2017, Sul Ross State University

CS157a Fall 2018 Sec3 Home Page/Syllabus

JOHNSON COUNTY COMMUNITY COLLEGE COURSE SYLLABUS WEB CRN Web Scripting: JavaScript I

Transcription:

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015 INSTRUCTOR: Dr. Ray Maleh Adjunct Professor, Department of Computer Science Office: TBD Email: Ray_Maleh@tamuc.edu Office Hours: Mondays 7:10 PM 8:10 PM, Other Times By Appt. CLASS MEETING TIMES: E-College (Online) Aug. 31 2015 Dec. 18, 2015 TEXTBOOK: Horstman, Cay. Big Java 6 th Edition. New York: John Wiley & Sons, Inc. (4 th and 5 th Editions are also acceptable) [This is a great introduction to the Java programming language.] Any additional resources about UML and important differences between OOP in Java and C++ will be handed out in class. CREDIT HOURS: 3 PREREQUISITES: CSCI 515 and CSCI 520 STUDENT LEARNING OUTCOMES: (CO528.1): Software Engineering Basics. Students will be expected to apply knowledge of the software development cycle to write programs using the object oriented programming paradigm. (CO528.2): Classes basics/advanced. Students will become comfortable at designing and implementing classes as well as creating and manipulating objects belonging to those classes. Students will also become familiar with advanced topics such as reflection and the use of GoF design patterns. (CO528.3): Overloading. Students will learn how to take advantage of function overloading so as generate more readable and maintainable code suitable for large software projects. (CO528.4): Polymorphism/Virtual functions. Students will learn to develop hierarchies of related classes. They will design and implement superclasses and interfaces that use common field/method names but have base class dependent implementations. Students will learn the principles of code-refactoring and efficient code reuse. (CO528.5): Templates/Generic Programming. Students will learn to design, implement, and use generic classes and methods. Students will learn about the limitations of generic programming, i.e. type erasure. Students will also learn how to throw and handle exceptions for dealing with

exceptional situations and errors. Students will design custom exception types. (CO528.6): UML. Students will use the Unified Modeling Language to model the static and dynamic behavior of object oriented software. (CO528.7): Integration Project. Students will complete a comprehensive final project to include design/analysis as well as implementation. COURSE DESCRIPTION: This course provides an in-depth survey of object oriented programming (OOP) using the Java language. We begin with an introduction to object oriented design and analysis, objects, and classes. We use classes to implement advanced linked data structures such as lists and trees. We then cover the topic of inheritance and polymorphism: we learn how to factor out (refactoring) common functionalities among a set of related classes and incorporate them into a common super-class or interface. Then we discuss generic programming (templates) as a method for achieving additional polymorphism when a class is written in terms of another variable class type (e.g., ArrayList<T>). We provide an introduction to exception handling including the design and implementation of custom exception types. Then, we cover the topic of reflection in which one can learn about classes, their fields, and their methods, all at run-time. We then wrap up with an analysis of commonly used design patterns (GoF patterns) that are utilized extensively in object oriented software development. The Unified Modeling Language (UML) will be presented and students will be expected to use it throughout the course to develop blueprints of their software programs. While primary instruction will be provided in Java, we will also show a few C++ examples in order to outline similarities and differences between the two languages. METHOD OF EVALUATION (Tentative): Your grade in the course will be calculated as follows: Programming Assignments: 25 % 3 Exams: 25 % each (lowest dropped) Final Project: 25 % Assignments and projects will be assigned on ecollege and must be turned into the correct dropbox. Three exams will be administered. I will keep only your two best scores and drop the lowest. Because of this policy, no makeup exams will be given. If you have to miss an exam for any reason, this will be the exam that will not be counted. All code must be readable. What this means is that you indent nested statements and provide a generous amount of comments. As an example, consider the following two pieces of code, both of which calculate the factorial of an integer n: //Good Code /*This function calculates the factorial of its non-negative integer input n. Output type is integer.*/

public static int factorial(int n) { if (n == 0) //Base Case: 0! = 1 return 1; } else return n*factorial(n-1); //For n > 0, recursively let //n! = n*factorial(n-1) //Bad Code public static int fctrl (int n) {return n>0?n*fctrl (n-1):1;} While both are correct, the second version can be very difficult for another person to understand. Conversely, don t over-comment your code to the point where I m struggling to find the locations of the actual instructions. When evaluating your code, I will take coding style into account. I believe that it is imperative for programmers to produce readable code, especially when working on massive team-based software development projects. Your final letter grade will be determined as follows: A total number of points 89.5 B 79.5 total number of points < 89.5 C 69.5 total number of points < 79.5 D 59.5 total number of points < 69.5 F total number of points < 59.5 I reserve the right to curve the grades in the course; however, for a given raw average, you will at least earn the grade letter shown above (if not better). As you will notice, I have already incorporated a standard rounding scheme into the schedule of grades. Thus, please do not ask me to round your grade at the end of the semester. TECHNOLOGY REQUIREMENTS In order to successfully participate in and complete this course, you must have access to a computer with internet access that can run the e-college software. You will also need access to word processing software (preferably Microsoft Word). Within the e-college interface, you must be accessible with the following tasks: reading and posting to a discussion thread, uploading and downloading documents from Doc Sharing, uploading homework assignments/papers into an appropriate drop box, and taking exams online. If you are uncomfortable with performing these tasks, then you are encouraged to view the tutorial that is offered on the e-college website. In addition, you can always ask the e-college technical support staff or me if you require assistance. ACADEMIC ETHICS: "All students enrolled at the University shall follow the tenets of common decency and acceptable behavior conducive to a positive learning environment." (See Student's Guide Handbook, Policies and Procedures, Conduct). ATTENDANCE POLICY:

Students are expected to be present at all class lectures. If a student is absent from class on the due date of any assignment, they are expected to make alternative arrangements to assure that the assignment is turned in ON TIME. Any student wishing to withdraw from the course must do so officially as outlined in the class schedule. THE INSTRUCTOR CANNOT DROP OR WITHDRAW ANY STUDENT. COURSE REQUIREMENT DEADLINES: Credit will be given for ONLY those exam(s), program(s), and/or project(s) turned in no later than the deadline(s) as announced by the instructor of this class unless prior arrangements have been made with the instructor. ACADEMIC ETHICS AND HONESTY STATEMENT: Scholastic dishonesty is a violation of the Code of Student Conduct. Scholastic dishonesty includes, but is not limited to, cheating on a test, plagiarism, and collusion. "All students enrolled at the University shall follow the tenets of common decency and acceptable behavior conducive to a positive learning environment." (See Student's Guide Handbook, Policies and Procedures, Conduct). Academic dishonesty includes, but is not limited to, cheating on tests, plagiarism and collusion. Cheating includes copying from another student s test or homework assignments or projects or quizzes, using materials not authorized, collaborating with or seeking aid from another student during a test, knowingly using, buying, selling, stealing, or soliciting the contents of an unadministered test, and substituting for another person to take a test. Plagiarism is the appropriating, buying, receiving as a gift, or obtaining by any means another s work and the unacknowledged submission or incorporation of it in one s own written work. Collusion is the unauthorized collaboration with another person in preparing written work for the fulfillment of course requirements. Academic dishonesty is a serious offense in college. You will be given not only a failing grade on the assignment or test, but also a failing grade for the class. Further, it will result in suspension from college. PLAGIARISM: In any written paper or test or assignment or quiz or project including code and/or documentation, you are guilty of the academic offense known as plagiarism if you half-copy or copy another author's sentences, words or any part of the content. This will result in an automatic grade of "F" for the course. Hence any of these must be fully avoided in order not to fail the class. Students copying from work done in previous semesters by former students as well as copying from internet sources without proper referencing will result in you failing this course. You cannot mix the author's words with your own or "plug" your synonyms into the author's sentence structure. To prevent unintentional borrowing, resist the temptation to look at the source as you write. The author's words, phrases, sentences must be put in your words and in your way of writing! When you do this, you are demonstrating your ability to understand and comprehend the material! STUDENTS WITH DISABILITIES:

Students requesting accommodations for disabilities must go through the Academic Support Committee. For more information, please contact the Director of Disability Resources & Services, Halladay Student Services Bldg., Room 303D, (903) 886-5835