San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018

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

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

San Jose State University - Department of Computer Science

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

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

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

San José State University Department of Computer Science CS-174, Server-side Web Programming, Section 2, Spring 2018

San José State University Department of Computer Science CS049J, Programming in Java, Section 2, Fall, 2016

San José State University Department of Computer Science CS166, Information Security, Section 1, Fall, 2018

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

San José State University College of Science/Department of Computer Science CS 152, Programming Language Paradigms, Section 03/04, Fall, 2018

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, spring, 2017

CMPE 152 Compiler Design

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

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2, Fall Semester, 2017

San José State University Computer Science CS 122 Advanced Python Programming Spring 2018

CMPE/SE 135 Object-Oriented Analysis and Design

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

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 1 & 2 Spring Semester, 2018

CMPE 152 Compiler Design

CMPE 152 Compiler Design

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

San José State University College of Science/Department of Computer Science CS152, Programming Paradigms, Sections 3 & 4, Fall Semester, 2016

San Jose State University College of Science Department of Computer Science CS185C, Introduction to NoSQL databases, Spring 2017

Course and Contact Information. Course Description. Course Objectives

CMPE 180A Data Structures and Algorithms in C++

CMPE 280 Web UI Design and Development

Course and Contact Information. Course Description. Course Objectives

San José State University College of Science / Department of Computer Science Introduction to Database Management Systems, CS157A-3-4, Fall 2017

CMPE 280 Web UI Design and Development

ECE Object-Oriented Programming using C++ and Java

CS 111: Programming Fundamentals II

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

Advanced Programming CMPS 109

AE Computer Programming for Aerospace Engineers

Object-Oriented Programming for Managers

San José State University Department of Computer Science CS158B, Computer Network Management, Section 1, Fall 2016

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

Course and Contact Information. Catalog Description. Course Objectives

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

Oklahoma State University Institute of Technology Face-to-Face Common Syllabus Fall 2017

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

CS 241 Data Organization using C

ESET 349 Microcontroller Architecture, Fall 2018

Cleveland State University

Basics of Java Programming CS129 LTPC:

CSC 111 Introduction to Computer Science (Section C)

CSE 114, Computer Science 1 Course Information. Spring 2017 Stony Brook University Instructor: Dr. Paul Fodor

CS535: Interactive Computer Graphics

INST Database Design and Modeling - Section 0101 Spring Tentative Syllabus

San José State University Science/Computer Science Database Management System I

ISM 324: Information Systems Security Spring 2014

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

Rochester Institute of Technology Golisano College of Computing and Information Sciences Department of Information Sciences and Technologies

Computer Science Technology Department

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

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

ESET 369 Embedded Systems Software, Fall 2017

CS 241 Data Organization. August 21, 2018

EECE.2160: ECE Application Programming Spring 2017

INFS 2150 (Section A) Fall 2018

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

ESET 369 Embedded Systems Software, Spring 2018

CS 3230 Object Oriented UI Development With Java Syllabus

CMPT 126: Introduction to Computing Science and Programming Fall 2007, Harbour Centre

INF 315E Introduction to Databases School of Information Fall 2015

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

Computer Science Department

CS157a Fall 2018 Sec3 Home Page/Syllabus

CISC 3130 Data Structures Fall 2018

Course Syllabus. Programming Language Paradigms. Spring - DIS Copenhagen. Semester & Location: Elective Course - 3 credits.

CSCI455: Introduction to Programming System Design

CSCI 201L Syllabus Principles of Software Development Spring 2018

Object-Oriented Programming CSCI-UA

Overview of the Class

CS 375 UNIX System Programming Spring 2014 Syllabus

CS2013 Course Syllabus Spring 2018 Lecture: Mon/Wed 2:00 P.M. 2:50 P.M. SH C259 Lab: Mon/Wed 2:50 P.M. 4:00 P.M. SH C259

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

EEL 4930/5934 Advanced Systems Programming - Spring 2017

