Code Quality Design Help

CS 236 Fall 2025 Syllabus

Johnson County Community College

Course Syllabus

Computing Sciences and Information Technology Division

Department of Computer Science

CS 236 - Object Oriented Programming Using C#

Fall 2025

Updated Content Outline (Addendum)

For the most current course objectives and topics, see the updated content outline (Fall 2025 Addendum). This addendum complements the official syllabus and reflects the current course content.

See: CS 236 Updated Course Content Outline (Fall 2025 Addendum)

INSTRUCTOR INFORMATION

Name

Damon German

Email

dgerman3@jccc.edu

Phone

cell 816-838-6439

Office/Lab Hours

Monday: 30 minutes before class as needed; Other days/times: May be arranged by appointment scheduled in advance.

COURSE & SECTION INFORMATION

Credit

4 hrs

Lecture

3 hrs

Lab by Arrangement

2 hrs

Course Type

Transfer

Prerequisite

CS 201

CRN

81919

Section

376

Location

RC-Regnier Center Room 347

Class Time

Monday 06:00-08:50 PM

COURSE DESCRIPTION

This course prepares students to develop object-oriented, C# applications that solve a variety of problems. Students will apply object-oriented concepts including inheritance, function overloading and polymorphism, and will utilize available classes as well as design their own. Event-driven programming, Windows applications, web development, common data structures, database access and frameworks will be presented. 3 hrs. lecture, 2 hrs. open lab/wk.

INSTRUCTIONAL METHOD

Hybrid

CAVEATS

None

REQUIRED TEXT

None

OPTIONAL TEXT

C# 12 Pocket Reference (ebook available for free via the library)

  1. Click or copy/paste the following link: https://www.oreilly.com/library-access/?next=/library/view/C-12-pocket/9781098147532/

COURSE OBJECTIVES

Upon successful completion of this course the student should be able to:

  1. Design object-oriented solutions for console applications, Windows Forms applications, and web-based applications and select appropriate technology stacks.

  2. Develop, debug, build and execute a variety of C# applications.

  3. Employ event-driven programming, event handlers and the .NET library of classes.

  4. Develop applications that use C# to read and write information from text files.

  5. Employ ADO.NET to create web services and web applications.

  6. Apply basic SQL (Structure Query Language) commands to interact with relational database management systems.

  7. Employ common data structures in C# programs.

  8. Employ a C# framework to create object-oriented C# applications.

  9. Explain related technologies such as LINQ (Language Integrated Query), WPF (Windows Presentation Foundation), WCF (Windows Communication Foundation) and how they support object-oriented solutions.

  10. Apply the principles of object-oriented design to solve current problems.

CONTENT OUTLINE AND COMPETENCIES

  1. Object-Oriented Programming and Frameworks

    1. Discuss the history and objectives of C# and .NET.

    2. Explain and utilize the characteristics of object-oriented design.

    3. Utilize Visual Studio and explore an associated framework.

  2. Object-Oriented Windows Solutions

    1. Discuss key elements of graphical user interfaces (GUI).

    2. Discuss issues related to GUI design.

    3. Design, develop, debug and execute GUI desktop solutions.

    4. Employ common GUI controls.

  3. Event-Driven Programming

    1. Implement delegates.

    2. Implement event handlers.

    3. Apply combo box and list box classes in C# programs.

    4. Apply menus, tab controls, radio buttons and check box classes in C# programs.

  4. Advanced Object-Oriented Programming

    1. Utilize abstraction, encapsulation, inheritance and polymorphism in object-oriented design.

    2. Explain the difference between composition and inheritance.

    3. Discuss why polymorphism is a common goal in .NET.

    4. Discuss multi-tier applications and component-based development.

    5. Utilize abstract and partial classes.

    6. Implement interfaces.

    7. Implement generics

  5. Error Handling

    1. Explain exception classes.

    2. Employ standard exceptions and create custom exceptions.

    3. Employ exception handling techniques including catching and throwing exceptions and using try, catch and finally blocks.

    4. Experiment with the numerous types of errors and exceptions and develop advanced techniques for debugging.

    5. Employ the debugger to find run-time errors.

  6. File Input and Output

    1. Utilize the System.IO namespace classes.

    2. Employ File and Directory classes.

    3. Employ FileInfo and DirectoryInfo classes.

    4. Apply stream classes to read and write data from text files in C# programs.

    5. Read and write binary files.

  7. Data Structures and Data Access with ASP.NET, SQL, and LINQ

    1. Discuss common data structures such as lists, stacks, queues and trees.

    2. Utilize generics with a data structure to solve an applications problem.

    3. Discuss data access technologies.

    4. Employ DataReader, DataSet and DataAdapter classes.

    5. Employ SQL to query databases.

    6. Utilize visual development tools for data access.

    7. Explain the use of LINQ.

  8. Web Solutions

    1. Compare and contrast Windows versus web development.

    2. Explain and employ ASP.NET.

    3. Utilize a variety of web controls.

    4. Explain web services and their role in distributed applications.

    5. Discuss issues related to the development of mobile applications.

  9. C# Frameworks

    1. Discuss frameworks and software development kits (SDKs) - what they are and when they are used.

    2. Employ a sample framework.

    3. Develop and use multimedia classes (e.g., images and sounds).

    4. Discuss applications that employ additional devices and hardware.

    5. Create an application using a sample framework or SDK.

