ECE Object-Oriented Programming using C++ and Java

Similar documents
ECE Introduction to Compilers and Translation Engineering

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

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

COSC 115A: Introduction to Web Authoring Fall 2014

CSCI 201L Syllabus Principles of Software Development Spring 2018

CS 241 Data Organization using C

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

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

CS503 Advanced Programming I CS305 Computer Algorithms I

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

Object Oriented Programming

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

COSC 115: Introduction to Web Authoring Fall 2013

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

X

INFS 2150 (Section A) Fall 2018

Introduction to UNIX

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

CMPE/SE 135 Object-Oriented Analysis and Design

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

CSCE 206: Structured Programming in C

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

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

CISC 3130 Data Structures Spring 2018

CS2013 Course Syllabus Spring 2017 Lecture: Friday 8:00 A.M. 9:40 A.M. Lab: Friday 9:40 A.M. 12:00 Noon

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

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

CS 241 Data Organization. August 21, 2018

Compilers. Computer Science 431

Object Oriented Programming Using C++

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

ISM 324: Information Systems Security Spring 2014

Advanced Programming CMPS 109

CS 3030 Scripting Languages Syllabus

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

CS 3030 Scripting Languages Syllabus

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

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

COURSE SYLLABUS AND INSTRUCTOR PLAN

ECE 467 Section 201 Network Implementation Laboratory

CISC 3130 Data Structures Fall 2018

CONCORDIA UNIVERSITY DEPARTMENT OF CHEMISTRY AND BIOCHEMISTRY CHEM 293 SPECTROSCOPY AND STRUCTURE OF ORGANIC COMPOUNDS. SYLLABUS Winter 2018

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

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

CIS Computer Concepts & Programming

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

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

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

Gerlinde Brady Phone: Office Hours: see Web at:

Basics of Java Programming CS129 LTPC:

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

Division of Engineering, Computer Programming, and Technology

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

Introduction to Computers & Their Use

Instructor. Course Description. Learning Outcomes

CS157a Fall 2018 Sec3 Home Page/Syllabus

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

CSC 111 Introduction to Computer Science (Section C)

Computer Science Technology Department

DIG 3110 Web Design & Interactive Media

ECE573 Introduction to Compilers & Translators

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

Programming Languages CSCE

Computer Science Technology Department

Object-Oriented Programming for Managers

CSCE 441 Computer Graphics Fall 2018

Syllabus -- CIS Computer Maintenance / A+ Certification

San Jose State University - Department of Computer Science

CIS 101 Orientation Document Fall 2017

Course Syllabus - CNT 4703 Design and Implementation of Computer Communication Networks Fall 2011

ESET 369 Embedded Systems Software, Spring 2018

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

Programming 2. Outline (112) Lecture 0. Important Information. Lecture Protocol. Subject Overview. General Overview.

CMSC 132: Object-Oriented Programming II. Administrivia

ESET 349 Microcontroller Architecture, Fall 2018

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

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

CS 111: Programming Fundamentals II

Computer Science Department

CSc 2310 Principles of Programming (Java) Jyoti Islam

ICS111 Introduction to Computer Science

ab Houston Community College

Credit: The lecture slides are created based on previous lecture slides by Dan Zingaro.

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

Course Syllabus: CompTIA Project+

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

Compulsory course in Computer Science

Lecture 1. Course Overview Types & Expressions

CS 3270 Mobile Development for Android Syllabus

CIS 3308 Web Application Programming Syllabus

Introduction to Computer Systems

Model 4.2 Faculty member + student Course syllabus for Advanced programming language - CS313D

Sprint 2017, Sul Ross State University

CSCI 528: OBJECT ORIENTED PROGRAMMING, Fall 2015

Web Programming Fall 2011

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

Tuesday and Thursday 1:05 pm - 2:25 pm

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

Course Description. This course combines semesters three and four of the Cisco Networking Academy CCNA

COSE212: Programming Languages. Lecture 0 Course Overview

Transcription:

1 ECE 30862 - Object-Oriented Programming using C++ and Java Instructor Information Name: Sam Midkiff Website: https://engineering.purdue.edu/~smidkiff Office: EE 310 Office hours: Tuesday, 2:30 to 4:00 Wednesday 11:00 to 12:30, or by appointment. Email: smidkiff@purdue.edu Phone: 494-3440 (This is a terrible way to reach me. Email or piazza are much better). All email should have ECE 30862 in the subject line. Not doing this may cause it to be sent to my junk mail folder and not read forever. In general, questions should be submitted to piazza so that all students have the benefit of the question and answer. Teaching Assistant Information Sara Aghajanzadeh is the TA for the class. The TAs will handle the programming project, and all questions related to the programming project and programming homeworks should be directed to them. TA office hours are at the following times: Tuesday and Thursday 1PM 6PM, EE 207 or by appointment. Course Description This course is intended to teach you C++, Java, and some details about their implementation. It will include two large projects, homeworks that involve programming and no programming, Quizzes, 3 tests and no final. Prerequisites (if needed) You should be competent in programming a non-object oriented language and have taken ECE 26400. Learning Outcomes i. an understanding of the concepts of inheritance and polymorphism. [None] ii. an ability to overload operators in C++. [1,2] iii. an understanding of the difference between function overloading and function overriding. [None]

