Active Outline

General Information


Course ID (CB01A and CB01B)
CISD030B
Course Title (CB02)
Advanced C# Programming
Course Credit Status
Credit - Degree Applicable
Effective Term
Fall 2023
Course Description
This course emphasizes foundation technologies in C# that enable you to write server-side programs in C#. Concepts include inner classes, collections, exceptions, file I/O, reflections, cloning, and multithreading.
Faculty Requirements
Course Family
Not Applicable

Course Justification


This course is UC and CSU transferable. This programming language is fast and modern and was designed to increase programmer productivity. C# enables programmers to quickly build a wide range of applications for the Microsoft .NET platform. This course is valuable for developers who are interested in enhancing their existing C# programming skills in such areas as .NET Base Class Libraries, working with multiple threads, Dynamic Language Runtime (DLR) and optimization & resource management. This course belongs on the Liberal Arts A.A. Degree.

Foothill Equivalency


Does the course have a Foothill equivalent?
No
Foothill Course ID

Course Philosophy


Formerly Statement


Course Development Options


Basic Skill Status (CB08)
Course is not a basic skills course.
Grade Options
  • Letter Grade
  • Pass/No Pass
Repeat Limit
0

Transferability & Gen. Ed. Options


Transferability
Transferable to both UC and CSU

Units and Hours


Summary

Minimum Credit Units
4.5
Maximum Credit Units
4.5

Weekly Student Hours

TypeIn ClassOut of Class
Lecture Hours4.08.0
Laboratory Hours1.50.0

Course Student Hours

Course Duration (Weeks)
12.0
Hours per unit divisor
36.0
Course In-Class (Contact) Hours
Lecture
48.0
Laboratory
18.0
Total
66.0
Course Out-of-Class Hours
Lecture
96.0
Laboratory
0.0
NA
0.0
Total
96.0

Prerequisite(s)


CIS D030A

Corequisite(s)


Advisory(ies)


ESL D272. and ESL D273., or ESL D472. and ESL D473., or eligibility for EWRT D001A or EWRT D01AH or ESL D005.

Limitation(s) on Enrollment


Entrance Skill(s)


General Course Statement(s)


Methods of Instruction


Lecture and visual aids

Discussion of assigned reading

Discussion and problem solving performed in class

Quiz and examination review performed in class

Homework and extended projects

Collaborative learning and small group exercises

Collaborative projects

Other: Laboratory discussion sessions

Other: Laboratory experiences which involve students in designing, coding, and testing and debugging efficient C# programs.

Assignments


  1. Reading: Required readings from text.
  2. Programs: 6-10 programming homework assignments, which include design as well as coding and employ sequential text files for the input and output of information; at least two should be about 500 lines of code, including standard documentation, covering the Lab Topics specified in X. below, half completed in the computer lab, half completed as homework.

Methods of Evaluation


  1. Successful completion of programming assignments with output evaluated on correctness, use of structured design principles, documentation, programming style, efficiency, and testing methods.
  2. One or more examinations requiring some programming demonstrating ability to develop an algorithm and/or write code using specific programming constructs. Code is evaluated on correctness.
  3. In-class lab problems, group collaborative problems, exam questions and/or online assignments or tutorials demonstrating the ability to read and analyze code through debugging and/or writing snippets of code. The code will involve arrays and/or structures and/or linked lists and/or classes and subclasses.
  4. A final examination requiring some programming demonstrating ability to develop an algorithm and write code. The code will involve arrays and/or structures and/or linked lists and/or classes and subclasses. Code is evaluated on correctness.

Essential Student Materials/Essential College Facilities


Essential Student Materials: 
  • None.
Essential College Facilities:
  • Computer lab equipped with an integrated development environment tool supporting C# development

Examples of Primary Texts and References


AuthorTitlePublisherDate/EditionISBN
"Microsoft Visual C# Step by Step (9th Edition) (Developer Reference) 9th Edition " by John Sharp, by Microsoft Press, 2018

Examples of Supporting Texts and References


AuthorTitlePublisher
None.

Learning Outcomes and Objectives


Course Objectives

  • Write C# programs using complete syntactical elements
  • Use the data structures and algorithms in the collections introduced in C#.
  • Design and create C# Programs to support the error recovery needed for robust programming.
  • Use the complete range of advanced I/O features offered by C#.
  • Use reflection features of C# to determine object information at run time.
  • Create classes which support the ability to be cloned.
  • Use the C# Windows API to program full-featured GUI applications.
  • Program thread-safe applications using Collections

CSLOs

  • Read, analyze and explain advanced C# programs.

  • Create algorithms, code, document, debug, and test advanced problems using appropriate design methodology incorporating object oriented programming constructs and advanced C# concepts.

Outline


  1. Write C# programs using complete syntactical elements
    1. Polymorphism
    2. Inheritance
    3. Namespaces
    4. Abstract
  2. Use the data structures and algorithms in the collections introduced in C#.
    1. ArrayLists
    2. Containers
    3. Searching
    4. Sorting
    5. Hashing
  3. Design and create C# Programs to support the error recovery needed for robust programming.
    1. try
    2. catch
    3. finally
    4. Errors
    5. Checked exceptions
    6. Run-time exceptions
    7. Assertions
    8. Regular Expressions
  4. Use the complete range of advanced I/O features offered by C#.
    1. Byte Streams
    2. Char Reader/Writer
    3. Random
    4. File
    5. String tokenizer
    6. Object Serialization
    7. File Information
    8. File Directory Listing
  5. Use reflection features of C# to determine object information at run time.
    1. Class
    2. Constructor
    3. Field
    4. Method
  6. Create classes which support the ability to be cloned.
    1. Call-by-value
    2. Call-by-reference
    3. Aliases
    4. Cloneable
  7. Use the C# Windows API to program full-featured GUI applications.
    1. Tool Tips
    2. Borders
    3. Buttons
    4. Button Groups
    5. Icons
    6. Menus
    7. Popup menus
    8. List boxes and combo boxes
    9. Sliders and progress bars
    10. Trees
    11. Data Grids
    12. Tabbed Panes
  8. Program thread-safe applications using Collections
    1. Thread Class
    2. Interfaces
    3. synchronized
    4. wait
    5. notify
    6. Lock

Lab Topics


  1. Write and/or debug code implementing Object Oriented Design.
  2. Write and/or debug code implementing Exception Handling.
  3. Write and/or debug code implementing Inner Classes.
  4. Write and/or debug code implementing Collections.
  5. Write and/or debug code implementing Socket Programming.
  6. Write and/or debug code implementing GUI Programming.
  7. Write and/or debug code implementing Cloning.
  8. Write and/or debug code implementing Reflections.
  9. Write and/or debug code implementing Multithreading.
Back to Top