Welcome to COP 3502
Introduction to Computer Science
This course is meant for undergraduate students just entering the Computer Science major, and interested students from other disciplines. It will give you a broad overview of different areas of computer science. This will enable you to get an idea of the types of issues studied, and the skills required, in the rest of the CS curriculum. You should have already received an email for the course
survey. Please fill it up as soon as possible.
Instructor:
Piyush Kumar
Class Timings: Mon, Wed : 5:15pm to 6:30pm, Love 103
Office Hours: Mon : 4:15pm to 5:15pm, Love 161
Textbook required: None
Teaching Assistant: Guru (narasimh at cs dot fsu dot ...)
Teaching Assistant Office: MCH 100B Tuesday, 10-11am
Pre-requisites: This course is aimed at students with little or no prior programming experience.
I do expect you to have a desire to learn computer science.
If you have a lot of prior programming experience, I would not like to waste your time. Please talk to me and I can suggest other options in this case. I want to maintain a friendly atmosphere of learning in this class, and would prefer not to have over-qualified students in this class.
You should own a laptop or desktop and be root/administrator on that machine. You should be allowed to install/uninstall programs on that machine. Your machine should also be capable of running a web browser and playing mp4 files.
Expectation from Students
- I am particularly strict about deadlines and following
instructions. Please read instructions carefully, and schedule your
activities so that you submit assignments well in time. You should
check your garnet email account and the class web page
regularly (once every day, for the entire semester),
and note other announcements, online and in class.
- I expect you
to complete any reading/video watching assignments when you come to class, since I
will assume you have learned the material. (You should read the
entire reading assignment, and view the entire video assignment before
coming to class)
- You should participate in the class by asking questions, suggesting ideas, etc.
- In exams, I test knowledge, understanding, and creativity. When you learn some topic, you should not just try to understand the material, but also analyze what would happen if some things were different.
- Apart from lecture time, and doing homework, prepare to at least spend 4 hours per week programming and learning new tools.
Course Description
Course covers basic computer organization, computer languages and software, language translation and interpretation, object oriented design, object oriented programming, classes, objects, and inheritance, file systems and I/O.
Grading Criterion
- Weekly assignments + Quizzes = (Weight: 90)
- Attendance + Class Participation = (Weight: 10)
- Midterm = (Weight: 50)
- Final = (Weight: 50)
Weekly Assignments:
Individual assignments will vary in weight according the amount of student effort required. The assignment grade will be the total points received divided by the maximum possible score, and multiplied by 90 to get a score in the range 0 to 90.
Exams:
The Midterm and Final Exams will be closed book, closed notes exams, and will be proctored. The midterm will include topics covered before the midterm, and the final exam will include topics covered between the midterm and the final exam. The final exam is on May 1st, Wednesday between 5:30pm and 7:30pm in class.
Attendance and class participation:
You will be given a grade for class participation toward the end of the semester, with a maximum obtainable score of 10. In particular, I will ask questions during lectures and recitations, and you should perform well in these. However, there may be deductions from your class participation score, for poor attendance, as explained below:
Attendance will be taken at the beginning of lectures, Monday and Wednesday. You should not miss more than three of these. You will lose 4 points for 4-5 absences, and all 10 points for more. The three misses are permitted to deal with valid reasons, such as sickness. Please do not assume that these are "free" misses, and that you will be permitted extra, excused absences for "valid" reasons. In rare cases, such as extended medical needs or jury duty exceeding three classes, absences may be excused with appropriate documentation. You should let me know in advance, when possible, and submit the documentation I seek.
Attendance will be taken when class begins, and so you will be marked absent if you come late. (Note: Your signature on the attendance sheet should match that on your FSU ID.) You will also be marked absent if you leave before class ends! Furthermore, you are responsible for making up for any materials missed due to absences. A missed exam can be made up only in extremely rare circumstances, and you should discuss it with me well ahead of time.
While attendance will not be formally taken during the recitation sessions, your absence may be noted, and may affect your class participation grades. You will have a greater scope for class participation during recitations, and so your grades will be affected through lower grades on class participation, if you do not attend recitation regularly.
Example:
- You get 6/10 for class participation, and have missed only three
lectures. You have no attendance penalty, and so your score for class
participation and attendance will be: 6.
- You get 6/10 for class participation, and have missed four
lectures. You have an attendance penalty of -4, and so your score for class
participation and attendance will be: 2.
- You get 2/10 for class participation, and have missed four
lectures. You have an attendance penalty of -4, and your score for
class participation and attendance will be: 0. (Note: Your
score cannot not go below 0!)
- You get 6/10 for class participation, and missed three lectures
because you wanted to attend parties. You then get sick and miss one
more class, provide documentation on it, and hope that it will be
excused. You will still have an attendance penalty of -4, since you
had a valid reason for missing only one lecture and so your score for
class participation and attendance will be: 2.
Course letter grade: Your grade will roughly be determined by
the following procedure. The grades for assignments (maximum 90) and
class participation (maximum 10) will be added together to give the
total non-exam score (maximum 100). The midterm (maximum 50) and final
exam (maximum 50) scores are added to get the total exam score
(maximum 100). The grade for the course will be based on the
lower of the grades of the exam and non-exam portions.
Example:
- You get 6/10 on class participation, 80/90 on assignments,
30/50 on the midterm, and 25/50 on the final exam. Your score for the
course will be considered 55/100 (the lower of 86/100 on
non-exam and 55/100 on the exam).
- You get 6/10 on class participation, 40/90 on assignments,
30/50 on the midterm, and 25/50 on the final exam. Your score for the
course will be considered 46/100 (the lower of 46/100 on
non-exam and 55/100 on the exam).
Once your score for the course has been computed, you will be given a
letter grade based on the following chart:
Course average |
Letter grade |
92 - 100 |
A |
90 - 92 |
A- |
88 - 90 |
B+ |
82 - 88 |
B |
80 - 82 |
B- |
78 - 80 |
C+ |
72 - 78 |
C |
70 - 72 |
C- |
60 - 70 |
D |
0 - 60 |
F |
Homework
- Week 0:
- Complete the survey : Before January 9th. The survey
was sent to your email address.
- Download and install python 2.7.3 32-bit on your laptop/desktop
- If you are on windows, install cygwin using
setup.exe
- Mac users: Learn how to open a terminal on your machine
- Quiz 1 will be posted next week
- Week 1:
- Complete this online course before next class. There are 5 sections on this page that you should each complete. You do not need to login into the website. Just read the instructions carefully and complete the exercises. This is a homework which will not be graded, but we will be tested on your next quiz.
- After you have completed the above assignment, log on to blackboard (before Sunday, 20th January, 12am) and complete a short quiz. The quiz is timed and will only allow you 20 minutes
of time. Please try to answer it with closed books/notes, since there will be a quiz on Wednesday, January 23rd in class similar to this one.
Both quizzes will cover the material that you have learnt in class so far and the above online snippet that you have been asked to read and practice with.
Week 3:
- Please complete this homework by Friday 6pm EST, February 1st.
- Complete this online course before February 1st, Friday. There are 5 sections on this page.
- Complete this online course before February 4th, Monday. There are 5 sections on this page.
- On Windows: If easy_install pip does not work for you, Make sure you have pip (Download the installer for pip-1.2.1.win32-py2.7.exe) and install nose using the command "pip install nose". On Mac, "sudo easy_install pip" should work.
Week 4:
- Please check homework posted on Blackboard (with deadline).
- Write yourself and practice with piglatin
- Complete the functions training
Week 5:
- Please check the blackboard for sample midterm problems
- Please setup an appointment with the TA and get your Mac to run python correctly by tomorrow (15th Feb) if you have not already done so.
- Watch blackboard for updates on sample problems for midterm.
- Sharpen your lists and dictionary skills this week
Week 6: Midterm scores will be posted on the blackboard soon.
- The midterm will be curved for grades. Please do not use the exact above scale to calculate your grades. You can ask me what expected grade you would get, just based on the midterm.
- Highest = 81 (A equivalent). Lowest = 28 (F equivalent)
Week 7: Midterm is your new homework.
Week 8: Practice Tuples and Dictionaries.
Week 9: Files and HTML.
- Play with flask package.
- Your new homework is on the blackboard. The deadline is 11th March, 11:59pm.
- Solutions to the last homework (midterm) are posted on blackboard.
Week 10: Flask, html, css and JS.
- The next homework is due March 22nd, 11:59pm. Please find it on Blackboard.
- Solutions to the last homework are posted on blackboard.
- Last homework has been graded.
- On 18th March, there will be a in class homework help session by the TA
Week 11: HTTP, Html, REST, AJAX.
- The next homework is due, April 5th, 11:59pm. Please find it on Blackboard.
- Solutions to the last homework are posted on Blackboard
Week 12: Linked Lists, Stacks and Queues
- Practice Bitwise operators
- Attend the ACM Programming contest
Week 13: Trees
- New Homework is out: Due Friday, April 19th at 11:59pm
- Attend the CS Expo
Week 14: Trees, Compression, Hashing, Tries
- Please complete your code academy lessons asap (if you have not done it already). I tested it today and it worked for me.
Academic Honor Code
Because a primary goal of the course is to teach professionalism, any academic dishonesty will be viewed as evidence that this goal has not been achieved, and will be grounded for receiving a grade of F (You must read the FSU Academic Honor Code in the Student Handbook and abide by it). Copying/Modifying other people's programs/code will be treated the same as copying in an exam.
-
Every student must write his/her own code and homework. Showing your code or homework to members of other teams, giving it to them, or making it accessible to them (e.g., by making the files world-readable) is academic dishonesty.
-
You are responsible for ensuring that your code/documentation/results/homeworks are adequately protected and not accessible to others. Change permissions of your working directory to 0700 (chmod 0700 {directory}).
-
Consulting code from a textbook, or from the Internet, in order to understand specific aspects of your assignment is fine. However, copying entire code or large parts of such code will be considered academic dishonesty. If you borrow small parts of code from these sources, you must acknowledge this in your submission and additionally you must clearly understand and be able to explain how the code works.
Once again: There is no excuse for cheating in any circumstances. See me before you even contemplate cheating.
Lecture Slides
Source Acknowledgements: Earlier classes taught at FSU. Harvard and MIT Intro to CS Classes.
Interesting links