Fundamentals of Software Development Programming COM SCI X 414.20 Summer 2024
Fundamentals of Software Development Programming COM SCI X 414.20 Summer 2024
Contact Information
You may also contact the instructor by using the Inbox feature within Canvas.
Office Hours
By appointment only
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, 10:00 AM to 6:00 PM, By Phone (818-
445-0954) and/or Zoom personal conference
Description
The course provides a comprehensive introduction to computer programming (coding) and software app
development. It benefits individuals pursuing programming and software development as a career, as well
as anyone in the IT field who works with programmers and systems analysts in important areas that
precede actual programming, including problem-solving approaches; specifications and requirements; user
interface design and structured program design using such tools as hierarchy, Nassi-Schneiderman,
pseudocode and UML charts. Instruction covers coding concepts common to modern languages, including
Python, Visual C#, Java, macro development and shell scripting. In addition to exploring procedural and
object-oriented concepts (using Python and Visual Basic), students produce several small applications in
these two environments, plus a commercial-level application by the course's end. This introductory course
presents programming fundamentals, including variables and expressions, looping, selection, functions and
parameter passing, file processing, use of OOP objects, event-driven programming in the Windows .net
environment and modular development. Examples of Python advanced data types, Visual C#, Java and
SQL code are also presented. The course also covers the software development cycle, including SCRUM,
unit test and integration, alpha/beta testing and software defect tracking and classification. This
introductory course requires weekly coding assignments and prepares students for future coursework in
Python, Visual C#, Java or any other high-level language.
Objectives
This introductory course requires weekly programming assignments and prepares students for future
coursework in Python, C, C++, Visual C# and Basic, Java, Javascript, or any other high-level language.
Participants will:
Outcomes
Upon completion of this course, students should be able to create a written, formalized design of a
business-oriented software application, code that application in a high-level language (specifically Python
and Visual Basic), and debug and test the application. Students should be enabled to engage in further
coursework in software development, including traditional language-oriented programming, database
concepts and development, software design, and development management and methodologies.
Materials
You have 3 things to obtain, each is broken out in the sections below:
1) Your Python textbook (optional, but strongly recommended for future reference)
2) Your Visual Basic textbook (optional, but strongly recommended)
3) Your computer (PC or Mac) for running Amazon Workspaces.
Your Python and Visual Basic development software (Microsoft Visual Studio Community) will be provided
to you pre-installed within Amazon Workspaces (a virtual PC). You will be given an Amazon Workspace
account for use in the course.
Please obtain/confirm the computer as quickly as possible (when directed) so that you do not miss any
assignments. You do not have to obtain the optional textbooks, but if you like have a textbook as a
reference, you are encouraged to order both texts before week 3. Even if you do not fully utilize the text in
the course, you will undoubtedly use one or both as you further your studies in programming.
Read each section below carefully. Instructions on how to configure your Amazon Workspaces version
Windows to work best with your development software, as well as specifics on using Python and Visual
Basic in VIsual Studio will be given in the appropriate Course Module.
Your computer's browser will also require the free Adobe Acrobat Reader software to be installed in order
to view any PDF files.
You may obtain this as either a physical text or an eBook, directly from the publisher (www.murach.com
(https://www.murach.com/shop/murach-s-python-programming-2nd-edition-detail)). The eBook is about
$5 less than the physical text. You may purchase both for a discounted price. Please see the Murach site.
The text is not available for Kindle or Nook.
Murach textbooks are outstanding in many ways. This text is highly recommended, but is not required for
the class. We will only use a subset of the text. Many students in the past have commented that they got
almost all information from the course video lectures and coding examples. If you are planning to continue
your studies in Python, I think you should definitely purchase the text. It is great for self-learning.
The text contains good information, but way more than what we utilize in this course. It also contains
information which is NOT important to this beginning class, even in the earlier chapters. There is a posting
under Reading Assignments which tells you what you need from the text..
Do not get the first edition of this text. There have numerous recent changes to the Python language that
are not reflected in the earlier text.
For the past few years, I have avoided the UCLA Store for the texts, as their prices have become
astronomical. I recommend that you purchase the text from the publisher for the best price.
You will not really need this text until the 3rd week of class.
This excellent text is available either directly from the publisher or from outside new or used textbook
vendors (see above section). Please shop for the best price and availability, including at the Publisher's web
site at www.murach.com (https://www.murach.com/shop/murach-s-visual-basic-2015-detail).
Please note that--even though we will be using Visual Basic 2017--the text references VB 2015. There is no
2017 text, as the two software versions are very similar..
The text is available from the publisher as a printed text, an eBook, or as a combo package with both
versions. The text is not available for Kindle or Nook. Please check the Murach site for pricing information,
as you may get better pricing than what is shown on the UCLA Store comparison shopping site.
Like the Python text, this text is optional but highly recommended. I think Murach has the best approach for
teaching programming.
You are expected to use your virtual desktop for all work in this class. You do not need to install any
development software directly on your PC or Mac.
For your Python programming environment, you will using the version of Python 3 (3.6.6 or later) that's
included in Visual Studio (without a lot of the optional Python development add-ons). While there are MANY
ways to run Python, please do not download Visual Studio or any other Python development environment
directly on your computer. There are too many obstacles to get this to work properly and consistently on
our multitude of student-owned computers. You must use your Amazon Workspaces virtual desktop.
For your Visual Basic programming environment, you will be using the version of VB (for Windows desktop
.NET development) that's included in Visual Studio.
Visual Studio may look quite intimidating to you because it is a full-featured development environment and
it's new to you. This is a beginning programming course, and we are doing only non-GUI programming
during the Python part of the course. You will use only about 10% of the Visual Studio package. So, a
warning: Use ONLY what I tell you in class to use; do not decide to explore inside the Visual Studio
environment and change things. It is TOO complicated to explain anything more than the absolute basics in
this software. Please do not ask. This is a tool that is suitable for your classes TWO YEARS ahead. We are
just using a smidgen of the product.
Microsoft offers a confusing array of downloadable versions of Visual Studio and ancillary programs, from
the free Community edition and free VS Code to full (expensive) professional versions. DO NOT download
any of these for your personal system. The installation takes too long, and in the past, students have gotten
confused. Also, Visual Basic .NET is not available for the Mac OS in Visual Studio. Please only use your
Amazon Workspaces virtual desktop.
You will be using a version called Visual Studio 2017 Community. Your textbook and the course module
largely matches Visual Studio 2015 Community, which except for a couple of screens is virtually identical to
the 2017 version. There is a Visual Studio 2019 and a 2022, however, there are major confusing interface
changes in these versions that do not at all match the text. Please do not think you are being cheated out
of the latest and greatest; you won't be using any of the language features that have actually changed
from version to version. You will be using a recent version of Python.
To make the Visual Studio software available for the entire quarter (past the first 30 days), student will
need to obtain a free Microsoft ID, if they don't have one already. This would be the same email address
and password you would use for other Microsoft services, such as Office 365, Hotmail, Windows Live or
gaming. You can do this from the Visual Studio software on your virtual desktop when we start Module 7.
You must use the Visual Studio on your standardized virtual desktop; Students who are using international
versions of Windows or international keyboards are not supported.
Microsoft has free versions of its development software available for download for student learning and
evaluation. You don't need these for this course, but you may choose to use one of these after the course
is completed. Please do not install these directly on your computer while in the class. Use only the Amazon
Workspace version.
Why do some of the text display screens not match 100% what you see in your Visual Studio 2017
Community interface? Visual Studio 2015 is virtually the same as Visual Studio 2017 for most screens and
functions. Microsoft often makes slight updates in their Visual Studio interface, and it is not feasible to keep
changing the text and course materials (videos) for these very slight interface changes. This hasn't been an
issue in previous quarters, but if you have a question about this, please ask me!
a Windows laptop running a UCLA Extension-provided version of Amazon Workspaces, which provides
you with a virtual machine running Windows plus a Windows Zoom client on the laptop
an Apple Macbook Air or Pro running a UCLA Extension-provided version of Amazon Workspaces,
which provides you with a virtual machine running Windows, plus a Mac Zoom client on the laptop
Any late model PC or Mac should suffice. Windows 10 or later. And MacOS from High Sierra forward. It is
easiest to work on a larger laptop screen (15.9"). I would encourage laptop users to obtain a large screen
that they can attach to the laptop for working at home while in this course.
You must have full Internet access (the web and e-mail) for this course to access your Amazon Workspace
virtual desktop, along with certain TCP and UDP ports open. If your personal environment does not pass the
Amazon Workspaces network status check, please contact your instructor or technical support person for
more details.
This course requires Zoom to participate in the class lab sessions. The Zoom links for each session will be
provided within Canvas. You may download the latest Zoom client for your computer from zoom.us. You
will run Zoom on your physical computer, not from within your Amazon Workspace. You should install
Zoom on the same computer you are using for your coding.
You can access the mandatory course web site (Canvas) from inside your virtual desktop, as well as from
any Internet-connected browser. The site contains the syllabus, schedule, all assignments,
announcements, lecture notes, and virtual lectures. If you have not given the UCLAx Registrar your email
address, you must do so immediately or you will not receive notices of login access on the course web site!
You must use a browser that is supported by our Canvas software. I recommend the latest version of
Google Chrome.
Mac Users Running MacOS (info for after the course ends)
All the software for this class runs only on Microsoft Windows. For this reason, you will need to use a
Windows environment on your Mac. This is why we standardize on Amazon Workspaces (mentioned
above). You will receive with this a complete virtual Windows desktop with the ability to run Visual Studio.
However, if you are a do-it-yourselfer (who loves doing extra work), there are three software approaches
you may take for this: Boot Camp (comes with your Mac), Parallels, or VMware Fusion. Boot Camp is free
but requires a complete reboot of your Mac to access, and is the least desirable. The other two are
virtualization products which allow you to run Windows and Windows apps inside your MacOS
environment. While I personally recommend either Parallels or VMware Fusion. Parallels is a bit less
expensive.
If you are tempted to use Oracle's VirtualBox for Mac, please do not. In the past it has lacked support 64-bit
environments.
For any of the three supported environments, you will need a legitimate version of Windows. This may be a
bit difficult to obtain without paying for it; Windows is not free, although it tends to be bundled with brand
new PCs. You typically cannot use someone else's Windows install disc after it was activated once. Please
check with Microsoft after the class is over to see if they have a version available for student learning.
You will need to download your Windows software as an ISO (disc image) file. You will need to figure out
how the disc image works for your virtualization software. I know that Fusion and Parallels can "see" that
as a CD/DVD in an optical drive, so installation shouldn't be difficult.
While the Mac environment is not the standard platform of this course, I do have a Mac in my collection of
machines, and can give limited support if you have issues. In the years prior to 2015, only 1 or 2 people in
the class used the Mac, but I've noted that in the last few years 30% to 45% are on the Mac. Regardless, do
NOT use any Python products that run natively in the Mac environment on the MacOS. That simply won't
work for this curriculum.
Many of you wonder why we do not support a Mac environment in the class. This will be explained in the
first session. Also, please note that although Visual Studio 2017, 2019 and later versions are available for
the Mac, the Visual Basic portion that runs a .NET environment (which we use) is NOT available for the Mac
and never will be. Visual Basic and Visual C# are Windows-only development languages.
Deliverables
You will graded on the basis of:
Each week, you will have Lecture Material and Videos published 5 days in advance of the class date. You
are expected to review this material prior to the class meeting.
The class meeting will consist of Collaborative Coding Lab Exercises which you will work on in conjunction
with another student or alone. Your work and participation on these exercises will be reviewed by the
instructor. A full programming assignment will be given during the second half of class, and you are
expected to start design work on this assignment during that time. You will complete the assignment
outside of class time. Even though you may collaborate with the other person(s) in your group on design,
you are expected to produce your own code for submission.
Assignments must be completed by 6:00pm (not 6:10pm or 6:02pm) the following Monday evening (you will
have longer for Assignments 4 and 6). Please check the schedule for actual publishing and due dates; a
couple of assignments may not be on the Monday schedule. Each assignment will receive a score of 0 to 5.
Assignments submitted after the deadline automatically receive 0 (there are no exceptions to this, period,
because a sample solution is posted at that time).
A score of 5 means your program was perfect in all specified ways and is equivalent to 100%. Scores of 4
through 4.9 show strong performance, but with some minor errors; a 4 maps to 90% and a 4.9 maps to
99%. See Assignments for more information on scoring. Please do not whine about me being such a tough
grader if I take off fractional points for spelling and spacing errors. A 4.1 is still an A level grade. But if you
did this repeatedly on the job, they would probably demote or terminate you.
That's right - a huge part of coding is to be 100% accurate in the output your program produces (when you
are finally employed professionally, you will see how critical and unrelenting this is). So if your program has
minor errors in spacing and spelling, you will have points taken off. They are usually fractional points, but
realize that in the coding world, such errors can result in your demotion or termination.
If you miss an assignment or receive a poor score on it, you may not do a "make-up" assignment in its
place. There is no "extra credit" in this course, with the exception of an alternate Assignment 4 (more
difficult) which may provide 2 extra points. Regardless, please focus your attention on what's being
assigned.
Students who are found using "cheating" websites (there are ways to determine this) will be heavily
penalized with their score, or possibly subject to UCLAx Policy against Academic Dishonesty. It is severely
detrimental to your professional growth to pay money and have someone else write your programs. In the
job market, you are generally asked to program on the spot during your interview day. If you do not actually
master coding in your classes, then you are wasting your time and money, and will never qualify for an
actual programming job.
Each exam is a multiple choice objective exam given online. These exams test knowledge of basic
concepts, while the programming assignments test your ability to implement what was learned in the
lecture.
To pass the course with a C grade, you must get a score of 3 on at least one programming assignment, and
your course composite should be at least 73%.
Mon 7/15
Assignment 1 - Python Program due by 6pm
Using Expressions, Variables,
Interactive I/O and File Output
Due Dat e Det ails
Mon 7/22
Assignment 2 - Python Program due by 6pm
Using Modularity and CSV File
Input
Mon 7/29
Assignment 3 - Python Program due by 6pm
Using Looping
Sat 8/10
Midterm Exam must start by
10:50pm
Mon 8/19
Assignment 4 - Comprehensive due by 6pm
Python Program
Mon 8/26
Assignment 5 - Simple VB due by 6pm
Application
Mon 9/2
Final Exam must start by
10:50p
Mon 9/5
Assignment 6 - Comprehensive due by
VB Application 11:59pm
Evaluation
At the end of the course, a composite score will be calculated. Letter grades will be assigned based on this
score, subject to the requirement that you only pass if you also get at least one programming score of 3.
Letter grade ranges:
Below is based only on programming assignment scores and quiz scores, as well as lab participation and
attendance. Scores in between ranges will be rounded to the nearest integer.
97%-100%- A+
93%-96% - A
90%-92% - A
87%-89% - B+
83%-86% - B
80%-82% - B-
77%-79% - C+
73%-76% - C
below 73% - F
Students may select their grading basis (letter grade, S/U, non-credit, etc.) when signing up for the class or
during the class. Please check with the Course Representative or Student Records for more information.
Please ignore any letter grade postings made automatically by Canvas. These are not accurate. Your
instructor will not assign any letter grades until the end of the course.
Course Policies
Course Attendance
You are required to attend all classroom sessions, which may include lectures, labs or a combination
thereof. Attendance will be taken and missing class sessions may affect your final grade. You are
responsible for all assignment, quiz and discussion deadlines.
Classroom Behavior
The vast majority of students are polite and respectful in both their classroom interactions and their
postings to both the instructor and fellow students. However, students who are disruptive or belligerent
in tone will be asked to leave the course. Please exercise common courtesy in the classroom and in
the online environment by respecting the comments and opinions of other students as well as the
postings of the instructor.
Distribution of the course audio and video material is a violation of copyright and is strictly prohibited.
Feedback on Assignments
I will assign scores and give feedback on assignments typically within one week of submission.
However, because you have to keep working, I will also give "general feedback" immediately after a
due date, citing all the conditions under which a deduction would be given.
Students who submit copies or adaptations of other students' programs or of previously released
sample solutions will receive severe penalties in their assignment scores. Please submit your own
work. The instructor has graded thousands of programs in this course and can easily detect copies or
adaptations.
Students who submit programs that appear to be written by an experienced programmer (such as
utilizing features of the language that we haven't even discussed or advanced techniques) will be
counseled and are subject to score penalties. This is for your own good. I want YOU to learn
programming, not to have your programs done by someone else. Such behavior will catch up with you
when you start to interview for positions, as they often have you write code on the spot to determine
your proficiency.
If you miss a Midterm Exam, you will receive a zero for your score. If you miss a Final Exam, you will
receive a non-punitive F grade for the class (which is not recorded on your transcript). There are no
makeups for exams.
Late work (from assignmens) will not receive a score. There are no exceptions to this policy. This is
because sample solutions are posted immediately after the due time.
Institutional Policies
Student Conduct
Students are subject to disciplinary action for several types of misconduct or attempted misconduct,
including but not limited to academic dishonesty, such as cheating, multiple submission, plagiarism, or
knowingly furnishing false information to the University; or behavioral misconduct, such as theft or
misuse of the intellectual property of others, harassment, or disruption of the learning environment.
All published and unpublished material, whether in manuscript, printed or electronic form, is covered
under this definition and includes the use of material generated wholly or in part through the use of
artificial intelligence (except when the use of AI has received prior authorization for assessment as a
reasonable accommodation for a student’s disability, or when the use of AI is a specified part of the
coursework, e.g. data science or user experience). Students are encouraged to familiarize themselves
with the Student Rights & Responsibilities Policy (https://www.uclaextension.edu/student-
services/rights-and-responsibilities) and to report concerns.
Incompletes
The interim grade Incomplete (I) may be approved for a student who has completed the majority of
the course requirements, with passing quality (grade C or higher), but is unable to complete a small
portion of the coursework by the course end date for good cause. For courses in which an Incomplete
may be allowed, approval by the instructor of record and the academic program director is required.
The Incomplete grade is not an option for courses that do not bear credit, such as 700, 800, or 900-
level courses.
It is the student’s responsibility to petition for an Incomplete by emailing the appropriate academic
program department (https://www.uclaextension.edu/contact-ucla-extension) at least one week
before the end of the course. The Program Department will initiate the petition process once the
email is received.
The student, the instructor, the CE/Program Director, and the program staff must complete the
petition prior to the final course meeting or before the quarter end date
(https://www.uclaextension.edu/calendar). This process can take up to one week to complete.
The instructor will approve or deny the request. The instructor will provide details on what the
student needs to accomplish in order to complete the course, as well as a due date for submitting
completed work. The due date cannot exceed the end of the ensuing quarter
(https://www.uclaextension.edu/calendar) when a final grade must be reported or the Incomplete
lapses to the grade “F,” “NP,” or “U.” Visit UCLA Extension Grading Scale
(https://www.uclaextension.edu/transcripts-credits-grades/grading-scale) for more information.
An Incomplete allows the student to complete only work that is outstanding and does not allow prior
completed work to be retaken or resubmitted.
All Grades are Final
No change of grade may be made by anyone other than the instructor, and then, only to correct clerical
errors. No term grade except Incomplete may be revised by re-examination. The correction of a
clerical error may be authorized only by the instructor of record communicating directly with personnel
of Student and Alumni Services.
Sexual Harassment
The University of California is committed to creating and maintaining a community where all
individuals who participate in University programs and activities can work and learn together in an
atmosphere free of harassment, exploitation, or intimidation. Every member of the community should
be aware that the University prohibits sexual harassment and sexual violence, and that such behavior
violates both law and University policy. The University will respond promptly and effectively to reports
of sexual harassment and sexual violence, and will take appropriate action to prevent, to correct, and
when necessary, to discipline behavior that violates our policy.
All Extension students and instructors who believe they have been sexually harassed are encouraged
to contact the Department of Student and Alumni Services for complaint resolution: UCLA Extension,
1145 Gayley Ave., Los Angeles, CA 90024; Voice/TTY: (310) 825-7031. For more information, please
view the University’s full Policy on Sexual Harassment and Sexual Violence
(https://policy.ucop.edu/doc/4000385/SVSH).
Additional Items
Pursuant to the terms of the agreement between Zoom and UCLA Extension, the data is used solely for this
purpose and Zoom is prohibited from re-disclosing this information. UCLA Extension also does not use the
data for any other purpose. Recordings will be deleted when no longer necessary. However, recordings
may become part of an administrative disciplinary record if misconduct occurs during a video conference.
Course and Instructor Evaluation
UCLA Extension values your feedback on course and instructor evaluations. We ask all students to take a
few minutes to complete an end-of-course evaluation survey. Updates to the course and instruction are
influenced by your feedback. Understanding your student experience is essential to ensure continuing
excellence in the online classroom and is appreciated by your instructor and the UCLA Extension academic
leadership.
Your participation in a survey is voluntary, and your responses are confidential. After instructors submit
grades, they will be given an evaluation report, but this report will not contain your name.
Students must have basic computer skills, including the use of word processing software, email,
and the ability to use internet browsers, such as Safari, Firefox, or Chrome.
Students are responsible for meeting the technical requirements of Canvas and familiarizing
themselves with the Canvas Learning Management System.
What are the browser and computer requirements for Canvas?
(https://community.canvaslms.com/t5/Canvas-Basics-Guide/What-are-the-browser-and-
computer-requirements-for-Instructure/ta-p/66)
Students are responsible for keeping a copy of all assignments and work submitted, and to be
aware of all assignments, due dates, and course guidelines.
Students have access to courses via Canvas for an additional 30 calendar days after the course
end date listed in the syllabus (the first 14 days are full access; the rest are read-only).
Students are encouraged to download/print content throughout the duration of the course and
before the additional 30-day access ends. No further access is possible after the course becomes
unavailable.
To download all your assignment submissions in Canvas, please refer to the online support guide.
(https://community.canvaslms.com/docs/DOC-10606) for more information or contact Canvas
Support via the help menu within Canvas.
Learning Support staff is available Monday through Friday, from 8 AM to 9 PM (Pacific Time), except
holidays:
Schedule
Assignments
(Specific dates given
Module # Date(exams Type Topics in the assignment
in bold) and above)
3 7/4 Online Python Variables, Expressions, Functions, and Text Assignment 1 given
File Output
4 7/11 Online CSV Text File Input; Modularity using Functions Assignment 1 due,
Assignment 2 given
Classroom/Lab
VB Coding Lab - VB Interface and Coding I