CptS 121: Program Design & Development - Syllabus

CptS 121: Summer, 2019
Program Design & Development - Syllabus

 

NOTE: Some of these policies and descriptions were derived directly from Andrew O'fallon and Chris Hundhausen’s CptS 121 syllabus

 

 

coug2 

Instructor Information

 

Instructor: Beiyu Lin

Office: EME 206

Phone Number: (631) 371-2930

Email: beiyu.lin@wsu.edu

Office Hours: M, W 14:45 – 16:15 pm, or by appointment

 

 

coug2  

Course Information – Program Design and Development, CptS 121 [4 credits], Required for Majors

 

Course Times & Location:

*       Lecture section at Sloan 38: M, TU, W, TH, F 10:35 - 11:50 am

*       Lab section at EME 128: M, W, 12 - 14:45pm

Website: CptS 121 - Program Design and Development Homepage - https://eecs.wsu.edu/~blin/teaching.html#Teaching/

 

Description: CptS 121 is a first courses ("CS 1") in computer science for majors. In this course, we use the C programming language to explore the fundamental concepts, constructs, and techniques of modern computer programming, including functional decomposition, data structures,and basic software engineering principles. The primary aim of this course is to give you a thorough introduction into problem solving, algorithm discovery, and program design in C. Some of these concepts include, but are not limited to, the following:

 

*       Algorithmic design

 

*       Program design and implementation

 

*       Software processes

 

*       Data structure design and implementation

 

In this course, we will emphasize algorithm discovery and appropriate program design and development. Please see the tentative topic schedule listed at the bottom of this page. The underlying applications for this class will include applications ranging from simple numerical computations to complex games.

 

Learning Objectives: At the conclusion of this course, you should be able to:

 

*       Design, implement, and test a program by applying modern tools and techniques.

*       Analyze a specification of a problem of modern complexity and construct a structured, elegant C program that solves the problem.

*       Document C programs applying the guidelines specified in a standards and styles guide.

*       Design and articulate solutions to lab problems with classmates.

*       Identify and implement test cases to edge scenarios in pseudocode and/or C code.

*       Identify, analyze, and solve C code interview questions in prep for internships.

Prerequisites: Before taking this course you need to satisfy the prerequisites listed at http://schedules.wsu.edu/List/Pullman/20183/Cpt_S/121/01.

 

Communication: We will use OSBLE+ in this course. You may use this tool to message and chat with other students in the class. You may also use this tool to post discussion items. Note that I may post important CptS 121 news updates to this site so please check it regularly. I will also message important information to you through OSBLE+ or the email registered in myWSU (use your WSU network ID and password to login). The OSBLE+ website URL is https://plus.osble.org. You will need to register for an OSBLE+ account.

 

Expected Outcomes: The following are WSU and ABET outcomes. Please refer to https://school.eecs.wsu.edu/abet/ for more information about ABET performance indicators.

*       An ability to identify, formulate, analyze and solve complex computing and engineering problems by applying principles of engineering, computing, science, mathematics, and other relevant disciplines.

*       An ability to communicate effectively with a range of audiences in a variety of professional contexts.

*       An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives.

*       An ability to apply appropriate computing and engineering approaches, theories, and fundamentals to conduct appropriate experimentation, analyze and interpret data, use engineering judgment to draw conclusions, and produce solutions.

*       An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

 

 

  

Course Materials

 

Required Textbooks:

 

*       J.R. Hanly & E.B. Koffman, Problem Solving & Program Design in C (8th ed.), Pearson Education, Inc., 2016. ISBN: 9780134014890.

 

Suggested Reference Textbooks:

*       P.J. Deitel & H.M. Deitel, C: How to Program (8th ed.), Pearson Education, Inc., 2016. ISBN: 9780133976892.

 

 

Required Hardware:

 

*       A laptop adhering to EECS requirements. Please refer to https://school.eecs.wsu.edu/laptop-requirements/.

 

 

Required Software:

