Unformatted text preview:

Southern Methodist University School of Engineering Computer Science and Engineering Department CSE Programming Course Supplement Prepared by Mark Fontenot Judy Etchison 1 1 Introduction to Programming at SMU Programming is an integral part of the Computer Science Curriculum at SMU as well as almost all of today s businesses Therefore students from majors outside the School of Engineering as well as Engineering majors gain an understanding of software design and development by taking CSE 1340 1341 and 2341 This guide acts as a supplement to these courses The aim is to give you important and helpful information for your success in these courses The three main topics covered are academic ethics source code formatting and details on design documents such as pseudocode and structure charts 2 2 Academic Ethics Grades that students receive should be the result of their own efforts and not the work of someone else There are several different types of assignments that you will submit during the semester design documents such as pseudocode or UML diagrams programming projects homework assignments and information technology exercises Sometimes assignments may seem more challenging than the time you have to complete them The Computer Science department is dedicated to providing you the help you need to successfully complete your work There is a help desk in the SIC building that is attended by a TA five days a week morning noon and evening Your instructor has posted office hours and both your TA and instructor are available via email They can provide you with the most definitive and correct answers to your questions Getting help from others could be considered scholastic dishonesty 2 1 Official Policy The below stated policy copied from your course syllabus governs all your graded work You are expected to create edit and print out YOUR OWN assignments and take tests without outside assistance All work is expected to be your own You should never look at or review another person s work for any given assignment that includes looking at papers or even at the computer screen where student work is displayed You should never give an answer to or receive an answer for an assignment or any parts of any assignment from another person again that includes source code design documents homework etc If you collaborate with another person for a graded assignment as in the example activities noted above all parties involved will receive a zero for that assignment If there are further assignments for which you have collaborated all students involved will receive an F in the class and a report will be filed with the Honor Council The Dean of Computer Science and Engineering and Dean of Students will be notified for further action All further correspondence will be done through their offices THEREFORE it is imperative if you need help on your assignments that you contact your instructor or TA and NOT someone else 3 2 2 Collaboration To more fully explain the type of collaborative activities which are NOT considered scholastic dishonesty below are some guidelines for you to follow Discuss the subject material covered in the lecture and in your textbook Discuss any handouts distributed in lecture or lab Get help understanding concepts Work on exam reviews with others The above are guidelines and are not necessarily comprehensive It is your job to ensure that you do not violate this Academic Ethics policy If you are in doubt don t collaborate until you check with your instructor NOTE The TA s in the programming courses utilize a software package from UC Berkeley called Measure for Software Similarity MOSS All students programs are sent to Berkeley via the internet MOSS analyzes the source code for similarity and the analysis is returned to the SMU Computer Science department via e mail and the web MOSS is extremely good at detecting source code sharing among students 4 3 3 1 Introduction to Program Design Structure Charts The purpose of the structure chart is to have the students identify the major tasks in the program and document these steps before proceeding with pseudocode This approach will help the student develop the skills to think in a top down fashion It will help them to see the big picture first before considering the details Developing this thinking style is very important in program design and in modular programming Its importance should be emphasized Students should be able to read a problem and express the major tasks in the form of a hierarchy chart It is imperative that a student be capable of identifying the major tasks of a problem before attempting pseudocode or code 3 2 Examples Many charts can be expressed as a main box with three subordinate boxes These generally correspond to input processing and output However the chart should be specific to the particular problem not too generic The words in the boxes should be concise yet descriptive When the students start writing functions the boxes will usually correspond to their functions Example of a Proper Structure Chart 5 Examples of Incorrect Structure Charts Too Generic Too Detailed Improper Style 6 3 3 Pseudocode The purpose of pseudocode is to document the program logic without being concerned with syntax of a particular programming language This does not mean that there are no rules with respect to pseudocode Students should be working out the logic first before writing any code This improves coding efforts by focusing on the logic first then worrying about the language syntax later It is important to separate the design work from the implementation work Languages are bound to change and evolve over time as are design practices but its is more likely that the former will change at a faster pace than the latter Writing pseudocode and designing structure charts can be seen as busy work and a time waster than a time saver However as programming projects grow in complexity it will be very difficult if not impossible to write the code without having done the design work first To that end it is imperative to gain skills with design documents such as pseudocode with the simpler programming projects so that when the more difficult projects are assigned the design skill set will be in place There are always discussions as to what differentiates good pseudocode from bad pseudocode In the most general terms pseudocode should allow any programmer to implement the logic from the pseudocode in any programming language So this means that pseudocode


View Full Document

SMU CSE 2341 - Lecture Notes

Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?