Python Project
P a g e | 1 INF 308: Programming for Informatics
Professor Nim Dvir
INF 308: Programming for Informatics (3 Credits)
Semester: Fall 2019
Day/Time/Location: Fully online (BlackBoard)
Pre-requisites/Co-requisites: CINF 100 and CINF108 or I CSI/I ECE 201
Instructor: Nim Dvir
Read more about me on my university web page -- albany.edu/~nd115232/
Contact: [email protected]
Important -- When emailing, please add [INF496] at the beginning of the subject line
Office Location and Hours: Thursday, 3 pm - 5 pm, or by appointment
Last update date: August 8, 2019
Course Description, Purpose and Goals
This course focuses on computer programming in the Informatics environment. During the course, students will
learn the fundamentals of programming, including an introduction to algorithms, object-oriented design, and data
structures. Additional topics include basic interface design, security, networking, use of databases, and mobile and
other non-traditional computing platforms.
Upon completion of the course, students should be able to accomplish the following outcomes:
• Create, modify, and explain complex computer programs
• Analyze real-world problems and then design and implement computational solutions for them
• Use and apply appropriate data structures in a computer program
• Construct and implement complex computational algorithms
• Explain and identify a suitable programming paradigm to build the structure and elements of a computer program
• Design and implement computer programs that interact with networks and databases
The Course Environment
This course is offered in a fully online learning format. The instructor will be available on Thursdays, 3 pm - 5 pm,
and by appointment. Students will complete classwork and assignments independently using the Blackboard
Learning System (BLS). If they are not familiar with Blackboard, they may please visit the Blackboard help pages
for students: http://ondemand.blackboard.com/students.htm and https://help.blackboard.com/en-
us/Learn/9.1_SP_12_and_SP_13/Student
Required Readings
The course is based on free/open-source materials, which mean that students are not required to purchase anything.
During the course we will use two open-source textbooks:
• Programming for Problem Solving / Lenore G. Horowitz o https://courses.lumenlearning.com/suny-albany-programmingforproblemsolving-v2/
• Python for Everybody - Exploring Data In Python 3 / Charles R. Severance o https://www.py4e.com/book.php
P a g e | 2 INF 308: Programming for Informatics
Professor Nim Dvir
Readings will be posted Blackboard and are listed in the schedule. Each week will have a few assigned lessons,
accessed through links posted under "course content" in the weekly folders. Additional readings and exercises will
be added during the semester.
Software Packages
This course is based on Python-based technology and its supporting libraries. Python is recognized as a leading
open-source environment for manipulating and visualizing data. We will be using Python 3 (and not 2!). Make sure
you install the right version!
• Installing Python - This lesson will walk you through the installation steps, including installing Python and text editor. You can use whichever editor is most convenient for you; Just make sure you are able to submit
Python files (.py).
Recommended / Additional Readings
The Python community has developed a large set of materials for self- study and shared ideation, available at
https://www.python.org . Links to other helpful readings will be posted on BlackBoard
Deliverables & Grading
This course is A-E graded. The final grade will be determined based on the following:
• Weekly assignments (WA) - 60% (about 5% each) Each module/week includes assignment(s) in which the students are asked to write a program or an
algorithm that solves a specific problem. Instructions will be provided in the course content.
• Mid-course project and final project - 40% (20% each) In the mid-course and final projects students will apply the topics learned to solve various problems.
Originality and individual work are key.
• Bonus - 10% I will offer up to 10 bonus points for students who wish to improve their final grade. Some ways to earn
bonus points: participation in the weekly discussion board (for example, correcting errors in classmates’
programs or submitting work early), answering classmates' questions, creating programs that stand out in
their originality, efficiency or attention to details; And anything else that exceeds the scope of the course
(original ideas are very welcome).
Your final grade will be based on a scale of 100 points:
A A- B+ B B- C+ C C- D+ D D- E
100-94 93-89 88-85 84-82 81-79 78-76 75-73 72-70 69-67 66-63 63-60 60-0
P a g e | 3 INF 308: Programming for Informatics
Professor Nim Dvir
Submissions
Submissions should be made through BlackBoard only and are due before the next week starts (by EOD) or as
instructed. Submissions are in the following forms:
• Program file Each program should be submitted as a .py file which should include comments that explain the different steps
taken. Students should submit their work even if their program does not execute flawlessly. Partial credit will be
given to programs with issues, in particular, if the comments recognize and explain areas that need more work.
• Discussion posts Some week submissions are in the form of posts to a discussion board. These often include a program file, a
screenshot of the output and whatever else asked in the assignment Instructions. By using a discussion board,
students have access to their classmates' work, as well as examples provided by the instructor. Therefore, students
are exposed to various programming applications and different ways of thinking. Bonus points will be given to
students who use this platform to give helpful feedback to their peers.
Missed Exams and Assignments: The course missed assignment policy follows the University’s Medical Excuse
Policy: https://www.albany.edu/health_center/medicalexcuse.shtml.
Withdrawal from the Course: The drop date for the fall 2019 semester is 11/4 for undergraduate students. That is
the last date you can drop a course and receive a 'W'. It is your responsibility to take action by this date if you wish
to drop the course. In particular, grades of "incomplete" will not be awarded to students because they missed the
drop deadline.
Course Structure & Schedule
Week Date Class topics Readings Deliverables 1 8/26 Introduction
to the course
Why
Program?
The syllabus!
Why Program?
https://www.py4e.com/lessons/intro
How to Think Like an Engineer
https://courses.lumenlearning.com/suny-
albany-programmingforproblemsolving-
v2/chapter/how-to-think-like-an-engineer/
Weekly
assignment
(WA) #1
2 9/3
(Tuesday,
9/2 labor
day
break)
Programming
Revisited
Installing Python
https://www.py4e.com/lessons/install
Writing Simple Programs
https://courses.lumenlearning.com/suny-
albany-programmingforproblemsolving-
v2/chapter/writing-simple-programs/
Variables, expressions, and statements
https://www.py4e.com/lessons/memory
WA #2
P a g e | 4 INF 308: Programming for Informatics
Professor Nim Dvir
3 9/9 Functions and
Control
Structures
Conditional Execution
https://www.py4e.com/lessons/logic
Functions
https://www.py4e.com/lessons/functions
Loops and Iterations
https://www.py4e.com/lessons/loops
Control Structures
https://courses.lumenlearning.com/suny-
albany-programmingforproblemsolving-
v2/chapter/control-structures-making-
decisions-and-looping-in-computing-data-and-
information-processing-in-python/
WA #3
4 9/16 Strings Strings
https://www.py4e.com/lessons/strings
WA #4
5 9/23 File
processing
Files
https://www.py4e.com/lessons/files
Reading CSV files in Python
https://pythonprogramming.net/reading-csv-
files-python-3/
WA #5
6 9/30 Data
collections
Lists
https://www.py4e.com/lessons/lists
Dictionaries
https://www.py4e.com/lessons/dictionary
Tuples
https://www.py4e.com/lessons/tuples
WA #6
7 10/7 Extracting
data using
regular
expressions
Regular Expressions
https://www.py4e.com/lessons/regex
Python Regular Expression Quick Guide
https://www.py4e.com/lectures3/Pythonlearn-
11-Regex-Handout.txt
WA #7
8 10/14
(fall
break)
Mid-course
project
Mid-course
project (10/20)
9 10/21 Databases I Databases
https://www.py4e.com/lessons/database
Python for Everybody Database Handout
https://www.py4e.com/lectures3/Pythonlearn-
15-Database-Handout.txt
WA #8
10 10/28 Databases II Databases
https://www.py4e.com/lessons/database
Python for Everybody Database Handout
https://www.py4e.com/lectures3/Pythonlearn-
15-Database-Handout.txt
WA #9
11 11/4 Network
Programming
Network Programming
https://www.py4e.com/lessons/network
WA #10
P a g e | 5 INF 308: Programming for Informatics
Professor Nim Dvir
12 11/11 Data
Visualization
I
Graphics: Designing and Developing
Graphics Programs
https://courses.lumenlearning.com/suny-
albany-programmingforproblemsolving-
v2/chapter/graphics-designing-and-
developing-graphics-programs/
Data Visualization
https://www.py4e.com/lessons/dataviz
WA #11
13 11/18 Data
Visualization
II
Graphics: Designing and Developing
Graphics Programs
https://courses.lumenlearning.com/suny-
albany-programmingforproblemsolving-
v2/chapter/graphics-designing-and-
developing-graphics-programs/
Data Visualization
https://www.py4e.com/lessons/dataviz
WA #12
14 11/25 Final projects
review
Thanksgiving
Break - 11/27-
1/12
15 12/2 Wrap-up Final project
(12/9)
Additional Information
Disability Policy: Reasonable accommodations will be provided for students with documented physical, sensory,
systemic, medical, cognitive, learning and mental health (psychiatric) disabilities. If you believe you have a
disability requiring accommodation in this class, please notify the Disability Resource Center (518- 442-5490;
[email protected]). Upon verification and after the registration process is complete, the DRC will provide you with a
letter that informs the course instructor that you are a student with a disability registered with the DRC and list the
recommended reasonable accommodations.
Academic Integrity: Every student has the responsibility to become familiar with the standards of academic
integrity at the University. Faculty members must specify in their syllabi information about academic integrity and
may refer students to this policy for more information. Nonetheless, student claims of ignorance, unintentional error,
or personal or academic pressures cannot be excuses for violation of academic integrity. Students are responsible for
familiarizing themselves with the standards and behaving accordingly, and UAlbany faculty are responsible for
teaching, modeling and upholding them. Anything less undermines the worth and value of our intellectual work, and
the reputation and credibility of the University at Albany degree.
It is every student’s responsibility to become familiar with the standards of academic integrity at the University.
Claims of ignorance, of unintentional error, or of academic or personal pressures are not sufficient reasons for
violations of academic integrity. See http://www.albany.edu/undergraduate_bulletin/regulations.html
Course work and examinations are considered individual exercises. Copying the work of others is a violation of
university rules on academic integrity. Individual course work is also key to your being prepared and performing
well on tests and exams. Forming study groups and discussing assignments and techniques in general terms is
encouraged, but the final work must be your own work. For example, two or more people may not create an
assignment together and submit it for credit. If you have specific questions about this or any other policy, please ask.
The following is a list of the types of behaviors that are defined as examples of academic dishonesty and are
therefore unacceptable. Attempts to commit such acts also fall under the term academic dishonesty and are subject
to penalty. No set of guidelines can, of course, define all possible types or degrees of academic dishonesty; thus, the
following descriptions should be understood as examples of infractions rather than an exhaustive list.
➢ Plagiarism
P a g e | 6 INF 308: Programming for Informatics
Professor Nim Dvir
➢ Allowing other students to see or copy your assignments or exams ➢ Examining or copying another student’s assignments or exams ➢ Lying to the professor about issues of academic integrity ➢ Submitting the same work for multiple assignments/classes without prior consent from the instructor(s) ➢ Getting answers or help from people, or other sources (e.g. research papers, web sites) without acknowledging
them.
➢ Forgery ➢ Sabotage ➢ Unauthorized Collaboration (just check first!) ➢ Falsification ➢ Bribery ➢ Theft, Damage, or Misuse of Library or Computer Resources
Any incident of academic dishonesty in this course, no matter how "minor" will result in
➢ No credit for the affected assignment. ➢ A written report will be sent to the appropriate University authorities (e.g. the Dean of Undergraduate Studies) ➢ One of -
o A final mark reduction by at least one-half letter grade (e.g. B → B-, C- → D+), o A Failing mark (E) in the course, and referral of the matter to the University Judicial System for
disposition.
All course material and documents developed by the instructor are copyrighted and may not be reproduced or
distributed without express written permission.
CEHC Grievance Policy & Procedure:
According to the CEHC Grievance Policy:
I. … a “grievance” shall include any complaint alleging wrongdoing made by students, faculty, staff, or
administrators in the College of Emergency Preparedness, Homeland Security and Cybersecurity (CEHC)
against other students, faculty, staff or administrators. “Faculty” shall include any individuals with
appointments enabling them to be designated instructors of record, and “students” shall include any
enrolled students.
A “grievance” shall include, but not be limited to, any challenge to the resolution of a dispute over matters
of academic honesty (such as plagiarism and cheating) and professional ethics or grades assigned for
courses. It shall also include any allegation of improper treatment, including improper treatment on the
grounds of age, color, creed, disability, marital status, military status, national origin, race, sex, gender
identity, or sexual orientation. In grievances concerning grades, grievances may be filed only as to any final
grade or other final disposition for a course. Dropping of a course shall constitute a final disposition for a
course so as to allow grievances over grades or other matters occurring prior to the “drop.”
All grievances concerning grades must be adjudicated by the CEHC grievance committee and process. All
other grievances may be referred to the University-level community standards process (or other appropriate
processes). Nothing in this policy prohibits the aggrieved party from pursuing university-level adjudication
at any time.
III. Any grievance must be filed within five months of the time the complainant was informed of the
matter which is the subject of the grievance. “File” shall mean the submission of a statement from the
complainant to either the Dean of the CEHC or the Chair of the CEHC Grievance Committee. The
statement shall 1) detail the event or events to which the complainant is objecting, 2) identify the person or
persons the complainant alleges is responsible, and 3) identify the remedy or remedies sought to address the
complaint.
For the full CEHC Grievance Policy, please contact [email protected].
Responsible Use of Information Technology:
https://wiki.albany.edu/display/public/askit/Responsible+Use+of+Information+Technology+Policy
P a g e | 7 INF 308: Programming for Informatics
Professor Nim Dvir
Respect for Diversity
It is my intent that students from all diverse backgrounds and perspectives be well served by this course, that
students’ learning needs be addressed both in and out of class, and that the diversity that students bring to this class
be viewed as a resource, strength, and benefit. It is my intent to present materials and activities that are respectful of
diversity: gender, sexuality, disability, age, socioeconomic status, ethnicity, race, and culture. Your suggestions are
encouraged and appreciated. Please let me know ways to improve the effectiveness of the course for you personally
or for other students or student groups. In addition, if any of our class meetings conflict with your religious events,
please let me know so that we can make arrangements for you.1
Absence due to religious observance: New York State Education Law (Section 224-a) - Campuses are required to
excuse, without penalty, individual students absent because of religious beliefs, and to provide equivalent
opportunities for make-up examinations, study, or work requirements missed because of such absences. Faculty
should work directly with students to accommodate religious observances. Students should notify the instructor of
record in a timely manner.
Time Management
For every credit hour that a course meets, students should expect to work 3 additional hours outside of class every
week (3 x 3= 9). For a fully online three-credit course, you should expect to work 12 hours every week! Manage
your time effectively to complete readings, assignments, and projects.
1 Respect for Diversity statement from https://www.brown.edu/sheridan/teaching-learning-resources/inclusive-teaching/statements
- Course Description, Purpose and Goals
- Course Description, Purpose and Goals
- The Course Environment
- The Course Environment
- Required Readings
- Required Readings
- Software Packages
- Software Packages
- Recommended / Additional Readings
- Recommended / Additional Readings
- Deliverables & Grading
- Deliverables & Grading
- Submissions
- Submissions
- Submissions
- Course Structure & Schedule
- Course Structure & Schedule
- Additional Information
- Additional Information
- Respect for Diversity
- Respect for Diversity
- Respect for Diversity
- Time Management
- Time Management