Computer Programming II syllabus
- Course: IT2045C - Computer Programming II
- Instructor: Yahya Gilany, yahya.gilany@uc.edu
- Need help?
- Office Hours with TA By appointment - more info soon.
- Office Hours with Instructor By appointment - please sign up here
- Microsoft Teams
- You should all be added to the Team on Microsoft Teams. In the current remote setting, many courses are also using MS Teams, I’m hoping this would be a familiar platform for you to use.
- The Team is meant for your and your classmates to collaborate and help each other out with whatever you get stuck on.
- Try to ask all of your questions there
- I will periodically check in there to answer questions that you all aren’t able to answer.
- Please mention me on questions that require my attention
- It’s highly advised that you keep in touch with your classmates, answer their questions, and participate in the ongoing conversations.
- SoIT Learning Center: The center is staffed with a group of TAs who will be able to provide help and guidance.
- The Learning Center is going Virtual this semester. Hours will be announced soon.
NOTE: The instructor reserves the right to update this syllabus as class needs arise. Be assured that they will communicate to you any changes to the schedule, syllabus or policies quickly and efficiently.
Course Description
This course is the second course in the Computer Programming sequence that is meant to introduce students to computer programming and problem solving in the Java programming Language. In this course, Students will learn about Object Oriented Programming and Design, will learn how to create Graphical User Interface application and other advanced programming and software development topics.
Prerequisites
- IT1090C - Computer Programming I
If you need a refresher, take a look at the Beginner Materials.
Credit Hours and Course Format
3 credit hours; online.
Learning outcomes
- Apply concepts of the object-oriented paradigm: Inheritance , Encapsulation, Polymorphism
- Model real world concepts into class structures and implement them as objects.
- Demonstrate communication within a system.
- Create visual components and handle events using current technology.
- Implement dynamic Web page components using applets.
- Demonstrate client/server programming using Java
- Demonstrate data handling using various data storage formats (e.g., text files, XML files)
- Recognize the reusability of objects in software development.
Course Content and Topics
- Source Version Control
- Creating User-defined Objects with Java Class files.
- Object-Oriented Programming and Design.
- Building User-defined object with Classes.
- Inheritance.○Interfaces.
- Building Graphical User Interfaces with the Java Swing Library.
- Recursion.
- Abstract Data Types.
- Threading.
- Advanced Topics (Tentatively)
- Design Patterns.
- JDBC.
- Java Network Programming.
Course Policies and Grading
Attendance/Participation Expectations
- You are, of course, expected to participate in all class activities.
- Given that this is an online course, quizzes will be employed to collecte attendance.
- They will only be available until their due dates and won’t be made available after the due dates passes.
- A MS Teams or a discord channel will be created for interacting with your fellow students. I won’t be monitoring it but you can use it to seek help from your classmates.
- You will need to maintain a line of communication with me regarding your performance. Seek me out if you need help.
Communication protocols
- I will post announcements on Canvas (make sure it’s connected to your email)
- For any communication with me, make sure you send me an email to yahya.gilany@uc.edu and to use your UC email.
- For any questions about the class material, please post that to the Q&A Discussion Forum; The TA and I will be monitoring the board and will get back to you as soon as possible.
- Questions about code must include:
- a code example (or link to code in GitHub)
- what you are trying to do
- and what you have already tried
- You’re also encourged to participate and answer any questions your fellow classmates may post on the board or on Canvas.
- Questions about code must include:
Course Evaluation
The School of Information Technology requires that each course is evaluated each time it is taught. The School uses a confidential web-based system, CoursEval, for these evaluations. At the beginning of finals week,you will receive an email from the School Head, with “CoursEval” as the topic. There is a link on that email that takes you directly to the evaluation. The online system is anonymous. I will receive only a summary report of combined data after final grades have been submitted.
As an instructor, I greatly value your input regarding the strengths and areas for improvement of this course. Your feedback is essential for me to continually improve instruction and provide for quality student learning and outcomes.
Assignments
Assignments in this course include the following:
- Quizzes – 15%
- Only available until their due dates. Once it passed, it passed.
- Serves the purpose of collecting attendance. ensures that you’re checking the course every week.
- Lowest grade will be dropped.
- Check-in surveys – 10%
- This will be to collect early feedback from you on the course.
- Labs and Assignments – 75%
- Always due on Sundays at Midnight.
- 10% will be deducted for every late day
- Once a solution has been posted, no work for that assignment will be accepted.
- you may suggest a different project to build that will illustrate your understanding.
- Extra Credit - X%
- I try, but don’t guarantee, to offer some extra credit options in every assignment.
- Automated tests (When it’s not a requirment already 🙄)
- Creativity (as long as requirements are fulfilled 🙄)
- Contributing the Labs and Syllabus Repositories with Fixes.
Late or Missing Assignment Policy
- Quizzes will not be accepted once the due date has passed.
- You have a total of 4 late days to turn-in your assignments with no penalty.
- you can use all 4 days on one assignment or use them on multiple assignments.
- For any additional late day, 10% will be deducted.
- Once a solution has been posted, no work for that assignment will be accepted.
- you may suggest a different project to build that will demonstrate your understanding.
- No additional extensions will not be given except for the two University-approved situations:
- Accommodations requested and verified in advance from the Office of Disability Services.
- Religious holidays, when I am notified of them in advance.
Assignment Submission Workflow and Expectations
- Accept the GitHub Classroom assignment
- this will copy the starter files for the assignment to a repository named as
<assignment name>-<your github username>
- this will copy the starter files for the assignment to a repository named as
- Clone down the project to your computer.
- start modifying/writing your code to satisfy the assignment requirements.
- Make sure you commit your code frequently and use a descriptive commit messages.
- the best practice here is to commit at the end of every complete thought. (i.e.
modified the user class to validate the age input
,updated the self assessement in the README file
)
- the best practice here is to commit at the end of every complete thought. (i.e.
- Once you’re done with the assignment, confirm that you’ve updated the self evaluation and added any notes or reflections you had.
- Copy the Repository link and submit to Canvas.
Remember to: make sure your code is on GitHub and you didn’t just commit it locally.
Grading
- The assigment grades will be calculated based on 3 inputs:
- Your self assessment: You will need to give your self a grade and a justification on the
README.md
file of every assignment. - Automated tests.
- TA reviewing your code and self assessment.
- Your self assessment: You will need to give your self a grade and a justification on the
Grading Scale
Letter | Percentage |
---|---|
A | 93.00% and above |
A- | 90.00%-92.99% |
B+ | 87.00%-89.99% |
B | 83.00%-86.99% |
B- | 80.00%-82.99% |
C+ | 77.00%-79.99% |
C | 73.00%-76.99% |
C- | 70.00%-72.99% |
D+ | 67.00%-69.99% |
D | 63.00%-66.99% |
D- | 60.00%-62.99% |
F | less than 60.00% |
Service Level Agreement
Communication policies
- I will acknowledge/respond to all emails within 48 hours
- I will do office hours on an as-needed, appointment-based system. Use the link on the top to schedule a meeting with me or the TA.
Feedback
- Assignments will be graded and returned within 10 days of the due date.
- except for the first few weeks until a TA is assigned.
- Most of the assignments will be accompanyed by a suite of automatic tests that can give you an early feedback on your work. For the most part, passing tests means full grade, unless indicated otherwise.
Late/Missing work
- Extensions will not be given except for the two University-approved situations:
- Accommodations requested and verified in advance from the Office of Disability Services.
- Religious holidays, when I am notified of them in advance.
- You’re allowed one Late submission at no penalty.
- I won’t be able to share the code solutions if I keep accepting lates.
Course Outline
The outline is subject to change.
Module 1: Source Version Control (git)
- Development Envirnoment Setup
- Source Version Control Using Git/Github
- Assignment 1: Online Portfolio
- Quiz 1.1: Syllabus
- Quiz 1.2: Source Version Control
Module 2: Object Orientation (Classes and Objects)
Module 3: Object Orientation (Inheritance and Polymorphism)
Module 4: Object Orientation (Abstract Classes and Interfaces)
Module 5: Building Graphical User Interfaces with Swing GUI
Module 6: More Swing GUIs
Module 7: Object-Oriented Design
Module 8: Java Streams
Module 9: Java Collection Framework
Module 10: Recursion
Module 11: Databases and JDBC
Module 12: Threading
Resources and Tools
Textbooks
Online Course
- This foundational course on Lynda is not specific to any programming language Programming Foundations: Fundamentals (2011)
- The textbook Chapter (1-7)
- The following Lynda Courses:
- What came before module
Tools and Software Needed
- a GitHub Account on GitHub.com
- Sign up for the GitHub Student Developer Pack
- you can follow the following guide for Applying for a student developer pack - GitHub Help
- For the IDE: Download IntelliJ IDEA: The Java IDE for Professional Developers by JetBrains
GitHub
- Git and GitHub
UC Policies
Attendance
Students at the University of Cincinnati are expected to attend classes in order to meet the learning objectives for the course. Students are expected to follow the class attendance policy as outlined by the instructor. Students participating in official University sponsored activities, where the student is representing the University, will meet with instructor related to absences due to university-sponsored activities. When such absences occur, students need to provide documentation of the event(s), and work with the professor to develop a written plan for completion of missed assignments or other course requirements with as much advance notice as possible.
Communication
All university business must be conducted using a university assigned email account. The use of a personal, or non-university assigned email account to conduct university business is strictly prohibited. See full policy here.
Class Cancellation Policy:
In the rare case that a class must be cancelled, faculty will post an announcement on the LMS that will be emailed to students. Faculty will attempt to communicate class cancelations with as much advance notice as possible. Students should be sure that their LMS email is current and valid to ensure emails are received. If the University closes due to inclement weather or other emergency situations, there will be an announcement posted on Canvas (LMS) and if possible on the local news channels (TV and radio). Communications related to University closures will also be sent to the student’s cell phone number on record through the automatic University emergency text messaging system. Students should notify the University if they change their cell phone number to ensure they will receive these important emergency communications.
Academic Integrity
The University of Cincinnati is committed to academic integrity. A formal articulation of this commitment is articulated in the Student Code of Conduct. Any violation of these rules, including plagiarism or cheating will be handled on a case-by-case basis. At the least, you should anticipate a zero on an assignment, at the fullest extent, your violation will be reported to the university and the incident will be documented on your permanent record.
Accessibility and Special Needs
The University of Cincinnati is committed to providing all students with equal access to learning opportunities. Accessibility Resources is the official campus office that works to arrange for reasonable accommodations for students with an identified physical, psychological or cognitive disability (learning, ADD/ADHD, psychological, visual, hearing, physical, cognitive, medical condition, etc.) Students are encouraged to contact the Accessibility Resources Office to arrange for a confidential meeting to discuss services and accommodations. Contact should be initiated as soon as possible to allow adequate time for accommodations to be arranged.
Counseling Services
All UC students have access to counseling and mental health care through University Health Services (UHS), which can provide both psychotherapy and psychiatric services. In addition, Counseling and Psychological Services (CAPS) can provide professional counseling upon request; students may receive five free counseling sessions through CAPS without insurance. Students are encouraged to seek assistance for anxiety, depression, trauma/assault, adjustment to college life, interpersonal/relational difficulty, sexuality, family conflict, grief and loss, disordered eating and body image, alcohol and substance abuse, anger management, identity development, and any other issues or concerns. After hours, students may call UHS at 513-556-2564 or CAPS Cares at 513-556-0648. For urgent physician consultation after-hours, students may call 513-584-7777.
Title IX
Title IX is a federal civil rights law that prohibits discrimination on the basis of a person’s actual or perceived sex, gender, gender identity, gender expression, or sexual orientation. Title IX also address instances of sexual violence, dating or domestic violence, and stalking. If a student discloses a Title IX issue to a faculty member, the faculty member is required to forward that information to the Title IX Office. The Title IX office will follow up with the student and discuss how the University can take steps to address the impact on the student and the community. They will also inform the student of their rights and direct them to available resources. The priority is to make sure students are safe and successful here at the University of Cincinnati. Students are not required to talk to anyone in the Title IX Office. Students may also directly report any instance of sex or gender-based discrimination, harassment or violence to the Title IX office at 513-556-3349. Students who wish to know more about their rights and resources on campus, they can consult the Title IX website or contact the Title IX office directly at 513-556-3349.