120 likes | 272 Views
CS 2133: Data Structures. Introduction and Semester Plan R. P. Simpson. Class Infomation. Instructor: Richard P. Simpson, BSH 126E, EXT 4191 Texts : Data Structures & Algorithms, Goodrich, Tamassia, Mount Prerequisites: A grade of C or better in CS II and Discrete Math. Grading and Content.
E N D
CS 2133: Data Structures Introduction and Semester Plan R. P. Simpson
Class Infomation • Instructor: Richard P. Simpson, BSH 126E, EXT 4191 • Texts:Data Structures & Algorithms, Goodrich, Tamassia, Mount • Prerequisites:A grade of C or better in CS II and Discrete Math.
Grading and Content Course Content: In this course you will continue a study of data structures and object oriented design. The class will include analysis of algorithms and an in-depth look at trees, graphs, sorting and searching. Projects will involve the simulation/implementation of several of these data structures. Grading: Projects 40% 1 Final 15% 3 Exams 30% Homework and Quizzes 15%
Projects This course is project intensive and expect up to 4 or 5 programs to be given during the course. Each project, unless otherwise specified is to be turned in within an envelope with your name and project number printed on the outside. Include a printout of your source and associated output, if appropriate, together with a thumb drive or CD containg the programs .exe, .cpp and other necessary files such as data or necessary libraries. Make sure that your program runs off the turned media, IE you have an executable as well as the project. You can program in Visual C++ 10 or linux(ubuntu) using Code::Blocks
Ubuntu Notes • Ubuntu has really taken off in the last few years. You even have versions that run on cell phones. Over 20 million people prefer it to commercial alternatives. I use 12.04 LTS at the moment although 12.10 is out. • There are webinars, seminars and tutorials on almost every feature of this OS • Includes any language you might be interested in. • Besides command line it includes multiple GUI’s (Gnome is default) • C++ has several IDE’s as well although code::blocks seems to be the closest to Visual • Runs well on your old laptop or desktop.
Header Files Use the following header wrapper (aka include guard) to prevent multiple inclusion errors on every header file(ie .h) This is more portable than progma once #ifndef _MYHEADER_H #define _MYHEADER_H /* ** Interface declarations go here */ #endif /* _MYHEADER_H */ Or you can use pragma as in the following at the top of the header file. #progma once
Project Suggestions You want a copy ? Ahhh ???? • Start on the project as soon as it is given • Keep backups of your project as you are developing it. (Required) • Keep copies of the project for the entire course. I may ask for a new copy from you.(Required)
Documentation Your programs are expected to be documented professionally. This implies that each and every function be documented as to its purpose, I/O requirements and other interesting features. Include a general program heading at the top of your application that clearly defines the purpose of the program, method of execution, your name and project #. Please use *’s to delineate your comments. 10 Percent of each projects grade will be documentation
Example Documentation //************************************************************** // Project #3 Rank and Range // Name: Richard Simpson // Data Structures Date: 09/12/2002 //*************************************************************** // Place your general program documentation here. It should // be quite a few lines explaining the programs duty carefully. // It should also indicate how to run the program and data // input format, filenames etc //*************************************************************** //***************************************************************// ObjectName::MethodName() // Parameters: List them here and comment // Complexity: O(N) // A discussion of what the method/function does and required // parameters as well as return value. Also indicate the compexity // of this function (worst case) //***************************************************************
Ethics Each student is expected to write, enter, test and validate his own programs. To submit another persons program (even if it is partly copied, names changed to protect the innocent etc.) is considered plagiarism and is subject to severe action as stated in the MSU Student Handbook. If you have trouble with any project please come see me as early as possible and I will help you. If you do poorly on the quizzes and the first exam and I do not see you in my office I will assume you do not care ( so I want either! )
Some words of wisdom Remember: The path to self-confidence can never be found through cheating!
Web Interface This semester all projects and homework will be presented on my web page. The site I http://cs.mwsu.edu/~simpson/wordpress/ Check this site regularly for fixes to projects etc. Your first project is already listed on my web page. You should start on it now! Send me an E-mail today! so I can add you into my email list.