CENTRAL TEXAS COLLEGE COSC 1337 PROGRAMMING FUNDAMENTALS II. Semester Hours Credit: 3

CMSC 132: Object-Oriented Programming II. Administrivia

CS 210 Algorithms and Data Structures College of Information Technology and Engineering Weisberg Division of Engineering and Computer Science

University of Maryland at College Park Department of Geographical Sciences GEOG 477/ GEOG777: Mobile GIS Development

Red Hat Certified Engineer (RH300) 50 Cragwood Rd, Suite 350 South Plainfield, NJ 07080

CS503 Advanced Programming I CS305 Computer Algorithms I

Operating Systems, Spring 2015 Course Syllabus

B. Subject-specific skills B1. Problem solving skills: Supply the student with the ability to solve different problems related to the topics

CS 4230 Java Application Development Syllabus

CS 4230 Java Application Development Syllabus

In this course, you need to use Pearson etext. Go to "Pearson etext and Video Notes".

Computer Science Technology Department

CSc 2310 Principles of Programming (Java) Jyoti Islam

CSC 172 Data Structures and Algorithms. Fall 2017 TuTh 3:25 pm 4:40 pm Aug 30- Dec 22 Hoyt Auditorium

Lecture 1. Course Overview Types & Expressions

Computer Science Technology Department

ITSY Information Technology Security Course Syllabus Spring 2018

CS 3270 Mobile Development for Android Syllabus

Syllabus COSC-051-x - Computer Science I Fall Office Hours: Daily hours will be entered on Course calendar (or by appointment)

Transcription:

San José State University Department of Computer Science CS151, Section 04 Object Oriented Design Spring 2018 Course and Contact Information Instructor: Vidya Rangasayee Office Location: MH 213 Telephone: (408) 924-5161 Email: Office Hours: Class Days/Time: vidya.rangasayee@sjsu.edu T/Th 12-1 PM. Additional hours by appointment only T/Th 10:30-11:45 PM Classroom: MH 233 Prerequisites: MATH 42, CS 46B, and CS 49J (or equivalent knowledge of Java) (with a grade of "C-" or better in each) GE/SJSU Studies Category: Course Format : Technology Intensive, hybrid. Faculty Web Page and MYSJSU Messaging: We will use Canvas for all class related materials. Discussions will be facilitated via Piazza. Any general questions must be posted on Piazza for benefit of others. Any specific/personal questions (grade related or personal situations) must be communicated via email. DO NOT use Canvas for emailing me. I hardly check those messages. Object Oriented Design, CS151, Section 01 Spring 2018 Page 1 of 7

Course Description Design of classes and interfaces. Value and reference semantics. Object-oriented design methodologies and notations. Design patterns. Reflection and serialization. Exception handling. Graphical user interface programming. Frameworks and components. Multithreading. Required team-based programming assignment. Prerequisite: MATH 42, CS 46B, and CS 49J (or equivalent knowledge of Java) (with a grade of "C-" or better in each); Computer Science, Applied and Computational Math or Software Engineering majors only; or instructor consent. Course Learning Outcomes (CLO): Upon successful completion of this course, students will be able to: 1. OO Design: a. Introduce core UML concepts b. Introduce a simplified OO analysis and design methodology c. Present the concept of design pattern d. Present the concept of a software framework 2. Java Language: a. Make students proficient in the use and creation of interfaces and inheritance hierarchies b. Make students proficient in the Java type system c. Introduce threads and thread safety 3. GUI Programming: a. Introduce a GUI toolkit, including basic widgets and the event handling mechanism. Student Learning Outcomes Upon successful completion of this course, you should be able to: 1. OO Design a. Interpret and produce UML class diagrams and UML sequence diagrams b. Develop simple use cases, perform noun-verb analysis, interpret and produce CRC cards c. Appropriately select and apply the following design patterns in the construction of a software application: Composite, Decorator, Iterator, Strategy, Template method, and Observer d. Be able to follow a systematic OO design methodology 1. Java language a. Create a class hierarchy involving existing and new interfaces and classes, including inner classes. b. Design, implement, test, and debug programs in an object-oriented language, involving the creation of at least 10 classes and interfaces c. Implement correctly the equals, hashcode, clone, tostring methods d. Use serialization, reflection, and generics e. Throw, propagate and catch exceptions f. Implement threads and thread-safe data structures Object Oriented Design, CS151, Section 01 Spring 2018 Page 2 of 7

