San Jose State University - Department of Computer Science

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

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 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 CS151, Section 04 Object Oriented Design Spring 2018

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

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

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 CS166, Information Security, Section 1, Fall, 2018

Course and Contact Information. Course Description. Course Objectives

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

CMPE/SE 135 Object-Oriented Analysis and Design

Course and Contact Information. Course Description. Course Objectives

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

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

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

San José State University Department of Computer Science CS 166 / SE 166, Information Security, Section 4, 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 CS049J, Programming in Java, Section 2, Fall, 2016

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

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

CMPE 152 Compiler Design

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 College of Science / Department of Computer Science Introduction to Database Management Systems, CS157A-3-4, Fall 2017

CMPE 152 Compiler Design

CMPE 280 Web UI Design and Development

Course and Contact Information. Catalog Description. Course Objectives

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

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

CMPE 180A Data Structures and Algorithms in C++

ESET 369 Embedded Systems Software, Spring 2018

CMPE 280 Web UI Design and Development

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

CMPE 152 Compiler Design

ESET 369 Embedded Systems Software, Fall 2017

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

Advanced Programming CMPS 109

ESET 349 Microcontroller Architecture, Fall 2018

CS 3270 Mobile Development for Android Syllabus

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

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

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

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

SULTAN QABOOS UNIVERSITY COURSE OUTLINE PROGRAM: B.Sc. in Computer Science. Laboratory (Practical) Field or Work Placement

CSCI 201L Syllabus Principles of Software Development Spring 2018

Basics of Java Programming CS129 LTPC:

CS120 Computer Science I. Instructor: Jia Song

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

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

INST Database Design and Modeling - Section 0101 Spring Tentative Syllabus

Course Administration

CS 235AM, Mobile Application Development: Android Spring 2016

Programming Languages CSCE

Advanced Topics in Database Systems Spring 2016

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

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

CS 111: Programming Fundamentals II

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

CS 241 Data Organization using C

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015

CPSC 2380 Data Structures and Algorithms

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

SULTAN QABOOS UNIVERSITY COURSE OUTLINE PROGRAM: B.Sc. in Computer Science. Laboratory (Practical) Field or Work Placement

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

Object-Oriented Programming for Managers

Compulsory course in Computer Science

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

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

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

Syllabus Revised 01/03/2018

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

CS 3230 Object Oriented UI Development With Java Syllabus

ECE Object-Oriented Programming using C++ and Java

COLLEGE OF THE DESERT

CPS352 Database Systems Syllabus Fall 2012

Gerlinde Brady Phone: Office Hours: see Web at:

CS 241 Data Organization. August 21, 2018

Oklahoma State University Oklahoma City ITD 1113: Windows Expert User Syllabus Fall, 2014

Object Oriented Programming

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS ROUTING/SWITCH CONFIGURATION CSIT 2750

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

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

Instructor. Course Description. Learning Outcomes

Course Syllabus Internal Control And Auditing ACNT 2331

TITLE OF COURSE SYLLABUS, SEMESTER, YEAR

AP Computer Science A

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

Computer Networks IT321

CS 4230 Java Application Development Syllabus

Advisory: Students should have already taken MICROCOMPUTER APPLICATIONS II - 431

