CS503 Advanced Programming I CS305 Computer Algorithms I

Similar documents
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

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

CS 241 Data Organization using C

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

CISC 3130 Data Structures Fall 2018

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

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid

CSCE 210/2201 Data Structures and Algorithms. Prof. Amr Goneid. Fall 2018

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

CISC 3130 Data Structures Spring 2018

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

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

CPSC 2380 Data Structures and Algorithms

IT-2670: C/C++ PROGRAMMING LANGUAGE

Compulsory course in Computer Science

ECE Object-Oriented Programming using C++ and Java

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

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

CS 3270 Mobile Development for Android Syllabus

Spring 2018 El Camino College E. Ambrosio. Course Syllabus

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

INFS 2150 (Section A) Fall 2018

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

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

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

CS Computer Science I

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

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

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

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

EECE.2160: ECE Application Programming Spring 2017

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

EECE.2160: ECE Application Programming Spring 2019

Cleveland State University

CSCE 441 Computer Graphics Fall 2018

Introduction to UNIX

2. COURSE DESIGNATION: 3. COURSE DESCRIPTIONS:

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

CS 241 Data Organization. August 21, 2018

Quantitative Finance COURSE NUMBER: 22:839:615 COURSE TITLE: Special Topics Oriented Programming 2

Object Oriented Programming Using C++

PC Applications IT102 estart Fall 2014

ECE573 Introduction to Compilers & Translators

CS 471 Networking and Distributed Operating Systems

Computer Science 1321 Course Syllabus

ESET 349 Microcontroller Architecture, Fall 2018

VE281 Data Structures and Algorithms. Introduction and Asymptotic Algorithm Analysis

ISM 324: Information Systems Security Spring 2014

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

Compilers. Computer Science 431

Updated: 2/14/2017 Page 1 of 6

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

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, 2, and 3, Spring 2018

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

Advanced Programming CMPS 109

CMPE 180A Data Structures and Algorithms in C++

Compilers for Modern Architectures Course Syllabus, Spring 2015

CS 375 UNIX System Programming Spring 2014 Syllabus

INFSCI 1017 Implementation of Information Systems Spring 2017

CMSC 341. Shawn Lupoli (substituting for Nilanjan Banerjee) UMBC CMSC 341 Intro 1

CS157a Fall 2018 Sec3 Home Page/Syllabus

CSCI 434 INTRODUCTION TO LOCAL AREA NETWORKS (SPRING 2015)

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

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

Web Programming Fall 2011

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

CSE 504: Compiler Design

CS 3230 Object Oriented UI Development With Java Syllabus

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

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

Introduction to Data Structures

COLLEGE OF THE DESERT

COSC 115A: Introduction to Web Authoring Fall 2014

Object-Oriented Programming for Managers

Advanced Programming Concepts. CIS 15 : Spring 2007

You must pass the final exam to pass the course.

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

CS 240 Fall Mike Lam, Professor. Just-for-fun survey:

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

Syllabus. ICS103: Computer Programming in C 2017 / 2018 First Semester (Term 171) INSTRUCTOR Office Phone Address Office Hours

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

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

Gerlinde Brady Phone: Office Hours: see Web at:

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

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

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

Web Programming Spring 2010

CSci 4211: Data Communications and Computer Networks. Time: Monday and Wednesday 1 pm to 2:15 pm Location: Vincent Hall 16 Spring 2016, 3 Credits

THE UNIVERSITY OF TEXAS AT AUSTIN MIS373 e-discovery and Digital Forensics SPRING 2015 Unique#: (03665) VERSION: 2_011718

CIS* Programming

Sprint 2017, Sul Ross State University

Database Security MET CS 674 On-Campus/Blended

MSIS-DL 317 Syllabus. Faisal Akkawi, Ph.D. Introduction to Databases Fall 09

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

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

Data Structures and Algorithms

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

Algorithms and Data Structures Spring 2008

Central Washington University Department of Computer Science Course Syllabus

Transcription:

Syllabus: CS503 Advanced Programming I CS305 Computer Algorithms I Course Number: CS503-50/CS305-50 Course Title: Advanced Programming I/Computer Algorithms I Instructor: Richard Scherl Office: Howard Hall C-6 Phone: 571-4457 Email: rscherl@monmouth.edu Web: www.monmouth.edu/ rscherl/ Class Times: Tuesdays 6:00 7:50 Thursdays 6:00-7:50 Class Location: Edison 113 Office Hours: Tuesdays 4:00-5:30, Thursdays 4:00-5:30 Texts: Required C++AnIntroductiontoDataStructuresby Larry Nyhoff. Prentice-Hall, 2005 (Second Edition) Required Some C++ text. For example, C++ How to Program by Deitel and Deitel, Prentice Hall. (4th edition or later) Expected Work: Regular reading assignments, two midterm examinations, quizzes, a number of homework (primarily programming) assignments, and a final examination. Organization Both CS305 and CS503 will meet together, but will be graded separately. The assignments may differ. The exams will be different. Class Information All computer-generated overheads and handouts will be put on Ecampus. Grading: Midterms 30 % Quizzes/Class Participation 10 % Final 30 % 1

