Python Project

profilejamesblent1
inf308fall2019Syllabus.pdf

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