Course Content
Week | Topic | Lecture 1 | Lecture 2 | Lecture 3 | Lab | Assignment |
---|---|---|---|---|---|---|
0 | Introduction | 0.1 | L0 | |||
1 | Math Operators, Data types and Booleans | 1.1 | 1.2 | 1.3 | L1 | A1 |
2 | Selection Statements and Conditionals | 2.1 | 2.2 | L2 | ||
3 | Practice | Trace_Tables | Trace_Tables | Exam 1 | A3 | |
4 | Functions | 4.1 | 4.2 Trace_Tables |
4.3 Trace_Tables |
L4 | A4 |
5 | Functions (continued) | Trace_Tables | 5.2 | L5 | ||
6 | Loops, using while | 6.1 Trace_Tables |
6.2 | 6.3 Trace_Tables Nested_Loops (Supplementary Notes) |
L6 | |
7 | Practice | 7.1 Trace_Tables |
Practice_Exam | Exam 2 | L7 | |
8 | Time and Random functions | 8.1 | 8.2 | L8 | A5 | |
9 | Lists | 9.1 | 9.2 | 9.3 | A6 | |
10 | Strings, Sets and Tuples | 10.1 | 10.2 | 10.3 | L10 | |
11 | Practice | 11.1 | Practice_Exam | Exam 3 | L11 | |
12 | For Loops | 12.1 | 12.2 | L12 | ||
13 | Dictionaries | 13.1 | 13.2 | A7 | ||
14 | File I/O | 14.1 countries.txt words.txt |
14.2 | A8 presidential_speeches.tsv cities.csv |
Instructor Information
Dr. Fahad SultanOffice: Riley Hall 200-D
Phone: 864-294-3755
Email: fahad.sultan@furman.edu
Web: https://courses.furman.edu
Office Hours (or by appointment):
Monday: 1:30 PM - 4:30 PMThursday: 9:30 AM - 12:30 PM
Class Meeting Times (Dates Subject to Change)
Lecture:CSC-121-01 | Riley Hall 106 | Mondays, Wednesdays, Fridays | 10:30 AM -11:20 AM |
CSC-121-02 | Riley Hall 106 | Mondays, Wednesdays, Fridays | 11:30 AM -12:20 PM |
Lab:
CSC-121-01 | Riley Hall 201 | Wednesdays | 2:30 PM - 4:30 PM |
CSC-121-02 | Riley Hall 201 | Thursdays | 2:30 PM - 4:30 PM |
Course Description
CSC-121 is an introduction to computer programming course for students with little or no prior programming experience. Python programming language will be used in this class. The course aims to teach computational thinking and inculcate an appreciation of the role computation can play in solving problems from virtually any area of study or discipline. The course further aims to instill a strong sense of confidence in the students to i) write small to medium length computer programs ii) apply the acquired computer programming skills to their desired major towards a problem of their interest and iii) pursue further education in the area in a formal higher education setting or on their own after the course.Course Goals
On successful completion of the course, students should be able to:- Read and write code, in Python.
- Read a problem statement in natural language and be able to formalize it in terms of expected inputs and outputs.
- Write test cases to evaluate correctness of the code.
- Design basic algorithms that map the expected inputs to their corresponding outputs.
- Identify and design procedural and data abstractions relevant to the algorithm design.
- Implement identified abstractions, algorithm and evaluate its correctness.
- Take advanced CS courses, particularly Data Structures, Object Oriented Programming, Algorithms and Software Engineering.
Textbook
None.Recommended Python Resources
Development Environment(s)
|
|
Required Computer:
All students are expected to bring a laptop to every class and follow along the instructor on their computers during the lecture. Students will be required to submit in-class work on Moodle for it count towards class participation. Please see me if you do not have access to a laptop.Additional Course Guidelines
Some General Advice:
- Programming is like chess. There is a difference between knowing the rules and being good at it. In this course, you’ll be graded on how good you are at programming and the only way to get good is through practice!
- Come to class and actively participate. There is no textbook for this course. We are going to collaboratively solve problems and write code in the class.
- The weekly assignments are there for you to help practice. Take these seriously. They are the backbone of this course. Diligent work on the assignments is going to pay off in the labs and exams.
- Start assignments early! This will allow you time to (a) get stuck and recover (b) seek my help, if needed.
- The labs are there for you to receive weekly feedback on your learning progress and for me to assess your level of mastery of the concepts covered in class and assignments.
- Seek me out with any questions, comments or concerns. I have an open-door policy.
- Do not cheat on the assignments! Do not overuse your friends or the internet. Come to my office hours or send me an email instead. I know all the answers and am willing to help.
Seek Help:
It is to your advantage to communicate with me whether in class, in my office, or via email. I plan to maintain an open-door policy between 9:00 AM -5:00 PM, Monday to Friday, unless I am in a meeting or teaching a class. You are strongly encouraged to visit me in my office or request a meeting via email with any questions, comments or observations about the class.Other Policies and Resources:
Minimum Requirements: In order to pass this class, you must (1) earn a passing grade, (2) submit at least 50% of all in-class submissions, labs, and (3) take all exams. Simply, you cannot blow off an entire aspect of the course and pass this class! Note that this basic requirement is necessary but not sufficient to pass the class.Assignment Submissions: Please follow the protocol stated in the assignment description; including file names, file extensions, header comments, inline comments, naming conventions, and input / output conventions as described in the assignment.
Grading Policy for Programming Assignments: All programming projects have been constructed with very explicit instructions for your benefit. Every effort has been made to remove ambiguity. However, there are times when the English language fails and multiple interpretations are possible; in this case, please email the instructor. If the question merits a larger audience, the instructor may reply with a broadcast email.
Accompanying each programming assignment will be a rubric that describes how grades will be assigned. Please use the accompanying rubric to help guide you in completing and testing your programming assignments.
A critical element in software development is the need to thoroughly test your code. If you submit a program that does not execute without intervention from the instructor, you will earn at most 50% of the points.Code that does not compile (or is not recognized by a Python interpreter) is extremely difficult to grade effectively, efficiently, and fairly. Therefore, you must make every effort to submit source code that, minimally, executes.
The definition of compilation (interpreted in the Python language) is multi-faceted.
- Your code must compile as a stand-alone unit. If not, 50% will be lost.
- All of your code must meet all specifications in the assignment in order to compile with my testing code. In most cases, I will use my own testing code to determine correctness. If your code does not compile with my testing code, you will minimally lose 50% of all points on each method or function for which compilation fails.
Late Assignments: A 40% penalty will be assessed to any graded item that is submitted after the deadline. Failure of technology or your failure to use technology effectively is not an acceptable excuse. No graded item will be accepted more than 48 hours after a deadline under any circumstance; please plan accordingly. Late electronic submission is via email.
Lab Times: Lab assignments may not be relegated to the 2-hour lab block. Some labs may begin in class and end in class. For example, a lab may begin in class on Tuesday, continue during the lab time, and end during Thursday class. The instructor will provide detailed expectations for each lab.
Lab Grading: If you are absent from lab, you will receive a zero for the lab. If you leave lab (or class) early without seeking permission from the instructor a reasonable amount of time before the lab/class, your lab grade will be reduced by the percentage of lab/class missed. Labs will not be accepted via email unless requested by the instructor.
Exams: There will be three midterm exams in addition to a cumulative final exam. The midterm exams will be held during the normal class period. All exams are closed book and closed notes.
Remote Access: No remote access to the course will be granted unless there is formal, University documentation that states the student will not be able to attend in-person.
Accommodation Requests: I encourage students with disabilities to make an appointment to meet with me as soon as possible to discuss ways I can help facilitate your learning. All discussions will remain confidential. The Student Office for Accessibility Resources is committed to helping qualified students with disabilities achieve their academic goals by providing reasonable academic accommodations under appropriate circumstances. If you have a disability and anticipate the need for an accommodation in order to participate in this class, please register with the Student Office for Accessibility Resources. They will assist you in getting the resources you may need to participate fully in this class. You can contact the SOAR office at 864.294.2320 or at soar@furman.edu. You can find additional information and request academic accommodations at the SOAR webpage.
Attendance policy: Students need to consistently engage with the material inside and outside of class. Any dates on which you will not be able to attend class due to a planned absence must be discussed with the instructor in advance. Please arrive to class on time and do not leave early, unless arrangements have been made with the instructor; leaving early without permission will be counted as an absence. Arriving to class more than 10 minutes late will be counted as an absence. Regular attendance is expected. Formally, we will follow the Furman University Catalog: A freshman who exceeds 15% of the class meetings or an upperclassman who exceeds 25% for any reason will be in violation of the maximum established by the University (p. 40 of the Furman University Catalog) and will be dropped from the course with a grade of “F.”
There will be NO ‘makeup’ assessments without a valid, documented conflict (illness, University sponsored event, etc.). If you have such a conflict, please contact the instructor at least one week in advance of the assessment date to make arrangements; for final exam conflicts, see below. For absences due to illness, this class will follow protocols as established by Furman University administration and the discretion of the Earle Student Health Center. Minimally, inform the instructor of your absence due to illness as soon as possible.
Final Exam Conflicts: Final exam conflicts will be handled according to the Furman University Catalog policy: Requests to take the final exam at a time that differs from the University final exam schedule must be approved by the Associate Academic Dean. (“Any instructor who wishes to administer the final examination at a time other than the one specified on the final exam schedule must secure the approval of the department chair and the Associate Academic Dean,” from the Furman University Catalog.)
Academic Integrity: Academic Integrity standards are important to our Furman community and will be upheld in this class. Students should review the Academic Integrity Pledge posted in the classroom and resources available on www.furman.edu/integrity. In this class, the grade penalty for an academic integrity violation is an F for the course. Academic Discipline procedures will be followed through the Office of the Academic Dean.
You may freely give and receive help with:
- the computing facilities,
- editors,
- debugging techniques,
- the meaning and proper use of the target programming language,
- and general concepts covered in the class.
- Discuss your design or implementation of the assignments with any classmate (other than a partner) until after they are graded,
- View another person's program or allow someone (other than your partner) to view any part of your program before the assignment has been graded.
Additional Resources in the Center for Academic Success (CAS; LIB 002)
: The Writing & Media Lab (WML) is staffed by student Consultants who are trained to help you improve your writing and multimodal communication skills. The consultation process is non-directive and intended to allow students to maintain ownership of their work. In addition to helping with the nuts and bolts, WML Consultants also support you in developing your own ideas thoughtfully and critically, whether you’re writing an essay or planning a video or other multimedia project. You may drop into the WML during its regular hours (LIB 002; 9 AM to 10 PM) or visit the Writing and Media Lab website to make an appointment online.Peer Tutors are available free of charge for many classes and may be requested by dropping by CAS (LIB 002) or on the Center for Academic Success website. Tutors are typically recommended by faculty and have performed well in the class.
Professional Academic Assistance Staff in CAS can provide students assistance with time management, study skills, and organizational skills.
The Writing and ESL Specialist provides professional writing support as well as support for students whose primary language is not English.
Nondiscrimination Policy and Sexual Misconduct
Furman University and its faculty are committed to supporting our students and seeking an environment that is free of bias, discrimination, and harassment. Furman does not unlawfully discriminate on the basis of race, color, national origin, sex, sexual orientation, gender identity, pregnancy, disability, age, religion, veteran status, or any other characteristic or status protected by applicable local, state, or federal law in admission, treatment, or access to, or employment in, its programs and activities.If you have encountered any form of discrimination or harassment, including sexual misconduct (e.g. sexual assault, sexual harassment or gender-based harassment, sexual exploitation or intimidation, stalking, intimate partner violence), we encourage you to report this to the institution. If you wish to report such an incident of misconduct, you may contact Furman's Title IX Coordinator, Melissa Nichols (Trone Center, Suite 215; Melissa.nichols@furman.edu; 864.294.2221).
If you would like to speak with someone who can advise you but maintain complete confidentiality, you can talk with a counselor, a professional in the Student Health Center or someone in the Office of Spiritual Life. If you speak with a faculty member, understand that as a "Responsible Employee" of the University, the faculty member MUST report to the University’s Title IX Coordinator what you share to help ensure that your safety and welfare are being addressed, consistent with the requirements of the law.
Additional information about Furman's Sexual Misconduct Policy, how to report sexual misconduct and your rights can be found at the Furman Title IX Webpage at www.furman.edu/titleix. You do not have to go through the experience alone.