JCU Logo


COURSE NAME: "Programming Concepts and Applications"
SEMESTER & YEAR: Fall 2023

INSTRUCTOR: Patrizio Angelini
EMAIL: [email protected]
HOURS: MW 10:00 AM 11:15 AM
OFFICE HOURS: Regular: Tuesday, 11,30AM-12,30AM. Available by appointment in other time slots.

This course introduces fundamental computer programming concepts using a high-level language and a modern development environment. Programming skills include sequential, selection, and repetition control structures, functions, input and output, primitive data types, basic data structures including arrays and pointers, objects, and classes. Software engineering skills include problem solving, program design, and debugging practices. The goal of this course is to advance students’ computational thinking, educate them to use programs as tools in their own field of study, and to provide them with fundamental knowledge of programming strategies.
This course will introduce students to programming and will provide them with basic software design concepts.

Main topics covered in the course:

1 - Fundamentals of programming: languages, source code, compiler.

2 - Programming syntax: variables, data types, operations, conditional and looping constructs, functions.

3 - Object-oriented programming: objects, classes, encapsulation, inheritance.

4 - Basics of software design principles: modularity, packages, design patterns.

5 - Design and implementation of a small project.

The discussion of all topics will be continuously supported by hands-on coding sessions, using Python as reference language.
1 - First experience with the main concepts of programming.

2 - Ability of writing, compiling, and executing code in a programming language (Python).

3 - Enhancement of problem solving skills.

4 - Predisposition to designing a solution before implementing it.

5 - Identification of possible applications of computer programming in different areas.
Book TitleAuthorPublisherISBN numberLibrary Call NumberCommentsFormatLocal BookstoreOnline Purchase
Python Crash Course, 2nd Edition A Hands-On, Project-Based Introduction to ProgrammingEric MatthesNo Starch Press9781593279288  Ebook  

Assignments2 home-assignments, which will be evaluated on the quality of the submitted solutions and on a subsequent discussion in class.20
Final examDesign and implementation of a programming project to verify the knowledge acquired by the student in the course. Students will be asked to present their project in class during the final exam meeting.25
Attendance and participationAttendance and participation are fundamental, as students will be involved in practical work during lessons.10
Midterm examIn-class assessment of the programming skills acquired in the first half of the course. The exam consists of three programming exercises.25
Quizzes4 short in-class quizzes, each focused on a specific topic. The lowest grade will be dropped.20

AWork of this quality directly addresses the task or problem raised and provides a coherent application of the concepts, displaying an extensive knowledge of relevant information or content. This type of work demonstrates the ability to critically evaluate concepts and theory and has an element of novelty and originality. There is clear evidence of a significant amount of reading beyond that required for the course.
BThis is highly competent level of performance and directly addresses the task or problem raised. There is a demonstration of some ability to critically evaluate theory and concepts and relate them to practice. Discussions reflect the student’s own arguments and are not simply a repetition of standard lecture and reference material. The work does not suffer from any major errors or omissions and provides evidence of reading beyond the required assignments.
CThis is an acceptable level of performance and provides answers and solutions that are clear but limited, reflecting the information offered in the lectures and reference readings.
DThis level of performances demonstrates that the student lacks a coherent grasp of the material. Important information is omitted and irrelevant points included. In effect, the student has barely done enough to persuade the instructor that s/he should not fail.
FThis work fails to show any knowledge or understanding of the issues raised in the question. Most of the material in the answer is irrelevant.

You cannot make-up a major exam (midterm or final) without the permission of the Dean’s Office. The Dean’s Office will grant such permission only when the absence was caused by a serious impediment, such as a documented illness, hospitalization or death in the immediate family (in which you must attend the funeral) or other situations of similar gravity. Absences due to other meaningful conflicts, such as job interviews, family celebrations, travel difficulties, student misunderstandings or personal convenience, will not be excused. Students who will be absent from a major exam must notify the Dean’s Office prior to that exam. Absences from class due to the observance of a religious holiday will normally be excused. Individual students who will have to miss class to observe a religious holiday should notify the instructor by the end of the Add/Drop period to make prior arrangements for making up any work that will be missed.

Attendance is mandatory and is graded. Students will be granted 2 absences without penalty. Any other absences will only be excused with medical certificates or permission from the Dean's Office.
As stated in the university catalog, any student who commits an act of academic dishonesty will receive a failing grade on the work in which the dishonesty occurred. In addition, acts of academic dishonesty, irrespective of the weight of the assignment, may result in the student receiving a failing grade in the course. Instances of academic dishonesty will be reported to the Dean of Academic Affairs. A student who is reported twice for academic dishonesty is subject to summary dismissal from the University. In such a case, the Academic Council will then make a recommendation to the President, who will make the final decision.
John Cabot University does not discriminate on the basis of disability or handicap. Students with approved accommodations must inform their professors at the beginning of the term. Please see the website for the complete policy.


Week 1 Introduction to programming
Week 2 Variables and data types
Week 3 Lists and strings Quiz 1
Week 4 Conditional and loop control Home assignment 1
Week 5 User input Quiz 2
Week 6 While loop
Week 7 Read/Write to external files
Week 8 Functions Mid-term
Week 9 Dictionaries  
Week 10 Object-oriented programming Home assignment 2
Week 11 Object-oriented programming Quiz 3
Week 12 Object-oriented programming
Work on final project
Week 13 Work on final project Quiz 4
Week 14 Work on final project  
 Exam week Final project discussion  Project discussion