2. GUI Programming a. Use a GUI toolkit to create a graphical user interface involving frames, buttons, text components, panels, menus, and simple geometric shapes Required Texts/Readings Textbook Object Oriented Design and Patterns Author: Cay Horstmann A newer version of the book is currently under development. Resources can be found at http://horstmann.com/oodp3/ A pdf version of the book will be made available through Canvas. Other Readings Design Patterns in Java Edition: 2 Author:Steven John Metsker, William C. Wake ISBN:9780321333025 Publication Date:04/21/2006 Publisher:Addison-Wesley. Effective Java (Java Series) Edition: 2 Author:Joshua Bloch ISBN:9780321356680 Publication Date:05/18/2008 Publisher:Addison-Wesley Java Concurrency in Practice Author:Brian Goetz, Tim Peierls, Joshua Bloch ISBN:9780321349606 Publication Date:05/23/2006 Publisher:Addison-Wesley Other technology requirements / equipment / material Java 7 or higher. IDE - Eclipse or Netbeans. (This is the minimum required version though most of you may be using Java 8. Java 9 which is the latest release has newer features. We will discuss Java 8/9 as needed in class). Course Requirements and Assignments SJSU classes are designed such that in order to be successful, it is expected that students will spend a minimum of forty-five hours for each unit of credit (normally three hours per unit per week), including preparing for class, participating in course activities, completing assignments, and so on. More details about student workload can be found in University Policy S12-3 at http://www.sjsu.edu/senate/docs/s12-3.pdf. Each student is expected to be present, punctual, and prepared at every scheduled class and lab session. It is assumed that the students already have basic knowledge of digital Boolean logic and fundamentals of programming. Object Oriented Design, CS151, Section 01 Spring 2018 Page 3 of 7

