The Ultimate Guide to Computer Science at DLSU (Sophomore Year, Term 3)
Here is an in-depth guide to every major course in the third trimester of your second year of Computer Science at De La Salle University.
Check out other articles in the series here for other courses in the program. Again, these guides will only cover the Software Technology (ST) specialization and the Masters (MS) portion of the Honors program.
These are resources I wish I had before I entered the university, so I will continue releasing a guide every term until I graduate. I hope you’ll gain something from them.
Each course listed in this guide will have most, if not all, of the sections listed below:
- Thoughts and Experiences: Anecdotes about my experience with the course.
- What You’ll Learn: The contents of the syllabus, specific topics you’ll learn, and similarities or connections to other courses.
- Projects: Details for major output/s of the course.
- Tips for Doing Well: My advice for excelling in the course.
- Course Materials/Helpful Resources: Any books, YouTube channels, websites, or online courses that could supplement your learning.
Let’s get started!
CSSWENG: Software Engineering
Thoughts and Experiences
This was the course I anticipated the most this term. I do enjoy the theoretical side of computer science, but I have been itching to do actual software work. I was ecstatic when I heard this course has you develop an actual application for an actual client. Finally, a chance to create something that genuinely helps people!
CSSWENG was my favorite course of the term, but I realize it isn’t for the faint of heart. For over two months, our team met at least thrice a week. It is fast, and it is relentless. It demands constant movement. If courses like ST-MATH and CSALGCM involve putting in the reps, then CSSWENG is like running on a treadmill.
I also realize that your enjoyment of this course is highly dependent on your team, assigned role, and client, all of which may be out of your control. Somehow, I lucked out with all three.
This course is the closest you’ll get to industry-level developer experience outside of your internship, so if you’re eager to work as a software engineer or are curious about what the job entails, then make the most out of this course.
What You’ll Learn
The first few weeks of CSSWENG introduce you to the course’s central tenets: the Agile development methodology, requirements engineering, and various software design principles. During this time, you’ll also begin forming your team for the rest of the course. In our case, groups were created solely by our instructor based on each student’s skills and preferences.
On a group larger than any in the course so far, each student will assume one of five roles:
- Product Owner — represents the group in stakeholder meetings, manages the product backlog, and determines project requirements.
- Scrum Master — leads sprint planning, enforces scrum techniques, and tracks team efficiency and accountability.
- Developer — builds all the project features, accomplishes user stories,
- Quality Assurance — creates test documents and scripts to ensure project robustness and finds points of improvement.
- Designer — designs and develops the project’s user interface and user experience and ensures application accessibility.
Once your team is set, you’ll either contact your assigned client or begin searching for one on your own. Then you’ll need to identify your client’s pain points and come up with a solution to solve their problem. This will typically require creating a website, a desktop application, or a mobile application.
For the rest of the course, you’ll operate in sprints. For CSSWENG, these are two to three weeks of consistent, structured work, complete with planning, execution, and retrospective phases. Aside from software development, your team must update scrum documents such as the Product Backlog and the Defect Report.
Each sprint ends with a progress report and feedback from your instructor on your team’s performance. After the final sprint, you’ll also present your project to your client and, in most cases, turn it over to them.
Projects
The nature of your project will vary depending on your client. In our case, we created a financial web application that tracks loan applications and loan amounts and deposits to a cooperative fund for Unbound MNL.
The client application will likely be one of the most comprehensive projects you’ll tackle during your stay in the program. It comprises most of your CSSWENG grade as well (seventy-five percent!), so your performance in this course rides or dies on this one project.
However, your grade does not solely rely on the intricacies or sheer number of your application’s features. Your adherence to the agile methodology and the various scrum practices will also be closely observed. Scrum documents and proper project documentation are mandatory in reports, so your team can’t just focus on the application.
Tips for Doing Well
Apart from your standard diligent student habits, excelling in this course will require different skill sets depending on your role. Product owners must have leadership and communication skills. Scrum masters must be exceptional at time management. Developers and QAs should be proficient in the right technologies. Designers have to bring the group’s vision to life.
But above all else, you’ll need to work well with your team to excel in this course. Constant communication and realignment. Progress reports and transparency. Questions, questions, and twice as many answers. Simply dividing tasks at the start and hoping everyone does their part by the end of the project will not suffice here.
Course Materials/Helpful Resources
- ScrumGuide — For an overview of the Scrum framework.
- The Lean Startup by Eric Ries — A great book detailing the history, rationale, and triumphs of the Agile methodology.
CSNETWK: Introduction to Computer Networks
Thoughts and Experiences
CSNETWK gives you a peek into the technologies that underly one of the most revolutionary innovations ever: the Internet. If you’re reading this, you’re likely on the Internet every day, so you have to be at least remotely interested in how the Internet works.
Though I was largely indifferent to this course, I can’t deny that the speck of knowledge I gained here was fascinating. I finally know what packet loss and bandwidth mean! There’s something inherently satisfying about understanding the intricacies of something you and billions of people use every day.
What You’ll Learn
CSNETWK is divided into seven modules, each covering a different aspect of computer networks.
Rather than an explanation of each module, I believe these are best described through the questions they answer along with a couple of keywords instead:
- Introduction to Computer Networks — What components make up the Internet? (Keywords: WAN, WLAN, Packet and Circuit Switching)
- Layered Network Design — How is interoperability achieved on the Internet? (Keywords: Network Protocols, OSI and TCP/IP Models, TCP and UDP)
- Networked Applications — How do network devices communicate with each other? (Keywords: Application Protocols, Client-Server and Peer-to-Peer Architecture, Sockets)
- Data Delivery — How is data transmitted between devices safely, properly, and quickly? (Keywords: Transport Protocols, TCP and UDP Segments, Multiplexing)
- Routing and Forwarding — Where should our data be sent to and which path should it take? (Keywords: Static and Dynamic Routing, Subnetting, IPv4 and IPv6 Datagrams)
- Local Area Networks — What are packets and why are they important? (Keywords: MAC Address, Address Resolution Protocol, Ethernet, Learning Switches)
- Physical Networks — What mediums do computer networks operate on and what are their characteristics? (Keywords: Copper and Fiber Optic Cables, Wireless Media, Bandwidth)
Projects
We had four “laboratory” projects that acted as more practical applications of the concepts taught in class. All of them were simple, compact, and easily doable within a day.
For the first two, we inspected network packets and explored application layer protocols using the network analyzer software Wireshark. For the next two, we simulated client-server connections and communication, otherwise known as Socket Programming, using Java libraries.
For the final machine project, we created a simple, terminal-based file exchange system that allows clients to store, fetch, and transfer files to and from a server using network protocols. Our chosen language for this project was Python, but we could have also coded it in C or Java.
Tips for Doing Well
As a Software Technology (ST) major, I found this course to be a bit of a slog, and I suspect I am not alone. Excelling in this course will boil down to winning the battle over your fleeting attention span. Because of the slew of concepts and jargon, catching up in this course is a pain. Avoid cramming all the ideas the night before your test. You’ll be doing yourself a favor.
Course Materials/Helpful Resources
- Computer Networks Series by Neso Academy — This series made up for all the online sessions where I fell asleep.
- Interactive Exercises from Computer Networking: A Top-Down Approach. Jim Kurose and Keith Ross — A wonderful resource for practice!
- Kurose, & Ross, K. W. (2017). Computer networking: a top-down approach (Seventh edition.). Pearson. TK5105.875.I57 K88 2017
CSMODEL: Statistical Modeling and Simulation
Thoughts and Experiences
CSMODEL is the most theory-heavy course of the term. It expands upon rudimentary statistics, teaching you how to design, optimize, and evaluate statistical models based on real-world data. CSMODEL strikes a good balance between comprehensive exams to teach you concepts and programming projects to help you actually apply them.
The course is akin to CSINTSY, both in structure and in purpose. You are given a glimpse into a vast yet intricate domain: this time it’s Data Science. If you’re interested, then consider CSMODEL as your foray into this evergreen field.
What You’ll Learn
You’ll start the course with a brief introduction to the very concept of Data: its types and forms, the various collection techniques, its different representations, and all the operations you can perform.
Then you’ll begin exploring (haha) Exploratory Data Analysis (EDA), a process that involves understanding, cleaning, and visualizing your data — mostly cleaning.
This is the phase where you’ll ask the most questions. What does each variable mean? Could there be a relationship here? How should we represent different data types? Are there duplicates, outliers, or missing values?
After a fierce battle between you and your data, you can finally perform statistical inference. Three kinds are taught here: inference for means, inference for categorical data, and Bayesian inference. Concepts such as the central limit theorem, confidence intervals, and Z-scores also return.
Now that your hypothesis can be validated, you’ll learn how to extract useful information from your data with the help of data mining strategies. This course covers three methods: association rules, clustering, and recommender systems. Of course, your models will still be rough around the edges, so you’ll learn how to optimize them using Linear Programming.
You’ll then conclude CSMODEL with discussions on different approaches to translating complex data types (text, time, images, etc.) into a format that a computer can easily process.
Projects
For our main project, we performed a case study on a dataset of our choice. We went through the entire process: writing research questions, exploring, cleaning, and visualizing our data, testing our hypotheses, deriving insights, and forming conclusions.
By the end of this project, you should be comfortable with Jupyter Notebooks and the Pandas Python library. Mastery of these two is paramount to your success in the field, whether academically or professionally.
Tips for Doing Well
Knowing how to work with statistical formulas and calculations is more of a formality since, in reality, your code will do it all for you. But your code can’t help you understand the relationships between your variables and the relevance of each value you could possibly use.
Throughout your project and in the several machine learning and AI-related courses coming up, you’ll need to justify why you’re choosing certain techniques and omitting certain data. That isn’t something ChatGPT can help you with.
Course Materials/Helpful Resources
- Statistics Fundamentals and Linear Regression and Linear Models by StatQuest with Josh Starmer — Simple but incredibly intuitive explanations.
STHCIUX: Human-Computer Interaction
Thoughts and Experiences
STHCIUX introduces you to human-computer interaction (HCI), a relatively new computing discipline that examines how people use technology. The unifying goal of this field is to make our experiences with technology as effective, seamless, and enjoyable as possible.
Touchscreens, Face ID and Touch ID, voice assistants, assistive technologies, and smart devices are just a few examples of the gems born out of HCI innovations.
Despite its birth in the field of computing, HCI has now permeated several other fields as well. HCI research is crucial in engineering, cognitive psychology, and social science. Are these technologies safe and easy to use? Do users feel better and more productive? How do these affect the lives of people and those around them?
Similar to CSSWENG, STHCIUX focuses on application rather than theory. In fact, these two courses go hand-in-hand with each other. Many of the principles you learn in one course will often appear and will apply to the other. But unlike CSSWENG, you don’t have to write a single line of code here.
What You’ll Learn
After a quick introduction to the history and importance of the HCI field, STHCIUX will take you through the design thinking process from start to finish.
First, before you even figure out what to build, you’ll need to determine why you’re creating something in the first place.
Is there a pressing problem that frustrates you or the people around you? What steps have been taken to try and solve them? Are there existing technologies that have attempted to address these problems? What features of these technologies do people enjoy or abhor?
This process is called needfinding. It is the cornerstone of design thinking and is instrumental in creating a successful product. If you already know what to build at the onset of your project, then you’re wrong.
Once your needfinding study is complete, you’ll need to analyze and organize your data. There are a plethora of frameworks that will aid you in this process.
For data visualization, you can leverage work models such as Flow, Sequence, and Artifact models. You’ll also likely want to conduct thematic analysis, a systematic process of identifying and interpreting patterns within your data. Finally, you’ll synthesize your findings and establish your target users by attributing their problems, experiences, and goals to personas.
Now that you know a little more about what your users need, you can finally begin the prototyping process. In this process, your objective is to obtain as much feedback as possible with the least amount of effort. Instead, you’ll want to use low-fidelity prototypes to keep things quick and simple: sketches, whiteboards, paper models, wireframes, and even simply putting things together.
Once your prototype is finished, you’ll conduct usability studies and realize that you were never really finished in the first place. You’ll continuously go through iterations of designing your prototype, seeking user feedback, and making incremental changes. Oh, and don’t expect this process to stop once you launch your product.
Projects
STHCIUX’s major course output will have you design a software application to solve a real problem. You’ll undergo all the aforementioned design processes, going from a simple idea all the way to a high-fidelity prototype. This project is divided into several phases spanning the entire course, similar to CSSWENG.
At the end of the term, you’ll demonstrate this application to your professor and classmates. Our batch enjoyed something akin to a science fair. We had to print large posters showcasing our entire design process along with a digital mockup of our application.
Tips for Doing Well
Barring a few essays and readings, STHCIUX is a group subject all the way. Thus, the best advice I can give you is to join people with whom you enjoy working. You’ll be stuck with them for the entire course.
The course project isn’t too difficult, so I suggest designing an application that you’ll be passionate about, even if this isn’t a required school output. It’ll make the entire process much more enjoyable.
Course Materials/Helpful Resources
- The Design of Everyday Things by Don Norman — A short and digestible book about human-centered design. Possibly the best book to start your dive into HCI.
Thank you for reading all the way to the end of the article. If you found it useful, feel free to share it with anyone else who may need it. And I hope it was as fun to read as it was educational.
If you’re eager to keep learning, check out the rest of the articles in the Ultimate Guide to DLSU Computer Science here!
For more of my writing, please consider subscribing to my newsletter and following me here on Medium.
If you’d like to show some more support, you can buy me a coffee. I’d greatly appreciate it!