2 iv. an ability to incorporate exception handling in object-oriented programs. [None] v. an ability to use template classes and the STL library in C++. [None] vi. an ability to write object-oriented programs of moderate complexity in C++. [1] vii.an ability to write object-oriented programs of moderate complexity in Java. [1] viii.an ability to write programs with multiple threads and use synchronization among threads. [None] Suggested Text Programming with Objects, A Comparative Presentation of Object-Oriented Programming with C++ and Java, Avi Kak, John-Wiley, 2003, ISBN No. 047-126-8526 How to Succeed in This Course You will succeed in this class using the same strategies that work for most Comp E classes: attend class and pay attention, ask questions and talk to Prof. Midkiff if you don t understand concepts, understand the last lecture s material before going to the next lecture and attend class. And start on the projects as soon as you can. Programming almost always takes longer than you think it will. Policies General Course Policies Course questions not asked in class or during office hours should be asked using Piazza. The course Piazza page is at piazza.com/purdue/fall2018/ece30862/home. I will try and check Piazza at least twice a day on weekends. Please try and arrive on time. We ll be having short quizzes before many classes, and if you arrive late you may miss these. Computers can be used, don t talk on cell phones and mute them. It s a large class, but feel free to ask questions. Grading Grade ranges are: 90 100: A 80 90: B 70 80: C 60 70 D Below 60: F

3 When assigning grades, the cutoffs may be lower than what is shown. But if you make in the ranges above you will get at least the grade indicated. A- may be given to the top Bs, B- to the top Cs, etc. A+ may be given to the top As, B+ to the top Bs, etc. Tests: 3 tests will be given and each will be worth 14% of your grade, for a total of 42%. Projects: The C++ project will be worth 25% of the grade and the Java project will be worth 20% of your grade, for a total of 45% Homework: Homeworks, in total, will be worth 7% of your grade. At least 10 homeworks will be given. Quizzes: In-class quizzes will be worth 6% of your grade. 10% of the quizz scores will be dropped. Academic Dishonesty I dislike cheaters. It harms your fellow student, it creates extra work for me, usually at a bad time in the semester. If I catch you cheating, I will, at a minimum, flunk you on the assignment, turn you in to the department and turn you in to the Dean of Students. I may flunk you, depending on how severe I judge the cheating to be. You may discuss the projects with fellow students. You must not share code. You may discuss homeworks together. You may collaborate on homeworks. Remember that the primary purpose of homeworks is to help you understand concepts and prepare for tests: not doing the work yourself and understanding what you turn in will only hurt you. In-class quizzes must be done on your own, using no help from others or electronic communication, including accessing the web. You may use course notes, your notes, books, etc. In-class exams have the same policy as in-class quizzes. More information can be found at https://www.purdue.edu/odos/osrr/academicintegrity/index.html The Purdue Honors Pledge states: As a boilermaker pursuing academic excellence, I pledge to be honest and true in all that I do. Accountable together - we are Purdue. Use of Copyrighted Materials Unless otherwise stated, you may distribute notes, homeworks, old test and solutions from this course as long as any copyright notices remain and they are not used for any commercial purpose. Attendance I expect you to attend class. Many classes will have a quiz at some point in the class. I will drop some portion of the quiz grades, so you can miss some classes. Email me if you will need miss class for a good reason.

4 If you will have to miss an exam, let me know as soon as you know you will miss the exam so that we can arrange an alternate exam. If you are sick with a fever, avoid class there is no need to infect the rest of us. If you are sick and need to miss a test go to PUSH or another doctor and get a slip saying you visited. DO NOT come to my office when you are sick to let me know you are too sick to attend class, take a test, etc. Missed or Late Work Homeworks are not counted as late until I download them to grade. After that you may lose 50% credit. Projects will lose some number of points a day for being late. Grief Absence Policy for Students If you have a personal loss or other personal disaster strike you, please let me know and I will try to be accommodating. Violent or Disrespectful Behavior Policy I will not tolerate violent behavior, either towards me or your fellow students, and you will be dropped from class. Disrespectful Behavior I will not tolerate disrespectful behavior in class. This includes being impolite with the TAs or other students, and being disruptive in class by talking, making too much noise, viewing inappropriate material in labs or class, eating in labs, etc. The consequences for this may include having you called out in class to being dropped from the class. Emergencies In the case of fire, tornadoes, an active shooter or other emergency we will either shelter in place or leave. If this is during a test, the tests must be left on your desk, and will be collected and finished at a later time. Should facilities necessary for class or completing projects be unavailable appropriate extensions will be given to finish work. Accessibility and Accommodations Purdue University strives to make learning experiences as accessible as possible. If you anticipate or experience physical or academic barriers based on disability, you are welcome and encouraged to let me know so that we can discuss options. You are also encouraged to contact the Disability Resource Center at: drc@purdue.edu or by phone: 765-494-1247.

5 Nondiscrimination Every person should be treated with respect regardless of race, religion, personal beliefs or sexual orientation. Class Schedule Test dates: Wednesday, February 13 at 8PM, PHYS 203 Tuesday, March 19 at 6:30PM, PHYS 203 Tuesday, April 16 at 6:30PM, PHYS 203 There is no final in the class. Tentative Project due dates (they won t get earlier): C++ (team) project: Sunday, March 31, 11:59PM Java (individual) project: Sunday April 28, 11:59PM (the last day of dead week) Topics covered: Objects and Classes Inheritance and Polymorphism Encapsulation C++ Program structure Class examples Encapsulation and polymorphism Object instantiation inheritance; Casts and overloading Static functions Initializers Abstract Classes Parameter passing References Destructors Object assignments Copy Constructors Friend functions and operator overloading Containers (STL) Exceptions and assertions Java Inheritance and overloading Overloading Simple constructors Static methods variables, strings and arrays

6 Parameter passing The Object class Assertions and exceptions Cloning Threads and synchronization Games in Java Garbage collection Function resolution in Java and C++ Smart pointers in C++ Multiple inheritance in C++ C++11 Threads Java reflection Java Generics Other Java/C++ features Disclaimer This syllabus is subject to change.