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
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
Type | In Class | Out of Class |
---|---|---|
Lecture Hours | 4.0 | 8.0 |
Laboratory Hours | 1.5 | 0.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
- Reading: Required readings from text.
- 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
- Successful completion of programming assignments with output evaluated on correctness, use of structured design principles, documentation, programming style, efficiency, and testing methods.
- 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.
- 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.
- 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.
- Computer lab equipped with an integrated development environment tool supporting C# development
Examples of Primary Texts and References
Author | Title | Publisher | Date/Edition | ISBN |
---|---|---|---|---|
"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
Author | Title | Publisher |
---|---|---|
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
- Write C# programs using complete syntactical elements
- Polymorphism
- Inheritance
- Namespaces
- Abstract
- Use the data structures and algorithms in the collections introduced in C#.
- ArrayLists
- Containers
- Searching
- Sorting
- Hashing
- Design and create C# Programs to support the error recovery needed for robust programming.
- try
- catch
- finally
- Errors
- Checked exceptions
- Run-time exceptions
- Assertions
- Regular Expressions
- Use the complete range of advanced I/O features offered by C#.
- Byte Streams
- Char Reader/Writer
- Random
- File
- String tokenizer
- Object Serialization
- File Information
- File Directory Listing
- Use reflection features of C# to determine object information at run time.
- Class
- Constructor
- Field
- Method
- Create classes which support the ability to be cloned.
- Call-by-value
- Call-by-reference
- Aliases
- Cloneable
- Use the C# Windows API to program full-featured GUI applications.
- Tool Tips
- Borders
- Buttons
- Button Groups
- Icons
- Menus
- Popup menus
- List boxes and combo boxes
- Sliders and progress bars
- Trees
- Data Grids
- Tabbed Panes
- Program thread-safe applications using Collections
- Thread Class
- Interfaces
- synchronized
- wait
- notify
- Lock
Lab Topics
- Write and/or debug code implementing Object Oriented Design.
- Write and/or debug code implementing Exception Handling.
- Write and/or debug code implementing Inner Classes.
- Write and/or debug code implementing Collections.
- Write and/or debug code implementing Socket Programming.
- Write and/or debug code implementing GUI Programming.
- Write and/or debug code implementing Cloning.
- Write and/or debug code implementing Reflections.
- Write and/or debug code implementing Multithreading.