Homeworks 30 % Exam Dates Midterm I To be announced Midterm II To be announced Final During Finals Week Class Participation: If you miss a class, it is your responsibility to find out about any announcements made in class, and about the material covered. Similarly you are responsible for all information included in any assignments whether handed out or transmitted online and for all the information in this syllabus. Class participation is strongly encouraged. Feel free to ask questions. When in doubt, ASK. Sessions of the class held on Ecampus are required. You will be graded for your participation in the Ecampus activities. Late Policies: Homeworks should be handed in on the date due. The deduction for late homeworks is 5% per day up till 1 week late. Late homeworks may not be handed in by email except by special arrangement under special circumstances. They should be handed in to me directly. If you leave them in my mail box or under my door, you should also send me an email saying that you left it. They may also be mailed in by U.S. mail with the postmark date being used as the date handed in. After the one week has ended, late homeworks can be corrected, but will not receive credit as the solutions will have been discussed in class. Computer: All students will need an account on rockhopper. You may do your assignments on any machine (including your own PC), but I can only guarantee that the software will work as intended on rockhopper. Additionally, all code must work with the g++ compiler on cslab. Ecampus: The course will make use of Ecampus (http://ecampus.monmouth.edu) which is Monmouth s online education software. All registered students will be automatically given accounts. You use your hawkdom password to access ecampus. Prerequisites: CS176 with a grade of C or better or CS501B with a grade of B- or better. Familiarity with Unix. Goals of the Course: Provide an in depth coverage of fundamental data structures and algorithms including linked lists, hashing, sorting, searching, stacks, queues, trees, and 2

graphs. Application to problem solving and object oriented design and implementation of moderate sized programs. Recursive definitions and algorithms are also covered. Additionally students are exposed to a number of more advanced topics from C++ including inheritance, templates, and an introduction to the Standard Template Library. The Eclipse development environment will be introduced and used during the course. Programming Assignments There will be a number of programming assignments in C++. For every assignment, you must provide not only the code but also some sample runs of the code. When an assignment is completed, the following 2 things need to be done. Hand in a hard copy of both the code and the test runs in class. Thecodeneedstobemadeavailabletomeonrockhopper. You will need to create a directory to contain your final submissions. The directory and all of the files in it should be made readable by me but not by other students. Full instructions to be made available later. The grade that a programming assignment receives will be based upon a variety of factors including Results of testing the code. Readability of the code. Ability of the author to answer questions about the code. Rules: All cell phones need to be turned off during the class. If due to an emergency the phone needs to be left on, the permission of the instructor is needed. During exams, all cell phones must be off and put away. They can not be kept on the desk. Additionally, no calculators may be on the desk during an examination. They are not needed. Academic Honesty: Cheating in this course will not be tolerated. Both the giver and the receiver of information will receive the same penalty. The penalty is likely to be an F in the course and may very well lead to expulsion from Monmouth University. All such cases will be handled as outlined in the Monmouth University Student Handbook. Homeworks may NOT be solved in collaboration. You may talk about problems with each other. Where does talking end and cheating start? My rule of thumb is: you may not have a pen/pencil in your hand while you are talking (and no keyboard!). Special Accommodations Students needing accommodations are encouraged to see me during office hours or to make a specific appointment to discuss their needs. Students 3

with disabilities who need special accommodations for this class are encouraged to meet with me and/or the appropriate disability service provider on campus as soon as possible. In order to to receive accommodations, students must be registered with the appropriate disability service provider on campus as set forth in the student handbook and must follow the University procedure for self-disclosure, which is stated in the University Guide to Services and Accommodations for Students with Disabilities. Students will not be afforded any special accommodations for academic work completed prior to the disclosure of the disability and prior to completion of the documentation process with the appropriate disability service office. Regrades All disagreements about grading must be discussed in my office only. A request for an assignment or exam to be regrades must include a written note explaining the disagreement and also the original exam or assignment. These requests may be submitted in class or in my office. Regrade requests for a particular exam or assignment can only be accepted until the next test or assignment is due. Course Content Tentative and subject to change Segment 1 Review of Basic Concepts Program Development Process Abstract Data Types Classes and Objects Code Organization Functions Arrays Testing and Debugging Segment 2 Intermediate Review Pointers and Addressing New and Delete Operators Using Dynamic Memory, C-Style Strings and Other Examples Copy Constructor Operator Overloading Memory Leaks and Destructor Calls Simple File I/O and Arguments for main() Segment 3 Program Development Testing and Debugging Eclipse Development Environment 4

Makefiles Segment 4 Some Basic Data Structures Stacks Queues Linked Lists Segment 5 The Standard Template Library Vectors Iterators Two Dimensional Vectors Queues, Lists, Deques and Ordered (Priority) Queues A List Application Polynomials Lists vs. Vectors. Segment 6 Inheritance, Virtual Functions, and Dynamic Binding Derived Classes Constructors Object Oriented Design Virtual Functions and Dynamic Binding Application to Container Classes Potential Problems to Avoid Destructors Testing for Memory Leaks Segment 7 Introduction to Trees Basic Tree Properties Binary Trees Tree Traversals A Binary Tree Class Building and Walking a Binary Tree Introduction to Recursion Simple Complexity Determination Segment 8 More Trees Recursive and non Recursive Traversals Binary Search Trees Heaps Balanced Trees 5

Associative Containers Maps Segment 9 Graphs Some Definitions Some Properties of Graphs AGraphClass Representation for Graphs Graph Traversals Minimum Spanning Trees Segment 10 Searching, Sorting, and Hashing Basic Complexity Issues Simple Search Algorithms Elementary Sorting Algorithms More Efficient Sorting Algorithms External Sorting Standard Library Algorithms Hashing Initial Assignment Chapters 1,2, and 3 of Nyhoff. 6