COURSE REQUIREMENTS

Exams
  • There will be two in-class programming exams.

  • Announced at least one week in advance

Final Exam
  • Is cumulative and must be taken on the university assigned date (see the Important Dates section in this syllabus)

Quizzes
  • There will be 3 in-class quizzes. These can include multiple choice questions, writing code, and/or debugging code. The lowest quiz score is dropped.

  • Announced at least one class period ahead of the date taken.

Coding Projects
  • Writing 3 "larger" programs.

Labs
  • Primarily consists of writing weekly programs (smaller than programming projects). The lowest 2 scores are dropped.

Late Policy
  • No late work is accepted. If not finished, hand in what you have completed.

  • Exception: Missing a test is an automatic 20% deduction, and the test must be made up before the next class period for potential credit to be received. Documented proof of an emergency or severe illness may result in an exemption from a late point deduction.

Dropped Scores
  • Dropping lowest scores serves in place of extra credit.

COLLEGE WORK LOAD EXPECTATION

Students should spend an average of 2–3 hours outside of class on assigned work for each credit hour. (4 credit class = an average of 8–12 hours of assigned work per week)

EVALUATION AND GRADING SCALE

See grading information below.

Assessment Category

Weight

Exams

25%

Final Exam

20%

Quizzes

20%

Coding Projects

20%

Labs

15%

Percentage

Grade

90 – 100%

A

80 – 89%

B

70 – 79%

C

60 – 69%

D

< 60%

F

SCORE DISCREPANCIES

If you believe there was an error in the scoring of your work, you have up to two weeks after the initial posting of the score to resolve the issue with me.

ATTENDANCE

Attendance is very important in this course. Material is presented and explained which is not in any handout. If you must be absent, you are expected to obtain explanations of assignments and course content from your fellow classmates. Check the Canvas agenda calendar and see me for any returned work that you may have missed. Attendance is taken for each class for reasons pertaining to college requirements. Let me know as soon as possible if you will miss a future class due to a school event (e.g., athletics travel) or work travel.

School attendance policy: attendance procedure

FACULTY-INITIATED WITHDRAWAL

  • Following the automatic administrative drop period that occurs at the beginning of each semester, a student who does not submit work for 5 consecutive weeks may be dropped from the course.

  • Note: International students, student-athletes, or students required to maintain full-time status through a third party or insurance may experience serious negative effects from a withdrawal (e.g., falling below full-time status).

  • At least one week in advance, an email will be sent to your JCCC email account alerting you of a potential drop.

  • For additional information, see the Attendance and Class Participation procedure

IMPORTANT DATES

Aug 25

First Class

Sep 2

Last day to drop and receive a 100% refund.

Sep 22

Last day to drop without a 'W' on a transcript (by 11pm if done via the Web)

Oct 15

Last day to apply for fall graduation.

Nov 15

Last day to drop with a 'W' on a transcript or to request pass/fail.

Nov 26–28

Thanksgiving (college closed)

End of Nov into Dec

Course evaluations.

Dec 8

Final exam 7:00–8:50 pm

DROP DEADLINES

View the drop deadlines for this course. After the 100% refund date, you will be financially responsible for the tuition charges: for details, search on Student Financial Responsibility on the JCCC web page. Changing your schedule may reduce eligibility for financial aid and other third-party funding. Courses not dropped will be graded. For questions about dropping courses, contact the Student Success Center at 913-469-3803.