Spring CISM 3330 Section 01D (crn: # 10300) Monday & Wednesday Classroom Miller 2329 Syllabus revision: #

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS ADVANCED DATABASE MANAGEMENT SYSTEMS CSIT 2550

PELLISSIPPI STATE COMMUNITY COLLEGE MASTER SYLLABUS LINUX SYSTEM ADMINISTRATION CSIT 2411

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

Advanced Relational Database Management MISM Course S A3 Spring 2019 Carnegie Mellon University

IT-2670: C/C++ PROGRAMMING LANGUAGE

X

Transcription:

San Jose State University - Department of Computer Science CS 151, Section 4 - Object-Oriented Design Instructor:Cay S. Horstmann Email: cay.horstmann@sjsu.edu Telephone: +1-408-924-5060 Office Hours: TR12:45-13:30 Class day/time: MW 13:30-14:45 Classroom: Room: SCI 311 Spring 2017 Meeting times and location, the exam schedule, and class assignments, are published in the course web site (http://horstmann.com/sjsu/spring2017/cs151/index.html). 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. Prerequisites 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 Objectives OO Design: Introduce core UML concepts

Introduce a simplified OO analysis and design methodology Present the concept of design pattern Present the concept of a software framework Java Language: Make students proficient in the use and creation of interfaces and inheritance hierarchies Make students proficient in the Java type system Introduce threads and thread safety GUI Programming: Introduce a GUI toolkit, including basic widgets and the event handling mechanism. Student Learning Outcomes Upon successful completion of this course, students should be able to: OO Design Interpret and produce UML class diagrams and UML sequence diagrams Develop simple use cases, perform noun-verb analysis, interpret and produce CRC cards Appropriately select and apply the following design patterns in the construction of a software application: Composite, Decorator, Iterator, Strategy, Template method, and Observer Be able to follow a systematic OO design methodology Java language Create a class hierarchy involving existing and new interfaces and classes, including inner classes. Design, implement, test, and debug programs in an object-oriented language, involving the creation of at least 10 classes and interfaces Implement correctly the equals, hashcode, clone, tostring methods Use serializaton, reflection, and generics Throw, propagate and catch exceptions Implement threads and thread-safe data structures GUI Programming Use a GUI toolkit to create a graphical user interface involving frames, buttons, text components, panels, menus, and simple geometric shapes BS in Computer Science Program Outcomes Supported These are the BSCS Program Outcomes supported by this course: An ability to apply knowledge of computing and mathematics to solve problems An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution An ability to design, implement, and evaluate a computer-based system, process, component, or program to meet desired needs An ability to function effectively on teams to accomplish a common goal An ability to use current techniques, skills, and tools necessary for computing practice An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computer-based systems in a way that demonstrates comprehension

of the tradeoffs involved in design choices An ability to apply design and development principles in the construction of software systems of varying complexity Required Texts/Readings Textbook: Cay Horstmann, Object-Oriented Design and Patterns, 3rd ed. This is a work in progress, and you will receive a free digital copy for your personal use. You may not share your copy with others. Additional References K. Arnold, J. Gosling and D.Holmes, The Java Programming Language, 4th Ed., Addison- Wesley. M. Fowler, UML Distilled, 3rd Ed., Addison-Wesley. E. Gamma et al., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley. X. Jia, Object-Oriented Software Development Using Java: Principles, Patterns, and Frameworks, 2nd Ed., Addison-Wesley. Course Requirements Exams (55%) Two in-class exams (15% per exam) and a final exam (25%). Exams cannot be made up, except for reasons of illness, as certified by a doctor, or documentable extreme emergency. Makeup exams may be oral. Programming Assignments (20%) Schedule your time well to protect yourself against unexpected problems. Late work is not accepted, and there is no extra credit or makeup work. Team Project (20%) You work in a team of 3-4 people that is formed by the instructor on a topic that is chosen by the instructor. For the project, students are expected to report their own results as well as their collaborators. The task responsibility and contribution of every team member must be precisely documented in a report. During the project demo, team members are expected to be able to provide correct answers to questions that are specific to their tasks. Team members will be graded individually based on the report, their participation in project demo and peer evaluation. Class Attendance, Preparation and Participation (5%) Each student is expected to be present, punctual, and prepared at every scheduled class session. University policy F69-24 (http://www.sjsu.edu/senate/docs/f69-24.pdf) states that Students should attend all meetings of their classes, not only because they are responsible for material discussed therein, but because active participation is frequently essential to insure maximum benefit for all members of the class. Attendance per se shall not be used as a criterion for grading. You will be graded on particpation in class and online discussions, and your performance on quizzes that check the assigned pre-class reading. Time Spent As per Policy Recommendation S12-3 (www.sjsu.edu/senate/s12-3.pdf), success in this course is based on the expectation that students will spend, for each unit of credit, a minimum of forty-five hours over the length of the course for instruction or preparation/studying or course related activities.

This is a 3-unit/15-week class, so you should spend 135 hours per semester or 9 hours per week on this class. Calendar Mon Jan 30 Introduction Wed Feb 1 Object-Oriented Design Process Mon Feb 6 Object-Oriented Design Process Wed Feb 8 Object-Oriented Design Process Mon Feb 13 Guidelines for Class Design Wed Feb 15 Guidelines for Class Design Mon Feb 20 Guidelines for Class Design Wed Feb 22 Interface Types and Polymorphism Mon Feb 27 Interface Types and Polymorphism Wed Mar 1 Interface Types and Polymorphism Mon Mar 6 Patterns and GUI Programming Wed Mar 8 Midterm 1 Mon Mar 13 Patterns and GUI Programming Wed Mar 15 Patterns and GUI Programming Mon Mar 20 Inheritance and Abstract Classes Wed Mar 22 Inheritance and Abstract Classes Mon Mar 27 Spring Break Wed Mar 29 Spring Break Mon Apr 3 Android Programming Wed Apr 5 Android Programming Mon Apr 10 The Java Object Model

Wed Apr 12 The Java Object Model Mon Apr 17 The Java Object Model Wed Apr 19 Midterm 2 Mon Apr 24 Frameworks Wed Apr 26 Frameworks Mon May 1 Concurrency Wed May 3 Concurrency Mon May 8 Concurrency Wed May 10 Project Presentations Mon May 15 Project Presentations Mon May 22 12:15-14:30 Final exam Grading Policy You will receive a letter grade for each of the exams, the finals, the total homework performance, and the total participation in labs/discussions/quizzes. Letter grades are obtained by adding and curving the numeric scores. When determining a curve, the cutoffs are guided by the university definitions (http://www.sjsu.edu/registrar/students/grades-grades_changes/grade_symbols_and_values/) for letter grades: A+, A, A- excellent B+, B, B- above average C+, C, C- average D+, D, D- below average F failure Letter grades are converted into number grades, as specified by the registrar (http://www.sjsu.edu /registrar/tutorials/grade_values.html), except that an A+ is counted as 4.3, and weighted with the percentages given in the Course Requirements section. The weighted average is rounded towards the nearest letter grade, which is your class grade. University Policy F13-1 (http://www.sjsu.edu/senate/docs/f13-1.pdf) states: 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. Course Policies

Adding the Course To add the course, take the prerequisite quiz (http://horstmann.com/sjsu/spring2017/cs151 /hw1.html). You must use your add code within 24 hours, or the add code will be reassigned to someone else. Individual Work All homework and exams must be your own individual work. You may never copy anything from anyone without attribution, with one exception you may copy from the textbook. For homeworks and exams, you may not copy anything from any other student at all. You may not share any of your homework or exam work with any students prior to submission. Except for the team project, you may not collaboratively produce results in pairs or teams. Publicly Viewable Work Your class work (including homework, exam, and project work) may be viewable by other students of this course. Your grades will not be viewable by others. Laptops You will be required to bring a laptop to all (!) classes and exams. Your laptop must be capable of running a virtual machine with the course software, and you must be proficient in using it. University Policies Per University Policy S16-9, university-wide policy information relevant to all courses, such as academic integrity, accommodations, etc. will be available on the Office of Graduate and Undergraduate Programs Syllabus Information web page (http://www.sjsu.edu/gup/syllabusinfo/).