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

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

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

CS503 Advanced Programming I CS305 Computer Algorithms I

CS 241 Data Organization using C

COMP-202A: Introduction to Computing 1

Dr. Angela Guercio Dr. Natalia Dragan. Spring 2011

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

Introduction to Data Structures

Data Structures and Algorithms

Division of Engineering, Computer Programming, and Technology

Fundamentals of Computer Science CSCI 136 Syllabus Fall 2018

CPSC 2380 Data Structures and Algorithms

Computer Science Department

CSc 2310 Principles of Programming (Java) Jyoti Islam

CS 3270 Mobile Development for Android Syllabus

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

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

INFS 2150 (Section A) Fall 2018

CS/SE 153 Concepts of Compiler Design

CS/SE 153 Concepts of Compiler Design

ECE573 Introduction to Compilers & Translators

IT 341 Fall 2017 Syllabus. Department of Information Sciences and Technology Volgenau School of Engineering George Mason University

COMP-202C: Foundations of Programming

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

Advanced Relational Database Management MISM Course F A Fall 2017 Carnegie Mellon University

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

ISM 324: Information Systems Security Spring 2014

KOMAR UNIVERSITY OF SCIENCE AND TECHNOLOGY (KUST)

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

Object-Oriented Programming for Managers

McGill University COMP-202A Introduction to Computing I Summer 2006 webct.mcgill.ca

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

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

Course and Contact Information. Course Description. Course Objectives

Cleveland State University

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

CISC 3130 Data Structures Fall 2018

EECE.2160: ECE Application Programming Spring 2019

CMPE 152 Compiler Design

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

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

Instructor: Anna Miller

CS 3030 Scripting Languages Syllabus

MET CS 674 C1/EL Spring 2017: DATABASE SECURITY SYLLABUS

SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION

CIS 101 Orientation Document Fall 2017

SADDLEBACK COLLEGE BUSINESS SCIENCE DIVISION

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

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

COMP Foundations of Programming

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

Syllabus Revised 08/21/17

COMP-202A: Introduction to Computing 1

Course and Contact Information. Course Description. Course Objectives

Compilers for Modern Architectures Course Syllabus, Spring 2015

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

GET 433 Course Syllabus Spring 2017

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

CSC 111 Introduction to Computer Science (Section C)

Introduction to UNIX

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

Computer Science Technology Houston Community College

CSC 210 COMPUTER SCIENCE II

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

Introduction to Computer Systems

You must pass the final exam to pass the course.

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

CS 4230 Java Application Development Syllabus

CS 4230 Java Application Development Syllabus

Syllabus CS 301: Data Structures Spring 2015

Syllabus -- CIS Computer Maintenance / A+ Certification

Operating Systems, Spring 2015 Course Syllabus

Gerlinde Brady Phone: Office Hours: see Web at:

CPS352 Database Systems Syllabus Fall 2012

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

Langara College Spring archived

Computer Science Department CSC 1050 CRN Introduction to Unix and C Programming Fall Term 2016 Main Campus

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

Announcements. 1. Forms to return today after class:

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

Langara College Spring archived

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

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

Cleveland State University

Web Programming Fall 2011

COMP251: Algorithms and Data Structures. Jérôme Waldispühl School of Computer Science McGill University

CMPE 152 Compiler Design

IT-2670: C/C++ PROGRAMMING LANGUAGE

Midland College Syllabus. ITNW 2413 Networking Hardware

ITT Technical Institute. ET2560T Introduction to C Programming Onsite and Online Course SYLLABUS

PC Applications IT102 estart Fall 2014

CS 241 Data Organization. August 21, 2018

COURSE SYLLABUS AND INSTRUCTOR PLAN

WAYLAND BAPTIST UNIVERSITY VIRTUAL CAMPUS SCHOOL OF BUSINESS SYLLABUS

CMPUT 391 Database Management Systems. Fall Semester 2006, Section A1, Dr. Jörg Sander. Introduction

Welcome to Blackboard

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

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

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

CISC 3130 Data Structures Spring 2018

Transcription:

