Syllabus
in CS 102
Welcome to CS 102, an introduction to the fundamentals of computer programming. Students design, write, and debug computer programs. No prior knowledge of programming is assumed.
Details | |
---|---|
When: | Mon, 4:00 - 5:50PM |
Wed, 3:00 - 4:50PM | |
Where: | Metcalfe 414 |
Instructor: | Prof. Rebecca Ramnauth |
Office: | Formerly LIU Promise, Pratt 1st Fl. |
Office Hours: | Thursday, 4:00 – 6:00PM and by appointment |
Email: | rebecca.ramnauth@my.liu.edu |
Objectives & Organization
Problem-solving, algorithmic design, and implementation using the C++ programming language are presented. Topics include fundamental data types and associated array types, I/O processing, conditional and loop constructs, use and implementation of functions. A brief overview of structures is given. Throughout the course, good programming styles and sound program construction are emphasized.
The general sequence of topics is as follows:
1. Introduction to Languages and C++ 8. Pointers
2. Variables / Assignments 9. Streams
3. Branches 10. Inheritance
4. Loops 11. Recursion
5. Arrays / Vectors 12. Exceptions
6. User-Defined Functions 13. Templates
7. Objects and Classes 14. Additional Material
(e.g., containers, searching/sorting)
Performance Indicators
Upon completion of this course, students will be able to:
PI 1. Understand and use the basic programming constructs of C++
PI 2. Manipulate various C++ data types (e.g., arrays, strings, and pointers)
PI 3. Isolate and fix common errors in C++ programs using best debugging practices
PI 4. Use memory appropriately, including proper allocation/deallocation procedures
PI 5. Apply object-oriented approaches to software problems in C++
PI 6. Write small-scale C++ programs using the above skills
PI 7. Demonstrate clean and manageable code practices, including documentation
PI 8. Work effectively with team-oriented programming (e.g., Agile, pair-programming)
PI 9. Transfer skills learned in C++ to other programming languages
Resources
We will use several resources:
- https://ramnauth.github.io/ - for notes, schedule, assignments, handouts, etc.
- http://www.gradechamp.com/ – for grades and feedback
- Microsoft Visual Studio Code https://code.visualstudio.com/, our main text editor
Recommended texts include:
- C++ Primer on Amazon by Stanley Lippman, Josée Lajoie, and Barbara E. Moo (5th Ed.), ISBN-13 9780321714114
- Programming: Principles and Practice Using C++ on Amazon by Bjarne Stroustrup (2nd Ed.), ISBN-13 978-0321992789
Grading
Your grade will be computed based on assignments, exams, quizzes, and participation. There is a total of 1,000 points available, broken down as follows:
- There will be 5 assignments worth 50 points each, for a total of 250 points.
- There will be 5 quizzes worth 20 points each, for a total of 100 points.
- There will be 5 in-class activities worth 50 points each, for a total of 250 points.
- There will be 2 performance assessments worth 100 points each.
- There will be 1 exam worth 100 points.
- There will be 1 final project worth 100 points.
On the 1,000-point scale, you can expect the following letter grades:
>= 930: A >= 770: C+
>= 900: A– >= 730: C
>= 870: B+ >= 680: C–
>= 830: B >= 600: D
>= 800: B– else: F
In the end, I may choose to adjust the scale slightly to compensate for assignments or questions that turned out to be trickier than I intended. Such adjustments would never lower your grade from what is designated in the above table; if you achieve 930 points, you are guaranteed an A.
Policies
Lateness Factor. It is important to complete tasks on time, so you don’t fall behind. Missed quizzes will receive a zero and cannot be made up. However, if you need to miss an exam, try to notify me in advance so we can make other arrangements. Late assignments will be graded using a lateness factor f — a real number in the range {0 . . . 1} that is multiplied by your earned score to determine a late score. It is defined as: \[f(x) = min(1.0, \frac{1}{ln(1 + \frac{h}{113}) + 1} )\]
where the variable h represents the number of hours the submission is late. The table below shows some sample values of the late factor for increasingly late submission times.
Extra credit. Students usually ask for extra credit late in the semester after they have already squandered their original opportunities. Be sure to start your work early, so that we can detect and solve any problems before they can affect your grade.
Plagiarism is the use or presentation of ideas, words, or work that is not one’s own and that is not common knowledge, without granting credit to the originator. Plagiarism is a practice that is not only unacceptable but which is to be condemned in the strongest terms possible on the basis of moral, educational and legal grounds. Under University policy, plagiarism may be punishable by a range of penalties from a failing grade in the assignment or course to dismissal from the School of Business, Public Administration and Information Sciences. All students are required to read the handbook on avoiding plagiarism (http://liucs.net/u2).
Cheating includes, but is not limited to the following: falsification of statements or data; listing sources that have not been used; having another individual write your paper or do your assignments; writing a paper or creating work for another student to use without proper attribution; purchase of paper or research work for one’s submission as their own work; using written, verbal, or electronic or other sources of aid during an examination (except when expressly permitted by the instructor, depending on the nature of the examination) or knowingly providing such assistance to aid other students.
Attendance. Showing up on time to class is extremely important. If you must be absent or more than 5 minutes late, please try to notify me in advance. I will be keeping track of whether you are in class, and when you arrive. A few missed classes will not count against you, but habitual absence will significantly hurt your grade. Additionally, there will be no make-up quizzes. I do not distinguish between “excused” and “unexcused” absence. Unless you miss an exam due to a severe medical emergency, I don’t need to see a doctor’s note. If you do miss an exam, the make-up exam may be somewhat different from the one given in class.
In accordance with Section 504 of the Rehabilitation Act of 1973 and the Americans with Disabilities Act of 1990, including changes made by the Americans with Disabilities Amendments Act of 2008, the Long Island University does not discriminate against qualified individuals with disabilities. If you are a student with a documented disability/ impairment (psychological, neurological, chronic medical, learning disability, sensory, physical) and require reasonable accommodations, please register with Student Support Services and provide me with an accommodation letter. Visit the Sloan Building 1st floor, call 718 488 1044, or visit Student Support Services (www.liu.edu/Brooklyn/SSS/).
The Family Educational Rights and Privacy Act (FERPA) gives students control over the disclosure of their educational records. During this course, you may have the opportunity to create accounts or register with certain public online services. In these cases, you do not need to make any personally identifying information public. You may use a pseudonym or online handle, as long as you identify yourself to the instructor.
Campus Facilities
- Student Support Services (www.liu.edu/Brooklyn/SSS/)
- LIU School of Business (http://liu.edu/brooklyn/sobpais)
- LIU Writing Center (http://www.liu.edu/Brooklyn/Academics/Centers/Writing-Center)
- LIU Plagiarism Handbook (http://liucs.net/u2)
Tentative Schedule
1. Wed Jan 23 @ 3:00PM Introduction and Getting Started
2. Mon Jan 28 @ 4:00PM Life & Anatomy of a C++ Program; Getting to Know Your Text Editor
3. Wed Jan 30 @ 3:00PM Basics, Data Types, Arithmetic
4. Mon Feb 04 @ 4:00PM [quiz] Conditionals
5. Wed Feb 06 @ 3:00PM Lab Session
6. Mon Feb 11 @ 4:00PM [assignment 1 due] Loops
7. Wed Feb 13 @ 3:00PM Strings, Escape Characters, Raw Input
8. Tue Feb 19 @ 4:00PM [assignment 2 due] User-Defined Functions
9. Wed Feb 20 @ 3:00PM Lab Session; Pretty Code/General Style Guidelines
10. Mon Feb 25 @ 4:00PM [assignment 3 due] User-Defined Functions Special Topics
11. Wed Feb 27 @ 3:00PM [quiz] Pair Programming Rules & Techniques
12. Mon Mar 04 @ 4:00PM Pair Programming – Number Type Activity & Giving Feedback
13. Wed Mar 06 @ 3:00PM Pair Programming – Guessing Game (and Pseudorandom Numbers)
14. Mon Mar 18 @ 4:00PM [quiz] Pair Programming – Printing ASCII Value; Project check-in #1
15. Wed Mar 20 @ 3:00PM [exam]
16. Mon Mar 25 @ 4:00PM [assignment 4 due] C++ Musical Chairs/Performance Assessment
17. Wed Mar 27 @ 3:00PM Arrays
18. Mon Apr 01 @ 4:00PM Vectors
19. Wed Apr 03 @ 3:00PM Lab Session
20. Mon Apr 08 @ 4:00PM [quiz] Project check-in #2
21. Wed Apr 10 @ 3:00PM C++ Musical Chairs/Performance Assessment
22. Mon Apr 15 @ 4:00PM [assignment 5 due]
23. Wed Apr 17 @ 3:00PM Pass by Reference vs. Value
24. Mon Apr 22 @ 4:00PM Structs
25. Wed Apr 24 @ 3:00PM Pair Programming – Simulated “Database”
26. Mon Apr 29 @ 4:00PM Objects & Classes; Final Project Introduction & Expectations
27. Wed May 01 @ 3:00PM [quiz] Project check-in #3
28. Mon May 06 @ 4:00PM Wrap-up
29. Mon May 13 @ 4:00PM [final project due]