TENTATIVE SCHEDULE

  • Class 1 – intro to OOP

  • No class Labor Day

  • Class 2 – OOP cont., SOLID design principles, Composition, Dependency Injection, and Polymorphism, Unit Testing

  • Class 3 – SOLID design principles cont. Refactoring

  • Class 4 – Exceptions, Functional programming alternatives, Quiz 1

  • Class 5 – Strings

  • Class 6 – UI

  • Class 7 – UI cont., Exam 1

  • Class 8 – Data Structures

  • Class 9 – Generics

  • Class 10 – Generics cont., Quiz 2

  • Class 11 – Generic Collections and LINQ, Functional Programming

  • Class 12 – Asynchronous Programming, Exam 2

  • Class 13 – Asynchronous Programming

  • Class 14 – TBD, Quiz 3

  • Class 15 – Dec 9th. Final 7:00 pm

EMAIL

An email initiated by me (e.g., not a reply) will be sent via Canvas and this should also trigger an email to your JCCC student email account. If needed, you may set your JCCC email and/or Canvas preferences to forward to a different email address. See technical support for instructions.

If I receive an email between Monday (8am) and Friday (4 pm) please allow a 24-hour window for me to read and potentially reply to your email. I will generally use office hours for this if I am not busy with someone else. There are no guarantees on the weekend.

STUDENT CODE OF CONDUCT & HANDBOOK

Students are bound by all sections of the JCCC Student Code of Conduct as well as the Student Handbook.

ACADEMIC INTEGRITY, CHEATING, OR PLAGIARISM

No student shall engage in behavior that, in the judgment of the instructor of the class, may be construed as cheating. This may include, but is not limited to, plagiarism or other forms of academic dishonesty such as the acquisition without permission of tests or other academic materials and/or distribution of these materials. This includes students who aid and abet, as well as those who attempt such behavior. Refer to the "Student Code of Conduct" in the College Catalog for more details.

Note: All work is individual unless otherwise stated. Submitted work must reflect your thought and not that of someone else. Cheating minimally results in a 0 for all parties involved. The Dean of Student Services will be notified, and other disciplinary action may also take place.

USE OF AI TOOLS

You may use AI tools to assist with coding. The policy for this course is simple:

  • AI disclosure: Attribute only substantial AI assistance—i.e., code or design you likely could not have reasonably produced on your own. A brief note (AI.md or a top-of-file comment) should name the tool, what it generated, and what you changed. Basic IDE help (IntelliSense, autocomplete, simple tab completions) and routine refactors do not require attribution.

  • Git history as process evidence: We use your git history qualitatively to understand your process. It should show incremental development with meaningful commit messages.

  • Risk-based code reviews: For each assignment, a subset of students (random plus those with big-bang or otherwise concerning histories) may be asked to complete a short live review (Zoom or in-lab). You will explain parts of your code and make a small change; flexible scheduling or an asynchronous recording is available.

ADA COMPLIANCE

Accessibility Statement – jccc.edu/accessibility

COUNSELING RESOURCES

For academic, career, and personal counseling, visit the JCCC Counseling Center (SC 2nd floor).

CAMPUS HEALTH AND SAFETY MEASURES

Information regarding student safety can be found at jccc.edu/studentsafety.

CAMPUS SAFETY

Classroom and campus safety are of paramount importance at Johnson County Community College and are the shared responsibility of the entire campus population. Please review the following:

Report Emergencies

In person at the Midwest Trust Center (MTC 115); Call 913-469-2500; JCCC Guardian app with panic button and text; Anonymous reports to KOPS‑Watch Reporting Site or 888‑258‑3230.

Be Alert

Be an extra set of eyes and ears; Trust your instincts; Report suspicious or unusual behavior to Campus Police.

Be Prepared

Identify Building Emergency Response floorplan posters; View A.L.I.C.E. training; Familiarize yourself with the College Emergency Response Plan.

During an Emergency

Alerts are sent to all employees and students via email/text (JCCC Alert). Keep your RAVE information current; optionally receive alerts in English/Spanish.

HOW DO I STUDY IN THIS COURSE?

Review and understand all assignments, projects, notes, and readings. Further, practice programming by solving additional problems in the book or by making up your own problems to solve and explore. This is not a course in which notes are merely memorized and regurgitated; it requires deeper levels of understanding.

HOW DO I INCREASE MY CHANCE OF SUCCESS?

Do your assigned work early; Turn off digital devices during class; Take responsibility for your learning and participate; Come to every class; Arrive before class begins; Complete all assigned work and prepare according to expectations; Take detailed notes and seek to understand them; Speak and act professionally; Help others during class; Utilize office hours.

INSTRUCTOR RIGHT

The instructor reserves the right to modify the syllabus. Any modifications will be announced in advance.

24 August 2025