Instructor:
  Ameen Abdel Hai
Office:
  BL-217
Email:
  aabdelha AT sju DOT edu

CSC115: Introduction to Computer Science

This course is based on Python for Everybody and will introduce the fundamental programming concepts including data structures, networked application program interfaces, and databases, using the Python programming language. Upon successful completion of this course, you will be able to use technologies learnt throughout the course to design and create your own applications for data retrieval, processing, and visualization.
This course is in Python 3


Textbook: Python for Everybody: Exploring Data In Python 3 Printed/hard copies are available on Amazon or download the free copy (PDF)
The Python Standard Library
Tutorials Point - Python Tutorials
W3 Schools - Python Tutorials
Python pip - get-pip.py
Python pytest
Prerequisites: None (this course is meant to be for beginners)
TA: Huang, Youbin - yh689981@sju.edu

The academic year of 2018-2019 welcomes you!

Major Topics

  • Variables, Expressions, and Statements
  • Conditional Execution/Code
  • Functions
  • Loops & Iterations
  • Strings
  • Files
  • Lists
  • Dictionaries
  • Tuples
  • Regular Expressions
  • Internet History, Technology, and Security
  • Network Programming (HTTP)
  • Using Web Services
  • Object Oriented Programming (OOP)
  • Pandas DataFrames or Databases
  • Data Visualization

Course Curriculum

Chapter Readings Assignments
Chapter 1:
Introduction/Why we program &
Getting started with Python
click here for slides/presentation Assignment 1
Chapter 2:
Variables & Expressions
Click here for slides/presentation
Built-in Functions
Assignment 2
Chapter 3:
Conditional Code
Click here for slides/presentation Assignment 3
Chapter 4:
Functions
Click here for slides/presentation None
Chapter 5:
Loops & Iteration
Click here for Loops & Iteration slides/presentation
Click here for Definite Loops slides/presentation
Click here for Finding the Largest Value slides/presentation
Click here for Loop Idioms slides/presentation
None
Data Structures
Chapter 6:
Strings
Click here for slides/presentation None
Chapter 7:
Files
Click here for slides/presentation Not yet
Chapter 8:
Lists
Click here for slides/presentation
Click here for list of useful functions/terms to remember
Click here 2D (2 Dimensional)
Assignment 4
Extra Credit - Assignment 5
Chapter 9:
Dictionaries
Click here for slides/presentation Assignment 6
Chapter 10:
Tuples
Click here for slides/presentation Assignment 10
Python and the Web
Chapter 11:
Regular Expressions
Click here for slides/presentation Assignment 11
Chapter 12:
Networks and Sockets
Click here for slides/presentation Assignment 12.1
Chapter 12:
Programs that Surf the Web
Click here for slides/presentation Assignment 12.2
Chapter 13:
Web Services and XML
Click here for slides/presentation Assignment 13.1
Chapter 13:
JSON and the REST Architecture
Click here for slides/presentation Assignment 13.2
Data
Chapter 14:
Object Oriented Programming (OOP)
Click here for slides/presentation Assignment
HTML/CSS
Chapter 6:
HTML/CSS
Click here for sample design template None

Grading:
Homework assignments: 20%, quizzes: 10%, midterm exam: 30%, final exam: 40%
Final gradings will be given according to the following scale:

Undergraduate students

A 96+
A- 90 - 95
B+ 85 - 89
B 80-84
B- 78-79
C+ 75-77
C 71-74
C- 65-70
D 61-64
F 0-60

Rules & Regulations

Accommodations for Disabilities: Reasonable academic accommodations may be provided to students who submit appropriate documentation of their disability. Students are encouraged to contact Dr. Christine Mecke in the Office of Student Disability Services, Bellarmine, B-10, at cmecke@sju.edu; or at 610.660.1774 for assistance with this issue. The university also provides an appeal/grievance procedure regarding requested or offered reasonable accommodations through Dr. Mecke's office. More information can be found at: www.sju.edu/sds.

Class room and meetings: Go back to the main page or click here for classrooms, meeting times, and office hours. If you have any further queries, please do not hesitate to contact me via email or pop in to my office during office hours. If you need to see me urgently and office hours are not suitable for you, please email me and we will organize a meeting.

