Steven A. O'Hara, Ph.D.

Assistant Professor in Practice
Computer Science Department
University of Texas at San Antonio

Spring 2022 (tentative)

CS 3424.0D4Systems ProgrammingTT 4:00 - 5:15MH 3.04.08
CS 3723.002Programming LanguagesTT 2:30 - 3:45NPB 1.238
CS 3723.003Programming LanguagesTT 8:30 - 9:45Online

Office Hours: By appt, TT 1:15 to 2:15 (and email and MS Zoom Chat)

Fall 2021

CS 3723.001Programming LanguagesTT 11:30 - 12:45NPB 1.202
CS 3723.002Programming LanguagesTT 2:30 - 3:45NPB 1.202
CS 3723.003Programming LanguagesTT 8:30 - 9:45Online

Office Hours: TT 1:15 to 2:15 (and MS Zoom Chat)


Summer 2021

CS 3723.01TProgramming LanguagesMW 2:00 - 3:55Online

Office Hours: Discord (MW 1:00-2:00, really 24/7)


Spring 2021

CS 3424.0D4Systems ProgrammingTT 4:00 - 5:15Online
CS 3723.001Programming LanguagesTT 11:30 - 12:45Online
CS 3723.002Programming LanguagesTT 2:30 - 3:45Online
CS 3723.003Programming LanguagesTT 8:30 - 9:45Online

Office Hours: Discord (TT 10:00-11:30, really 24/7)


Fall 2020

CS 3723.001Programming LanguagesTT 11:30 - 12:45Online
CS 3723.002Programming LanguagesTT 2:30 - 3:45Online
CS 3723.003Programming LanguagesTT 8:30 - 9:45Online
CS 3844.0B1Computer OrganizationTT 1:00 - 2:15Online

Office Hours: Discord (TT 10:00-11:30, really 24/7)


Spring 2020

CS 3423.001Systems ProgrammingMWF 10:00 - 10:50NPB 1.202
CS 3423.002Systems ProgrammingMWF 2:00 - 2:50NPB 1.238
CS 3423.003Systems ProgrammingMWF 9:00 - 9:50NPB 1.202

Office Hours: MWF 11:00-12:00


Fall 2019

CS 3723.001Programming LanguagesTT 11:30 - 12:45NPB 1.202
CS 3723.003Programming LanguagesTT 8:30 - 9:45NPB 1.202
CS 4413.001Web TechnologiesMWF 3:00 - 3:50NPB 1.238

Office Hours: TT 10:00-11:00 and MWF 2:30-3:00


Spring 2019

CS 3423.003Systems ProgrammingMWF 9:00 - 9:50NPB 1.238
CS 3723.001Programming LanguagesMWF 8:00 - 8:50NPB 1.202
CS 3723.002Programming LanguagesMWF 2:00 - 2:50BB 3.02.01

Office Hours MWF 10:00 - 11:00


Fall 2018

CS 3423.003Systems ProgrammingMW 4:00 - 5:15NPB 1.202
CS 3723.003Programming LanguagesMWF 9:00 - 9:50NPB 1.226
CS 3793.001Artificial IntelligenceMWF 1:00 - 1:50BB 3.03.24

Office Hours MWF 10:00 - 11:00, MW 2:00 - 3:00


2011

Spring 2011CS 2073.001Computer Programming in C for Engineers
Summer 2011CS 2073.001Computer Programming in C for Engineers
Fall 2011CS 2073.001Computer Programming in C for Engineers

Unexpected Behaviors

The following are a few "Special" cases that I find very interesting. They certainly are not intuitive and require a fairly deep understanding to explain. Anybody who has worked in Assembly language will have no trouble with these.

  1. Negative Numbers. Is X = --X?
  2. Integer Addition. Is X + 10 > X?
  3. Numeric Underflow. Is X + 1000 - X = 1000?
  4. String Concatenation. Composing a long string can be very slow.
  5. String Equality. Is "abc" = "abc"?

Programming Languages

  1. Memory Management Visualization
  2. Heap / Static Memory    Sample Output

Computer Organization

  1. Hex / Octal / Binary Numbers    Sample Output
  2. Double Precision Numbers    Sample Output

If the box says: "This software requires Windows 7 or better", does that mean it'll run on Linux?