Attendance is NOT optional though it does not form any part of your grade. Individual participation is also required. There will be no make-ups for missed midterm or assignments, unless any special arrangements is made with the instructor beforehand. The student is responsible for any material he/she may have missed. There will be 6-7 homeworks (some of which are team based), one final project, one midterm and final exam. All homework should be submitted through Canvas. No scanned copy of handwritten solution is allowed. Final Examination or Evaluation There is an online Final Exam for this course. Please check the university Final Exam schedule for the exact date and time of the final exam (http://info.sjsu.edu/static/catalog/final-exam-schedule-spring.html). Grading Information (Required) 1. Homework carries 60% towards final score. 2. Midterm carries 15% towards final score. 3. Final carries 25% towards final score. Submission is allowed till 11:59 pm on due date. You will lose 20% of the score for every day that your submission is LATE. I first try scores of 90, 80, and 70 to cut off letter grades of A-, B-, and C-, respectively. If overall class performance is too low to use these cut offs, Note that All students have the right, within a reasonable time, to know their academic scores, to review their grade-dependent work, and to be provided with explanations for the determination of their course grades. See University Policy F13-1 at http://www.sjsu.edu/senate/docs/f13-1.pdf for more details. IClicker Throughout this semester I will be using iclicker to track attendance as well as for self-review questions. Register with iclicker. Instructions on how to do that is provided at http://www.sjsu.edu/ecampus/docs/iclicker%20account%20-%20setup%20guide%20-%20student.pdf. Instructions on adding this class is at http://www.sjsu.edu/ecampus/docs/iclicker%20- %20Add%20Your%20Course%20-%20Setup%20Guide%20-%20Student.pdf Classroom Protocol (aka how to succeed in this class) 1. Attend all sessions. From past semesters, data shows that there is a positive correlation between attendance and your overall grade. 2. Come to class on time. Students entering the classroom late disrupt the lecture and / or the students already in class who may be engaged in lab or discussion. 3. If you miss a lecture you are still responsible for any material discussed or assignments given. A large portion of each class will be used for hands-on lab / discussion. All students are expected to participate in class activities. Students who are often absent will find themselves at a disadvantage during the tests. Object Oriented Design, CS151, Section 01 Spring 2018 Page 4 of 7

4. No audio / video recording or photography in the classroom without prior permission of instructor. Instructor may provide review videos and/or flipped classroom. 5. No personal discussion or cell phone activity during class time. Please set the cell phone on silent/vibrate mode. 6. Email to be sent to the instructor's SJSU email ID (vidya.rangasayee@sjsu.edu) only. Please DO NOT use canvas for emailing. I check email periodically during the day but much less during weekends. Please do not expect quick turnaround time during weekends. 7. Start on your homework early and stay on top of them. Some assignments take way more time than you expect. Don t let your initial impression fool you. 8. Start forming study/project groups NOW. It makes it easier to work with the group for the final project. Your project partners are highly important to your success so choose them wisely. 9. Be prepared to learn A LOT. Some of this may require you to self study certain topics. I will guide you through this journey but the onus of getting the best of this class lies on you. 10. If you are stuck or don t understand something, ASK. Come to office hours. If office hours don t work for you email, ask on piazza., ask me right after class. I cannot help you if you don t ask for it Have fun learning. University Policies (Required) Per University Policy S16-9, university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc. will be available on Office of Graduate and Undergraduate Programs Syllabus Information web page at http://www.sjsu.edu/gup/syllabusinfo/ CS 151 Object Oriented Design, Spring 2017, Course Schedule Tentative schedule. Subject to change with notice. Week Date Topics, Readings, Assignments, Deadlines Additional Notes 1 1/24/2018 Intro to CS151 2 1/30/2018 Intermediate Java, Collections HW01 Assigned 2 2/1/2018 Collections, Unit Testing 3 2/6/2018 Object Oriented Concepts - Encapsulation and Inheritance, Abstract Classes 3 2/8/2018 Object Oriented Concepts - Polymorphism HW01 Due 4 2/13/2018 Object Oriented Concepts - Polymorphism, Interfaces HW02 Assigned 4 2/15/2018 Guidelines for Class Design Object Oriented Design, CS151, Section 01 Spring 2018 Page 5 of 7

5 2/20/2018 Guidelines for Class Design 5 2/22/2018 GUI Programming HW02 Due 6 2/27/2018 GUI Programming HW03 Assigned 6 3/1/2018 GUI Programming 7 3/6/2018 Design Patterns 7 3/8/2018 Design Patterns HW03 Due 8 3/13/2018 Design Patterns HW04 Assigned 8 3/15/2018 Java Object Model and Frameworks 9 3/20/2018 Midterm Review Project Assigned 9 3/22/2018 Midterm Online 10 3/28/2018 SPRING RECESS 10 3/30/2018 SPRING BREAK 11 4/3/2018 Serialization HW04 Due HW05 Assigned 11 4/5/2018 Reflection 12 4/10/2018 Reflection 12 4/12/2018 MultiThreaded Programming HW05 Due 13 4/17/2018 MultiThreaded Programming HW06 Assigned 13 4/19/2018 MultiThreaded Programming 14 4/24/2018 Network Programming 14 4/26/2018 Network Programming HW06 Due 15 5/1/2018 Web Programming HW07 Assigned 15 5/3/2018 Web Programming Object Oriented Design, CS151, Section 01 Spring 2018 Page 6 of 7

16 5/8/2018 Project Demo 16 5/10/2018 Review HW07 Due Final Exam 5/22/2018 FINAL EXAM Online Object Oriented Design, CS151, Section 01 Spring 2018 Page 7 of 7