*       Microsoft Visual Studio Community 2015 (for the programming assignments and labs); Microsoft Visual Studio is best suited for Windows machines. You can download the software for free through the Microsoft Imagine program. You may receive the software through the Tech Store in myWSU for download. In order to install Visual Studio on Windows 7, you may need to download and install Daemon Tools Lite. This tool will allow you to mount the provided image file (ISO) without having to burn it to a disc. Windows 8 and 10 already have utilities available to mount the ISO. Please follow these steps to install Visual Studio on Windows 8 http://blogs.msdn.com/b/mis_laboratory/archive/2012/08/30/mounting-iso-files-directly-is-awesome-feature-in-windows-8-for-dreamspark-and-msdn-subscribers.aspx or Windows 10 http://www.tenforums.com/tutorials/3579-iso-img-file-mount-unmount-windows-10-a.html#option1. Note that Visual Studio runs under Windows only. If you have a Mac you will need Parallels, Boot Camp, VMware Fusion, or other software to run Windows and Visual Studio. You can find a free version of the most recent Windows OS through the Tech Store as well. For more information about using Boot Camp to install Windows please visit: https://msdn.microsoft.com/en-us/library/windows/apps/jj945423.aspx. You will also need to install the OSBLE+ Visual Studio Plugin, which only works with Windows. Please review the instructions at https://github.com/WSU-HELPLAB/OSBLE/wiki/Installation-Guide to install the plugin.

 

 

coug2  

Academic Integrity Policy

 

Academic integrity is at the heart of all higher education philosophies. Adhering to academic integrity policies ensures that you provide yourself with the best education possible. Maintaining academic integrity assures you receive the credit you deserve for your ideas.

 

You are expected to know and understand Washington State University Academic Integrity Policies. Copying and plagiarism of other sources will result in an automatic 0 or F on the assignment. For a second offense, an automatic F in the course will be awarded. In all cases, university authorities will be notified and the proper procedures will be followed. Possible outcomes resulting from violating these policies include denial of certification into your program and expulsion.

 

For this course both group (for labs) and individual work (for all other assignments, quizzes, and exams) will be required. We will be using plagiarism detection software in this class to determine similarities between programs. All individual work is designed to be completed with minimal help from your classmates. If you do receive some help from classmates, please identify their names in the comment block at the top of your main source file and above the block of code that was shared. If you do not identify the students that helped you with your program, then you are at risk of being identified as copying or plagiarizing. If you and other students submit the same solution with only minor changes, this is considered copying/plagiarism and all parties involved will receive a 0 on the work and will be reported to the Office of Student Conduct. If you apply code from a website, then you must also identify the website in a comment block. If help is required please ask the instructor or TA for guidance first! We are always more than willing to help!!!

 

WSU Academic Integrity Statement:

 

Academic integrity is the cornerstone of higher education. As such, all members of the university community share responsibility for maintaining and promoting the principles of integrity in all activities, including academic integrity and honest scholarship. Academic integrity will be strongly enforced in this course. Students who violate WSU’s Academic Integrity Policy (identified in Washington Administrative Code (WAC) 504-26-010(3) and -404) will fail the assignment, will not have the option to withdraw from the course pending an appeal, and will be reported to the Office of Student Conduct. 
 
Cheating includes, but is not limited to, plagiarism and unauthorized collaboration as defined in the Standards of Conduct for Students, WAC 504-26-010(3). You need to read and understand all of the definitions of cheating: 
http://app.leg.wa.gov/WAC/default.aspx?cite=504-26-010. If you have any questions about what is and is not allowed in this course, you should ask course instructors before proceeding. 
 
If you wish to appeal a faculty member's decision relating to academic integrity, please use the form available at 
conduct.wsu.edu.

 

Please thoroughly review the following website for more information about the WSU academic integrity policy http://academicintegrity.wsu.edu/.

 

Please also review the following website for more information about the EECS academic integrity policy (if any discrepancies are found within the EECS and WSU academic integrity policies, always follow the WSU policy) http://www.eecs.wsu.edu/~schneidj/Misc/academic-integrity.html.

 

 

 