BOSTON UNIVERSITY Metropolitan College MET CS342 Data Structures with Java Dr. V.Shtern (Fall 2011) Course Syllabus 1. Course Objectives Welcome to MET CS342 Data Structures with Java. The intent of this course is to familiarize the student with the state-of-the-art concepts of data structures, data abstraction, evaluation of algorithms, implementation of data structures and algorithms by Java libraries, and their use for modular software design with Java. Today, the object-oriented approach to software design and programming makes the appropriate choice and implementation of data structures crucial for program performance and for its future maintainability. A good understanding of standard data structures and associated algorithms becomes an indispensable component of designer's knowledge. In this course, we will briefly review the basic Java facilities for software modularization (classes, their components, inheritance, interfaces). We will use them to implement standard data structures: stacks, queues, lists, trees, hash tables, sets and maps. We will also consider algorithms for sorting and searching along with basic topics on performance evaluation and recursion and the use of Java generics and its Collections classes. Upon the completion of this course, you will further develop your skills of modular approach to producing maintainable, documented and adequately tested software of realistic size using Java as the implementation language. 2. Course Prerequisites As it is common for any training or college course, you have to make sure that you are sufficiently prepared to learn the course material, handle the course homework and participate in course interactions.

For this course, a working knowledge of Java is required (MET CS232 or equivalent is sufficient). Some degree of mathematical maturity (e.g., MET CS248) would be useful for understanding course materials, but it is not mandatory. 3. Course Policies This course is a "learn by doing" course. You will have to do programming homework assignments to help you master the course material. You are also expected to read the textbook and lecture handouts in advance to prepare for each lecture. Advance preparation is essential for your understanding of the course concepts. Before each class, the instructor will post class notes, homework assignments and additional announcements on the course Blackboard 8 Web site (http://blackboard.bu.edu/). Make sure that you print and read them before the class. Be active in course interactions, express your opinions, display your knowledge, and ask your questions. If your understanding is incorrect, the instructor will provide you with additional explanations and references. If you do not speak up, your understanding will remain incorrect. This will negatively affect both effectiveness of the course for you and your grade. Class attendance and doing programming homework on time are mandatory. If you have to skip a class or miss a deadline, do not worry - this course is designed for busy adults with many responsibilities, and it is more flexible than a regular day time college course. Still, it is your job to notify the professor that a professional or personal emergency has occurred: you should ask for an extension and set the recovery timetable and priorities mutually agreeable with the professor. Homework submitted late without prior permission will not be accepted. 4. Textbook J. Lewis, J. Chase. Java Software Structures: Designing and Using Data Structures. Third Edition, 2010, Addison-Wesley, ISBN 978-0136078586. 5. Grading Criteria There will be two exams (midterm and final) that will include analysis and coding problems, definitions of terms and concepts, and brief discussions of course concepts and their relationships. The exams are closed book, but you are allowed to prepare and bring a "cheat sheet." Grades will be based on your participation in class discussions and attendance (10%) and your grades for homework exercises (35%), the midterm exam (25%) and the final examination (30%).

Grading criteria for homework include: (a) correctness and clarity of your code and comments, (b) correct use of Java programming idioms for implementing required data structures, and, last but not least, (c) your ability to follow the homework specification and to explain your design decisions (please take this very seriously). Grading criteria for the exams include your ability to understand and explain course concepts and their relationships and your skills in using Java for implementing these concepts. 6. Academic Honesty The course is governed by the Boston University Academic Conduct Committee policies regarding plagiarism (any attempt to represent the work of another person as one's own). This includes copying (even with modifications) of a program or a segment of code or documentation or letting your work to be copied. Your participation in interactions with the instructor and your classmates is encouraged, but the work you submit must be your own. Collaboration is not permitted (for more details, see http://www.bu.edu/met/for-students/met-policies-procedures-resources/academicconduct-code/). 7. Computing Facilities As a Boston University student, you have the right to use the bookstore, libraries, sport facilities, and parking. The same is true of Boston University computing facilities. If you wish to use a Boston University Academic Computer Center account, one will be created for you, and you will be able to use its Unix operating system and its Java compiler. The Center office and the terminal room are located at 111 Cummington Street. To open an account, you have to show a valid BU ID card and choose your user name and a Kerberos password. System help and information is available at 617-353- 2784. You can also use the MET College computing labs that include PCs running Windows, Linux, or Unix (808 Commonwealth Avenue, 2nd floor). To enter the lab, you should register your BU ID card with an operator. To use a PC, you log in using your BU user name and your Kerberos password. You will also need your Kerberos password to access the course materials on the Blackboard 8 system. This course, however, is not environment-specific. Those students who have access to other computer systems that support Java should feel free to use them. Make sure, however, that these systems run the Java (tm) 2 Platform Standard Edition 6.

If you want to download the latest version of Java to your personal computer, go to the Sun Microsystems web site. There is no need to go after the Enterprise Edition (J2EE), Java SE with its JDK is sufficient. Download the latest update for Java SE Development Kit and its Documentation from http://www.oracle.com/technetwork/java/javase/downloads/index.html. Notice that you do not need to learn how to use a debugger or an IDE (Integrated Development Environment) for this course. Learning these tools will significantly increase the number of problems you will have to deal with in this course. Meanwhile, the programming problems in this course are simple enough and could be written using a simple text editor. They should be debugged and tested using your intelligence, not sophisticated and complex software tools. The recommended development environment is TextPad from http://www.textpad.com. Its trial version is free, its user interface is very simple and intuitive, and it is sufficient for the course work. Make sure that you install Java JDK first and Textpad next to enable Textpad to find your version of Java. 8. Course Instructor Your primary contact for the course during this semester will be the course instructor, Prof. Victor Shtern. Prof. Shtern came to the USA from Russia. He has many years of experience developing process control systems, database systems, operating systems, and systems for computer-aided instruction. Currently, he is Associate Professor at the MET Computer Science department of Boston University, where he designs and teaches courses on object-oriented technology. He designed and taught computeraided and distance education courses for several high technology companies, Boston University, and National Technological University. Prof. Shtern is very enthusiastic about teaching this course and will make every possible effort to help you understand and master the course material in the most effective way. All course materials will be posted on the course Web site (http://blackboard.bu.edu/). Learning is more enjoyable and productive when it is interactive. This course provides you with many opportunities to interact with the course instructor and with your classmates. Feel free to ask questions and make comments and suggestions. Contact Prof. Shtern either in class or send a Blackboard email (a "message" in Blackboard terminology) or telephone (617-358-0003, leave a message if necessary) or regular mail (Boston University, MET Computer Science Department, 808 Commonwealth Avenue, Room 250, Boston, MA 02215). Use regular e-mail (vshtern@bu.edu) only in case of emergency 9. Office Hours

Regular office hours will be held on Tuesdays from 5 to 5:50 P.M. at 808 Commonwealth Avenue, Room 250, Boston, MA 02215. Other times could be arranged by appointment. To make an appointment, e-mail to vshtern@bu.edu or call 617-358- 0003 (if there is no answer, leave a message). 10. Establishing Feedback To be sure that your Blackboard account is indeed activated and you are able to communicate with the professor, log in to Blackboard (using your BU user name and password) and send Prof. Shtern a "message" (not e-mail). In the message, specify your name, BU ID and the phone numbers to be used for emergencies. Describe your professional background, your current place of work, position and duties. List operating systems and programming languages you are comfortable with, computer science courses you have taken at BU and elsewhere, your goals in taking this course. Send this message within two days from the start of the course and login into your Blackboard account regularly. MET CS342 CLASS SCHEDULE Fall 2011 Num Date Topic Chapter 1 Sep 06 Course introduction. Discussion of software quality and algorithm analysis 1,2 2 Sep 13 Overview of object-oriented design and its support in Java App.A,B 3 Sep 20 Introduction to collections. Stacks and their array implementations 3 4 Sep 27 Implementing collections using linked lists 4 5 Oct 04 Queues, their implementations and applications 5 6 Oct 11 General lists, their ordered and unordered implementations and applications 6 7 Oct 18 Midterm exam. 8 Oct 25 Recursion; properties of recursive definitions and algorithms. Recursive view on data structures. 7 9 Nov 01 Searching and sorting. Simple algorithms, efficient algorithms, their implementations 8 10 Nov 08 Trees, their implementations. Tree traversals.

Expession trees. 9 11 Nov 15 Binary search trees. Balanced binary search trees, their implementations 10 12 Dec 22 Heaps, priority queues, B-trees 11,12 13 Dec 14 Hashing, sets and maps 14,15 14 Dec 21 Final examination. Dr. Victor Shtern shtern@bu.edu Last modified: August 13, 2011