CptS
121: Summer,
2019 |
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
NOTE:
Some of these policies and descriptions were derived directly from Andrew O'fallon and Chris Hundhausen’s CptS 121 syllabus Instructor
Information Instructor: Beiyu Lin Office: Phone Number: (631)
371-2930 Email: beiyu.lin@wsu.edu Office Hours: M, W 14:45 – 16:15 pm, or by
appointment
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. 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. 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/. 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). 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. 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. Documented Disabilities 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 ( 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
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 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 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