WSU's AWARE Network

 

As a student you have many responsibilities and obligations. One of the most important obligations that you may have is to your friends and peers at WSU. If you feel like one of your friends or peers is struggling with academics because of physical or mental health please inform me and/or appropriate university personnel. For more information refer to http://aware.wsu.edu/.

 

 

coug2 

WSU's Classroom and Campus Safety Plan

 

“Classroom and campus safety are of paramount importance at Washington State University, and are the shared responsibility of the entire campus population. WSU urges students to follow the “Alert, Assess, Act,” protocol for all types of emergencies and the Run, Hide, Fight response for an active shooter incident. Remain ALERT (through direct observation or emergency notification), ASSESS your specific situation, and ACT in the most appropriate way to assure your own safety (and the safety of others if you are able). 
 
Please sign up for emergency alerts on your account at myWSU. For more information on this subject, campus safety, and related topics, please view the 
FBI’s Run, Hide, Fight video and visit the WSU safety portal.”

 

 

Course Policies

 

Late Work: Assignments are due by the established due dates and times (see schedule). You may hand in a programming assignment up to two days late (the weekend counts as one day), at a penalty of 10% per 24 hours late. Forty-eight hours after the assignment is due, you may no longer hand in the assignment for credit. At that time, the link to the solution key for the assignment will be available on the schedule page. If an emergency occurs, the instructor will accommodate the student as much as possible. Make-up exams will not be possible unless the student speaks with the instructor at least two days in advance. I understand emergencies do occur and rescheduling of exams because of these is to be determined by the instructor.

 

Miscellaneous: All graded work will generally be returned within one week of submission. You will submit homework assignments through the OSBLE+: https://plus.osble.org plugin for Visual Studio.

 

Philosophy: I have a passion for engineering and teaching, and believe that students should have fun while they learn! I will do everything in my ability to make sure that you learn and succeed. Washington State University is truly a great place from which to obtain an education. I want to improve my teaching every day and I hope that you want to improve your engineering skills every day!

 

The general rule-of-thumb is that you will get as much out of the course as effort that you put into it, so please work diligently and you will be rewarded for the work that you put into the class.

 

 

coug2

Documented Disabilities

 

Washington State University has facilities and resources available for accommodating students with disabilities. Please notify me during the first week of class of any accommodations needed for the course. 

 

Pullman Campus Syllabus Statement:

Students with Disabilities: Reasonable accommodations are available for students with a documented disability. If you have a disability and need accommodations to fully participate in class, please either visit or call the Access Center (Washington Building 217; 509-335-3417) to schedule an appointment with an Access Advisor. All accommodations MUST be approved through the Access Center.”  You may also contact the Access Center via email: Access.Center@wsu.edu.

 

I also encourage you to remind me about any special accommodations required for exams at least two days prior to them. This way I have enough time to send copies of the exams to the Access Center.

 

 

Grading

 

Contesting a Grade: If you believe that a mistake has been made with grading an assignment or exam, please speak with the instructor or TA within 2 days of the assignment or exam being returned. Do not wait until the end of the semester to discuss any grade changes. You need to constantly be aware of how you are performing in the class. Thus, there will not be any surprises at the end of the semester when grades are to be formally submitted. You should be able to view your grades via OSBLE+. These will be updated weekly. NOTE: the grades in OSBLE+ may just be raw scores and not be weighted according to the ones described below. Thus, be sure that you keep track of these weights so that you are not surprised by a change in your overall grade at the end of the semester.

 

Exams: I highly recommend studying in groups for exams. Bouncing ideas off of each other is a great way to prepare for these exams. We will have two exams, including the final, in this course. One will be held during the third week of class (Friday, May 24th, in class) and the other will be held during the sixth week of class (Friday, June 14th, in class). These exams will be held during class (50 minutes). The final exam will be held on Sloan 38.

NOTE: You will be allowed to use a "cheat sheet": one side of a page whose dimensions may not exceed 8-1/2" by 5-1/2" for the first two exams. For the final exam you are allowed one side of a page whose dimensions may not exceed 8-1/2" by 11".

 