Assignments/Lateness: Email your assignments to me and our TA on or before midnight on the day they are due. If the assignment is a coding assignment, please be sure to include your source code as well as the output of sample test runs. Work may be turned in up to one week late. Late work will be penalized by 50%. After one week late, work will not be accepted. In case of an emergency, please contact me and I will examine whether I can postpone your assignment.

Academic Honesty: This course will follow the University's standard policy on academic honesty. In particular, any cheating (including plagiarism) or assisting another student's cheating on any assignment, test, or the final exam will be penalized by either a zero on the test, or by failure of the course, at my discretion. Finally, if you cheat twice during this course, you will fail the course. Remember that the University may inflict further penalties other than those listed here under the provisions of the published Academic Honesty Policy. Clarification: Webster.com defines plagiarizing as, "to steal and pass off (the ideas or words of another) as one's own : use (another's production) without crediting the source." Therefore, if you cut-and-paste something from the web, you are plagiarizing. If you copy another student's work, you are plagiarizing. If you have someone else do your work for you, you are plagiarizing.
You may work as a partner with another student on an assignment to an extent. Two identical solutions are not considered. If I receive identical solutions from two students, both students will be lose credit for their homework or might not get any credit for it. Note, I consider copying solutions from online sources to be cheating. Please contact me whether you have any queries in regard to assignments due. If you have any questions or face any difficulties, ask me before the deadline

Mobile Devices (i.e., phones, laptops, and tablets): Mobile devices (cell phones) are not permitted, Laptops can be used for note taking or any other purposes related to class activated, such as writing code and solving technical problems. All other uses are not permitted in class.

Attendance: You are encouraged to attend every lecture. Attendance is not mandatory. However, if you do not attend lectures/classes, I will consider this as you are comfortable with the materials and able to write exams and pass the course. Note, if you do not attend regularly, I will not be able to go over the materials again during office hours. However, if you attend, make an effort, work hard, I will be delighted to explain and go over any topics or solve any difficulties faced during the course.


"WRITING PROGRAMS OR PROGRAMMING IS A VERY CREATIVE AND REWARDING ACTIVITY YOU CAN WRITE PROGRAMS FOR MANY REASONS RANGING FROM MAKING YOUR LIVING TO SOLVING A DIFFICULT DATA ANALYSIS PROBLEM TO HAVING FUN TO HELPING SOMEONE ELSE SOLVE A PROBLEM THIS BOOK ASSUMES THAT {\EM EVERYONE} NEEDS TO KNOW HOW TO PROGRAM AND THAT ONCE YOU KNOW HOW TO PROGRAM, YOU WILL FIGURE OUT WHAT YOU WANT TO DO WITH YOUR NEWFOUND SKILLS WE ARE SURROUNDED IN OUR DAILY LIVES WITH COMPUTERS RANGING FROM LAPTOPS TO CELL PHONES WE CAN THINK OF THESE COMPUTERS AS OUR PERSONAL ASSISTANTS WHO CAN TAKE CARE OF MANY THINGS ON OUR BEHALF THE HARDWARE IN OUR CURRENT-DAY COMPUTERS IS ESSENTIALLY BUILT TO CONTINUOUSLY AS US THE QUESTION WHAT WOULD YOU LIKE ME TO DO NEXT OUR COMPUTERS ARE FAST AND HAVE VASTS AMOUNTS OF MEMORY AND COULD BE VERY HELPFUL TO US IF WE ONLY KNEW THE LANGUAGE TO SPEAK TO EXPLAIN TO THE COMPUTER WHAT WE WOULD LIKE IT TO DO NEXT IF WE KNEW THIS LANGUAGE WE COULD TELL THE COMPUTER TO DO TASKS ON OUR BEHALF THAT WERE REPTITIVE INTERESTINGLY, THE KINDS OF THINGS COMPUTERS CAN DO BEST ARE OFTEN THE KINDS OF THINGS THAT WE HUMANS FIND BORING AND MIND-NUMBING" - Dr. Charles Severance