Preamble
- Course Title: Fundamentals of Computing I (cs 114)
- crn: 40724 and 44417
- Credits: 4
- Lab fee: Yes
- Days: Mondays and Wednesdays
- Time: 8:05 – 9:45 am (40724); 3:35 – 5:15 pm (44417)
- Room: Dana Hall 316 (40724); Dana Hall 318 (44417) map
- Dates: 28 August – 11 December 2023
- Professor: Roy Vanegas (pronounced “vuh-nay-gus”)
- Email: vanegas at hartford dot edu
- Phone: 860.768.5925
- Office: Charles A Dana Hall, 310B
- Office hours: I meet students via video conference on the following day (click here for details). Other times by appt.
- Tuesday: 11:00 am – 5:00 pm
Description
The first in a two-semester sequence, Fundamentals of Computing I covers the foundational ideas upon which the discipline of computer science is based, and is the introductory course for cs and cse majors. Building on the core ideas that define structural programming, students learn procedural programming, then extend the concept with object-oriented programming. The fundamentals of algorithmic problem solving, modularity, efficiency, and the design of simple, user-friendly interfaces are also covered.
Learning Outcomes
Upon successful completion of this course, students will understand...
- How to develop optimal programming practices;
- How to configure a development environment using a modern toolchain;
- How to employ revision control practices that last the span of an engineer’s career;
- How to strike a balance between documentation and best practices for variable/function naming;
- The difference between strongly- and loosely-typed languages;
- Which questions to ask when learning any subsequent programming language;
- Articulate some basic ethical issues confronting computing professionals;
- The building blocks of object-oriented programming; and,
- How to apply the concepts of structural programming to most other programming languages.
Software Requirements
All the software required for this course is free and listed below. For Mac users, the entire installation process is automated using this script. Windows and Linux users, however, will need to install the software manually.
Java jdk
This is the software needed to build and run your programs. The latest Java Standard Edition Development Kit, or sdk, is Java 19. Download the macOS version from https://www.oracle.com/java/technologies/downloads/#jdk19-mac; download the Windows version from https://www.oracle.com/java/technologies/downloads/#jdk19-windows.
Javafx sdk
The examples from our textbook that involve graphics use the Javafx library. Thus, to work with those examples, you’ll need to download and configure the library. Download the macOS and Windows versions from https://gluonhq.com/products/javafx/#javafx-builds.
Processing
Processing is a free Java library and integrated development environment, or ide, that is designed for artists and designers to learn computer programming. It’s visual in nature, and we’ll use it — along with Javafx — to work with computer graphics in this course. Download Processing from https://processing.org/download.
GitHub Desktop
Git is the industry standard for revision controlling code. GitHub is a ui for Git and is the most popular graphical client for Git. Download the Linux, Windows, or macOS version from https://desktop.github.com/.
Package Manager
Package managers provide an easy way to install software via your cli from a single registry. Install Homebrew for macOS via The Terminal from https://brew.sh/; install Chocolatey for Windows via PowerShell from https://chocolatey.org/install.
Text Editor
The code you write will require a text editor. Although there are many on the market, such as Sublime Text (nagware), for example, vs Code (open source) is the only editor supported in class. Download the Linux, Windows, or macOS version from https://code.visualstudio.com/.
EditorConfig
EditorConfig is a tool that enforces consistent coding styles for everyone who works on a codebase. In our case, that codebase consists of all the examples in class and all the assignments you’ll submit throughout the semester. EditorConfig consists of a configuration file (.editorconfig
) that goes in your home — or project — folder, and an extension. Some editors and ides have EditorConfig built in. vs Code, unfortunately, is not one of them.
You’ll install the extension in the following section. In the meantime, download this .editorconfig
file and place it in your home folder. Ensure the file name is exactly .editorconfig
, starting with a dot and without an extension.
VS Code Extensions
Linters, or static code analysis tools, are used by all professional software engineers. Start using one now. Install the following linter extensions for vs Code.
- Extension Pack for Java, extension id vscjava.vscode-java-pack
- IntelliCode, extension id VisualStudioExptTeam.vscodeintellicode
- Language Support for Java, extension id redhat.java
- EditorConfig for vs Code, extension id EditorConfig.EditorConfig
- Makefile Tools, extension id ms-vscode.makefile-tools
- Processing language support for vs Code, extension id Tobiah.language-pde
Make
The make
cli utility acts like a script and automatically determines which files of a multi-object program need to be recompiled, then issues commands to recompile them. The official documentation is available from gnu, while a more accessible tutorial is available from Makefile Tutorial.
If you’re using Windows, simply run choco install make from your cli, assuming you’ve already installed Chocolately in a previous step. Linux and macOS users already have make
installed.
Fonts (Optional)
You will need to set your text editor to a monospace/fixed-width font family in your editor’s settings, because code requires vertical alignment that only this family of fonts can provide. The options provided by your os are limited. Thus, in addition to the stock issue fonts included with your computer, here are a few more options to explore:
Textbook
The textbook listed below is the only book used for this course. Ensure all the details match before making your purchase.
Book Cover | |
---|---|
Title | Java Software Solutions: Foundations of Program Design |
Edition | 9 |
Authors | John Lewis and William Loftus |
isbn-10 | 0-13-446202-5 |
isbn-13 | 978-0-13-446202-8 |
Publisher | Pearson |
Schedule
In the schedule below, lectures take place on Mondays and labs on Wednesdays, starting in week three. Any changes to this schedule will be announced the week before.
Important Notes
You should get accustomed to using your own laptop for computer science courses. Thus, you will need to bring your own laptops to class. We will use a considerable portion of the first week of classes to install the software you need on your personal machines.
Notable Dates
⟫ First day of classes (Week 1): Monday, 28 August 2023
⟫ Labor Day — No class (Week 2): Monday, 4 September 2023
⟫ Midterm exam (Week 8): Wednesday, 18 October 2023
⟫ Last day to withdraw with a grade of “W” (Week 10): Friday, 3 November 2023
⟫ Thanksgiving recess — No class (Week 13): Monday, 20 November, and Wednesday, 22 November 2023
⟫ Final exam (Week 16): Monday, 11 December 2023
⟫ Last day of classes (Week 16): Monday, 11 December 2023
Week | Topics | Homework |
---|---|---|
One Aug 28 – 30 |
|
|
Two Sep 4 |
|
|
Three Sep 11 – 13 |
|
|
Four Sep 18 – 20 |
|
|
Five Sep 25 – 27 |
|
|
Six Oct 2 – 4 |
|
|
Seven Oct 9 – 11 |
|
|
Eight Oct 16 – 18 |
|
|
Nine Oct 23 – 25 |
|
|
Ten Oct 30 – 1 Nov |
|
|
Eleven Nov 6 – 8 |
Graphics in Java with JavaFX and Processing
|
|
Twelve Nov 13 – 15 |
|
|
Thirteen Nov 20 – 22 |
Thanksgiving recess | None |
Fourteen Nov 27 – 29 |
|
|
Fifteen Dec 4 – 6 |
|
Study for final exam |
Sixteen Dec 11 |
Final exam | None |
Assignments
The workload for this course involves four programming assignments. (See the Grading section to learn what percentage of your final grade each is worth.) As noted in the instructions for each assignment, No late work is accepted.
Labs
There are 10 labs designed to reinforce the material covered in the lectures. A link to each is provided in the Schedule section of this syllabus. You don’t submit them; None is graded. Labs take place during class time on Wednesdays in the same classroom in which the Monday lectures take place. Lab solutions will be shared — lecture-style — in class the following Monday. Doing well on the labs correlates with how well you’ll do on the assignments and exams. Thus, you’re strongly advised to do each one before Monday’s lecture so you can compare and learn.
Grading
Grading Formula
Your grade for this course is computed as follows:
- Programming assignments (60%)
- Assignment 1 — 15%
- Assignment 2 — 15%
- Assignment 3 — 15%
- Assignment 4 — 15%
- Midterm exam (20%)
- Final exam (20%)
To calculate your final grade, convert the percentages listed above and your grades to decimal. For example, if you got an 80 on the first programming assignment, a 93 on the second, a 60 on the third, a 50 on the fourth, a 95 on your midterm, and, finally, a 100 on the final exam, then you’d calculate your final grade as follows:
(.80 × .15) + (.93 × .15) + (.60 × .15) + (.50 × .15) + (.95 × .20) + (1 × .20) = 80%
You can convert your percentage grade to a letter grade at http://vanegas.cs.hartford.edu/grading/.
I do not give grades; students earn them. The grade you earn is based strictly on the outlined formula clearly listed in this section.
This grading formula is unbending and will be adhered to strictly.
Important Note
Please do not try to negotiate a grade with me. By asking me to treat you favorably, you’re requesting that I put you above your classmates. Manage your time well; I do not accept late work.
Class Policies
- Masks. I don’t require students to wear masks in class, per university policy dictated in spring 2022:
Effective immediately, masks are now optional in most University facilities and settings. They [masks] will continue to be required in the classroom or personal office spaces, unless otherwise specified by faculty members or staff.
And, of course, you’re welcome to wear a mask in class, should you feel more comfortable doing so. You may read more about the policy regarding face coverings here. - Consuming food in class. There is no eating inside our classroom, either during class or while on break. Eat before or after class. Drinks in covered containers, however, are allowed.
- Digital devices. Silence your mobile devices before class starts.
Academic Honesty
Cheating of any kind will not be tolerated in this course; make certain that all the work you submit is your own. Refresh your understanding of the college’s policy on academic honesty.
Students with Disabilities
If you have a documented disability for which you are requesting accommodation, you are encouraged to contact Access-Ability Services as soon as possible by calling 860.768.4312, emailing tlopez@hartford.edu, or by stopping by the Access-Ability Services office in Auerbach Hall, Room 209. If your request for accommodations is approved, an accommodation letter will be emailed to your instructor(s) upon your request. Please discuss your accommodations with the instructor as soon as possible to make appropriate arrangements. Note: Student requests for accommodations must be filed each semester. Visit https://www.hartford.edu/academics/academic-support/accessibility-services/ and click the “Registering” link for more info and a link to a video to walk you through the process.
Tutoring
Tutoring is available from the Centralized Tutoring Center. Students can make one-on-one peer tutoring appointments by visiting, emailing, or calling the Center. Students can also book appointments directly in Compass.
Location | Harrison Libraries, Room L102 of lower level |
---|---|
Hours | Monday – Thursday, 10:00 AM – 9:00 PM; Fridays, 10:00 AM – 6:00 PM; and, Sundays, 12:00 – 9:00 PM |
Phone | 860.768.4131 |
ctctutor@hartford.edu |
Title IX and Sexual Assault
Sexual violence and other forms of sexual misconduct and harassment, including stalking and intimate partner violence, are prohibited under Title ix, federal and state law, and University of Hartford policy. Information on the University’s policies against sexual violence can be found at https://www.hartford.edu/about/policies/title-ix/. Resources regarding sexual violence can be found at https://www.hartford.edu/about/policies/title-ix/on-off-campus-resources.aspx
Note: University of Hartford faculty, staff, and ras are required to report incidents of sexual misconduct to the Title ix Office (title9@hartford.edu). For further information on The University’s policies and resources, please contact Jason Martinez (860.768.5255; jamartine@hartford.edu) or Justin Bell (860.768.4880; jbell@hartford.edu).
Mental Health and Well-Being
Mental Health is an important aspect of students’ well-being and integral to positive academic experiences and success. If, during the semester, you experience difficulties and would like support, consider contacting the University of Hartford’s caps, or Counseling and Psychological Services, which offers a range of short-term counseling services available to full-time undergraduate students at no additional cost, and to part-time undergraduate and graduate students for a small fee. caps is located in Gengras Student Union, Room 313 , and can be reached by calling 860.768.4482 or emailing Liz Inkel at inkel@hartford.edu. Office hours are Monday – Friday, 8:30 AM – 4:30 PM.
Advice on Succeeding in Class
Read over the following to understand procedures for maximizing your chance of succeeding in class.
- Advice for Succeeding in Class (in Markdown)
- Advice for Succeeding in Class (in pdf)
Office Hours
- Office: Charles A Dana Hall, 310B
- Hours: I meet students via video conference on the following day (click here for details). Other times by appt.
- Tuesday: 11:00 am – 5:00 pm
Contact
Nowadays, I only use email for emergency situations, such as pet emergencies, personal tragedies, etc. For matters related to our course, you’re advised to see me before or after class, during my office hours, or by appointment. My contact info is listed in the Preamble.