Assignments: You will be given between 8 and 10 programming assignments to complete. Each one of these has been well thought-out and will guide you through solving a problem. I really hope that you view these assignments as a guide for learning the material and achieving the objectives presented in lecture. Also, note that all C code written in assignments must adhere to the recommended C Style and Coding Standards; your TA will let you know if you are not adhering to these standards. Please upload assignments through the OSBLE+ Visual Studio plugin. Please also refer to the schedule for assignments and dates. All programming assignments must be submitted by midnight of the due date.

 

Quizzes: Quizzes will be given most Mondays to ensure that material presented in lecture is understood. These will be take-home quizzes, in which you return a physical copy of your solutions to your TA at the beginning of your lab the same week. Please refer to the schedule for quiz handout dates. All quizzes are written to assess basic understanding of material. I would like for you to view these as a way to enforce concepts. Quizzes may be rescheduled for students that have valid excuses (as determined by the instructor).

 

Labs: You will be given 10 labs to complete. Each lab will give you hands-on experience with using the C language to solve multiple problems. These weekly lab assignments also give you the opportunity to put into practice the techniques and concepts covered in the lectures under the supervision of a knowledgeable teaching assistant. You are encouraged to share ideas with your peers in lab! Take advantage of learning from each other! You will receive full credit for a given lab if (a) you show up and actively participate in the entire lab by making a sincere effort to complete all of the problems; and (b) you make a sincere effort to assist other students with the lab in the event that you finish before them. Hence, you are awarded credit in lab for participation and effort. You may make up some labs if you have an excuse that is acceptable as determined by the instructor or TA. If a lab happens to fall on a holiday, then you are expected to complete the lab on your own or attend another lab section for that week. Please refer back to this syllabus to determine which labs you may attend. You are responsible for ensuring you receive appropriate credit from your TA for these special circumstances.

 

Participation and Attendance: You are expected to attend and participate in lectures and laboratories regularly, and to participate regularly in the OSBLE+ activity feeds. I will also randomly take attendance throughout the semester. Attendance will count as 2% towards your overall grade!

 

Assignment Weights:

 

*       One midterm exams (20%)

 

*       One final exam (20% - 10% for lab final, 10% for written final)

 

*       Quizzes (8%) – the weight of individual quizzes will be based on the number provided and the involvement of each one; ranging from 0.8-1% of your overall grade

 

*       Programming Assignments (30%) - the weight of individual assignments will be based on the number provided and the involvement of each one; ranging from 3-6% of your overall grade

 

*       Labs (20%) – there are 10 labs for this course, each one is worth ~2% of your overall grade

*       Attendance (2%) – if you have more than 3 unexcused absences, then you will not earn the 2%

BONUS:

*       Bonus assignments up to 2% each

 

Grading Scale:

 

Percentage

Grade

94-100%

A

90-93.99%

A-

86-89.99%

B+

82-85.99%

B

78-81.99%

B-

74-77.99%

C+

70-73.99%

C

66-69.99%

C-

62-65.99%

D+

58-61.99%

D

0-57.99%

F

  

 

coug2

Tentative Topic Schedule (not in any particular order): Detailed Schedule

 

  1. Introduction to Algorithms

   2. Software Development Process

   3. Variables, Data Types, and Operators

   4. Numeric Expressions

   5. Functions (standard library and user-defined)

   6. File Processing

   7. Selection Structures

   8. Loops (loop patterns)

   9. Modular Programming

   10. Arrays

   11. Pointers

   12. Strings

   13. Structures

   14. Recursion

   15. Bit Manipulation

   16. Dynamic Data Structures

   17. Command Line Arguments

   18. Testing and Debugging

   19. Macros

   20. Multi-file Programs

   21. Problem Solving with Algorithms

   22. Memory Organization

   23. Pseudocode

   24. Software Design and Engineering Concepts

   25. Problem Solving Strategies

 

Comments and questions: Webmaster
Copyright © Washington State University | Disclaimer